66
|
1 <lexer>
|
|
2 <config>
|
|
3 <name>HLB</name>
|
|
4 <alias>hlb</alias>
|
|
5 <filename>*.hlb</filename>
|
|
6 </config>
|
|
7 <rules>
|
|
8 <state name="root">
|
|
9 <rule pattern="(#.*)">
|
|
10 <bygroups>
|
|
11 <token type="CommentSingle"/>
|
|
12 </bygroups>
|
|
13 </rule>
|
|
14 <rule pattern="((\b(0(b|B|o|O|x|X)[a-fA-F0-9]+)\b)|(\b(0|[1-9][0-9]*)\b))">
|
|
15 <bygroups>
|
|
16 <token type="LiteralNumber"/>
|
|
17 </bygroups>
|
|
18 </rule>
|
|
19 <rule pattern="((\b(true|false)\b))">
|
|
20 <bygroups>
|
|
21 <token type="NameBuiltin"/>
|
|
22 </bygroups>
|
|
23 </rule>
|
|
24 <rule pattern="(\bstring\b|\bint\b|\bbool\b|\bfs\b|\boption\b)">
|
|
25 <bygroups>
|
|
26 <token type="KeywordType"/>
|
|
27 </bygroups>
|
|
28 </rule>
|
|
29 <rule pattern="(\b[a-zA-Z_][a-zA-Z0-9]*\b)(\()">
|
|
30 <bygroups>
|
|
31 <token type="NameFunction"/>
|
|
32 <token type="Punctuation"/>
|
|
33 </bygroups>
|
|
34 <push state="params"/>
|
|
35 </rule>
|
|
36 <rule pattern="(\{)">
|
|
37 <bygroups>
|
|
38 <token type="Punctuation"/>
|
|
39 </bygroups>
|
|
40 <push state="block"/>
|
|
41 </rule>
|
|
42 <rule pattern="(\n|\r|\r\n)">
|
|
43 <token type="Text"/>
|
|
44 </rule>
|
|
45 <rule pattern=".">
|
|
46 <token type="Text"/>
|
|
47 </rule>
|
|
48 </state>
|
|
49 <state name="string">
|
|
50 <rule pattern=""">
|
|
51 <token type="LiteralString"/>
|
|
52 <pop depth="1"/>
|
|
53 </rule>
|
|
54 <rule pattern="\\"">
|
|
55 <token type="LiteralString"/>
|
|
56 </rule>
|
|
57 <rule pattern="[^\\"]+">
|
|
58 <token type="LiteralString"/>
|
|
59 </rule>
|
|
60 </state>
|
|
61 <state name="block">
|
|
62 <rule pattern="(\})">
|
|
63 <bygroups>
|
|
64 <token type="Punctuation"/>
|
|
65 </bygroups>
|
|
66 <pop depth="1"/>
|
|
67 </rule>
|
|
68 <rule pattern="(#.*)">
|
|
69 <bygroups>
|
|
70 <token type="CommentSingle"/>
|
|
71 </bygroups>
|
|
72 </rule>
|
|
73 <rule pattern="((\b(0(b|B|o|O|x|X)[a-fA-F0-9]+)\b)|(\b(0|[1-9][0-9]*)\b))">
|
|
74 <bygroups>
|
|
75 <token type="LiteralNumber"/>
|
|
76 </bygroups>
|
|
77 </rule>
|
|
78 <rule pattern="((\b(true|false)\b))">
|
|
79 <bygroups>
|
|
80 <token type="KeywordConstant"/>
|
|
81 </bygroups>
|
|
82 </rule>
|
|
83 <rule pattern=""">
|
|
84 <token type="LiteralString"/>
|
|
85 <push state="string"/>
|
|
86 </rule>
|
|
87 <rule pattern="(with)">
|
|
88 <bygroups>
|
|
89 <token type="KeywordReserved"/>
|
|
90 </bygroups>
|
|
91 </rule>
|
|
92 <rule pattern="(as)([\t ]+)(\b[a-zA-Z_][a-zA-Z0-9]*\b)">
|
|
93 <bygroups>
|
|
94 <token type="KeywordReserved"/>
|
|
95 <token type="Text"/>
|
|
96 <token type="NameFunction"/>
|
|
97 </bygroups>
|
|
98 </rule>
|
|
99 <rule pattern="(\bstring\b|\bint\b|\bbool\b|\bfs\b|\boption\b)([\t ]+)(\{)">
|
|
100 <bygroups>
|
|
101 <token type="KeywordType"/>
|
|
102 <token type="Text"/>
|
|
103 <token type="Punctuation"/>
|
|
104 </bygroups>
|
|
105 <push state="block"/>
|
|
106 </rule>
|
|
107 <rule pattern="(?!\b(?:scratch|image|resolve|http|checksum|chmod|filename|git|keepGitDir|local|includePatterns|excludePatterns|followPaths|generate|frontendInput|shell|run|readonlyRootfs|env|dir|user|network|security|host|ssh|secret|mount|target|localPath|uid|gid|mode|readonly|tmpfs|sourcePath|cache|mkdir|createParents|chown|createdTime|mkfile|rm|allowNotFound|allowWildcards|copy|followSymlinks|contentsOnly|unpack|createDestPath)\b)(\b[a-zA-Z_][a-zA-Z0-9]*\b)">
|
|
108 <bygroups>
|
|
109 <token type="NameOther"/>
|
|
110 </bygroups>
|
|
111 </rule>
|
|
112 <rule pattern="(\n|\r|\r\n)">
|
|
113 <token type="Text"/>
|
|
114 </rule>
|
|
115 <rule pattern=".">
|
|
116 <token type="Text"/>
|
|
117 </rule>
|
|
118 </state>
|
|
119 <state name="params">
|
|
120 <rule pattern="(\))">
|
|
121 <bygroups>
|
|
122 <token type="Punctuation"/>
|
|
123 </bygroups>
|
|
124 <pop depth="1"/>
|
|
125 </rule>
|
|
126 <rule pattern="(variadic)">
|
|
127 <bygroups>
|
|
128 <token type="Keyword"/>
|
|
129 </bygroups>
|
|
130 </rule>
|
|
131 <rule pattern="(\bstring\b|\bint\b|\bbool\b|\bfs\b|\boption\b)">
|
|
132 <bygroups>
|
|
133 <token type="KeywordType"/>
|
|
134 </bygroups>
|
|
135 </rule>
|
|
136 <rule pattern="(\b[a-zA-Z_][a-zA-Z0-9]*\b)">
|
|
137 <bygroups>
|
|
138 <token type="NameOther"/>
|
|
139 </bygroups>
|
|
140 </rule>
|
|
141 <rule pattern="(\n|\r|\r\n)">
|
|
142 <token type="Text"/>
|
|
143 </rule>
|
|
144 <rule pattern=".">
|
|
145 <token type="Text"/>
|
|
146 </rule>
|
|
147 </state>
|
|
148 </rules>
|
|
149 </lexer> |