...
1<lexer>
2 <config>
3 <name>Prolog</name>
4 <alias>prolog</alias>
5 <filename>*.ecl</filename>
6 <filename>*.prolog</filename>
7 <filename>*.pro</filename>
8 <filename>*.pl</filename>
9 <mime_type>text/x-prolog</mime_type>
10 </config>
11 <rules>
12 <state name="root">
13 <rule pattern="/\*">
14 <token type="CommentMultiline"/>
15 <push state="nested-comment"/>
16 </rule>
17 <rule pattern="%.*">
18 <token type="CommentSingle"/>
19 </rule>
20 <rule pattern="0\'.">
21 <token type="LiteralStringChar"/>
22 </rule>
23 <rule pattern="0b[01]+">
24 <token type="LiteralNumberBin"/>
25 </rule>
26 <rule pattern="0o[0-7]+">
27 <token type="LiteralNumberOct"/>
28 </rule>
29 <rule pattern="0x[0-9a-fA-F]+">
30 <token type="LiteralNumberHex"/>
31 </rule>
32 <rule pattern="\d\d?\'[a-zA-Z0-9]+">
33 <token type="LiteralNumberInteger"/>
34 </rule>
35 <rule pattern="(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?">
36 <token type="LiteralNumberFloat"/>
37 </rule>
38 <rule pattern="\d+">
39 <token type="LiteralNumberInteger"/>
40 </rule>
41 <rule pattern="[\[\](){}|.,;!]">
42 <token type="Punctuation"/>
43 </rule>
44 <rule pattern=":-|-->">
45 <token type="Punctuation"/>
46 </rule>
47 <rule pattern=""(?:\\x[0-9a-fA-F]+\\|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|\\[0-7]+\\|\\["\nabcefnrstv]|[^\\"])*"">
48 <token type="LiteralStringDouble"/>
49 </rule>
50 <rule pattern="'(?:''|[^'])*'">
51 <token type="LiteralStringAtom"/>
52 </rule>
53 <rule pattern="is\b">
54 <token type="Operator"/>
55 </rule>
56 <rule pattern="(<|>|=<|>=|==|=:=|=|/|//|\*|\+|-)(?=\s|[a-zA-Z0-9\[])">
57 <token type="Operator"/>
58 </rule>
59 <rule pattern="(mod|div|not)\b">
60 <token type="Operator"/>
61 </rule>
62 <rule pattern="_">
63 <token type="Keyword"/>
64 </rule>
65 <rule pattern="([a-z]+)(:)">
66 <bygroups>
67 <token type="NameNamespace"/>
68 <token type="Punctuation"/>
69 </bygroups>
70 </rule>
71 <rule pattern="([a-zÀ---][\w$À---]*)(\s*)(:-|-->)">
72 <bygroups>
73 <token type="NameFunction"/>
74 <token type="Text"/>
75 <token type="Operator"/>
76 </bygroups>
77 </rule>
78 <rule pattern="([a-zÀ---][\w$À---]*)(\s*)(\()">
79 <bygroups>
80 <token type="NameFunction"/>
81 <token type="Text"/>
82 <token type="Punctuation"/>
83 </bygroups>
84 </rule>
85 <rule pattern="[a-zÀ---][\w$À---]*">
86 <token type="LiteralStringAtom"/>
87 </rule>
88 <rule pattern="[#&*+\-./:<=>?@\\^~¡-¿‐-〿]+">
89 <token type="LiteralStringAtom"/>
90 </rule>
91 <rule pattern="[A-Z_]\w*">
92 <token type="NameVariable"/>
93 </rule>
94 <rule pattern="\s+|[ --�]">
95 <token type="Text"/>
96 </rule>
97 </state>
98 <state name="nested-comment">
99 <rule pattern="\*/">
100 <token type="CommentMultiline"/>
101 <pop depth="1"/>
102 </rule>
103 <rule pattern="/\*">
104 <token type="CommentMultiline"/>
105 <push/>
106 </rule>
107 <rule pattern="[^*/]+">
108 <token type="CommentMultiline"/>
109 </rule>
110 <rule pattern="[*/]">
111 <token type="CommentMultiline"/>
112 </rule>
113 </state>
114 </rules>
115</lexer>
View as plain text