66
|
1 <lexer>
|
|
2 <config>
|
|
3 <name>Bicep</name>
|
|
4 <alias>bicep</alias>
|
|
5 <filename>*.bicep</filename>
|
|
6 </config>
|
|
7 <rules>
|
|
8 <state name="root">
|
|
9 <rule pattern="//[^\n\r]+">
|
|
10 <token type="CommentSingle"/>
|
|
11 </rule>
|
|
12 <rule pattern="/\*.*?\*/">
|
|
13 <token type="CommentMultiline"/>
|
|
14 </rule>
|
|
15 <rule pattern="([']?\w+[']?)(:)">
|
|
16 <bygroups>
|
|
17 <token type="NameProperty"/>
|
|
18 <token type="Punctuation"/>
|
|
19 </bygroups>
|
|
20 </rule>
|
|
21 <rule pattern="\b('(resourceGroup|subscription|managementGroup|tenant)')\b">
|
|
22 <token type="KeywordNamespace"/>
|
|
23 </rule>
|
|
24 <rule pattern="'[\w\$\{\(\)\}\.]{1,}?'">
|
|
25 <token type="LiteralStringInterpol"/>
|
|
26 </rule>
|
|
27 <rule pattern="('''|').*?('''|')">
|
|
28 <token type="LiteralString"/>
|
|
29 </rule>
|
|
30 <rule pattern="\b(allowed|batchSize|description|maxLength|maxValue|metadata|minLength|minValue|secure)\b">
|
|
31 <token type="NameDecorator"/>
|
|
32 </rule>
|
|
33 <rule pattern="\b(az|sys)\.">
|
|
34 <token type="NameNamespace"/>
|
|
35 </rule>
|
|
36 <rule pattern="\b(any|array|concat|contains|empty|first|intersection|items|last|length|min|max|range|skip|take|union|dateTimeAdd|utcNow|deployment|environment|loadFileAsBase64|loadTextContent|int|json|extensionResourceId|getSecret|list|listKeys|listKeyValue|listAccountSas|listSecrets|pickZones|reference|resourceId|subscriptionResourceId|tenantResourceId|managementGroup|resourceGroup|subscription|tenant|base64|base64ToJson|base64ToString|dataUri|dataUriToString|endsWith|format|guid|indexOf|lastIndexOf|length|newGuid|padLeft|replace|split|startsWith|string|substring|toLower|toUpper|trim|uniqueString|uri|uriComponent|uriComponentToString)\b">
|
|
37 <token type="NameFunction"/>
|
|
38 </rule>
|
|
39 <rule pattern="\b(bool)(\()">
|
|
40 <bygroups>
|
|
41 <token type="NameFunction"/>
|
|
42 <token type="Punctuation"/>
|
|
43 </bygroups>
|
|
44 </rule>
|
|
45 <rule pattern="\b(for|if|in)\b">
|
|
46 <token type="Keyword"/>
|
|
47 </rule>
|
|
48 <rule pattern="\b(module|output|param|resource|var)\b">
|
|
49 <token type="KeywordDeclaration"/>
|
|
50 </rule>
|
|
51 <rule pattern="\b(array|bool|int|object|string)\b">
|
|
52 <token type="KeywordType"/>
|
|
53 </rule>
|
|
54 <rule pattern="(>=|>|<=|<|==|!=|=~|!~|::|&&|\?\?|!|-|%|\*|\/|\+)">
|
|
55 <token type="Operator"/>
|
|
56 </rule>
|
|
57 <rule pattern="[\(\)\[\]\.:\?{}@=]">
|
|
58 <token type="Punctuation"/>
|
|
59 </rule>
|
|
60 <rule pattern="[\w_-]+">
|
|
61 <token type="Text"/>
|
|
62 </rule>
|
|
63 <rule pattern="\s+">
|
|
64 <token type="TextWhitespace"/>
|
|
65 </rule>
|
|
66 </state>
|
|
67 </rules>
|
|
68 </lexer> |