...
1<lexer>
2 <config>
3 <name>JSON</name>
4 <alias>json</alias>
5 <filename>*.json</filename>
6 <mime_type>application/json</mime_type>
7 <dot_all>true</dot_all>
8 <not_multiline>true</not_multiline>
9 </config>
10 <rules>
11 <state name="root">
12 <rule>
13 <include state="value"/>
14 </rule>
15 </state>
16 <state name="whitespace">
17 <rule pattern="\s+">
18 <token type="Text"/>
19 </rule>
20 </state>
21 <state name="comment">
22 <rule pattern="//.*?\n">
23 <token type="CommentSingle"/>
24 </rule>
25 </state>
26 <state name="simplevalue">
27 <rule pattern="(true|false|null)\b">
28 <token type="KeywordConstant"/>
29 </rule>
30 <rule pattern="-?(0|[1-9]\d*)(\.\d+[eE](\+|-)?\d+|[eE](\+|-)?\d+|\.\d+)">
31 <token type="LiteralNumberFloat"/>
32 </rule>
33 <rule pattern="-?(0|[1-9]\d*)">
34 <token type="LiteralNumberInteger"/>
35 </rule>
36 <rule pattern=""(\\\\|\\"|[^"])*"">
37 <token type="LiteralStringDouble"/>
38 </rule>
39 </state>
40 <state name="objectattribute">
41 <rule>
42 <include state="value"/>
43 </rule>
44 <rule pattern=":">
45 <token type="Punctuation"/>
46 </rule>
47 <rule pattern=",">
48 <token type="Punctuation"/>
49 <pop depth="1"/>
50 </rule>
51 <rule pattern="\}">
52 <token type="Punctuation"/>
53 <pop depth="2"/>
54 </rule>
55 </state>
56 <state name="objectvalue">
57 <rule>
58 <include state="whitespace"/>
59 </rule>
60 <rule>
61 <include state="comment"/>
62 </rule>
63 <rule pattern=""(\\\\|\\"|[^"])*"">
64 <token type="NameTag"/>
65 <push state="objectattribute"/>
66 </rule>
67 <rule pattern="\}">
68 <token type="Punctuation"/>
69 <pop depth="1"/>
70 </rule>
71 </state>
72 <state name="arrayvalue">
73 <rule>
74 <include state="whitespace"/>
75 </rule>
76 <rule>
77 <include state="value"/>
78 </rule>
79 <rule>
80 <include state="comment"/>
81 </rule>
82 <rule pattern=",">
83 <token type="Punctuation"/>
84 </rule>
85 <rule pattern="\]">
86 <token type="Punctuation"/>
87 <pop depth="1"/>
88 </rule>
89 </state>
90 <state name="value">
91 <rule>
92 <include state="whitespace"/>
93 </rule>
94 <rule>
95 <include state="simplevalue"/>
96 </rule>
97 <rule>
98 <include state="comment"/>
99 </rule>
100 <rule pattern="\{">
101 <token type="Punctuation"/>
102 <push state="objectvalue"/>
103 </rule>
104 <rule pattern="\[">
105 <token type="Punctuation"/>
106 <push state="arrayvalue"/>
107 </rule>
108 </state>
109 </rules>
110</lexer>
View as plain text