|
3 | 3 | * |
4 | 4 | * The MIT License (MIT) |
5 | 5 | * |
6 | | - * Copyright (c) 2013, 2014 Damien P. George |
| 6 | + * Copyright (c) 2013-2015 Damien P. George |
7 | 7 | * |
8 | 8 | * Permission is hereby granted, free of charge, to any person obtaining a copy |
9 | 9 | * of this software and associated documentation files (the "Software"), to deal |
|
48 | 48 | #define RULE_ARG_ARG_MASK (0x0fff) |
49 | 49 | #define RULE_ARG_TOK (0x1000) |
50 | 50 | #define RULE_ARG_RULE (0x2000) |
51 | | -#define RULE_ARG_OPT_TOK (0x3000) |
52 | | -#define RULE_ARG_OPT_RULE (0x4000) |
| 51 | +#define RULE_ARG_OPT_RULE (0x3000) |
53 | 52 |
|
54 | 53 | #define ADD_BLANK_NODE(rule) ((rule->act & RULE_ACT_ADD_BLANK) != 0) |
55 | 54 |
|
|
84 | 83 | #define list_with_end (RULE_ACT_LIST | 3) |
85 | 84 | #define tok(t) (RULE_ARG_TOK | MP_TOKEN_##t) |
86 | 85 | #define rule(r) (RULE_ARG_RULE | RULE_##r) |
87 | | -#define opt_tok(t) (RULE_ARG_OPT_TOK | MP_TOKEN_##t) |
88 | 86 | #define opt_rule(r) (RULE_ARG_OPT_RULE | RULE_##r) |
89 | 87 | #ifdef USE_RULE_NAME |
90 | 88 | #define DEF_RULE(rule, comp, kind, ...) static const rule_t rule_##rule = { RULE_##rule, kind, #rule, { __VA_ARGS__ } }; |
|
98 | 96 | #undef list_with_end |
99 | 97 | #undef tok |
100 | 98 | #undef rule |
101 | | -#undef opt_tok |
102 | 99 | #undef opt_rule |
103 | 100 | #undef one_or_more |
104 | 101 | #undef DEF_RULE |
@@ -603,13 +600,10 @@ mp_parse_node_t mp_parse(mp_lexer_t *lex, mp_parse_input_kind_t input_kind) { |
603 | 600 | num_not_nil += 1; |
604 | 601 | } |
605 | 602 | } |
606 | | - //printf("done and %s n=%d i=%d notnil=%d\n", rule->rule_name, n, i, num_not_nil); |
607 | 603 | if (emit_rule) { |
608 | 604 | push_result_rule(&parser, rule_src_line, rule, i); |
609 | 605 | } else if (num_not_nil == 0) { |
610 | 606 | push_result_rule(&parser, rule_src_line, rule, i); // needed for, eg, atom_paren, testlist_comp_3b |
611 | | - //result_stack_show(parser); |
612 | | - //assert(0); |
613 | 607 | } else if (num_not_nil == 1) { |
614 | 608 | // single result, leave it on stack |
615 | 609 | mp_parse_node_t pn = MP_PARSE_NODE_NULL; |
@@ -711,7 +705,6 @@ mp_parse_node_t mp_parse(mp_lexer_t *lex, mp_parse_input_kind_t input_kind) { |
711 | 705 | // just leave single item on stack (ie don't wrap in a list) |
712 | 706 | } |
713 | 707 | } else { |
714 | | - //printf("done list %s %d %d\n", rule->rule_name, n, i); |
715 | 708 | push_result_rule(&parser, rule_src_line, rule, i); |
716 | 709 | } |
717 | 710 | break; |
@@ -739,7 +732,6 @@ mp_parse_node_t mp_parse(mp_lexer_t *lex, mp_parse_input_kind_t input_kind) { |
739 | 732 | goto syntax_error; |
740 | 733 | } |
741 | 734 |
|
742 | | - //printf("--------------\n"); |
743 | 735 | //result_stack_show(parser); |
744 | 736 | //printf("rule stack alloc: %d\n", parser.rule_stack_alloc); |
745 | 737 | //printf("result stack alloc: %d\n", parser.result_stack_alloc); |
|
0 commit comments