...
1<lexer>
2 <config>
3 <name>MiniZinc</name>
4 <alias>minizinc</alias>
5 <alias>MZN</alias>
6 <alias>mzn</alias>
7 <filename>*.mzn</filename>
8 <filename>*.dzn</filename>
9 <filename>*.fzn</filename>
10 <mime_type>text/minizinc</mime_type>
11 </config>
12 <rules>
13 <state name="root">
14 <rule pattern="\n">
15 <token type="Text"/>
16 </rule>
17 <rule pattern="\s+">
18 <token type="Text"/>
19 </rule>
20 <rule pattern="\\\n">
21 <token type="Text"/>
22 </rule>
23 <rule pattern="\%(.*?)\n">
24 <token type="CommentSingle"/>
25 </rule>
26 <rule pattern="/(\\\n)?[*](.|\n)*?[*](\\\n)?/">
27 <token type="CommentMultiline"/>
28 </rule>
29 <rule pattern=""(\\\\|\\"|[^"])*"">
30 <token type="LiteralString"/>
31 </rule>
32 <rule pattern="\b(annotation|constraint|predicate|minimize|function|maximize|satisfy|include|record|output|solve|test|list|type|ann|par|any|var|op|of)\b">
33 <token type="Keyword"/>
34 </rule>
35 <rule pattern="\b(string|tuple|float|array|bool|enum|int|set)\b">
36 <token type="KeywordType"/>
37 </rule>
38 <rule pattern="\b(forall|where|endif|then|else|for|if)\b">
39 <token type="Keyword"/>
40 </rule>
41 <rule pattern="\b(array_intersect|index_set_2of3|index_set_1of3|index_set_3of3|index_set_1of2|index_set_2of2|array_union|show_float|dom_array|int2float|set2array|index_set|dom_size|lb_array|is_fixed|ub_array|bool2int|show_int|array4d|array2d|array1d|array5d|array6d|array3d|product|length|assert|concat|trace|acosh|round|abort|log10|floor|sinh|tanh|atan|sqrt|asin|show|log2|card|ceil|cosh|join|pow|cos|max|log|exp|dom|sin|abs|fix|sum|tan|min|lb|ln|ub)\b">
42 <token type="NameBuiltin"/>
43 </rule>
44 <rule pattern="(not|<->|->|<-|\\/|xor|/\\)">
45 <token type="Operator"/>
46 </rule>
47 <rule pattern="(<|>|<=|>=|==|=|!=)">
48 <token type="Operator"/>
49 </rule>
50 <rule pattern="(\+|-|\*|/|div|mod)">
51 <token type="Operator"/>
52 </rule>
53 <rule pattern="\b(intersect|superset|symdiff|subset|union|diff|in)\b">
54 <token type="Operator"/>
55 </rule>
56 <rule pattern="(\\|\.\.|\+\+)">
57 <token type="Operator"/>
58 </rule>
59 <rule pattern="[|()\[\]{},:;]">
60 <token type="Punctuation"/>
61 </rule>
62 <rule pattern="(true|false)\b">
63 <token type="KeywordConstant"/>
64 </rule>
65 <rule pattern="([+-]?)\d+(\.(?!\.)\d*)?([eE][-+]?\d+)?">
66 <token type="LiteralNumber"/>
67 </rule>
68 <rule pattern="::\s*([^\W\d]\w*)(\s*\([^\)]*\))?">
69 <token type="NameDecorator"/>
70 </rule>
71 <rule pattern="\b([^\W\d]\w*)\b(\()">
72 <bygroups>
73 <token type="NameFunction"/>
74 <token type="Punctuation"/>
75 </bygroups>
76 </rule>
77 <rule pattern="[^\W\d]\w*">
78 <token type="NameOther"/>
79 </rule>
80 </state>
81 </rules>
82</lexer>
View as plain text