cue.xml

 1<lexer>
 2  <config>
 3    <name>CUE</name>
 4    <alias>cue</alias>
 5    <filename>*.cue</filename>
 6    <mime_type>text/x-cue</mime_type>
 7    <dot_all>true</dot_all>
 8    <ensure_nl>true</ensure_nl>
 9  </config>
10  <rules>
11    <state name="root">
12      <rule pattern="[^\S\n]+">
13        <token type="Text"/>
14      </rule>
15      <rule pattern="\\\n">
16        <token type="Text"/>
17      </rule>
18      <rule pattern="//[^\n\r]+">
19        <token type="CommentSingle"/>
20      </rule>
21      <rule pattern="\n">
22        <token type="Text"/>
23      </rule>
24      <rule pattern="(\+|&amp;&amp;|==|&lt;|=|-|\|\||!=|&gt;|:|\*|&amp;|=~|&lt;=|\?|\[|\]|,|/|\||!~|&gt;=|!|_\|_|\.\.\.)">
25        <token type="Operator"/>
26      </rule>
27      <rule pattern="#*&#34;+">
28        <token type="LiteralString"/>
29        <push state="string"/>
30      </rule>
31      <rule pattern="'(\\\\|\\'|[^'\n])*['\n]">
32        <token type="LiteralString"/>
33      </rule>
34      <rule pattern="0[boxX][0-9a-fA-F][_0-9a-fA-F]*|(\.\d+|\d[_\d]*(\.\d*)?)([eE][+-]?\d+)?[KMGTP]?i?">
35        <token type="LiteralNumber"/>
36      </rule>
37      <rule pattern="[~!%^&amp;*()+=|\[\]:;,.&lt;&gt;/?-]">
38        <token type="Punctuation"/>
39      </rule>
40      <rule pattern="[{}]">
41        <token type="Punctuation"/>
42      </rule>
43      <rule pattern="(import|for|if|in|let|package)\b">
44        <token type="Keyword"/>
45      </rule>
46      <rule pattern="(bool|float|int|string|uint|ulong|ushort)\b\??">
47        <token type="KeywordType"/>
48      </rule>
49      <rule pattern="(true|false|null|_)\b">
50        <token type="KeywordConstant"/>
51      </rule>
52      <rule pattern="[@#]?[_a-zA-Z$]\w*">
53        <token type="Name"/>
54      </rule>
55    </state>
56    <state name="string">
57      <rule pattern="\\#*\(">
58        <token type="LiteralStringInterpol"/>
59        <push state="string-intp"/>
60      </rule>
61      <rule pattern="&#34;+#*">
62        <token type="LiteralString"/>
63        <pop depth="1"/>
64      </rule>
65      <rule pattern="\\[&#39;&#34;\\nrt]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}">
66        <token type="LiteralStringEscape"/>
67      </rule>
68      <rule pattern="[^\\&#34;]+">
69        <token type="LiteralString"/>
70      </rule>
71      <rule pattern="\\">
72        <token type="LiteralString"/>
73      </rule>
74    </state>
75    <state name="string-intp">
76      <rule pattern="\)">
77        <token type="LiteralStringInterpol"/>
78        <pop depth="1"/>
79      </rule>
80      <rule>
81        <include state="root"/>
82      </rule>
83    </state>
84  </rules>
85</lexer>