programming language
Revisión | 24f89120c055fcf3496111f3118d1b84b29ba1f5 (tree) |
---|---|
Tiempo | 2023-01-10 23:13:28 |
Autor | dhrname <dhrname@joes...> |
Commiter | dhrname |
Modify the BNF array in the parser.hpp
@@ -219,7 +219,6 @@ namespace jstr | ||
219 | 219 | /*modules_statement: |
220 | 220 | IDENTIFIER |
221 | 221 | prefix_class_list |
222 | - COLON | |
223 | 222 | class_body |
224 | 223 | modules_statement |
225 | 224 | | INCLUDE |
@@ -235,18 +234,17 @@ namespace jstr | ||
235 | 234 | | <ε>*/ |
236 | 235 | {IDENTIFIER |
237 | 236 | , prefix_class_list |
238 | - , COLON | |
239 | 237 | , class_body |
240 | - , modules_statement, 0} | |
238 | + , modules_statement} | |
241 | 239 | ,{INCLUDE |
242 | 240 | , IDENTIFIER |
243 | 241 | , LINEEND |
244 | - , modules_statement, 0, 0, 0, 0, 0, 0} | |
242 | + , modules_statement} | |
245 | 243 | ,{MAIN |
246 | 244 | , COLON |
247 | 245 | , statement_list |
248 | 246 | , LINEEND |
249 | - , modules_statement, 0} | |
247 | + , modules_statement} | |
250 | 248 | ,{END, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
251 | 249 | ,{-1, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
252 | 250 | ,{0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
@@ -258,11 +256,10 @@ namespace jstr | ||
258 | 256 | } |
259 | 257 | , { |
260 | 258 | /*prefix_class_list: RATIONALLEFT, IDENTIFIER, prefix_class_list |
261 | - | RATIONALLEFT, IDENTIFIER | |
262 | - | <ε>*/ | |
259 | + | COLON*/ | |
263 | 260 | {RATIONALLEFT, IDENTIFIER, prefix_class_list} |
264 | - ,{RATIONALLEFT, IDENTIFIER} | |
265 | - ,{-1, 0, 0, 0, 0, 0, 0, 0, 0, 0} | |
261 | + ,{COLON} | |
262 | + ,{} | |
266 | 263 | ,{} |
267 | 264 | ,{} |
268 | 265 | ,{} |
@@ -274,10 +271,11 @@ namespace jstr | ||
274 | 271 | } |
275 | 272 | , { |
276 | 273 | /*class_body: declaration_list |
274 | + DEFINE | |
277 | 275 | arrow_list |
278 | - | <ε>*/ | |
279 | - {declaration_list, arrow_list} | |
280 | - ,{-1, 0, 0, 0, 0, 0, 0, 0, 0, 0} | |
276 | + LINEEND*/ | |
277 | + {declaration_list, DEFINE, arrow_list, LINEEND} | |
278 | + ,{} | |
281 | 279 | ,{} |
282 | 280 | ,{} |
283 | 281 | ,{} |
@@ -294,13 +292,11 @@ namespace jstr | ||
294 | 292 | declaration |
295 | 293 | LINEEND |
296 | 294 | declaration_list |
297 | - | DEFINE | |
298 | 295 | | <ε>*/ |
299 | 296 | {INDENT |
300 | 297 | , declaration |
301 | 298 | , LINEEND |
302 | 299 | , declaration_list} |
303 | - ,{DEFINE} | |
304 | 300 | ,{-1, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
305 | 301 | ,{} |
306 | 302 | ,{} |
@@ -310,22 +306,27 @@ namespace jstr | ||
310 | 306 | ,{} |
311 | 307 | ,{} |
312 | 308 | ,{} |
309 | + ,{} | |
313 | 310 | } |
314 | 311 | , { |
315 | 312 | /*arrow_list: |
316 | 313 | INDENT |
317 | - IDENTIFIER | |
314 | + arrow_list | |
315 | + | IDENTIFIER | |
318 | 316 | COLON |
319 | 317 | statement_list |
318 | + DEDENT | |
319 | + LINEEND | |
320 | 320 | arrow_list |
321 | - | LINEEND | |
322 | 321 | | <ε>*/ |
323 | 322 | {INDENT |
324 | - , IDENTIFIER | |
323 | + , arrow_list} | |
324 | + ,{IDENTIFIER | |
325 | 325 | , COLON |
326 | 326 | , statement_list |
327 | + , DEDENT | |
328 | + , LINEEND | |
327 | 329 | , arrow_list} |
328 | - ,{LINEEND} | |
329 | 330 | ,{-1, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
330 | 331 | ,{} |
331 | 332 | ,{} |
@@ -341,22 +342,23 @@ namespace jstr | ||
341 | 342 | | INDENT |
342 | 343 | statement_list |
343 | 344 | | statement |
345 | + statement_list | |
344 | 346 | | declaration |
347 | + statement_list | |
345 | 348 | | LINEEND |
346 | - | DEDENT | |
347 | 349 | | <ε>*/ |
348 | 350 | {INDENT |
349 | 351 | , statement_list} |
350 | - ,{statement} | |
351 | - ,{declaration} | |
352 | + ,{statement, statement_list} | |
353 | + ,{declaration, statement_list} | |
352 | 354 | ,{LINEEND} |
353 | - ,{DEDENT} | |
354 | 355 | ,{-1, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
355 | 356 | ,{} |
356 | 357 | ,{} |
357 | 358 | ,{} |
358 | 359 | ,{} |
359 | 360 | ,{} |
361 | + ,{} | |
360 | 362 | } |
361 | 363 | , { |
362 | 364 | /*statement : case_statement |
@@ -453,10 +455,12 @@ namespace jstr | ||
453 | 455 | /*case_statement : CASE |
454 | 456 | expression |
455 | 457 | COLON |
458 | + INDENT | |
456 | 459 | case_type_list*/ |
457 | 460 | {CASE |
458 | 461 | , expression |
459 | 462 | , COLON |
463 | + , INDENT | |
460 | 464 | , case_type_list} |
461 | 465 | ,{} |
462 | 466 | ,{} |
@@ -470,19 +474,19 @@ namespace jstr | ||
470 | 474 | ,{} |
471 | 475 | } |
472 | 476 | , { |
473 | - /*case_type_list : | |
474 | - INDENT | |
477 | + /*case_type_list: | |
475 | 478 | TYPE |
476 | 479 | IDENTIFIER |
477 | 480 | COLON |
478 | 481 | statement_list |
482 | + DEDENT | |
479 | 483 | case_type_list |
480 | 484 | | <ε>*/ |
481 | - {INDENT | |
482 | - , TYPE | |
485 | + {TYPE | |
483 | 486 | , IDENTIFIER |
484 | 487 | , COLON |
485 | 488 | , statement_list |
489 | + , DEDENT | |
486 | 490 | , case_type_list} |
487 | 491 | ,{-1, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
488 | 492 | ,{} |
@@ -539,15 +543,20 @@ namespace jstr | ||
539 | 543 | } |
540 | 544 | , { |
541 | 545 | /*bee_else_part : |
542 | - INDENT | |
543 | 546 | ELSE |
544 | 547 | statement_list |
545 | - | INDENT | |
546 | - ELSE | |
547 | - if_statement | |
548 | + | ELSEIF | |
549 | + expression | |
550 | + COLON | |
551 | + statement_list | |
552 | + bee_else_part | |
548 | 553 | | <ε>*/ |
549 | - {INDENT, ELSE, statement_list} | |
550 | - ,{INDENT, ELSE, if_statement} | |
554 | + {ELSE, statement_list} | |
555 | + ,{ELSEIF | |
556 | + , expression | |
557 | + , COLON | |
558 | + , statement_list | |
559 | + , bee_else_part} | |
551 | 560 | ,{-1, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
552 | 561 | ,{} |
553 | 562 | ,{} |
@@ -130,7 +130,7 @@ Hg < hogehoge < hoge: | ||
130 | 130 | ; |
131 | 131 | |
132 | 132 | Hf: |
133 | - i32 i = 0; | |
133 | + i32 i = 0 | |
134 | 134 | ... |
135 | 135 | ffg: |
136 | 136 | i++; |
@@ -60,6 +60,7 @@ hoge: | ||
60 | 60 | }; |
61 | 61 | lam f = x -> {x+1}; |
62 | 62 | lam g = x -> {y -> {x+y}}; |
63 | + xml fx = <x></x> | |
63 | 64 | ... |
64 | 65 | ff: |
65 | 66 | ; |
@@ -104,6 +105,7 @@ hogehoge: | ||
104 | 105 | } |
105 | 106 | }; |
106 | 107 | lam f = x ->{x+i}; |
108 | + xml fx = <x></x> | |
107 | 109 | ; |
108 | 110 | ; |
109 | 111 |
@@ -17,7 +17,7 @@ main: | ||
17 | 17 | |
18 | 18 | hoge: |
19 | 19 | i08 a = 0; |
20 | - detach coroutine; | |
20 | + detach; | |
21 | 21 | obj o = new hoge(); |
22 | 22 | ... |
23 | 23 | f: |