...
1<lexer>
2 <config>
3 <name>Rexx</name>
4 <alias>rexx</alias>
5 <alias>arexx</alias>
6 <filename>*.rexx</filename>
7 <filename>*.rex</filename>
8 <filename>*.rx</filename>
9 <filename>*.arexx</filename>
10 <mime_type>text/x-rexx</mime_type>
11 <case_insensitive>true</case_insensitive>
12 <not_multiline>true</not_multiline>
13 </config>
14 <rules>
15 <state name="keyword">
16 <rule pattern="(address|arg|by|call|do|drop|else|end|exit|for|forever|if|interpret|iterate|leave|nop|numeric|off|on|options|parse|pull|push|queue|return|say|select|signal|to|then|trace|until|while)\b">
17 <token type="KeywordReserved"/>
18 </rule>
19 </state>
20 <state name="operator">
21 <rule pattern="(-|//|/|\(|\)|\*\*|\*|\\<<|\\<|\\==|\\=|\\>>|\\>|\\|\|\||\||&&|&|%|\+|<<=|<<|<=|<>|<|==|=|><|>=|>>=|>>|>|¬<<|¬<|¬==|¬=|¬>>|¬>|¬|\.|,)">
22 <token type="Operator"/>
23 </rule>
24 </state>
25 <state name="string_double">
26 <rule pattern="[^"\n]+">
27 <token type="LiteralString"/>
28 </rule>
29 <rule pattern="""">
30 <token type="LiteralString"/>
31 </rule>
32 <rule pattern=""">
33 <token type="LiteralString"/>
34 <pop depth="1"/>
35 </rule>
36 <rule pattern="\n">
37 <token type="Text"/>
38 <pop depth="1"/>
39 </rule>
40 </state>
41 <state name="string_single">
42 <rule pattern="[^\'\n]">
43 <token type="LiteralString"/>
44 </rule>
45 <rule pattern="\'\'">
46 <token type="LiteralString"/>
47 </rule>
48 <rule pattern="\'">
49 <token type="LiteralString"/>
50 <pop depth="1"/>
51 </rule>
52 <rule pattern="\n">
53 <token type="Text"/>
54 <pop depth="1"/>
55 </rule>
56 </state>
57 <state name="comment">
58 <rule pattern="[^*]+">
59 <token type="CommentMultiline"/>
60 </rule>
61 <rule pattern="\*/">
62 <token type="CommentMultiline"/>
63 <pop depth="1"/>
64 </rule>
65 <rule pattern="\*">
66 <token type="CommentMultiline"/>
67 </rule>
68 </state>
69 <state name="root">
70 <rule pattern="\s">
71 <token type="TextWhitespace"/>
72 </rule>
73 <rule pattern="/\*">
74 <token type="CommentMultiline"/>
75 <push state="comment"/>
76 </rule>
77 <rule pattern=""">
78 <token type="LiteralString"/>
79 <push state="string_double"/>
80 </rule>
81 <rule pattern="'">
82 <token type="LiteralString"/>
83 <push state="string_single"/>
84 </rule>
85 <rule pattern="[0-9]+(\.[0-9]+)?(e[+-]?[0-9])?">
86 <token type="LiteralNumber"/>
87 </rule>
88 <rule pattern="([a-z_]\w*)(\s*)(:)(\s*)(procedure)\b">
89 <bygroups>
90 <token type="NameFunction"/>
91 <token type="TextWhitespace"/>
92 <token type="Operator"/>
93 <token type="TextWhitespace"/>
94 <token type="KeywordDeclaration"/>
95 </bygroups>
96 </rule>
97 <rule pattern="([a-z_]\w*)(\s*)(:)">
98 <bygroups>
99 <token type="NameLabel"/>
100 <token type="TextWhitespace"/>
101 <token type="Operator"/>
102 </bygroups>
103 </rule>
104 <rule>
105 <include state="function"/>
106 </rule>
107 <rule>
108 <include state="keyword"/>
109 </rule>
110 <rule>
111 <include state="operator"/>
112 </rule>
113 <rule pattern="[a-z_]\w*">
114 <token type="Text"/>
115 </rule>
116 </state>
117 <state name="function">
118 <rule pattern="(sourceline|wordlength|errortext|translate|wordindex|condition|datatype|subword|lineout|lastpos|delword|address|charout|wordpos|compare|overlay|reverse|symbol|stream|charin|center|delstr|verify|digits|abbrev|bitxor|format|random|insert|bitand|queued|length|linein|substr|copies|xrange|space|words|lines|bitor|trunc|strip|right|value|chars|trace|sign|form|fuzz|word|left|time|date|c2d|d2c|d2x|c2x|pos|b2x|arg|abs|min|x2b|x2c|x2d|max)(\s*)(\()">
119 <bygroups>
120 <token type="NameBuiltin"/>
121 <token type="TextWhitespace"/>
122 <token type="Operator"/>
123 </bygroups>
124 </rule>
125 </state>
126 </rules>
127</lexer>
View as plain text