summaryrefslogtreecommitdiff
path: root/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfengine3.xml
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfengine3.xml')
-rw-r--r--vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfengine3.xml206
1 files changed, 206 insertions, 0 deletions
diff --git a/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfengine3.xml b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfengine3.xml
new file mode 100644
index 0000000..d330549
--- /dev/null
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/embedded/cfengine3.xml
@@ -0,0 +1,206 @@
1<lexer>
2 <config>
3 <name>CFEngine3</name>
4 <alias>cfengine3</alias>
5 <alias>cf3</alias>
6 <filename>*.cf</filename>
7 </config>
8 <rules>
9 <state name="interpol">
10 <rule pattern="\$[{(]">
11 <token type="LiteralStringInterpol"/>
12 <push/>
13 </rule>
14 <rule pattern="[})]">
15 <token type="LiteralStringInterpol"/>
16 <pop depth="1"/>
17 </rule>
18 <rule pattern="[^${()}]+">
19 <token type="LiteralStringInterpol"/>
20 </rule>
21 </state>
22 <state name="arglist">
23 <rule pattern="\)">
24 <token type="Punctuation"/>
25 <pop depth="1"/>
26 </rule>
27 <rule pattern=",">
28 <token type="Punctuation"/>
29 </rule>
30 <rule pattern="\w+">
31 <token type="NameVariable"/>
32 </rule>
33 <rule pattern="\s+">
34 <token type="Text"/>
35 </rule>
36 </state>
37 <state name="root">
38 <rule pattern="#.*?\n">
39 <token type="Comment"/>
40 </rule>
41 <rule pattern="@.*?\n">
42 <token type="CommentPreproc"/>
43 </rule>
44 <rule pattern="(body)(\s+)(\S+)(\s+)(control)">
45 <bygroups>
46 <token type="Keyword"/>
47 <token type="Text"/>
48 <token type="Keyword"/>
49 <token type="Text"/>
50 <token type="Keyword"/>
51 </bygroups>
52 </rule>
53 <rule pattern="(body|bundle|promise)(\s+)(\S+)(\s+)(\w+)(\()">
54 <bygroups>
55 <token type="Keyword"/>
56 <token type="Text"/>
57 <token type="Keyword"/>
58 <token type="Text"/>
59 <token type="NameFunction"/>
60 <token type="Punctuation"/>
61 </bygroups>
62 <push state="arglist"/>
63 </rule>
64 <rule pattern="(body|bundle|promise)(\s+)(\S+)(\s+)(\w+)">
65 <bygroups>
66 <token type="Keyword"/>
67 <token type="Text"/>
68 <token type="Keyword"/>
69 <token type="Text"/>
70 <token type="NameFunction"/>
71 </bygroups>
72 </rule>
73 <rule pattern="(&#34;)([^&#34;]+)(&#34;)(\s+)(string|slist|int|real)(\s*)(=&gt;)(\s*)">
74 <bygroups>
75 <token type="Punctuation"/>
76 <token type="NameVariable"/>
77 <token type="Punctuation"/>
78 <token type="Text"/>
79 <token type="KeywordType"/>
80 <token type="Text"/>
81 <token type="Operator"/>
82 <token type="Text"/>
83 </bygroups>
84 </rule>
85 <rule pattern="(\S+)(\s*)(=&gt;)(\s*)">
86 <bygroups>
87 <token type="KeywordReserved"/>
88 <token type="Text"/>
89 <token type="Operator"/>
90 <token type="Text"/>
91 </bygroups>
92 </rule>
93 <rule pattern="&#34;">
94 <token type="LiteralString"/>
95 <push state="doublequotestring"/>
96 </rule>
97 <rule pattern="&#39;">
98 <token type="LiteralString"/>
99 <push state="singlequotestring"/>
100 </rule>
101 <rule pattern="&#96;">
102 <token type="LiteralString"/>
103 <push state="backtickstring"/>
104 </rule>
105 <rule pattern="(\w+)(\()">
106 <bygroups>
107 <token type="NameFunction"/>
108 <token type="Punctuation"/>
109 </bygroups>
110 </rule>
111 <rule pattern="([\w.!&amp;|()]+)(::)">
112 <bygroups>
113 <token type="NameClass"/>
114 <token type="Punctuation"/>
115 </bygroups>
116 </rule>
117 <rule pattern="(\w+)(:)">
118 <bygroups>
119 <token type="KeywordDeclaration"/>
120 <token type="Punctuation"/>
121 </bygroups>
122 </rule>
123 <rule pattern="@[{(][^)}]+[})]">
124 <token type="NameVariable"/>
125 </rule>
126 <rule pattern="[(){},;]">
127 <token type="Punctuation"/>
128 </rule>
129 <rule pattern="=&gt;">
130 <token type="Operator"/>
131 </rule>
132 <rule pattern="-&gt;">
133 <token type="Operator"/>
134 </rule>
135 <rule pattern="\d+\.\d+">
136 <token type="LiteralNumberFloat"/>
137 </rule>
138 <rule pattern="\d+">
139 <token type="LiteralNumberInteger"/>
140 </rule>
141 <rule pattern="\w+">
142 <token type="NameFunction"/>
143 </rule>
144 <rule pattern="\s+">
145 <token type="Text"/>
146 </rule>
147 </state>
148 <state name="doublequotestring">
149 <rule pattern="\$[{(]">
150 <token type="LiteralStringInterpol"/>
151 <push state="interpol"/>
152 </rule>
153 <rule pattern="\\.">
154 <token type="LiteralStringEscape"/>
155 </rule>
156 <rule pattern="&#34;">
157 <token type="LiteralString"/>
158 <pop depth="1"/>
159 </rule>
160 <rule pattern="\n">
161 <token type="LiteralString"/>
162 </rule>
163 <rule pattern=".">
164 <token type="LiteralString"/>
165 </rule>
166 </state>
167 <state name="singlequotestring">
168 <rule pattern="\$[{(]">
169 <token type="LiteralStringInterpol"/>
170 <push state="interpol"/>
171 </rule>
172 <rule pattern="\\.">
173 <token type="LiteralStringEscape"/>
174 </rule>
175 <rule pattern="&#39;">
176 <token type="LiteralString"/>
177 <pop depth="1"/>
178 </rule>
179 <rule pattern="\n">
180 <token type="LiteralString"/>
181 </rule>
182 <rule pattern=".">
183 <token type="LiteralString"/>
184 </rule>
185 </state>
186 <state name="backtickstring">
187 <rule pattern="\$[{(]">
188 <token type="LiteralStringInterpol"/>
189 <push state="interpol"/>
190 </rule>
191 <rule pattern="\\.">
192 <token type="LiteralStringEscape"/>
193 </rule>
194 <rule pattern="&#96;">
195 <token type="LiteralString"/>
196 <pop depth="1"/>
197 </rule>
198 <rule pattern="\n">
199 <token type="LiteralString"/>
200 </rule>
201 <rule pattern=".">
202 <token type="LiteralString"/>
203 </rule>
204 </state>
205 </rules>
206</lexer>