...
1<lexer>
2 <config>
3 <name>ReasonML</name>
4 <alias>reason</alias>
5 <alias>reasonml</alias>
6 <filename>*.re</filename>
7 <filename>*.rei</filename>
8 <mime_type>text/x-reasonml</mime_type>
9 </config>
10 <rules>
11 <state name="escape-sequence">
12 <rule pattern="\\[\\"\'ntbr]">
13 <token type="LiteralStringEscape"/>
14 </rule>
15 <rule pattern="\\[0-9]{3}">
16 <token type="LiteralStringEscape"/>
17 </rule>
18 <rule pattern="\\x[0-9a-fA-F]{2}">
19 <token type="LiteralStringEscape"/>
20 </rule>
21 </state>
22 <state name="root">
23 <rule pattern="\s+">
24 <token type="Text"/>
25 </rule>
26 <rule pattern="false|true|\(\)|\[\]">
27 <token type="NameBuiltinPseudo"/>
28 </rule>
29 <rule pattern="\b([A-Z][\w\']*)(?=\s*\.)">
30 <token type="NameNamespace"/>
31 <push state="dotted"/>
32 </rule>
33 <rule pattern="\b([A-Z][\w\']*)">
34 <token type="NameClass"/>
35 </rule>
36 <rule pattern="//.*?\n">
37 <token type="CommentSingle"/>
38 </rule>
39 <rule pattern="\/\*(?![\/])">
40 <token type="CommentMultiline"/>
41 <push state="comment"/>
42 </rule>
43 <rule pattern="\b(as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|false|for|fun|esfun|function|functor|if|in|include|inherit|initializer|lazy|let|switch|module|pub|mutable|new|nonrec|object|of|open|pri|rec|sig|struct|then|to|true|try|type|val|virtual|when|while|with)\b">
44 <token type="Keyword"/>
45 </rule>
46 <rule pattern="(~|\}|\|]|\||\|\||\{<|\{|`|_|]|\[\||\[>|\[<|\[|\?\?|\?|>\}|>]|>|=|<-|<|;;|;|:>|:=|::|:|\.\.\.|\.\.|\.|=>|-\.|-|,|\+|\*|\)|\(|&&|&|#|!=)">
47 <token type="OperatorWord"/>
48 </rule>
49 <rule pattern="([=<>@^|&+\*/$%-]|[!?~])?[!$%&*+\./:<=>?@^|~-]">
50 <token type="Operator"/>
51 </rule>
52 <rule pattern="\b(and|asr|land|lor|lsl|lsr|lxor|mod|or)\b">
53 <token type="OperatorWord"/>
54 </rule>
55 <rule pattern="\b(unit|int|float|bool|string|char|list|array)\b">
56 <token type="KeywordType"/>
57 </rule>
58 <rule pattern="[^\W\d][\w']*">
59 <token type="Name"/>
60 </rule>
61 <rule pattern="-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)">
62 <token type="LiteralNumberFloat"/>
63 </rule>
64 <rule pattern="0[xX][\da-fA-F][\da-fA-F_]*">
65 <token type="LiteralNumberHex"/>
66 </rule>
67 <rule pattern="0[oO][0-7][0-7_]*">
68 <token type="LiteralNumberOct"/>
69 </rule>
70 <rule pattern="0[bB][01][01_]*">
71 <token type="LiteralNumberBin"/>
72 </rule>
73 <rule pattern="\d[\d_]*">
74 <token type="LiteralNumberInteger"/>
75 </rule>
76 <rule pattern="'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'">
77 <token type="LiteralStringChar"/>
78 </rule>
79 <rule pattern="'.'">
80 <token type="LiteralStringChar"/>
81 </rule>
82 <rule pattern="'">
83 <token type="Keyword"/>
84 </rule>
85 <rule pattern=""">
86 <token type="LiteralStringDouble"/>
87 <push state="string"/>
88 </rule>
89 <rule pattern="[~?][a-z][\w\']*:">
90 <token type="NameVariable"/>
91 </rule>
92 </state>
93 <state name="comment">
94 <rule pattern="[^\/*]+">
95 <token type="CommentMultiline"/>
96 </rule>
97 <rule pattern="\/\*">
98 <token type="CommentMultiline"/>
99 <push/>
100 </rule>
101 <rule pattern="\*\/">
102 <token type="CommentMultiline"/>
103 <pop depth="1"/>
104 </rule>
105 <rule pattern="[\*]">
106 <token type="CommentMultiline"/>
107 </rule>
108 </state>
109 <state name="string">
110 <rule pattern="[^\\"]+">
111 <token type="LiteralStringDouble"/>
112 </rule>
113 <rule>
114 <include state="escape-sequence"/>
115 </rule>
116 <rule pattern="\\\n">
117 <token type="LiteralStringDouble"/>
118 </rule>
119 <rule pattern=""">
120 <token type="LiteralStringDouble"/>
121 <pop depth="1"/>
122 </rule>
123 </state>
124 <state name="dotted">
125 <rule pattern="\s+">
126 <token type="Text"/>
127 </rule>
128 <rule pattern="\.">
129 <token type="Punctuation"/>
130 </rule>
131 <rule pattern="[A-Z][\w\']*(?=\s*\.)">
132 <token type="NameNamespace"/>
133 </rule>
134 <rule pattern="[A-Z][\w\']*">
135 <token type="NameClass"/>
136 <pop depth="1"/>
137 </rule>
138 <rule pattern="[a-z_][\w\']*">
139 <token type="Name"/>
140 <pop depth="1"/>
141 </rule>
142 <rule>
143 <pop depth="1"/>
144 </rule>
145 </state>
146 </rules>
147</lexer>
View as plain text