...
1<lexer>
2 <config>
3 <name>J</name>
4 <alias>j</alias>
5 <filename>*.ijs</filename>
6 <mime_type>text/x-j</mime_type>
7 </config>
8 <rules>
9 <state name="singlequote">
10 <rule pattern="[^']">
11 <token type="LiteralString"/>
12 </rule>
13 <rule pattern="''">
14 <token type="LiteralString"/>
15 </rule>
16 <rule pattern="'">
17 <token type="LiteralString"/>
18 <pop depth="1"/>
19 </rule>
20 </state>
21 <state name="root">
22 <rule pattern="#!.*$">
23 <token type="CommentPreproc"/>
24 </rule>
25 <rule pattern="NB\..*">
26 <token type="CommentSingle"/>
27 </rule>
28 <rule pattern="\n+\s*Note">
29 <token type="CommentMultiline"/>
30 <push state="comment"/>
31 </rule>
32 <rule pattern="\s*Note.*">
33 <token type="CommentSingle"/>
34 </rule>
35 <rule pattern="\s+">
36 <token type="Text"/>
37 </rule>
38 <rule pattern="'">
39 <token type="LiteralString"/>
40 <push state="singlequote"/>
41 </rule>
42 <rule pattern="0\s+:\s*0|noun\s+define\s*$">
43 <token type="NameEntity"/>
44 <push state="nounDefinition"/>
45 </rule>
46 <rule pattern="(([1-4]|13)\s+:\s*0|(adverb|conjunction|dyad|monad|verb)\s+define)\b">
47 <token type="NameFunction"/>
48 <push state="explicitDefinition"/>
49 </rule>
50 <rule pattern="(label_|goto_|for_)\b[a-zA-Z]\w*\.">
51 <token type="NameLabel"/>
52 </rule>
53 <rule pattern="(continue|select|return|assert|catchd|catcht|elseif|whilst|break|catch|fcase|while|throw|else|case|end|try|for|do|if)\.">
54 <token type="NameLabel"/>
55 </rule>
56 <rule pattern="\b[a-zA-Z]\w*">
57 <token type="NameVariable"/>
58 </rule>
59 <rule pattern="(timespacex|fixdotdot|nameclass|namelist|file2url|tmoutput|ucpcount|boxxopen|smoutput|JVERSION|datatype|toupper|tolower|alpha17|alpha27|getargs|evtloop|boxopen|fliprgb|inverse|scriptd|iospath|cutopen|isatty|toCRLF|toHOST|isutf8|getenv|stdout|script|usleep|sminfo|expand|stderr|clear|fetch|every|erase|empty|Debug|EMPTY|split|names|timex|cutLF|stdin|apply|items|table|exit|Note|list|take|leaf|type|bind|drop|rows|each|echo|sign|CRLF|utf8|sort|pick|ARGV|uucp|ucp|DEL|inv|hfd|dfh|def|LF2|EAV|toJ|TAB|nl|FF|LF|bx|nc|CR|on)">
60 <token type="NameFunction"/>
61 </rule>
62 <rule pattern="=[.:]">
63 <token type="Operator"/>
64 </rule>
65 <rule pattern="[-=+*#$%@!~`^&";:.,<>{}\[\]\\|/]">
66 <token type="Operator"/>
67 </rule>
68 <rule pattern="[abCdDeEfHiIjLMoprtT]\.">
69 <token type="KeywordReserved"/>
70 </rule>
71 <rule pattern="[aDiLpqsStux]\:">
72 <token type="KeywordReserved"/>
73 </rule>
74 <rule pattern="(_[0-9])\:">
75 <token type="KeywordConstant"/>
76 </rule>
77 <rule pattern="\(">
78 <token type="Punctuation"/>
79 <push state="parentheses"/>
80 </rule>
81 <rule>
82 <include state="numbers"/>
83 </rule>
84 </state>
85 <state name="comment">
86 <rule pattern="[^)]">
87 <token type="CommentMultiline"/>
88 </rule>
89 <rule pattern="^\)">
90 <token type="CommentMultiline"/>
91 <pop depth="1"/>
92 </rule>
93 <rule pattern="[)]">
94 <token type="CommentMultiline"/>
95 </rule>
96 </state>
97 <state name="explicitDefinition">
98 <rule pattern="\b[nmuvxy]\b">
99 <token type="NameDecorator"/>
100 </rule>
101 <rule>
102 <include state="root"/>
103 </rule>
104 <rule pattern="[^)]">
105 <token type="Name"/>
106 </rule>
107 <rule pattern="^\)">
108 <token type="NameLabel"/>
109 <pop depth="1"/>
110 </rule>
111 <rule pattern="[)]">
112 <token type="Name"/>
113 </rule>
114 </state>
115 <state name="numbers">
116 <rule pattern="\b_{1,2}\b">
117 <token type="LiteralNumber"/>
118 </rule>
119 <rule pattern="_?\d+(\.\d+)?(\s*[ejr]\s*)_?\d+(\.?=\d+)?">
120 <token type="LiteralNumber"/>
121 </rule>
122 <rule pattern="_?\d+\.(?=\d+)">
123 <token type="LiteralNumberFloat"/>
124 </rule>
125 <rule pattern="_?\d+x">
126 <token type="LiteralNumberIntegerLong"/>
127 </rule>
128 <rule pattern="_?\d+">
129 <token type="LiteralNumberInteger"/>
130 </rule>
131 </state>
132 <state name="nounDefinition">
133 <rule pattern="[^)]">
134 <token type="LiteralString"/>
135 </rule>
136 <rule pattern="^\)">
137 <token type="NameLabel"/>
138 <pop depth="1"/>
139 </rule>
140 <rule pattern="[)]">
141 <token type="LiteralString"/>
142 </rule>
143 </state>
144 <state name="parentheses">
145 <rule pattern="\)">
146 <token type="Punctuation"/>
147 <pop depth="1"/>
148 </rule>
149 <rule>
150 <include state="explicitDefinition"/>
151 </rule>
152 <rule>
153 <include state="root"/>
154 </rule>
155 </state>
156 </rules>
157</lexer>
View as plain text