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