66
|
1 <lexer>
|
|
2 <config>
|
|
3 <name>mcfunction</name>
|
|
4 <alias>mcfunction</alias>
|
|
5 <filename>*.mcfunction</filename>
|
|
6 <dot_all>true</dot_all>
|
|
7 <not_multiline>true</not_multiline>
|
|
8 </config>
|
|
9 <rules>
|
|
10 <state name="nbtobjectvalue">
|
|
11 <rule pattern="("(\\\\|\\"|[^"])*"|[a-zA-Z0-9_]+)">
|
|
12 <token type="NameTag"/>
|
|
13 <push state="nbtobjectattribute"/>
|
|
14 </rule>
|
|
15 <rule pattern="\}">
|
|
16 <token type="Punctuation"/>
|
|
17 <pop depth="1"/>
|
|
18 </rule>
|
|
19 </state>
|
|
20 <state name="nbtarrayvalue">
|
|
21 <rule>
|
|
22 <include state="nbtvalue"/>
|
|
23 </rule>
|
|
24 <rule pattern=",">
|
|
25 <token type="Punctuation"/>
|
|
26 </rule>
|
|
27 <rule pattern="\]">
|
|
28 <token type="Punctuation"/>
|
|
29 <pop depth="1"/>
|
|
30 </rule>
|
|
31 </state>
|
|
32 <state name="nbtvalue">
|
|
33 <rule>
|
|
34 <include state="simplevalue"/>
|
|
35 </rule>
|
|
36 <rule pattern="\{">
|
|
37 <token type="Punctuation"/>
|
|
38 <push state="nbtobjectvalue"/>
|
|
39 </rule>
|
|
40 <rule pattern="\[">
|
|
41 <token type="Punctuation"/>
|
|
42 <push state="nbtarrayvalue"/>
|
|
43 </rule>
|
|
44 </state>
|
|
45 <state name="argumentvalue">
|
|
46 <rule>
|
|
47 <include state="simplevalue"/>
|
|
48 </rule>
|
|
49 <rule pattern=",">
|
|
50 <token type="Punctuation"/>
|
|
51 <pop depth="1"/>
|
|
52 </rule>
|
|
53 <rule pattern="[}\]]">
|
|
54 <token type="Punctuation"/>
|
|
55 <pop depth="2"/>
|
|
56 </rule>
|
|
57 </state>
|
|
58 <state name="argumentlist">
|
|
59 <rule pattern="(nbt)(={)">
|
|
60 <bygroups>
|
|
61 <token type="NameAttribute"/>
|
|
62 <token type="Punctuation"/>
|
|
63 </bygroups>
|
|
64 <push state="nbtobjectvalue"/>
|
|
65 </rule>
|
|
66 <rule pattern="([A-Za-z0-9/_!]+)(={)">
|
|
67 <bygroups>
|
|
68 <token type="NameAttribute"/>
|
|
69 <token type="Punctuation"/>
|
|
70 </bygroups>
|
|
71 <push state="argumentlist"/>
|
|
72 </rule>
|
|
73 <rule pattern="([A-Za-z0-9/_!]+)(=)">
|
|
74 <bygroups>
|
|
75 <token type="NameAttribute"/>
|
|
76 <token type="Punctuation"/>
|
|
77 </bygroups>
|
|
78 <push state="argumentvalue"/>
|
|
79 </rule>
|
|
80 <rule>
|
|
81 <include state="simplevalue"/>
|
|
82 </rule>
|
|
83 <rule pattern=",">
|
|
84 <token type="Punctuation"/>
|
|
85 </rule>
|
|
86 <rule pattern="[}\]]">
|
|
87 <token type="Punctuation"/>
|
|
88 <pop depth="1"/>
|
|
89 </rule>
|
|
90 </state>
|
|
91 <state name="root">
|
|
92 <rule pattern="#.*?\n">
|
|
93 <token type="CommentSingle"/>
|
|
94 </rule>
|
|
95 <rule pattern="/?(geteduclientinfo|clearspawnpoint|defaultgamemode|transferserver|toggledownfall|immutableworld|detectredstone|setidletimeout|playanimation|classroommode|spreadplayers|testforblocks|setmaxplayers|setworldspawn|testforblock|worldbuilder|createagent|worldborder|camerashake|advancement|raytracefog|locatebiome|tickingarea|replaceitem|attributes|spawnpoint|difficulty|experience|scoreboard|whitelist|structure|playsound|stopsound|forceload|spectate|gamerule|function|schedule|wsserver|teleport|position|save-off|particle|setblock|datapack|mobevent|transfer|gamemode|save-all|bossbar|enchant|trigger|collect|execute|weather|teammsg|tpagent|banlist|dropall|publish|tellraw|testfor|save-on|destroy|ability|locate|summon|remove|effect|reload|ban-ip|recipe|pardon|detect|music|clear|clone|event|mixer|debug|title|ride|stop|list|turn|data|team|kick|loot|tell|help|give|flog|fill|move|time|seed|kill|save|item|deop|code|tag|ban|msg|say|tp|me|op|xp|w|place)\b">
|
|
96 <token type="KeywordReserved"/>
|
|
97 </rule>
|
|
98 <rule pattern="(@p|@r|@a|@e|@s|@c|@v)">
|
|
99 <token type="KeywordConstant"/>
|
|
100 </rule>
|
|
101 <rule pattern="\[">
|
|
102 <token type="Punctuation"/>
|
|
103 <push state="argumentlist"/>
|
|
104 </rule>
|
|
105 <rule pattern="{">
|
|
106 <token type="Punctuation"/>
|
|
107 <push state="nbtobjectvalue"/>
|
|
108 </rule>
|
|
109 <rule pattern="~">
|
|
110 <token type="NameBuiltin"/>
|
|
111 </rule>
|
|
112 <rule pattern="([a-zA-Z_]+:)?[a-zA-Z_]+\b">
|
|
113 <token type="Text"/>
|
|
114 </rule>
|
|
115 <rule pattern="([a-z]+)(\.)([0-9]+)\b">
|
|
116 <bygroups>
|
|
117 <token type="Text"/>
|
|
118 <token type="Punctuation"/>
|
|
119 <token type="LiteralNumber"/>
|
|
120 </bygroups>
|
|
121 </rule>
|
|
122 <rule pattern="([<>=]|<=|>=)">
|
|
123 <token type="Punctuation"/>
|
|
124 </rule>
|
|
125 <rule>
|
|
126 <include state="simplevalue"/>
|
|
127 </rule>
|
|
128 <rule pattern="\s+">
|
|
129 <token type="TextWhitespace"/>
|
|
130 </rule>
|
|
131 </state>
|
|
132 <state name="simplevalue">
|
|
133 <rule pattern="(true|false)">
|
|
134 <token type="KeywordConstant"/>
|
|
135 </rule>
|
|
136 <rule pattern="[01]b">
|
|
137 <token type="LiteralNumber"/>
|
|
138 </rule>
|
|
139 <rule pattern="-?(0|[1-9]\d*)(\.\d+[eE](\+|-)?\d+|[eE](\+|-)?\d+|\.\d+)">
|
|
140 <token type="LiteralNumberFloat"/>
|
|
141 </rule>
|
|
142 <rule pattern="(-?\d+)(\.\.)(-?\d+)">
|
|
143 <bygroups>
|
|
144 <token type="LiteralNumberInteger"/>
|
|
145 <token type="Punctuation"/>
|
|
146 <token type="LiteralNumberInteger"/>
|
|
147 </bygroups>
|
|
148 </rule>
|
|
149 <rule pattern="-?(0|[1-9]\d*)">
|
|
150 <token type="LiteralNumberInteger"/>
|
|
151 </rule>
|
|
152 <rule pattern=""(\\\\|\\"|[^"])*"">
|
|
153 <token type="LiteralStringDouble"/>
|
|
154 </rule>
|
|
155 <rule pattern="'[^']+'">
|
|
156 <token type="LiteralStringSingle"/>
|
|
157 </rule>
|
|
158 <rule pattern="([!#]?)(\w+)">
|
|
159 <bygroups>
|
|
160 <token type="Punctuation"/>
|
|
161 <token type="Text"/>
|
|
162 </bygroups>
|
|
163 </rule>
|
|
164 </state>
|
|
165 <state name="nbtobjectattribute">
|
|
166 <rule>
|
|
167 <include state="nbtvalue"/>
|
|
168 </rule>
|
|
169 <rule pattern=":">
|
|
170 <token type="Punctuation"/>
|
|
171 </rule>
|
|
172 <rule pattern=",">
|
|
173 <token type="Punctuation"/>
|
|
174 <pop depth="1"/>
|
|
175 </rule>
|
|
176 <rule pattern="\}">
|
|
177 <token type="Punctuation"/>
|
|
178 <pop depth="2"/>
|
|
179 </rule>
|
|
180 </state>
|
|
181 </rules>
|
|
182 </lexer>
|