...
1<lexer>
2 <config>
3 <name>Go HTML Template</name>
4 <alias>go-html-template</alias>
5 </config>
6 <rules>
7 <state name="template">
8 <rule pattern="[-]?}}">
9 <token type="CommentPreproc"/>
10 <pop depth="1"/>
11 </rule>
12 <rule pattern="(?=}})">
13 <token type="CommentPreproc"/>
14 <pop depth="1"/>
15 </rule>
16 <rule pattern="\(">
17 <token type="Operator"/>
18 <push state="subexpression"/>
19 </rule>
20 <rule pattern=""(\\\\|\\"|[^"])*"">
21 <token type="LiteralString"/>
22 </rule>
23 <rule>
24 <include state="expression"/>
25 </rule>
26 </state>
27 <state name="subexpression">
28 <rule pattern="\)">
29 <token type="Operator"/>
30 <pop depth="1"/>
31 </rule>
32 <rule>
33 <include state="expression"/>
34 </rule>
35 </state>
36 <state name="expression">
37 <rule pattern="\s+">
38 <token type="TextWhitespace"/>
39 </rule>
40 <rule pattern="\(">
41 <token type="Operator"/>
42 <push state="subexpression"/>
43 </rule>
44 <rule pattern="(range|if|else|while|with|template|end|true|false|nil|and|call|html|index|js|len|not|or|print|printf|println|urlquery|eq|ne|lt|le|gt|ge|block|break|continue|define|slice)\b">
45 <token type="Keyword"/>
46 </rule>
47 <rule pattern="\||:?=|,">
48 <token type="Operator"/>
49 </rule>
50 <rule pattern="[$]?[^\W\d]\w*">
51 <token type="NameOther"/>
52 </rule>
53 <rule pattern="\$|[$]?\.(?:[^\W\d]\w*)?">
54 <token type="NameAttribute"/>
55 </rule>
56 <rule pattern=""(\\\\|\\"|[^"])*"">
57 <token type="LiteralString"/>
58 </rule>
59 <rule pattern="-?\d+i">
60 <token type="LiteralNumber"/>
61 </rule>
62 <rule pattern="-?\d+\.\d*([Ee][-+]\d+)?i">
63 <token type="LiteralNumber"/>
64 </rule>
65 <rule pattern="\.\d+([Ee][-+]\d+)?i">
66 <token type="LiteralNumber"/>
67 </rule>
68 <rule pattern="-?\d+[Ee][-+]\d+i">
69 <token type="LiteralNumber"/>
70 </rule>
71 <rule pattern="-?\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)">
72 <token type="LiteralNumberFloat"/>
73 </rule>
74 <rule pattern="-?\.\d+([eE][+\-]?\d+)?">
75 <token type="LiteralNumberFloat"/>
76 </rule>
77 <rule pattern="-?0[0-7]+">
78 <token type="LiteralNumberOct"/>
79 </rule>
80 <rule pattern="-?0[xX][0-9a-fA-F]+">
81 <token type="LiteralNumberHex"/>
82 </rule>
83 <rule pattern="-?0b[01_]+">
84 <token type="LiteralNumberBin"/>
85 </rule>
86 <rule pattern="-?(0|[1-9][0-9]*)">
87 <token type="LiteralNumberInteger"/>
88 </rule>
89 <rule pattern="'(\\['"\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])'">
90 <token type="LiteralStringChar"/>
91 </rule>
92 <rule pattern="`[^`]*`">
93 <token type="LiteralString"/>
94 </rule>
95 </state>
96 <state name="root">
97 <rule pattern="{{(- )?/\*(.|\n)*?\*/( -)?}}">
98 <token type="CommentMultiline"/>
99 </rule>
100 <rule pattern="{{[-]?">
101 <token type="CommentPreproc"/>
102 <push state="template"/>
103 </rule>
104 <rule pattern="[^{]+">
105 <token type="Other"/>
106 </rule>
107 <rule pattern="{">
108 <token type="Other"/>
109 </rule>
110 </state>
111 </rules>
112</lexer>
View as plain text