awk: rename GRPSTART/END to L/RBRACE, no code changes
No binary (build failed)
—
(log yok)
| @@ -211,8 +211,8 @@ typedef struct tsplitter_s { | |
| #define TC_PIPE (1 << 9) /* input redirection pipe | */ | |
| #define TC_UOPPRE2 (1 << 10) /* unary prefix operator + - ! */ | |
| #define TC_ARRTERM (1 << 11) /* ] */ | |
| - | #define TC_GRPSTART (1 << 12) /* { */ |
| - | #define TC_GRPTERM (1 << 13) /* } */ |
| + | #define TC_LBRACE (1 << 12) /* { */ |
| + | #define TC_RBRACE (1 << 13) /* } */ |
| #define TC_SEMICOL (1 << 14) /* ; */ | |
| #define TC_NEWLINE (1 << 15) | |
| #define TC_STATX (1 << 16) /* ctl statement (for, next...) */ | |
| @@ -250,8 +250,8 @@ if ((n) & TC_COMMA ) debug_printf_parse(" COMMA" ); \ | |
| if ((n) & TC_PIPE ) debug_printf_parse(" PIPE" ); \ | |
| if ((n) & TC_UOPPRE2 ) debug_printf_parse(" UOPPRE2" ); \ | |
| if ((n) & TC_ARRTERM ) debug_printf_parse(" ARRTERM" ); \ | |
| - | if ((n) & TC_GRPSTART) debug_printf_parse(" GRPSTART"); \ |
| - | if ((n) & TC_GRPTERM ) debug_printf_parse(" GRPTERM" ); \ |
| + | if ((n) & TC_LBRACE ) debug_printf_parse(" LBRACE" ); \ |
| + | if ((n) & TC_RBRACE ) debug_printf_parse(" RBRACE" ); \ |
| if ((n) & TC_SEMICOL ) debug_printf_parse(" SEMICOL" ); \ | |
| if ((n) & TC_NEWLINE ) debug_printf_parse(" NEWLINE" ); \ | |
| if ((n) & TC_STATX ) debug_printf_parse(" STATX" ); \ | |
| @@ -291,13 +291,13 @@ if ((n) & TC_NUMBER ) debug_printf_parse(" NUMBER" ); \ | |
| | TC_FUNCDECL | TC_BEGIN | TC_END) | |
| /* discard newlines after these */ | |
| - | #define TS_NOTERM (TC_COMMA | TC_GRPSTART | TC_GRPTERM \ |
| + | #define TS_NOTERM (TC_COMMA | TC_LBRACE | TC_RBRACE \ |
| | TS_BINOP | TS_OPTERM) | |
| /* what can expression begin with */ | |
| #define TS_OPSEQ (TS_OPERAND | TS_UOPPRE | TC_REGEXP) | |
| /* what can group begin with */ | |
| - | #define TS_GRPSEQ (TS_OPSEQ | TS_OPTERM | TS_STATEMNT | TC_GRPSTART) |
| + | #define TS_GRPSEQ (TS_OPSEQ | TS_OPTERM | TS_STATEMNT | TC_LBRACE) |
| /* if previous token class is CONCAT_L and next is CONCAT_R, concatenation */ | |
| /* operator is inserted between them */ | |
| @@ -402,8 +402,8 @@ static const char tokenlist[] ALIGN1 = | |
| "\1|" NTC /* TC_PIPE */ | |
| "\1+" "\1-" "\1!" NTC /* TC_UOPPRE2 */ | |
| "\1]" NTC /* TC_ARRTERM */ | |
| - | "\1{" NTC /* TC_GRPSTART */ |
| - | "\1}" NTC /* TC_GRPTERM */ |
| + | "\1{" NTC /* TC_LBRACE */ |
| + | "\1}" NTC /* TC_RBRACE */ |
| "\1;" NTC /* TC_SEMICOL */ | |
| "\1\n" NTC /* TC_NEWLINE */ | |
| "\2if" "\2do" "\3for" "\5break" /* TC_STATX */ | |
| @@ -1471,7 +1471,7 @@ static node *parse_expr(uint32_t term_tc) | |
| debug_printf_parse("%s: TC_LENGTH\n", __func__); | |
| tc = next_token(TC_LPAREN /* length(...) */ | |
| | TS_OPTERM /* length; (or newline)*/ | |
| - | | TC_GRPTERM /* length } */ |
| + | | TC_RBRACE /* length } */ |
| | TC_BINOPX /* length <op> NUM */ | |
| | TC_COMMA /* print length, 1 */ | |
| ); | |
| @@ -1516,11 +1516,11 @@ static void chain_expr(uint32_t info) | |
| n = chain_node(info); | |
| - | n->l.n = parse_expr(TS_OPTERM | TC_GRPTERM); |
| + | n->l.n = parse_expr(TS_OPTERM | TC_RBRACE); |
| if ((info & OF_REQUIRED) && !n->l.n) | |
| syntax_error(EMSG_TOO_FEW_ARGS); | |
| - | if (t_tclass & TC_GRPTERM) |
| + | if (t_tclass & TC_RBRACE) |
| rollback_token(); | |
| } | |
| @@ -1559,16 +1559,16 @@ static void chain_group(void) | |
| c = next_token(TS_GRPSEQ); | |
| } while (c & TC_NEWLINE); | |
| - | if (c & TC_GRPSTART) { |
| - | debug_printf_parse("%s: TC_GRPSTART\n", __func__); |
| - | while ((c = next_token(TS_GRPSEQ | TC_GRPTERM)) != TC_GRPTERM) { |
| - | debug_printf_parse("%s: !TC_GRPTERM\n", __func__); |
| + | if (c & TC_LBRACE) { |
| + | debug_printf_parse("%s: TC_LBRACE\n", __func__); |
| + | while ((c = next_token(TS_GRPSEQ | TC_RBRACE)) != TC_RBRACE) { |
| + | debug_printf_parse("%s: !TC_RBRACE\n", __func__); |
| if (c & TC_NEWLINE) | |
| continue; | |
| rollback_token(); | |
| chain_group(); | |
| } | |
| - | debug_printf_parse("%s: TC_GRPTERM\n", __func__); |
| + | debug_printf_parse("%s: TC_RBRACE\n", __func__); |
| return; | |
| } | |
| if (c & (TS_OPSEQ | TS_OPTERM)) { | |
| @@ -1588,7 +1588,7 @@ static void chain_group(void) | |
| chain_group(); | |
| n2 = chain_node(OC_EXEC); | |
| n->r.n = seq->last; | |
| - | if (next_token(TS_GRPSEQ | TC_GRPTERM | TC_ELSE) == TC_ELSE) { |
| + | if (next_token(TS_GRPSEQ | TC_RBRACE | TC_ELSE) == TC_ELSE) { |
| chain_group(); | |
| n2->a.n = seq->last; | |
| } else { | |
| @@ -1641,12 +1641,12 @@ static void chain_group(void) | |
| case OC_PRINTF: | |
| debug_printf_parse("%s: OC_PRINT[F]\n", __func__); | |
| n = chain_node(t_info); | |
| - | n->l.n = parse_expr(TS_OPTERM | TC_OUTRDR | TC_GRPTERM); |
| + | n->l.n = parse_expr(TS_OPTERM | TC_OUTRDR | TC_RBRACE); |
| if (t_tclass & TC_OUTRDR) { | |
| n->info |= t_info; | |
| - | n->r.n = parse_expr(TS_OPTERM | TC_GRPTERM); |
| + | n->r.n = parse_expr(TS_OPTERM | TC_RBRACE); |
| } | |
| - | if (t_tclass & TC_GRPTERM) |
| + | if (t_tclass & TC_RBRACE) |
| rollback_token(); | |
| break; | |
| @@ -1684,7 +1684,7 @@ static void parse_program(char *p) | |
| g_pos = p; | |
| t_lineno = 1; | |
| - | while ((tclass = next_token(TC_EOF | TS_OPSEQ | TC_GRPSTART | |
| + | while ((tclass = next_token(TC_EOF | TS_OPSEQ | TC_LBRACE | |
| TS_OPTERM | TC_BEGIN | TC_END | TC_FUNCDECL)) != TC_EOF) { | |
| if (tclass & TS_OPTERM) { | |
| @@ -1696,10 +1696,14 @@ static void parse_program(char *p) | |
| if (tclass & TC_BEGIN) { | |
| debug_printf_parse("%s: TC_BEGIN\n", __func__); | |
| seq = &beginseq; | |
| + | //TODO: ensure there is no newline between BEGIN and { |
| + | //next_token(TC_LBRACE); rollback_token(); |
| chain_group(); | |
| } else if (tclass & TC_END) { | |
| debug_printf_parse("%s: TC_END\n", __func__); | |
| seq = &endseq; | |
| + | //TODO: ensure there is no newline between END and { |
| + | //next_token(TC_LBRACE); rollback_token(); |
| chain_group(); | |
| } else if (tclass & TC_FUNCDECL) { | |
| debug_printf_parse("%s: TC_FUNCDECL\n", __func__); | |
| @@ -1726,24 +1730,26 @@ static void parse_program(char *p) | |
| /* it was a comma, we ate it */ | |
| } | |
| seq = &f->body; | |
| + | //TODO: ensure there is { after "func F(...)" - but newlines are allowed |
| + | //while (next_token(TC_LBRACE | TC_NEWLINE) == TC_NEWLINE) continue; rollback_token(); |
| chain_group(); | |
| hash_clear(ahash); | |
| } else if (tclass & TS_OPSEQ) { | |
| debug_printf_parse("%s: TS_OPSEQ\n", __func__); | |
| rollback_token(); | |
| cn = chain_node(OC_TEST); | |
| - | cn->l.n = parse_expr(TS_OPTERM | TC_EOF | TC_GRPSTART); |
| - | if (t_tclass & TC_GRPSTART) { |
| - | debug_printf_parse("%s: TC_GRPSTART\n", __func__); |
| + | cn->l.n = parse_expr(TS_OPTERM | TC_EOF | TC_LBRACE); |
| + | if (t_tclass & TC_LBRACE) { |
| + | debug_printf_parse("%s: TC_LBRACE\n", __func__); |
| rollback_token(); | |
| chain_group(); | |
| } else { | |
| - | debug_printf_parse("%s: !TC_GRPSTART\n", __func__); |
| + | debug_printf_parse("%s: !TC_LBRACE\n", __func__); |
| chain_node(OC_PRINT); | |
| } | |
| cn->r.n = mainseq.last; | |
| - | } else /* if (tclass & TC_GRPSTART) */ { |
| - | debug_printf_parse("%s: TC_GRPSTART(?)\n", __func__); |
| + | } else /* if (tclass & TC_LBRACE) */ { |
| + | debug_printf_parse("%s: TC_LBRACE(?)\n", __func__); |
| rollback_token(); | |
| chain_group(); | |
| } | |