d.jsf.in (8094B)
1 # JOE syntax highlight file for D 2 3 =Idle 4 =Comment green 5 =Constant cyan 6 =Escape bold cyan 7 =Type bold 8 =Keyword bold 9 =Operator bold 10 =Bad bold red 11 =Brace magenta 12 =Control 13 14 =Methods 15 16 :begin Idle 17 * begin noeat call=.d() 18 19 .subr d 20 21 :idle Idle 22 * idle 23 "(" idle call=.d(paren) 24 "[" idle call=.d(brack) 25 "{" do_brace recolor=-1 noeat 26 # "{" brace recolor=-1 call=.d(squiggly) 27 .ifdef paren 28 ")" idle return 29 .else 30 ")" stray recolor=-1 31 .endif 32 .ifdef brack 33 "]" idle return 34 .else 35 "]" stray recolor=-1 36 .endif 37 .ifdef squiggly 38 "}" brace recolor=-1 return 39 .else 40 "}" stray recolor=-1 41 .endif 42 "\n" idle 43 "/" slash 44 "0" first_digit recolor=-1 45 "1-9" decimal recolor=-1 46 "." maybe_float 47 "\"" string recolor=-1 48 "'" char recolor=-1 49 "\i" ident mark buffer 50 ",:;=><*&|!~+\-%^" control recolor=-1 51 "r" maybe_rstring mark buffer 52 "x" maybe_xstring mark buffer 53 "q" maybe_qstring recolor=-1 mark buffer 54 "`" bstring recolor=-1 55 56 :do_brace Brace 57 * idle noeat 58 "{" brace call=.d(squiggly) 59 60 :brace Brace 61 * idle noeat 62 63 :stray Bad 64 * idle noeat 65 66 :maybe_done Control 67 * idle noeat 68 "/" idle noeat return recolor=-2 69 70 :control Control 71 * idle noeat 72 73 :slash Idle 74 * idle noeat 75 "*" comment recolor=-2 76 "+" idle recolor=-2 call=.block_comment() 77 "/" line_comment recolor=-2 78 79 :comment Comment 80 * comment 81 # might be TODO label 82 "BFHNTX" comment noeat call=comment_todo.comment_todo() 83 "*" maybe_end_comment 84 85 :maybe_end_comment Comment 86 * comment noeat 87 "/" idle 88 "*" maybe_end_comment 89 90 :line_comment Comment 91 * line_comment 92 # might be TODO label 93 "BFHNTX" line_comment noeat call=comment_todo.comment_todo() 94 "\n" idle 95 96 :int_postfix Constant 97 * idle noeat 98 "uU" int_postfix_1 99 "L" int_postfix_2 100 101 :int_postfix_1 Constant 102 * idle noeat 103 "L" idle 104 105 :int_postfix_2 Constant 106 * idle noeat 107 "uU" idle 108 109 :float_postfix Constant 110 * idle noeat 111 "fF" float_postfix_1 112 "L" float_postfix_1 113 "i" idle 114 115 :float_postfix_1 Constant 116 * idle noeat 117 "i" idle 118 119 :first_digit Constant 120 * int_postfix noeat 121 "xX" hex 122 "bB" bin 123 "." float 124 "eE" epart 125 "0-9" decimal 126 127 :bad_number Bad 128 * idle noeat 129 "0-9" bad_number 130 131 :octal Constant 132 * int_postfix noeat 133 "0-7_" octal 134 "89" bad_number recolor=-1 135 136 :hex Constant 137 * int_postfix noeat 138 "0-9A-Fa-f_" hex 139 "." hexfloat 140 "pP" ppart 141 142 :hexfloat Constant 143 * float_postfix noeat 144 "0-9A-Fa-f_" hexfloat 145 "pP" ppart 146 147 :ppart Constant 148 * float_postfix noeat 149 "0-9+\-" pnum 150 151 :pnum Constant 152 * float_postfix noeat 153 "0-9_" pnum 154 155 :decimal Constant 156 * int_postfix noeat 157 "0-9_" decimal 158 "eE" epart 159 "." float 160 161 :maybe_float Constant 162 * idle recolor=-2 noeat 163 "\i" not_ident recolor=-2 164 "0-9" float recolor=-2 165 166 :not_ident Idle 167 * idle noeat 168 "\c" not_ident 169 170 :float Constant 171 * float_postfix noeat 172 "eE" epart 173 "0-9_" float 174 175 :epart Constant 176 * idle noeat 177 "0-9+\-" enum 178 179 :enum Constant 180 * float_postfix noeat 181 "0-9_" enum 182 183 :maybe_qstring Brace 184 * ident recolor=-1 noeat 185 "{" brace call=.d(squiggly) 186 "\"" qdstring recolor=-2 187 188 :qdstring Constant 189 * qstring save_c 190 "\i" qdelim buffer 191 192 :qdelim Constant 193 * qdelim_bad noeat save_s 194 "\c" qdelim 195 "\n" skipline noeat save_s 196 197 :qdelim_bad Bad 198 * qdelim_bad 199 "\n" skipline noeat 200 201 :skipline Constant 202 * skipline 203 "\n" next_line 204 205 :todelim Constant 206 * todelim 207 "\n" next_line 208 "\"" next_line strings 209 "&" founddelim 210 done 211 212 :founddelim Constant 213 * idle noeat 214 "\"" bad_line 215 216 :bad_line Bad 217 * bad_line 218 "\n" idle 219 220 # eat \n so it's not in string. 221 :next_line Constant 222 * todelim buffer 223 "\n" next_line 224 225 :qstring Constant 226 * qstring 227 & qstring_1 228 229 :qstring_1 Constant 230 * qstring noeat 231 "\"" string_postfix 232 233 :maybe_xstring Idle 234 * ident noeat 235 "\"" xstring recolor=-2 236 237 :xstring Constant 238 * bad_xstring recolor=-1 239 " \t\r\n\f0-9A-Fa-f" xstring 240 "\"" string_postfix 241 242 :bad_xstring Bad 243 * xstring noeat 244 245 :maybe_rstring Idle 246 * ident noeat 247 "\"" rstring recolor=-2 248 249 :rstring Constant 250 * rstring 251 "\"" string_postfix 252 253 :bstring Constant 254 * bstring 255 "`" string_postfix 256 257 :string Constant 258 * string 259 "\"" string_postfix 260 "\\" string_escape recolor=-1 261 "%" string_control recolor=-1 262 263 :string_postfix Constant 264 * idle noeat 265 "cwd" idle 266 267 :string_escape Escape 268 * string 269 "U" string_hex8 270 "u" string_hex4 271 "x" string_hex2 272 "0-7" string_octal2 273 "\n" string recolor=-2 274 275 :string_hex8 Escape 276 * string noeat 277 "0-9a-fA-F" string_hex7 278 279 :string_hex7 Escape 280 * string noeat 281 "0-9a-fA-F" string_hex6 282 283 :string_hex6 Escape 284 * string noeat 285 "0-9a-fA-F" string_hex5 286 287 :string_hex5 Escape 288 * string noeat 289 "0-9a-fA-F" string_hex4 290 291 :string_hex4 Escape 292 * string noeat 293 "0-9a-fA-F" string_hex3 294 295 :string_hex3 Escape 296 * string noeat 297 "0-9a-fA-F" string_hex2 298 299 :string_hex2 Escape 300 * string noeat 301 "0-9a-fA-F" string_hex1 302 303 :string_hex1 Escape 304 * string noeat 305 "0-9a-fA-F" string 306 307 :string_octal2 Escape 308 * string noeat 309 "0-7" string_octal1 310 311 :string_octal1 Escape 312 * string noeat 313 "0-7" string 314 315 :string_control Escape 316 * string_control 317 "\n" idle 318 "\"" string noeat 319 "diouxXeEfFgGaAcspn%SCM" string 320 321 :char Constant 322 * char_done 323 "'" idle 324 "\\" char_escape recolor=-1 325 326 :char_done Constant 327 * idle noeat recolor=-3 328 "\'" idle 329 330 :char_escape Escape 331 * char_done 332 "U" char_hex8 333 "u" char_hex4 334 "x" char_hex2 335 "0-7" char_octal2 336 337 :char_hex8 Escape 338 * char_done noeat 339 "0-9a-fA-F" char_hex7 340 341 :char_hex7 Escape 342 * char_done noeat 343 "0-9a-fA-F" char_hex6 344 345 :char_hex6 Escape 346 * char_done noeat 347 "0-9a-fA-F" char_hex5 348 349 :char_hex5 Escape 350 * char_done noeat 351 "0-9a-fA-F" char_hex4 352 353 :char_hex4 Escape 354 * char_done noeat 355 "0-9a-fA-F" char_hex3 356 357 :char_hex3 Escape 358 * char_done noeat 359 "0-9a-fA-F" char_hex2 360 361 :char_hex2 Escape 362 * char_done noeat 363 "0-9a-fA-F" char_hex1 364 365 :char_hex1 Escape 366 * char_done noeat 367 "0-9a-fA-F" char_done 368 369 :char_octal2 Escape 370 * char_done noeat 371 "0-7" char_octal1 372 373 :char_octal1 Escape 374 * char_done noeat 375 "0-7" char_done 376 377 :ident Idle 378 * ident_end noeat recolormark strings 379 "abstract" kw 380 "alias" kw 381 "align" kw 382 "asm" kw 383 "assert" kw 384 "auto" kw 385 "body" kw 386 "bool" kw 387 "break" kw 388 "byte" kw 389 "case" kw 390 "cast" kw 391 "catch" kw 392 "cdouble" kw 393 "cent" kw 394 "cfloat" kw 395 "char" kw 396 "class" kw 397 "const" kw 398 "continue" kw 399 "creal" kw 400 "dchar" kw 401 "debug" kw 402 "default" kw 403 "delegate" kw 404 "delete" kw 405 "deprecated" kw 406 "do" kw 407 "double" kw 408 "else" kw 409 "enum" kw 410 "export" kw 411 "extern" kw 412 "false" kw 413 "final" kw 414 "finally" kw 415 "float" kw 416 "for" kw 417 "foreach" kw 418 "foreach_reverse" kw 419 "function" kw 420 "goto" kw 421 "idouble" kw 422 "if" kw 423 "ifloat" kw 424 "immutable" kw 425 "import" kw 426 "in" kw 427 "inout" kw 428 "int" kw 429 "interface" kw 430 "invariant" kw 431 "ireal" kw 432 "is" kw 433 "lazy" kw 434 "long" kw 435 "macro" kw 436 "mixin" kw 437 "module" kw 438 "new" kw 439 "nothrow" kw 440 "null" kw 441 "out" kw 442 "override" kw 443 "package" kw 444 "pragma" kw 445 "private" kw 446 "protected" kw 447 "public" kw 448 "pure" kw 449 "real" kw 450 "ref" kw 451 "return" kw 452 "scope" kw 453 "shared" kw 454 "short" kw 455 "static" kw 456 "struct" kw 457 "super" kw 458 "switch" kw 459 "synchronized" kw 460 "template" kw 461 "this" kw 462 "throw" kw 463 "true" kw 464 "try" kw 465 "typedef" kw 466 "typeid" kw 467 "typeof" kw 468 "ubyte" kw 469 "ucent" kw 470 "uint" kw 471 "ulong" kw 472 "union" kw 473 "unittest" kw 474 "ushort" kw 475 "version" kw 476 "void" kw 477 "volatile" kw 478 "wchar" kw 479 "while" kw 480 "with" kw 481 "__FILE__" kw 482 "__MODULE__" kw 483 "__LINE__" kw 484 "__FUNCTION__" kw 485 "__PRETTY_FUNCTION__" kw 486 "__gshared" kw 487 "__traits" kw 488 "__vector" kw 489 "__parameters" kw 490 done 491 "\c" ident 492 493 :type Type 494 * idle noeat 495 496 :kw Keyword 497 * idle noeat 498 499 :bad_kw Bad 500 * idle noeat 501 502 :lit Constant 503 * idle noeat 504 505 :operator Operator 506 * idle noeat 507 508 :ident_end Idle 509 * idle noeat 510 " " ident_end 511 "(" method_end noeat recolormark 512 513 :method_end Methods 514 * idle noeat 515 516 .end 517 518 # Recursive block comments 519 520 .subr block_comment 521 522 :idle Comment 523 * idle 524 # might be TODO label 525 "BFHNTX" idle noeat call=comment_todo.comment_todo() 526 "+" maybe_done 527 "/" maybe_recur 528 529 :maybe_done Comment 530 * idle noeat 531 "/" idle return 532 533 :maybe_recur Comment 534 * idle noeat 535 "+" idle call=.block_comment() 536 537 .end