...
1<lexer>
2 <config>
3 <name>ISCdhcpd</name>
4 <alias>iscdhcpd</alias>
5 <filename>*.conf</filename>
6 </config>
7 <rules>
8 <state name="interpol">
9 <rule pattern="\$[{(]">
10 <token type="LiteralStringInterpol"/>
11 <push/>
12 </rule>
13 <rule pattern="[})]">
14 <token type="LiteralStringInterpol"/>
15 <pop depth="1"/>
16 </rule>
17 <rule pattern="[^${()}]+">
18 <token type="LiteralStringInterpol"/>
19 </rule>
20 </state>
21 <state name="root">
22 <rule pattern="#.*?\n">
23 <token type="Comment"/>
24 </rule>
25 <rule pattern="(hardware|packet|leased-address|host-decl-name|lease-time|max-lease-time|client-state|config-option|option|filename|next-server|allow|deny|match|ignore)\b">
26 <token type="Keyword"/>
27 </rule>
28 <rule pattern="(include|group|host|subnet|subnet6|netmask|class|subclass|pool|failover|include|shared-network|range|range6|prefix6)\b">
29 <token type="KeywordType"/>
30 </rule>
31 <rule pattern="(on|off|true|false|none)\b">
32 <token type="KeywordConstant"/>
33 </rule>
34 <rule pattern="(if|elsif|else)\b">
35 <token type="Keyword"/>
36 </rule>
37 <rule pattern="(exists|known|static)\b">
38 <token type="KeywordConstant"/>
39 </rule>
40 <rule pattern="(and|or|not)\b">
41 <token type="OperatorWord"/>
42 </rule>
43 <rule pattern="(==|!=|~=|~~|=)">
44 <token type="Operator"/>
45 </rule>
46 <rule pattern="[{},;\)]">
47 <token type="Punctuation"/>
48 </rule>
49 <rule pattern="\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}">
50 <token type="LiteralNumberFloat"/>
51 </rule>
52 <rule pattern="\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}">
53 <token type="LiteralNumberFloat"/>
54 </rule>
55 <rule pattern="[a-fA-F0-9]{1,2}:[a-fA-F0-9]{1,2}:[a-fA-F0-9]{1,2}:[a-fA-F0-9]{1,2}:[a-fA-F0-9]{1,2}:[a-fA-F0-9]{1,2}">
56 <token type="LiteralNumberHex"/>
57 </rule>
58 <rule pattern=""">
59 <token type="LiteralString"/>
60 <push state="doublequotestring"/>
61 </rule>
62 <rule pattern="([\w\-.]+)(\s*)(\()">
63 <bygroups>
64 <token type="NameFunction"/>
65 <token type="Text"/>
66 <token type="Punctuation"/>
67 </bygroups>
68 </rule>
69 <rule pattern="[\w\-.]+">
70 <token type="NameVariable"/>
71 </rule>
72 <rule pattern="\s+">
73 <token type="Text"/>
74 </rule>
75 </state>
76 <state name="doublequotestring">
77 <rule pattern="\$[{(]">
78 <token type="LiteralStringInterpol"/>
79 <push state="interpol"/>
80 </rule>
81 <rule pattern="\\.">
82 <token type="LiteralStringEscape"/>
83 </rule>
84 <rule pattern=""">
85 <token type="LiteralString"/>
86 <pop depth="1"/>
87 </rule>
88 <rule pattern="\n">
89 <token type="LiteralString"/>
90 </rule>
91 <rule pattern=".">
92 <token type="LiteralString"/>
93 </rule>
94 </state>
95 </rules>
96</lexer>
View as plain text