1<lexer>
 2  <config>
 3    <name>PowerQuery</name>
 4    <alias>powerquery</alias>
 5    <alias>pq</alias>
 6    <filename>*.pq</filename>
 7    <mime_type>text/x-powerquery</mime_type>
 8    <case_insensitive>true</case_insensitive>
 9    <dot_all>true</dot_all>
10  </config>
11  <rules>
12    <state name="root">
13      <rule pattern="\s+">
14        <token type="Text"/>
15      </rule>
16      <rule pattern="//.*?\n">
17        <token type="CommentSingle"/>
18      </rule>
19      <rule pattern="/\*.*?\*/">
20        <token type="CommentMultiline"/>
21      </rule>
22      <rule pattern=""(\\\\|\\"|[^"])*"">
23        <token type="LiteralString"/>
24      </rule>
25      <rule pattern="(and|as|each|else|error|false|if|in|is|let|meta|not|null|or|otherwise|section|shared|then|true|try|type)\b">
26        <token type="Keyword"/>
27      </rule>
28      <rule pattern="(#binary|#date|#datetime|#datetimezone|#duration|#infinity|#nan|#sections|#shared|#table|#time)\b">
29        <token type="KeywordType"/>
30      </rule>
31      <rule pattern="(([a-zA-Z]|_)[\w|._]*|#"[^"]+")">
32        <token type="Name"/>
33      </rule>
34      <rule pattern="0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?">
35        <token type="LiteralNumberHex"/>
36      </rule>
37      <rule pattern="([0-9]+\.[0-9]+|\.[0-9]+)([eE][0-9]+)?">
38        <token type="LiteralNumberFloat"/>
39      </rule>
40      <rule pattern="[0-9]+">
41        <token type="LiteralNumberInteger"/>
42      </rule>
43      <rule pattern="[\(\)\[\]\{\}]">
44        <token type="Punctuation"/>
45      </rule>
46      <rule pattern="\.\.|\.\.\.|=>|<=|>=|<>|[@!?,;=<>\+\-\*\/&]">
47        <token type="Operator"/>
48      </rule>
49    </state>
50  </rules>
51</lexer>