@@ -50,14 +50,12 @@ module.exports = grammar({
5050 $ . empty_stmt ,
5151 ) ,
5252
53- decl_stmt : $ => $ . _decl_stmt ,
5453 _decl_stmt : $ => choice (
5554 $ . fn_def ,
5655 $ . binding ,
5756 ) ,
5857
59- fn_def : $ => $ . _fn_def ,
60- _fn_def : $ => prec ( 1 , seq (
58+ fn_def : $ => prec ( 1 , seq (
6159 field ( 'name' , $ . ident ) ,
6260 ':' ,
6361 field ( 'sign' , $ . fn_sign ) ,
@@ -70,8 +68,7 @@ module.exports = grammar({
7068 ) ,
7169 ) ) ,
7270
73- fn_sign : $ => $ . _fn_sign ,
74- _fn_sign : $ => seq (
71+ fn_sign : $ => seq (
7572 'fn' ,
7673 optional ( field ( 'paras' , $ . paras ) ) ,
7774 optional ( seq (
@@ -80,36 +77,31 @@ module.exports = grammar({
8077 ) ) ,
8178 ) ,
8279
83- paras : $ => $ . _paras ,
84- _paras : $ => seq (
80+ paras : $ => seq (
8581 '(' ,
8682 sepBy ( ',' , $ . para ) ,
8783 ')' ,
8884 ) ,
8985
90- para : $ => $ . _para ,
91- _para : $ => seq (
86+ para : $ => seq (
9287 field ( 'pat' , $ . pat_ident ) ,
9388 optional ( seq (
9489 ':' ,
9590 field ( 'ty' , $ . _type ) ,
9691 ) )
9792 ) ,
9893
99- fn_body : $ => $ . _fn_body ,
10094 _fn_body : $ => choice (
10195 prec ( 1 , $ . block ) ,
10296 $ . asm_block ,
103- $ . _expr_stmt ,
97+ $ . expr_stmt ,
10498 ) ,
10599
106- binding : $ => $ . _binding ,
107- _binding : $ => choice (
100+ binding : $ => choice (
108101 $ . _typed_binding ,
109102 $ . _auto_binding ,
110103 ) ,
111104
112- typed_binding : $ => $ . _typed_binding ,
113105 _typed_binding : $ => seq (
114106 field ( 'pat' , $ . _pattern ) ,
115107 ':' ,
@@ -121,7 +113,6 @@ module.exports = grammar({
121113 ';' ,
122114 ) ,
123115
124- auto_binding : $ => $ . _auto_binding ,
125116 _auto_binding : $ => seq (
126117 field ( 'pat' , $ . _pattern ) ,
127118 ':' ,
@@ -130,59 +121,40 @@ module.exports = grammar({
130121 ';' ,
131122 ) ,
132123
133- type : $ => $ . _type ,
134124 _type : $ => choice (
135125 $ . ident ,
136126 $ . type_infer ,
137127 ) ,
138128
139- type_infer : $ => $ . _type_infer ,
140- _type_infer : $ => $ . underscore ,
129+ type_infer : $ => $ . underscore ,
141130
142- pattern : $ => $ . _pattern ,
143131 _pattern : $ => choice (
144132 $ . pat_wild ,
145133 $ . pat_ident ,
146134 ) ,
147135
148- pat_wild : $ => $ . _pat_wild ,
149- _pat_wild : $ => $ . _underscore ,
136+ pat_wild : $ => $ . underscore ,
150137
151- pat_ident : $ => $ . _pat_ident ,
152- _pat_ident : $ => seq (
138+ pat_ident : $ => seq (
153139 optional ( 'mut' ) ,
154140 field ( 'id' , $ . ident ) ,
155141 ) ,
156142
157- pat_type : $ => $ . _pat_type ,
158- _pat_type : $ => seq (
143+ pat_type : $ => seq (
159144 field ( 'pat' , $ . pat_ident ) ,
160145 ':' ,
161146 field ( 'ty' , $ . _type ) ,
162147 ) ,
163148
164- stmt : $ => $ . _stmt ,
165- _stmt : $ => choice (
166- $ . expr_stmt ,
167- $ . _expr_ending_with_block ,
168- $ . _global_stmt ,
169- ) ,
170-
171- empty_stmt : $ => $ . _empty_stmt ,
172- _empty_stmt : _ => ';' ,
173-
174- asm_block : $ => $ . _asm_block ,
175- _asm_block : $ => seq (
149+ asm_block : $ => seq (
176150 'asm' ,
177151 '{' ,
178152 field ( 'inner' , $ . llvm_ir ) ,
179153 '}' ,
180154 ) ,
181155
182- expr_stmt : $ => $ . _expr_stmt ,
183- _expr_stmt : $ => seq ( $ . _expr , ';' ) ,
156+ expr_stmt : $ => seq ( $ . _expr , ';' ) ,
184157
185- expr : $ => $ . _expr ,
186158 _expr : $ => prec ( 1 , choice (
187159 $ . ident ,
188160 $ . assign_expr ,
@@ -194,8 +166,7 @@ module.exports = grammar({
194166 $ . _expr_ending_with_block ,
195167 ) ) ,
196168
197- assign_expr : $ => $ . _assign_expr ,
198- _assign_expr : $ => prec . left ( PREC . assign , seq (
169+ assign_expr : $ => prec . left ( PREC . assign , seq (
199170 field ( 'lhs' , $ . _expr ) ,
200171 '=' ,
201172 field ( 'rhs' , $ . _expr ) ,
@@ -206,42 +177,36 @@ module.exports = grammar({
206177 field ( 'args' , $ . args ) ,
207178 ) ) ,
208179
209- args : $ => $ . _args ,
210- _args : $ => seq (
180+ args : $ => seq (
211181 '(' ,
212182 sepBy ( ',' , $ . _expr ) ,
213183 optional ( ',' ) ,
214184 ')' ,
215185 ) ,
216186
217- paren_expr : $ => $ . _paren_expr ,
218- _paren_expr : $ => seq (
187+ paren_expr : $ => seq (
219188 '(' ,
220189 $ . _expr ,
221190 ')' ,
222191 ) ,
223192
224- as_expr : $ => $ . _as_expr ,
225- _as_expr : $ => prec . left ( PREC . as , seq (
193+ as_expr : $ => prec . left ( PREC . as , seq (
226194 field ( 'val' , $ . _expr ) ,
227195 'as' ,
228196 field ( 'ty' , $ . _type ) ,
229197 ) ) ,
230198
231- break_expr : $ => $ . _break_expr ,
232- _break_expr : $ => prec . left ( seq (
199+ break_expr : $ => prec . left ( seq (
233200 'break' ,
234201 field ( 'lab' , optional ( $ . label ) ) ,
235202 field ( 'val' , $ . _expr ) ,
236203 ) ) ,
237204
238- cont_expr : $ => $ . _cont_expr ,
239- _cont_expr : $ => prec . left ( seq (
205+ cont_expr : $ => prec . left ( seq (
240206 'cont' ,
241207 field ( 'lab' , optional ( $ . label ) ) ,
242208 ) ) ,
243209
244- expr_ending_with_block : $ => $ . _expr_ending_with_block ,
245210 _expr_ending_with_block : $ => choice (
246211 $ . labeled ,
247212 $ . block ,
@@ -250,15 +215,13 @@ module.exports = grammar({
250215 $ . for_expr ,
251216 ) ,
252217
253- if_expr : $ => $ . _if_expr ,
254- _if_expr : $ => seq (
218+ if_expr : $ => seq (
255219 'if' ,
256220 field ( 'cond' , $ . _expr ) ,
257221 field ( 'tru' , $ . block ) ,
258222 optional ( field ( 'fls' , $ . _else_clause ) ) ,
259223 ) ,
260224
261- else_clause : $ => $ . _else_clause ,
262225 _else_clause : $ => seq (
263226 'else' ,
264227 choice (
@@ -267,16 +230,14 @@ module.exports = grammar({
267230 ) ,
268231 ) ,
269232
270- while_expr : $ => $ . _while_expr ,
271- _while_expr : $ => seq (
233+ while_expr : $ => seq (
272234 'while' ,
273235 field ( 'cond' , $ . _expr ) ,
274236 field ( 'body' , $ . block ) ,
275237 optional ( field ( 'el' , $ . _loop_else_clause ) ) ,
276238 ) ,
277239
278- for_expr : $ => $ . _for_expr ,
279- _for_expr : $ => seq (
240+ for_expr : $ => seq (
280241 'for' ,
281242 field ( 'pat' , $ . _pattern ) ,
282243 'in' ,
@@ -285,14 +246,12 @@ module.exports = grammar({
285246 optional ( field ( 'el' , $ . _loop_else_clause ) ) ,
286247 ) ,
287248
288- loop_else_clause : $ => $ . _loop_else_clause ,
289249 _loop_else_clause : $ => seq (
290250 'else' ,
291251 $ . block ,
292252 ) ,
293253
294- labeled : $ => $ . _labeled ,
295- _labeled : $ => seq (
254+ labeled : $ => seq (
296255 field ( 'lab' , $ . label ) ,
297256 ':' ,
298257 field ( 'block' , choice (
@@ -302,8 +261,7 @@ module.exports = grammar({
302261 ) ) ,
303262 ) ,
304263
305- block : $ => $ . _block ,
306- _block : $ => seq (
264+ block : $ => seq (
307265 '{' ,
308266 repeat ( $ . _stmt ) ,
309267 optional ( $ . _expr ) ,
@@ -312,8 +270,7 @@ module.exports = grammar({
312270
313271 label : _ => token ( seq ( "'" , token . immediate ( IdentRegex ) ) ) ,
314272
315- underscore : $ => $ . _underscore ,
316- _underscore : _ => '_' ,
273+ underscore : _ => '_' ,
317274
318275 ident : _ => token ( IdentRegex ) ,
319276 } ,
0 commit comments