m4.jsf (1848B)
1 # m4 2 3 =Idle 4 =Ident 5 =Comment 6 =Constant 7 =Variable +Escape 8 =Brace 9 =Keyword 10 11 :start Idle 12 * start noeat call=.m4() 13 14 .subr m4 15 16 .ifdef quote 17 :idle Constant 18 .else 19 :idle Idle 20 .endif 21 * idle 22 "[" idle recolor=-1 call=.m4(quote -brace) 23 # "[" idle recolor=-1 call=.quote() 24 "a-zA-Z_" ident buffer mark 25 .ifdef quote 26 "]" idle return 27 .endif 28 .ifdef brace 29 ")" endbrace recolor=-1 30 .endif 31 32 :quote Constant string 33 * quote 34 "]" idle 35 36 :endbrace Brace 37 * idle noeat return 38 39 .ifdef quote 40 :ident Constant string 41 .else 42 :ident Ident 43 .endif 44 * maybe_macro noeat strings 45 "builtin" maybe_kw 46 "changecom" maybe_kw 47 "changequote" maybe_kw 48 "changeword" maybe_kw 49 "debugfile" maybe_kw 50 "debugmode" maybe_kw 51 "decr" maybe_kw 52 "define" maybe_kw 53 "defn" maybe_kw 54 "divert" maybe_kw 55 "divnum" maybe_kw 56 "dnl" comment 57 "dumpdef" maybe_kw 58 "errprint" maybe_kw 59 "esyscmd" maybe_kw 60 "eval" maybe_kw 61 "file" maybe_kw 62 "format" maybe_kw 63 "ifdef" maybe_kw 64 "ifelse" maybe_kw 65 "include" maybe_kw 66 "incr" maybe_kw 67 "index" maybe_kw 68 "indir" maybe_kw 69 "len" maybe_kw 70 "line" maybe_kw 71 "m4exit" maybe_kw 72 "m4wrap" maybe_kw 73 "maketemp" maybe_kw 74 "patsubst" maybe_kw 75 "popdef" maybe_kw 76 "pushdef" maybe_kw 77 "regexp" maybe_kw 78 "shift" maybe_kw 79 "sinclude" maybe_kw 80 "substr" maybe_kw 81 "syscmd" maybe_kw 82 "sysval" maybe_kw 83 "traceoff" maybe_kw 84 "traceon" maybe_kw 85 "translit" maybe_kw 86 "undefine" maybe_kw 87 "undivert" maybe_kw 88 done 89 "a-zA-Z0-9_" ident 90 91 :maybe_macro Idle 92 * idle noeat 93 "(" macro recolormark noeat 94 95 :maybe_kw Idle 96 * idle noeat 97 "(" kw recolormark noeat 98 99 :kw Keyword 100 * idle noeat 101 "(" macro noeat 102 103 :comment Comment comment 104 * comment 105 "\n" idle 106 107 :macro Variable 108 * idle noeat 109 "(" brace recolor=-1 110 111 :brace Brace 112 * idle noeat call=.m4(brace -quote) 113 114 .end 115 116 .subr quote 117 :idle Constant string 118 * idle 119 "]" idle return 120 "[" idle call=.quote() 121 122 .end