py: Clean up some bits and pieces in parser, grammar.

This commit is contained in:
Damien George 2015-04-21 16:43:18 +00:00
parent fa90ab1407
commit 4735c45c51
2 changed files with 2 additions and 11 deletions

View File

@ -55,7 +55,6 @@ DEF_RULE(eval_input_2, nc, and(1), tok(NEWLINE))
// vfpdef: NAME // vfpdef: NAME
DEF_RULE(decorator, nc, and(4), tok(DEL_AT), rule(dotted_name), opt_rule(trailer_paren), tok(NEWLINE)) DEF_RULE(decorator, nc, and(4), tok(DEL_AT), rule(dotted_name), opt_rule(trailer_paren), tok(NEWLINE))
//DEF_RULE(decorator_2, nc, and(3), tok(DEL_PAREN_OPEN), opt_rule(arglist), tok(DEL_PAREN_CLOSE))
DEF_RULE(decorators, nc, one_or_more, rule(decorator)) DEF_RULE(decorators, nc, one_or_more, rule(decorator))
DEF_RULE(decorated, c(decorated), and(2), rule(decorators), rule(decorated_body)) DEF_RULE(decorated, c(decorated), and(2), rule(decorators), rule(decorated_body))
DEF_RULE(decorated_body, nc, or(2), rule(classdef), rule(funcdef)) DEF_RULE(decorated_body, nc, or(2), rule(classdef), rule(funcdef))

View File

@ -3,7 +3,7 @@
* *
* The MIT License (MIT) * The MIT License (MIT)
* *
* Copyright (c) 2013, 2014 Damien P. George * Copyright (c) 2013-2015 Damien P. George
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy * Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal * of this software and associated documentation files (the "Software"), to deal
@ -48,8 +48,7 @@
#define RULE_ARG_ARG_MASK (0x0fff) #define RULE_ARG_ARG_MASK (0x0fff)
#define RULE_ARG_TOK (0x1000) #define RULE_ARG_TOK (0x1000)
#define RULE_ARG_RULE (0x2000) #define RULE_ARG_RULE (0x2000)
#define RULE_ARG_OPT_TOK (0x3000) #define RULE_ARG_OPT_RULE (0x3000)
#define RULE_ARG_OPT_RULE (0x4000)
#define ADD_BLANK_NODE(rule) ((rule->act & RULE_ACT_ADD_BLANK) != 0) #define ADD_BLANK_NODE(rule) ((rule->act & RULE_ACT_ADD_BLANK) != 0)
@ -84,7 +83,6 @@ enum {
#define list_with_end (RULE_ACT_LIST | 3) #define list_with_end (RULE_ACT_LIST | 3)
#define tok(t) (RULE_ARG_TOK | MP_TOKEN_##t) #define tok(t) (RULE_ARG_TOK | MP_TOKEN_##t)
#define rule(r) (RULE_ARG_RULE | RULE_##r) #define rule(r) (RULE_ARG_RULE | RULE_##r)
#define opt_tok(t) (RULE_ARG_OPT_TOK | MP_TOKEN_##t)
#define opt_rule(r) (RULE_ARG_OPT_RULE | RULE_##r) #define opt_rule(r) (RULE_ARG_OPT_RULE | RULE_##r)
#ifdef USE_RULE_NAME #ifdef USE_RULE_NAME
#define DEF_RULE(rule, comp, kind, ...) static const rule_t rule_##rule = { RULE_##rule, kind, #rule, { __VA_ARGS__ } }; #define DEF_RULE(rule, comp, kind, ...) static const rule_t rule_##rule = { RULE_##rule, kind, #rule, { __VA_ARGS__ } };
@ -98,7 +96,6 @@ enum {
#undef list_with_end #undef list_with_end
#undef tok #undef tok
#undef rule #undef rule
#undef opt_tok
#undef opt_rule #undef opt_rule
#undef one_or_more #undef one_or_more
#undef DEF_RULE #undef DEF_RULE
@ -603,13 +600,10 @@ mp_parse_node_t mp_parse(mp_lexer_t *lex, mp_parse_input_kind_t input_kind) {
num_not_nil += 1; num_not_nil += 1;
} }
} }
//printf("done and %s n=%d i=%d notnil=%d\n", rule->rule_name, n, i, num_not_nil);
if (emit_rule) { if (emit_rule) {
push_result_rule(&parser, rule_src_line, rule, i); push_result_rule(&parser, rule_src_line, rule, i);
} else if (num_not_nil == 0) { } else if (num_not_nil == 0) {
push_result_rule(&parser, rule_src_line, rule, i); // needed for, eg, atom_paren, testlist_comp_3b push_result_rule(&parser, rule_src_line, rule, i); // needed for, eg, atom_paren, testlist_comp_3b
//result_stack_show(parser);
//assert(0);
} else if (num_not_nil == 1) { } else if (num_not_nil == 1) {
// single result, leave it on stack // single result, leave it on stack
mp_parse_node_t pn = MP_PARSE_NODE_NULL; 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) {
// just leave single item on stack (ie don't wrap in a list) // just leave single item on stack (ie don't wrap in a list)
} }
} else { } else {
//printf("done list %s %d %d\n", rule->rule_name, n, i);
push_result_rule(&parser, rule_src_line, rule, i); push_result_rule(&parser, rule_src_line, rule, i);
} }
break; break;
@ -739,7 +732,6 @@ memory_error:
goto syntax_error; goto syntax_error;
} }
//printf("--------------\n");
//result_stack_show(parser); //result_stack_show(parser);
//printf("rule stack alloc: %d\n", parser.rule_stack_alloc); //printf("rule stack alloc: %d\n", parser.rule_stack_alloc);
//printf("result stack alloc: %d\n", parser.result_stack_alloc); //printf("result stack alloc: %d\n", parser.result_stack_alloc);