From e9d190a663b7ec9e411889337453432be70e7f6e Mon Sep 17 00:00:00 2001 From: Kate F Date: Thu, 30 May 2024 13:05:09 +0100 Subject: [PATCH] Refactoring: No need to keep dialect-dependent parser state here. --- src/libre/dialect/glob/parser.c | 114 +++-- src/libre/dialect/glob/parser.h | 4 +- src/libre/dialect/like/parser.c | 114 +++-- src/libre/dialect/like/parser.h | 4 +- src/libre/dialect/literal/parser.c | 90 ++-- src/libre/dialect/literal/parser.h | 4 +- src/libre/dialect/native/parser.c | 438 +++++++++---------- src/libre/dialect/native/parser.h | 4 +- src/libre/dialect/pcre/parser.c | 666 ++++++++++++++--------------- src/libre/dialect/pcre/parser.h | 4 +- src/libre/dialect/sql/parser.c | 338 +++++++-------- src/libre/dialect/sql/parser.h | 4 +- src/libre/parser.act | 44 +- 13 files changed, 872 insertions(+), 956 deletions(-) diff --git a/src/libre/dialect/glob/parser.c b/src/libre/dialect/glob/parser.c index f6504b854..0de67cf26 100644 --- a/src/libre/dialect/glob/parser.c +++ b/src/libre/dialect/glob/parser.c @@ -124,11 +124,6 @@ /* TODO: use lx's generated conveniences for the pattern buffer */ char a[512]; char *p; - -#if PCRE_DIALECT - int extended_mode_comment; - enum re_flags *flags_ptr; -#endif /* PCRE_DIALECT */ }; static void @@ -210,51 +205,49 @@ } static enum LX_TOKEN - current_token(struct lex_state *lex_state, struct act_state *act_state) + current_token(struct lex_state *lex_state, struct act_state *act_state, + enum re_flags *flags) { #ifndef PCRE_DIALECT (void) lex_state; + (void) flags; return act_state->lex_tok; #else - enum re_flags fl = (lex_state->flags_ptr != NULL) ? lex_state->flags_ptr[0] : 0; - enum LX_TOKEN tok; - - if ((fl & RE_EXTENDED) == 0) { - tok = act_state->lex_tok; - - switch (tok) { + if ((*flags & RE_EXTENDED) == 0) { + switch (act_state->lex_tok) { case TOK_WHITESPACE: case TOK_NEWLINE: case TOK_MAYBE_COMMENT: return TOK_CHAR; default: - return tok; + return act_state->lex_tok; } } + int extended_mode_comment = 0; + restart: - tok = act_state->lex_tok; - if (lex_state->extended_mode_comment) { - switch (tok) { + if (extended_mode_comment) { + switch (act_state->lex_tok) { case TOK_EOF: case TOK_ERROR: case TOK_UNKNOWN: /* don't eat EOF or errors */ - return tok; + return act_state->lex_tok; case TOK_NEWLINE: - lex_state->extended_mode_comment = 0; + extended_mode_comment = 0; /* fall through */ default: advance_lexer(lex_state, act_state); goto restart; } } else { - switch (tok) { + switch (act_state->lex_tok) { case TOK_MAYBE_COMMENT: - lex_state->extended_mode_comment = 1; + extended_mode_comment = 1; /* fall through */ case TOK_WHITESPACE: case TOK_NEWLINE: @@ -262,21 +255,21 @@ goto restart; default: - return tok; + return act_state->lex_tok; } } #endif } #define ADVANCE_LEXER (advance_lexer(lex_state, act_state)) - #define CURRENT_TERMINAL (current_token(lex_state, act_state)) + #define CURRENT_TERMINAL (current_token(lex_state, act_state, flags)) #define ERROR_TERMINAL (TOK_ERROR) #define SAVE_LEXER(tok) do { act_state->lex_tok_save = act_state->lex_tok; \ act_state->lex_tok = tok; } while (0) #define RESTORE_LEXER do { act_state->lex_tok = act_state->lex_tok_save; } while (0) -#line 280 "src/libre/dialect/glob/parser.c" +#line 273 "src/libre/dialect/glob/parser.c" #ifndef ERROR_TERMINAL @@ -311,13 +304,13 @@ ZL2_list_Hof_Hatoms:; } /* BEGINNING OF ACTION: ast-add-concat */ { -#line 1047 "src/libre/parser.act" +#line 1040 "src/libre/parser.act" if (!ast_add_expr_concat((ZIcat), (ZIa))) { goto ZL1; } -#line 321 "src/libre/dialect/glob/parser.c" +#line 314 "src/libre/dialect/glob/parser.c" } /* END OF ACTION: ast-add-concat */ /* BEGINNING OF INLINE: 115 */ @@ -355,24 +348,24 @@ p_list_Hof_Hatoms_C_Catom(flags flags, lex_state lex_state, act_state act_state, ADVANCE_LEXER; /* BEGINNING OF ACTION: class-any */ { -#line 789 "src/libre/parser.act" +#line 782 "src/libre/parser.act" /* TODO: or the unicode equivalent */ (ZIa) = (*flags & RE_SINGLE) ? &class_any : &class_notnl; -#line 364 "src/libre/dialect/glob/parser.c" +#line 357 "src/libre/dialect/glob/parser.c" } /* END OF ACTION: class-any */ /* BEGINNING OF ACTION: ast-make-named */ { -#line 1040 "src/libre/parser.act" +#line 1033 "src/libre/parser.act" (ZIe) = ast_make_expr_named(act_state->poolp, *flags, (ZIa)); if ((ZIe) == NULL) { goto ZL1; } -#line 376 "src/libre/dialect/glob/parser.c" +#line 369 "src/libre/dialect/glob/parser.c" } /* END OF ACTION: ast-make-named */ } @@ -385,7 +378,7 @@ p_list_Hof_Hatoms_C_Catom(flags flags, lex_state lex_state, act_state act_state, /* BEGINNING OF EXTRACT: CHAR */ { -#line 582 "src/libre/parser.act" +#line 575 "src/libre/parser.act" /* the first byte may be '\x00' */ assert(lex_state->buf.a[1] == '\0'); @@ -398,20 +391,20 @@ p_list_Hof_Hatoms_C_Catom(flags flags, lex_state lex_state, act_state act_state, ZIc = lex_state->buf.a[0]; -#line 402 "src/libre/dialect/glob/parser.c" +#line 395 "src/libre/dialect/glob/parser.c" } /* END OF EXTRACT: CHAR */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZIe) = ast_make_expr_literal(act_state->poolp, *flags, (ZIc)); if ((ZIe) == NULL) { goto ZL1; } -#line 415 "src/libre/dialect/glob/parser.c" +#line 408 "src/libre/dialect/glob/parser.c" } /* END OF ACTION: ast-make-literal */ } @@ -425,38 +418,38 @@ p_list_Hof_Hatoms_C_Catom(flags flags, lex_state lex_state, act_state act_state, ADVANCE_LEXER; /* BEGINNING OF ACTION: class-any */ { -#line 789 "src/libre/parser.act" +#line 782 "src/libre/parser.act" /* TODO: or the unicode equivalent */ (ZIa) = (*flags & RE_SINGLE) ? &class_any : &class_notnl; -#line 434 "src/libre/dialect/glob/parser.c" +#line 427 "src/libre/dialect/glob/parser.c" } /* END OF ACTION: class-any */ /* BEGINNING OF ACTION: ast-make-named */ { -#line 1040 "src/libre/parser.act" +#line 1033 "src/libre/parser.act" (ZIg) = ast_make_expr_named(act_state->poolp, *flags, (ZIa)); if ((ZIg) == NULL) { goto ZL1; } -#line 446 "src/libre/dialect/glob/parser.c" +#line 439 "src/libre/dialect/glob/parser.c" } /* END OF ACTION: ast-make-named */ /* BEGINNING OF ACTION: count-zero-or-more */ { -#line 815 "src/libre/parser.act" +#line 808 "src/libre/parser.act" (ZIc) = ast_make_count(0, AST_COUNT_UNBOUNDED); -#line 455 "src/libre/dialect/glob/parser.c" +#line 448 "src/libre/dialect/glob/parser.c" } /* END OF ACTION: count-zero-or-more */ /* BEGINNING OF ACTION: ast-make-piece */ { -#line 904 "src/libre/parser.act" +#line 897 "src/libre/parser.act" if ((ZIc).min == 0 && (ZIc).max == 0) { (ZIe) = ast_make_expr_empty(act_state->poolp, *flags); @@ -470,7 +463,7 @@ p_list_Hof_Hatoms_C_Catom(flags flags, lex_state lex_state, act_state act_state, goto ZL1; } -#line 474 "src/libre/dialect/glob/parser.c" +#line 467 "src/libre/dialect/glob/parser.c" } /* END OF ACTION: ast-make-piece */ } @@ -485,26 +478,26 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-atom */ { -#line 711 "src/libre/parser.act" +#line 704 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXATOM; } goto ZL2; -#line 496 "src/libre/dialect/glob/parser.c" +#line 489 "src/libre/dialect/glob/parser.c" } /* END OF ACTION: err-expected-atom */ /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZIe) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZIe) == NULL) { goto ZL2; } -#line 508 "src/libre/dialect/glob/parser.c" +#line 501 "src/libre/dialect/glob/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -530,11 +523,11 @@ p_re__glob(flags flags, lex_state lex_state, act_state act_state, err err, t_ast /* BEGINNING OF ACTION: make-group-id */ { -#line 888 "src/libre/parser.act" +#line 881 "src/libre/parser.act" (ZIid) = act_state->group_id++; -#line 538 "src/libre/dialect/glob/parser.c" +#line 531 "src/libre/dialect/glob/parser.c" } /* END OF ACTION: make-group-id */ /* BEGINNING OF INLINE: 119 */ @@ -544,14 +537,14 @@ p_re__glob(flags flags, lex_state lex_state, act_state act_state, err err, t_ast { /* BEGINNING OF ACTION: ast-make-concat */ { -#line 867 "src/libre/parser.act" +#line 860 "src/libre/parser.act" (ZIe) = ast_make_expr_concat(act_state->poolp, *flags); if ((ZIe) == NULL) { goto ZL1; } -#line 555 "src/libre/dialect/glob/parser.c" +#line 548 "src/libre/dialect/glob/parser.c" } /* END OF ACTION: ast-make-concat */ p_list_Hof_Hatoms (flags, lex_state, act_state, err, ZIe); @@ -565,14 +558,14 @@ p_re__glob(flags flags, lex_state lex_state, act_state act_state, err err, t_ast { /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZIe) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZIe) == NULL) { goto ZL1; } -#line 576 "src/libre/dialect/glob/parser.c" +#line 569 "src/libre/dialect/glob/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -582,14 +575,14 @@ p_re__glob(flags flags, lex_state lex_state, act_state act_state, err err, t_ast /* END OF INLINE: 119 */ /* BEGINNING OF ACTION: ast-make-group */ { -#line 918 "src/libre/parser.act" +#line 911 "src/libre/parser.act" (ZInode) = ast_make_expr_group(act_state->poolp, *flags, (ZIe), (ZIid)); if ((ZInode) == NULL) { goto ZL1; } -#line 593 "src/libre/dialect/glob/parser.c" +#line 586 "src/libre/dialect/glob/parser.c" } /* END OF ACTION: ast-make-group */ /* BEGINNING OF INLINE: 120 */ @@ -608,14 +601,14 @@ p_re__glob(flags flags, lex_state lex_state, act_state act_state, err err, t_ast { /* BEGINNING OF ACTION: err-expected-eof */ { -#line 760 "src/libre/parser.act" +#line 753 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXEOF; } goto ZL1; -#line 619 "src/libre/dialect/glob/parser.c" +#line 612 "src/libre/dialect/glob/parser.c" } /* END OF ACTION: err-expected-eof */ } @@ -633,7 +626,7 @@ ZL0:; /* BEGINNING OF TRAILER */ -#line 1059 "src/libre/parser.act" +#line 1052 "src/libre/parser.act" static int @@ -691,11 +684,6 @@ ZL0:; lex_state->buf.a = NULL; lex_state->buf.len = 0; -#if PCRE_DIALECT - lex_state->extended_mode_comment = 0; - lex_state->flags_ptr = &flags; -#endif /* PCRE_DIALECT */ - /* XXX: unneccessary since we're lexing from a string */ /* (except for pushing "[" and "]" around ::group-$dialect) */ lx->buf_opaque = &lex_state->buf; @@ -791,6 +779,6 @@ ZL0:; return NULL; } -#line 795 "src/libre/dialect/glob/parser.c" +#line 783 "src/libre/dialect/glob/parser.c" /* END OF FILE */ diff --git a/src/libre/dialect/glob/parser.h b/src/libre/dialect/glob/parser.h index 105c27e82..cfcce16b7 100644 --- a/src/libre/dialect/glob/parser.h +++ b/src/libre/dialect/glob/parser.h @@ -9,7 +9,7 @@ /* BEGINNING OF HEADER */ -#line 288 "src/libre/parser.act" +#line 281 "src/libre/parser.act" #include @@ -28,7 +28,7 @@ extern void p_re__glob(flags, lex_state, act_state, err, t_ast__expr *); /* BEGINNING OF TRAILER */ -#line 1216 "src/libre/parser.act" +#line 1204 "src/libre/parser.act" #line 35 "src/libre/dialect/glob/parser.h" diff --git a/src/libre/dialect/like/parser.c b/src/libre/dialect/like/parser.c index 12dae617a..eec930c0f 100644 --- a/src/libre/dialect/like/parser.c +++ b/src/libre/dialect/like/parser.c @@ -124,11 +124,6 @@ /* TODO: use lx's generated conveniences for the pattern buffer */ char a[512]; char *p; - -#if PCRE_DIALECT - int extended_mode_comment; - enum re_flags *flags_ptr; -#endif /* PCRE_DIALECT */ }; static void @@ -210,51 +205,49 @@ } static enum LX_TOKEN - current_token(struct lex_state *lex_state, struct act_state *act_state) + current_token(struct lex_state *lex_state, struct act_state *act_state, + enum re_flags *flags) { #ifndef PCRE_DIALECT (void) lex_state; + (void) flags; return act_state->lex_tok; #else - enum re_flags fl = (lex_state->flags_ptr != NULL) ? lex_state->flags_ptr[0] : 0; - enum LX_TOKEN tok; - - if ((fl & RE_EXTENDED) == 0) { - tok = act_state->lex_tok; - - switch (tok) { + if ((*flags & RE_EXTENDED) == 0) { + switch (act_state->lex_tok) { case TOK_WHITESPACE: case TOK_NEWLINE: case TOK_MAYBE_COMMENT: return TOK_CHAR; default: - return tok; + return act_state->lex_tok; } } + int extended_mode_comment = 0; + restart: - tok = act_state->lex_tok; - if (lex_state->extended_mode_comment) { - switch (tok) { + if (extended_mode_comment) { + switch (act_state->lex_tok) { case TOK_EOF: case TOK_ERROR: case TOK_UNKNOWN: /* don't eat EOF or errors */ - return tok; + return act_state->lex_tok; case TOK_NEWLINE: - lex_state->extended_mode_comment = 0; + extended_mode_comment = 0; /* fall through */ default: advance_lexer(lex_state, act_state); goto restart; } } else { - switch (tok) { + switch (act_state->lex_tok) { case TOK_MAYBE_COMMENT: - lex_state->extended_mode_comment = 1; + extended_mode_comment = 1; /* fall through */ case TOK_WHITESPACE: case TOK_NEWLINE: @@ -262,21 +255,21 @@ goto restart; default: - return tok; + return act_state->lex_tok; } } #endif } #define ADVANCE_LEXER (advance_lexer(lex_state, act_state)) - #define CURRENT_TERMINAL (current_token(lex_state, act_state)) + #define CURRENT_TERMINAL (current_token(lex_state, act_state, flags)) #define ERROR_TERMINAL (TOK_ERROR) #define SAVE_LEXER(tok) do { act_state->lex_tok_save = act_state->lex_tok; \ act_state->lex_tok = tok; } while (0) #define RESTORE_LEXER do { act_state->lex_tok = act_state->lex_tok_save; } while (0) -#line 280 "src/libre/dialect/like/parser.c" +#line 273 "src/libre/dialect/like/parser.c" #ifndef ERROR_TERMINAL @@ -311,13 +304,13 @@ ZL2_list_Hof_Hatoms:; } /* BEGINNING OF ACTION: ast-add-concat */ { -#line 1047 "src/libre/parser.act" +#line 1040 "src/libre/parser.act" if (!ast_add_expr_concat((ZIcat), (ZIa))) { goto ZL1; } -#line 321 "src/libre/dialect/like/parser.c" +#line 314 "src/libre/dialect/like/parser.c" } /* END OF ACTION: ast-add-concat */ /* BEGINNING OF INLINE: 115 */ @@ -355,24 +348,24 @@ p_list_Hof_Hatoms_C_Catom(flags flags, lex_state lex_state, act_state act_state, ADVANCE_LEXER; /* BEGINNING OF ACTION: class-any */ { -#line 789 "src/libre/parser.act" +#line 782 "src/libre/parser.act" /* TODO: or the unicode equivalent */ (ZIa) = (*flags & RE_SINGLE) ? &class_any : &class_notnl; -#line 364 "src/libre/dialect/like/parser.c" +#line 357 "src/libre/dialect/like/parser.c" } /* END OF ACTION: class-any */ /* BEGINNING OF ACTION: ast-make-named */ { -#line 1040 "src/libre/parser.act" +#line 1033 "src/libre/parser.act" (ZIe) = ast_make_expr_named(act_state->poolp, *flags, (ZIa)); if ((ZIe) == NULL) { goto ZL1; } -#line 376 "src/libre/dialect/like/parser.c" +#line 369 "src/libre/dialect/like/parser.c" } /* END OF ACTION: ast-make-named */ } @@ -385,7 +378,7 @@ p_list_Hof_Hatoms_C_Catom(flags flags, lex_state lex_state, act_state act_state, /* BEGINNING OF EXTRACT: CHAR */ { -#line 582 "src/libre/parser.act" +#line 575 "src/libre/parser.act" /* the first byte may be '\x00' */ assert(lex_state->buf.a[1] == '\0'); @@ -398,20 +391,20 @@ p_list_Hof_Hatoms_C_Catom(flags flags, lex_state lex_state, act_state act_state, ZIc = lex_state->buf.a[0]; -#line 402 "src/libre/dialect/like/parser.c" +#line 395 "src/libre/dialect/like/parser.c" } /* END OF EXTRACT: CHAR */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZIe) = ast_make_expr_literal(act_state->poolp, *flags, (ZIc)); if ((ZIe) == NULL) { goto ZL1; } -#line 415 "src/libre/dialect/like/parser.c" +#line 408 "src/libre/dialect/like/parser.c" } /* END OF ACTION: ast-make-literal */ } @@ -425,38 +418,38 @@ p_list_Hof_Hatoms_C_Catom(flags flags, lex_state lex_state, act_state act_state, ADVANCE_LEXER; /* BEGINNING OF ACTION: class-any */ { -#line 789 "src/libre/parser.act" +#line 782 "src/libre/parser.act" /* TODO: or the unicode equivalent */ (ZIa) = (*flags & RE_SINGLE) ? &class_any : &class_notnl; -#line 434 "src/libre/dialect/like/parser.c" +#line 427 "src/libre/dialect/like/parser.c" } /* END OF ACTION: class-any */ /* BEGINNING OF ACTION: ast-make-named */ { -#line 1040 "src/libre/parser.act" +#line 1033 "src/libre/parser.act" (ZIg) = ast_make_expr_named(act_state->poolp, *flags, (ZIa)); if ((ZIg) == NULL) { goto ZL1; } -#line 446 "src/libre/dialect/like/parser.c" +#line 439 "src/libre/dialect/like/parser.c" } /* END OF ACTION: ast-make-named */ /* BEGINNING OF ACTION: count-zero-or-more */ { -#line 815 "src/libre/parser.act" +#line 808 "src/libre/parser.act" (ZIc) = ast_make_count(0, AST_COUNT_UNBOUNDED); -#line 455 "src/libre/dialect/like/parser.c" +#line 448 "src/libre/dialect/like/parser.c" } /* END OF ACTION: count-zero-or-more */ /* BEGINNING OF ACTION: ast-make-piece */ { -#line 904 "src/libre/parser.act" +#line 897 "src/libre/parser.act" if ((ZIc).min == 0 && (ZIc).max == 0) { (ZIe) = ast_make_expr_empty(act_state->poolp, *flags); @@ -470,7 +463,7 @@ p_list_Hof_Hatoms_C_Catom(flags flags, lex_state lex_state, act_state act_state, goto ZL1; } -#line 474 "src/libre/dialect/like/parser.c" +#line 467 "src/libre/dialect/like/parser.c" } /* END OF ACTION: ast-make-piece */ } @@ -485,26 +478,26 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-atom */ { -#line 711 "src/libre/parser.act" +#line 704 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXATOM; } goto ZL2; -#line 496 "src/libre/dialect/like/parser.c" +#line 489 "src/libre/dialect/like/parser.c" } /* END OF ACTION: err-expected-atom */ /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZIe) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZIe) == NULL) { goto ZL2; } -#line 508 "src/libre/dialect/like/parser.c" +#line 501 "src/libre/dialect/like/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -530,11 +523,11 @@ p_re__like(flags flags, lex_state lex_state, act_state act_state, err err, t_ast /* BEGINNING OF ACTION: make-group-id */ { -#line 888 "src/libre/parser.act" +#line 881 "src/libre/parser.act" (ZIid) = act_state->group_id++; -#line 538 "src/libre/dialect/like/parser.c" +#line 531 "src/libre/dialect/like/parser.c" } /* END OF ACTION: make-group-id */ /* BEGINNING OF INLINE: 119 */ @@ -544,14 +537,14 @@ p_re__like(flags flags, lex_state lex_state, act_state act_state, err err, t_ast { /* BEGINNING OF ACTION: ast-make-concat */ { -#line 867 "src/libre/parser.act" +#line 860 "src/libre/parser.act" (ZIe) = ast_make_expr_concat(act_state->poolp, *flags); if ((ZIe) == NULL) { goto ZL1; } -#line 555 "src/libre/dialect/like/parser.c" +#line 548 "src/libre/dialect/like/parser.c" } /* END OF ACTION: ast-make-concat */ p_list_Hof_Hatoms (flags, lex_state, act_state, err, ZIe); @@ -565,14 +558,14 @@ p_re__like(flags flags, lex_state lex_state, act_state act_state, err err, t_ast { /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZIe) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZIe) == NULL) { goto ZL1; } -#line 576 "src/libre/dialect/like/parser.c" +#line 569 "src/libre/dialect/like/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -582,14 +575,14 @@ p_re__like(flags flags, lex_state lex_state, act_state act_state, err err, t_ast /* END OF INLINE: 119 */ /* BEGINNING OF ACTION: ast-make-group */ { -#line 918 "src/libre/parser.act" +#line 911 "src/libre/parser.act" (ZInode) = ast_make_expr_group(act_state->poolp, *flags, (ZIe), (ZIid)); if ((ZInode) == NULL) { goto ZL1; } -#line 593 "src/libre/dialect/like/parser.c" +#line 586 "src/libre/dialect/like/parser.c" } /* END OF ACTION: ast-make-group */ /* BEGINNING OF INLINE: 120 */ @@ -608,14 +601,14 @@ p_re__like(flags flags, lex_state lex_state, act_state act_state, err err, t_ast { /* BEGINNING OF ACTION: err-expected-eof */ { -#line 760 "src/libre/parser.act" +#line 753 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXEOF; } goto ZL1; -#line 619 "src/libre/dialect/like/parser.c" +#line 612 "src/libre/dialect/like/parser.c" } /* END OF ACTION: err-expected-eof */ } @@ -633,7 +626,7 @@ ZL0:; /* BEGINNING OF TRAILER */ -#line 1059 "src/libre/parser.act" +#line 1052 "src/libre/parser.act" static int @@ -691,11 +684,6 @@ ZL0:; lex_state->buf.a = NULL; lex_state->buf.len = 0; -#if PCRE_DIALECT - lex_state->extended_mode_comment = 0; - lex_state->flags_ptr = &flags; -#endif /* PCRE_DIALECT */ - /* XXX: unneccessary since we're lexing from a string */ /* (except for pushing "[" and "]" around ::group-$dialect) */ lx->buf_opaque = &lex_state->buf; @@ -791,6 +779,6 @@ ZL0:; return NULL; } -#line 795 "src/libre/dialect/like/parser.c" +#line 783 "src/libre/dialect/like/parser.c" /* END OF FILE */ diff --git a/src/libre/dialect/like/parser.h b/src/libre/dialect/like/parser.h index bb01f69f1..4c7949714 100644 --- a/src/libre/dialect/like/parser.h +++ b/src/libre/dialect/like/parser.h @@ -9,7 +9,7 @@ /* BEGINNING OF HEADER */ -#line 288 "src/libre/parser.act" +#line 281 "src/libre/parser.act" #include @@ -28,7 +28,7 @@ extern void p_re__like(flags, lex_state, act_state, err, t_ast__expr *); /* BEGINNING OF TRAILER */ -#line 1216 "src/libre/parser.act" +#line 1204 "src/libre/parser.act" #line 35 "src/libre/dialect/like/parser.h" diff --git a/src/libre/dialect/literal/parser.c b/src/libre/dialect/literal/parser.c index 404859678..7b25cbc6b 100644 --- a/src/libre/dialect/literal/parser.c +++ b/src/libre/dialect/literal/parser.c @@ -124,11 +124,6 @@ /* TODO: use lx's generated conveniences for the pattern buffer */ char a[512]; char *p; - -#if PCRE_DIALECT - int extended_mode_comment; - enum re_flags *flags_ptr; -#endif /* PCRE_DIALECT */ }; static void @@ -210,51 +205,49 @@ } static enum LX_TOKEN - current_token(struct lex_state *lex_state, struct act_state *act_state) + current_token(struct lex_state *lex_state, struct act_state *act_state, + enum re_flags *flags) { #ifndef PCRE_DIALECT (void) lex_state; + (void) flags; return act_state->lex_tok; #else - enum re_flags fl = (lex_state->flags_ptr != NULL) ? lex_state->flags_ptr[0] : 0; - enum LX_TOKEN tok; - - if ((fl & RE_EXTENDED) == 0) { - tok = act_state->lex_tok; - - switch (tok) { + if ((*flags & RE_EXTENDED) == 0) { + switch (act_state->lex_tok) { case TOK_WHITESPACE: case TOK_NEWLINE: case TOK_MAYBE_COMMENT: return TOK_CHAR; default: - return tok; + return act_state->lex_tok; } } + int extended_mode_comment = 0; + restart: - tok = act_state->lex_tok; - if (lex_state->extended_mode_comment) { - switch (tok) { + if (extended_mode_comment) { + switch (act_state->lex_tok) { case TOK_EOF: case TOK_ERROR: case TOK_UNKNOWN: /* don't eat EOF or errors */ - return tok; + return act_state->lex_tok; case TOK_NEWLINE: - lex_state->extended_mode_comment = 0; + extended_mode_comment = 0; /* fall through */ default: advance_lexer(lex_state, act_state); goto restart; } } else { - switch (tok) { + switch (act_state->lex_tok) { case TOK_MAYBE_COMMENT: - lex_state->extended_mode_comment = 1; + extended_mode_comment = 1; /* fall through */ case TOK_WHITESPACE: case TOK_NEWLINE: @@ -262,21 +255,21 @@ goto restart; default: - return tok; + return act_state->lex_tok; } } #endif } #define ADVANCE_LEXER (advance_lexer(lex_state, act_state)) - #define CURRENT_TERMINAL (current_token(lex_state, act_state)) + #define CURRENT_TERMINAL (current_token(lex_state, act_state, flags)) #define ERROR_TERMINAL (TOK_ERROR) #define SAVE_LEXER(tok) do { act_state->lex_tok_save = act_state->lex_tok; \ act_state->lex_tok = tok; } while (0) #define RESTORE_LEXER do { act_state->lex_tok = act_state->lex_tok_save; } while (0) -#line 280 "src/libre/dialect/literal/parser.c" +#line 273 "src/libre/dialect/literal/parser.c" #ifndef ERROR_TERMINAL @@ -311,13 +304,13 @@ ZL2_list_Hof_Hatoms:; } /* BEGINNING OF ACTION: ast-add-concat */ { -#line 1047 "src/libre/parser.act" +#line 1040 "src/libre/parser.act" if (!ast_add_expr_concat((ZIcat), (ZIa))) { goto ZL1; } -#line 321 "src/libre/dialect/literal/parser.c" +#line 314 "src/libre/dialect/literal/parser.c" } /* END OF ACTION: ast-add-concat */ /* BEGINNING OF INLINE: 114 */ @@ -356,11 +349,11 @@ p_re__literal(flags flags, lex_state lex_state, act_state act_state, err err, t_ /* BEGINNING OF ACTION: make-group-id */ { -#line 888 "src/libre/parser.act" +#line 881 "src/libre/parser.act" (ZIid) = act_state->group_id++; -#line 364 "src/libre/dialect/literal/parser.c" +#line 357 "src/libre/dialect/literal/parser.c" } /* END OF ACTION: make-group-id */ /* BEGINNING OF INLINE: 117 */ @@ -370,14 +363,14 @@ p_re__literal(flags flags, lex_state lex_state, act_state act_state, err err, t_ { /* BEGINNING OF ACTION: ast-make-concat */ { -#line 867 "src/libre/parser.act" +#line 860 "src/libre/parser.act" (ZIe) = ast_make_expr_concat(act_state->poolp, *flags); if ((ZIe) == NULL) { goto ZL1; } -#line 381 "src/libre/dialect/literal/parser.c" +#line 374 "src/libre/dialect/literal/parser.c" } /* END OF ACTION: ast-make-concat */ p_list_Hof_Hatoms (flags, lex_state, act_state, err, ZIe); @@ -391,14 +384,14 @@ p_re__literal(flags flags, lex_state lex_state, act_state act_state, err err, t_ { /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZIe) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZIe) == NULL) { goto ZL1; } -#line 402 "src/libre/dialect/literal/parser.c" +#line 395 "src/libre/dialect/literal/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -408,14 +401,14 @@ p_re__literal(flags flags, lex_state lex_state, act_state act_state, err err, t_ /* END OF INLINE: 117 */ /* BEGINNING OF ACTION: ast-make-group */ { -#line 918 "src/libre/parser.act" +#line 911 "src/libre/parser.act" (ZInode) = ast_make_expr_group(act_state->poolp, *flags, (ZIe), (ZIid)); if ((ZInode) == NULL) { goto ZL1; } -#line 419 "src/libre/dialect/literal/parser.c" +#line 412 "src/libre/dialect/literal/parser.c" } /* END OF ACTION: ast-make-group */ /* BEGINNING OF INLINE: 119 */ @@ -434,14 +427,14 @@ p_re__literal(flags flags, lex_state lex_state, act_state act_state, err err, t_ { /* BEGINNING OF ACTION: err-expected-eof */ { -#line 760 "src/libre/parser.act" +#line 753 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXEOF; } goto ZL1; -#line 445 "src/libre/dialect/literal/parser.c" +#line 438 "src/libre/dialect/literal/parser.c" } /* END OF ACTION: err-expected-eof */ } @@ -474,7 +467,7 @@ p_list_Hof_Hatoms_C_Catom(flags flags, lex_state lex_state, act_state act_state, case (TOK_CHAR): /* BEGINNING OF EXTRACT: CHAR */ { -#line 582 "src/libre/parser.act" +#line 575 "src/libre/parser.act" /* the first byte may be '\x00' */ assert(lex_state->buf.a[1] == '\0'); @@ -487,7 +480,7 @@ p_list_Hof_Hatoms_C_Catom(flags flags, lex_state lex_state, act_state act_state, ZIc = lex_state->buf.a[0]; -#line 491 "src/libre/dialect/literal/parser.c" +#line 484 "src/libre/dialect/literal/parser.c" } /* END OF EXTRACT: CHAR */ break; @@ -497,14 +490,14 @@ p_list_Hof_Hatoms_C_Catom(flags flags, lex_state lex_state, act_state act_state, ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZInode) = ast_make_expr_literal(act_state->poolp, *flags, (ZIc)); if ((ZInode) == NULL) { goto ZL1; } -#line 508 "src/libre/dialect/literal/parser.c" +#line 501 "src/libre/dialect/literal/parser.c" } /* END OF ACTION: ast-make-literal */ } @@ -513,26 +506,26 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-atom */ { -#line 711 "src/libre/parser.act" +#line 704 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXATOM; } goto ZL2; -#line 524 "src/libre/dialect/literal/parser.c" +#line 517 "src/libre/dialect/literal/parser.c" } /* END OF ACTION: err-expected-atom */ /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZInode) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL2; } -#line 536 "src/libre/dialect/literal/parser.c" +#line 529 "src/libre/dialect/literal/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -546,7 +539,7 @@ ZL0:; /* BEGINNING OF TRAILER */ -#line 1059 "src/libre/parser.act" +#line 1052 "src/libre/parser.act" static int @@ -604,11 +597,6 @@ ZL0:; lex_state->buf.a = NULL; lex_state->buf.len = 0; -#if PCRE_DIALECT - lex_state->extended_mode_comment = 0; - lex_state->flags_ptr = &flags; -#endif /* PCRE_DIALECT */ - /* XXX: unneccessary since we're lexing from a string */ /* (except for pushing "[" and "]" around ::group-$dialect) */ lx->buf_opaque = &lex_state->buf; @@ -704,6 +692,6 @@ ZL0:; return NULL; } -#line 708 "src/libre/dialect/literal/parser.c" +#line 696 "src/libre/dialect/literal/parser.c" /* END OF FILE */ diff --git a/src/libre/dialect/literal/parser.h b/src/libre/dialect/literal/parser.h index 0a98a2362..b1c20e4bb 100644 --- a/src/libre/dialect/literal/parser.h +++ b/src/libre/dialect/literal/parser.h @@ -9,7 +9,7 @@ /* BEGINNING OF HEADER */ -#line 288 "src/libre/parser.act" +#line 281 "src/libre/parser.act" #include @@ -28,7 +28,7 @@ extern void p_re__literal(flags, lex_state, act_state, err, t_ast__expr *); /* BEGINNING OF TRAILER */ -#line 1216 "src/libre/parser.act" +#line 1204 "src/libre/parser.act" #line 35 "src/libre/dialect/literal/parser.h" diff --git a/src/libre/dialect/native/parser.c b/src/libre/dialect/native/parser.c index 2b204045a..7aa79896c 100644 --- a/src/libre/dialect/native/parser.c +++ b/src/libre/dialect/native/parser.c @@ -124,11 +124,6 @@ /* TODO: use lx's generated conveniences for the pattern buffer */ char a[512]; char *p; - -#if PCRE_DIALECT - int extended_mode_comment; - enum re_flags *flags_ptr; -#endif /* PCRE_DIALECT */ }; static void @@ -210,51 +205,49 @@ } static enum LX_TOKEN - current_token(struct lex_state *lex_state, struct act_state *act_state) + current_token(struct lex_state *lex_state, struct act_state *act_state, + enum re_flags *flags) { #ifndef PCRE_DIALECT (void) lex_state; + (void) flags; return act_state->lex_tok; #else - enum re_flags fl = (lex_state->flags_ptr != NULL) ? lex_state->flags_ptr[0] : 0; - enum LX_TOKEN tok; - - if ((fl & RE_EXTENDED) == 0) { - tok = act_state->lex_tok; - - switch (tok) { + if ((*flags & RE_EXTENDED) == 0) { + switch (act_state->lex_tok) { case TOK_WHITESPACE: case TOK_NEWLINE: case TOK_MAYBE_COMMENT: return TOK_CHAR; default: - return tok; + return act_state->lex_tok; } } + int extended_mode_comment = 0; + restart: - tok = act_state->lex_tok; - if (lex_state->extended_mode_comment) { - switch (tok) { + if (extended_mode_comment) { + switch (act_state->lex_tok) { case TOK_EOF: case TOK_ERROR: case TOK_UNKNOWN: /* don't eat EOF or errors */ - return tok; + return act_state->lex_tok; case TOK_NEWLINE: - lex_state->extended_mode_comment = 0; + extended_mode_comment = 0; /* fall through */ default: advance_lexer(lex_state, act_state); goto restart; } } else { - switch (tok) { + switch (act_state->lex_tok) { case TOK_MAYBE_COMMENT: - lex_state->extended_mode_comment = 1; + extended_mode_comment = 1; /* fall through */ case TOK_WHITESPACE: case TOK_NEWLINE: @@ -262,21 +255,21 @@ goto restart; default: - return tok; + return act_state->lex_tok; } } #endif } #define ADVANCE_LEXER (advance_lexer(lex_state, act_state)) - #define CURRENT_TERMINAL (current_token(lex_state, act_state)) + #define CURRENT_TERMINAL (current_token(lex_state, act_state, flags)) #define ERROR_TERMINAL (TOK_ERROR) #define SAVE_LEXER(tok) do { act_state->lex_tok_save = act_state->lex_tok; \ act_state->lex_tok = tok; } while (0) #define RESTORE_LEXER do { act_state->lex_tok = act_state->lex_tok_save; } while (0) -#line 280 "src/libre/dialect/native/parser.c" +#line 273 "src/libre/dialect/native/parser.c" #ifndef ERROR_TERMINAL @@ -333,7 +326,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags { /* BEGINNING OF EXTRACT: CHAR */ { -#line 582 "src/libre/parser.act" +#line 575 "src/libre/parser.act" /* the first byte may be '\x00' */ assert(lex_state->buf.a[1] == '\0'); @@ -346,7 +339,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags ZIc = lex_state->buf.a[0]; -#line 350 "src/libre/dialect/native/parser.c" +#line 343 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: CHAR */ ADVANCE_LEXER; @@ -356,7 +349,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags { /* BEGINNING OF EXTRACT: ESC */ { -#line 393 "src/libre/parser.act" +#line 386 "src/libre/parser.act" assert(lex_state->buf.a[0] == '\\'); assert(lex_state->buf.a[1] != '\0'); @@ -382,7 +375,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags (void) ZIstart; (void) ZIend; -#line 386 "src/libre/dialect/native/parser.c" +#line 379 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: ESC */ ADVANCE_LEXER; @@ -392,7 +385,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags { /* BEGINNING OF EXTRACT: HEX */ { -#line 534 "src/libre/parser.act" +#line 527 "src/libre/parser.act" unsigned long u; char *s, *e; @@ -440,7 +433,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags ZIc = (char) (unsigned char) u; -#line 444 "src/libre/dialect/native/parser.c" +#line 437 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: HEX */ ADVANCE_LEXER; @@ -450,7 +443,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags { /* BEGINNING OF EXTRACT: OCT */ { -#line 491 "src/libre/parser.act" +#line 484 "src/libre/parser.act" unsigned long u; char *s, *e; @@ -493,7 +486,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags ZIc = (char) (unsigned char) u; -#line 497 "src/libre/dialect/native/parser.c" +#line 490 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: OCT */ ADVANCE_LEXER; @@ -506,12 +499,12 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags /* END OF INLINE: 141 */ /* BEGINNING OF ACTION: ast-range-endpoint-literal */ { -#line 846 "src/libre/parser.act" +#line 839 "src/libre/parser.act" (ZIr).type = AST_ENDPOINT_LITERAL; (ZIr).u.literal.c = (unsigned char) (ZIc); -#line 515 "src/libre/dialect/native/parser.c" +#line 508 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-range-endpoint-literal */ } @@ -538,7 +531,7 @@ p_265(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 /* BEGINNING OF EXTRACT: CLOSECOUNT */ { -#line 385 "src/libre/parser.act" +#line 378 "src/libre/parser.act" ZI216 = lex_state->lx.start; ZIend = lex_state->lx.end; @@ -546,23 +539,23 @@ p_265(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 (void) ZI216; (void) ZIend; -#line 550 "src/libre/dialect/native/parser.c" +#line 543 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: CLOSECOUNT */ ADVANCE_LEXER; /* BEGINNING OF ACTION: mark-count */ { -#line 784 "src/libre/parser.act" +#line 777 "src/libre/parser.act" mark(&act_state->countstart, &(*ZI263)); mark(&act_state->countend, &(ZIend)); -#line 561 "src/libre/dialect/native/parser.c" +#line 554 "src/libre/dialect/native/parser.c" } /* END OF ACTION: mark-count */ /* BEGINNING OF ACTION: count-range */ { -#line 831 "src/libre/parser.act" +#line 824 "src/libre/parser.act" if ((*ZIm) < (*ZIm)) { err->e = RE_ENEGCOUNT; @@ -577,7 +570,7 @@ p_265(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 (ZIc) = ast_make_count((*ZIm), (*ZIm)); -#line 581 "src/libre/dialect/native/parser.c" +#line 574 "src/libre/dialect/native/parser.c" } /* END OF ACTION: count-range */ } @@ -593,7 +586,7 @@ p_265(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 case (TOK_COUNT): /* BEGINNING OF EXTRACT: COUNT */ { -#line 634 "src/libre/parser.act" +#line 627 "src/libre/parser.act" unsigned long u; char *e; @@ -613,7 +606,7 @@ p_265(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 ZIn = (unsigned int) u; -#line 617 "src/libre/dialect/native/parser.c" +#line 610 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: COUNT */ break; @@ -625,7 +618,7 @@ p_265(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 case (TOK_CLOSECOUNT): /* BEGINNING OF EXTRACT: CLOSECOUNT */ { -#line 385 "src/libre/parser.act" +#line 378 "src/libre/parser.act" ZI219 = lex_state->lx.start; ZIend = lex_state->lx.end; @@ -633,7 +626,7 @@ p_265(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 (void) ZI219; (void) ZIend; -#line 637 "src/libre/dialect/native/parser.c" +#line 630 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: CLOSECOUNT */ break; @@ -643,17 +636,17 @@ p_265(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 ADVANCE_LEXER; /* BEGINNING OF ACTION: mark-count */ { -#line 784 "src/libre/parser.act" +#line 777 "src/libre/parser.act" mark(&act_state->countstart, &(*ZI263)); mark(&act_state->countend, &(ZIend)); -#line 652 "src/libre/dialect/native/parser.c" +#line 645 "src/libre/dialect/native/parser.c" } /* END OF ACTION: mark-count */ /* BEGINNING OF ACTION: count-range */ { -#line 831 "src/libre/parser.act" +#line 824 "src/libre/parser.act" if ((ZIn) < (*ZIm)) { err->e = RE_ENEGCOUNT; @@ -668,7 +661,7 @@ p_265(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 (ZIc) = ast_make_count((*ZIm), (ZIn)); -#line 672 "src/libre/dialect/native/parser.c" +#line 665 "src/libre/dialect/native/parser.c" } /* END OF ACTION: count-range */ } @@ -703,13 +696,13 @@ ZL2_expr_C_Ccharacter_Hclass_C_Clist_Hof_Hclass_Hterms:; } /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((ZIclass), (ZInode))) { goto ZL1; } -#line 713 "src/libre/dialect/native/parser.c" +#line 706 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-add-alt */ /* BEGINNING OF INLINE: expr::character-class::list-of-class-terms */ @@ -743,7 +736,7 @@ p_154(flags flags, lex_state lex_state, act_state act_state, err err) case (TOK_RANGE): /* BEGINNING OF EXTRACT: RANGE */ { -#line 315 "src/libre/parser.act" +#line 308 "src/libre/parser.act" ZI155 = '-'; ZI156 = lex_state->lx.start; @@ -753,7 +746,7 @@ p_154(flags flags, lex_state lex_state, act_state act_state, err err) (void) ZI156; (void) ZI157; -#line 757 "src/libre/dialect/native/parser.c" +#line 750 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: RANGE */ break; @@ -767,14 +760,14 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-range */ { -#line 725 "src/libre/parser.act" +#line 718 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXRANGE; } goto ZL2; -#line 778 "src/libre/dialect/native/parser.c" +#line 771 "src/libre/dialect/native/parser.c" } /* END OF ACTION: err-expected-range */ } @@ -802,13 +795,13 @@ ZL2_expr_C_Clist_Hof_Hpieces:; } /* BEGINNING OF ACTION: ast-add-concat */ { -#line 1047 "src/libre/parser.act" +#line 1040 "src/libre/parser.act" if (!ast_add_expr_concat((ZIcat), (ZIa))) { goto ZL1; } -#line 812 "src/libre/dialect/native/parser.c" +#line 805 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-add-concat */ /* BEGINNING OF INLINE: 223 */ @@ -856,7 +849,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err /* BEGINNING OF EXTRACT: CHAR */ { -#line 582 "src/libre/parser.act" +#line 575 "src/libre/parser.act" /* the first byte may be '\x00' */ assert(lex_state->buf.a[1] == '\0'); @@ -869,7 +862,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err ZIc = lex_state->buf.a[0]; -#line 873 "src/libre/dialect/native/parser.c" +#line 866 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: CHAR */ ADVANCE_LEXER; @@ -882,7 +875,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err /* BEGINNING OF EXTRACT: ESC */ { -#line 393 "src/libre/parser.act" +#line 386 "src/libre/parser.act" assert(lex_state->buf.a[0] == '\\'); assert(lex_state->buf.a[1] != '\0'); @@ -908,7 +901,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err (void) ZI111; (void) ZI112; -#line 912 "src/libre/dialect/native/parser.c" +#line 905 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: ESC */ ADVANCE_LEXER; @@ -921,7 +914,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err /* BEGINNING OF EXTRACT: HEX */ { -#line 534 "src/libre/parser.act" +#line 527 "src/libre/parser.act" unsigned long u; char *s, *e; @@ -969,7 +962,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err ZIc = (char) (unsigned char) u; -#line 973 "src/libre/dialect/native/parser.c" +#line 966 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: HEX */ ADVANCE_LEXER; @@ -982,7 +975,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err /* BEGINNING OF EXTRACT: OCT */ { -#line 491 "src/libre/parser.act" +#line 484 "src/libre/parser.act" unsigned long u; char *s, *e; @@ -1025,7 +1018,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err ZIc = (char) (unsigned char) u; -#line 1029 "src/libre/dialect/native/parser.c" +#line 1022 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: OCT */ ADVANCE_LEXER; @@ -1038,14 +1031,14 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err /* END OF INLINE: 109 */ /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZInode) = ast_make_expr_literal(act_state->poolp, *flags, (ZIc)); if ((ZInode) == NULL) { goto ZL1; } -#line 1049 "src/libre/dialect/native/parser.c" +#line 1042 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-literal */ } @@ -1071,7 +1064,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ /* BEGINNING OF EXTRACT: CHAR */ { -#line 582 "src/libre/parser.act" +#line 575 "src/libre/parser.act" /* the first byte may be '\x00' */ assert(lex_state->buf.a[1] == '\0'); @@ -1084,7 +1077,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ ZI259 = lex_state->buf.a[0]; -#line 1088 "src/libre/dialect/native/parser.c" +#line 1081 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: CHAR */ ADVANCE_LEXER; @@ -1103,7 +1096,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ /* BEGINNING OF EXTRACT: ESC */ { -#line 393 "src/libre/parser.act" +#line 386 "src/libre/parser.act" assert(lex_state->buf.a[0] == '\\'); assert(lex_state->buf.a[1] != '\0'); @@ -1129,7 +1122,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ (void) ZI248; (void) ZI249; -#line 1133 "src/libre/dialect/native/parser.c" +#line 1126 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: ESC */ ADVANCE_LEXER; @@ -1148,7 +1141,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ /* BEGINNING OF EXTRACT: HEX */ { -#line 534 "src/libre/parser.act" +#line 527 "src/libre/parser.act" unsigned long u; char *s, *e; @@ -1196,7 +1189,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ ZI255 = (char) (unsigned char) u; -#line 1200 "src/libre/dialect/native/parser.c" +#line 1193 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: HEX */ ADVANCE_LEXER; @@ -1215,7 +1208,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ /* BEGINNING OF EXTRACT: NAMED_CLASS */ { -#line 654 "src/libre/parser.act" +#line 647 "src/libre/parser.act" ZI243 = DIALECT_CLASS(lex_state->buf.a); if (ZI243 == NULL) { @@ -1229,7 +1222,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ (void) ZI244; (void) ZI245; -#line 1233 "src/libre/dialect/native/parser.c" +#line 1226 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: NAMED_CLASS */ ADVANCE_LEXER; @@ -1248,7 +1241,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ /* BEGINNING OF EXTRACT: OCT */ { -#line 491 "src/libre/parser.act" +#line 484 "src/libre/parser.act" unsigned long u; char *s, *e; @@ -1291,7 +1284,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ ZI251 = (char) (unsigned char) u; -#line 1295 "src/libre/dialect/native/parser.c" +#line 1288 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: OCT */ ADVANCE_LEXER; @@ -1332,7 +1325,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hclass(flags fl case (TOK_NAMED__CLASS): /* BEGINNING OF EXTRACT: NAMED_CLASS */ { -#line 654 "src/libre/parser.act" +#line 647 "src/libre/parser.act" ZIid = DIALECT_CLASS(lex_state->buf.a); if (ZIid == NULL) { @@ -1346,7 +1339,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hclass(flags fl (void) ZIstart; (void) ZIend; -#line 1350 "src/libre/dialect/native/parser.c" +#line 1343 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: NAMED_CLASS */ break; @@ -1356,12 +1349,12 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hclass(flags fl ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-range-endpoint-class */ { -#line 851 "src/libre/parser.act" +#line 844 "src/libre/parser.act" (ZIr).type = AST_ENDPOINT_NAMED; (ZIr).u.named.class = (ZIid); -#line 1365 "src/libre/dialect/native/parser.c" +#line 1358 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-range-endpoint-class */ } @@ -1396,7 +1389,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state /* BEGINNING OF EXTRACT: OPENGROUP */ { -#line 325 "src/libre/parser.act" +#line 318 "src/libre/parser.act" ZIstart = lex_state->lx.start; ZI167 = lex_state->lx.end; @@ -1404,20 +1397,20 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state (void) ZIstart; (void) ZI167; -#line 1408 "src/libre/dialect/native/parser.c" +#line 1401 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: OPENGROUP */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-alt */ { -#line 874 "src/libre/parser.act" +#line 867 "src/libre/parser.act" (ZInode) = ast_make_expr_alt(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 1421 "src/libre/dialect/native/parser.c" +#line 1414 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-alt */ ZItmp = ZInode; @@ -1437,7 +1430,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state /* BEGINNING OF EXTRACT: OPENGROUPCB */ { -#line 341 "src/libre/parser.act" +#line 334 "src/libre/parser.act" ZIstart = lex_state->lx.start; ZI186 = lex_state->lx.end; @@ -1445,30 +1438,30 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state (void) ZIstart; (void) ZI186; -#line 1449 "src/libre/dialect/native/parser.c" +#line 1442 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: OPENGROUPCB */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-alt */ { -#line 874 "src/libre/parser.act" +#line 867 "src/libre/parser.act" (ZInode) = ast_make_expr_alt(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 1462 "src/libre/dialect/native/parser.c" +#line 1455 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-alt */ ZItmp = ZInode; /* BEGINNING OF ACTION: make-literal-cbrak */ { -#line 892 "src/libre/parser.act" +#line 885 "src/libre/parser.act" (ZIcbrak) = ']'; -#line 1472 "src/libre/dialect/native/parser.c" +#line 1465 "src/libre/dialect/native/parser.c" } /* END OF ACTION: make-literal-cbrak */ p_195 (flags, lex_state, act_state, err, &ZIstart, &ZIcbrak, &ZInode1); @@ -1478,13 +1471,13 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state } /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((ZItmp), (ZInode1))) { goto ZL1; } -#line 1488 "src/libre/dialect/native/parser.c" +#line 1481 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-add-alt */ p_expr_C_Ccharacter_Hclass_C_Clist_Hof_Hclass_Hterms (flags, lex_state, act_state, err, ZItmp); @@ -1500,7 +1493,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state /* BEGINNING OF EXTRACT: OPENGROUPINV */ { -#line 333 "src/libre/parser.act" +#line 326 "src/libre/parser.act" ZIstart = lex_state->lx.start; ZI178 = lex_state->lx.end; @@ -1508,26 +1501,26 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state (void) ZIstart; (void) ZI178; -#line 1512 "src/libre/dialect/native/parser.c" +#line 1505 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: OPENGROUPINV */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-alt */ { -#line 874 "src/libre/parser.act" +#line 867 "src/libre/parser.act" (ZInode) = ast_make_expr_alt(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 1525 "src/libre/dialect/native/parser.c" +#line 1518 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-alt */ ZItmp = ZInode; /* BEGINNING OF ACTION: ast-make-invert */ { -#line 973 "src/libre/parser.act" +#line 966 "src/libre/parser.act" struct ast_expr *any; @@ -1565,7 +1558,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state goto ZL1; } -#line 1569 "src/libre/dialect/native/parser.c" +#line 1562 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-invert */ p_180 (flags, lex_state, act_state, err, &ZItmp); @@ -1584,7 +1577,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state /* BEGINNING OF EXTRACT: OPENGROUPINVCB */ { -#line 349 "src/libre/parser.act" +#line 342 "src/libre/parser.act" ZIstart = lex_state->lx.start; ZI193 = lex_state->lx.end; @@ -1592,26 +1585,26 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state (void) ZIstart; (void) ZI193; -#line 1596 "src/libre/dialect/native/parser.c" +#line 1589 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: OPENGROUPINVCB */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-alt */ { -#line 874 "src/libre/parser.act" +#line 867 "src/libre/parser.act" (ZInode) = ast_make_expr_alt(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 1609 "src/libre/dialect/native/parser.c" +#line 1602 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-alt */ ZItmp = ZInode; /* BEGINNING OF ACTION: ast-make-invert */ { -#line 973 "src/libre/parser.act" +#line 966 "src/libre/parser.act" struct ast_expr *any; @@ -1649,16 +1642,16 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state goto ZL1; } -#line 1653 "src/libre/dialect/native/parser.c" +#line 1646 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-invert */ /* BEGINNING OF ACTION: make-literal-cbrak */ { -#line 892 "src/libre/parser.act" +#line 885 "src/libre/parser.act" (ZIcbrak) = ']'; -#line 1662 "src/libre/dialect/native/parser.c" +#line 1655 "src/libre/dialect/native/parser.c" } /* END OF ACTION: make-literal-cbrak */ p_195 (flags, lex_state, act_state, err, &ZIstart, &ZIcbrak, &ZInode1); @@ -1668,13 +1661,13 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state } /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((ZItmp), (ZInode1))) { goto ZL1; } -#line 1678 "src/libre/dialect/native/parser.c" +#line 1671 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-add-alt */ p_expr_C_Ccharacter_Hclass_C_Clist_Hof_Hclass_Hterms (flags, lex_state, act_state, err, ZItmp); @@ -1700,7 +1693,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state /* BEGINNING OF EXTRACT: CLOSEGROUP */ { -#line 357 "src/libre/parser.act" +#line 350 "src/libre/parser.act" ZI200 = ']'; ZI201 = lex_state->lx.start; @@ -1710,18 +1703,18 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state (void) ZI201; (void) ZIend; -#line 1714 "src/libre/dialect/native/parser.c" +#line 1707 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: CLOSEGROUP */ ADVANCE_LEXER; /* BEGINNING OF ACTION: mark-group */ { -#line 774 "src/libre/parser.act" +#line 767 "src/libre/parser.act" mark(&act_state->groupstart, &(ZIstart)); mark(&act_state->groupend, &(ZIend)); -#line 1725 "src/libre/dialect/native/parser.c" +#line 1718 "src/libre/dialect/native/parser.c" } /* END OF ACTION: mark-group */ } @@ -1735,7 +1728,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state /* BEGINNING OF EXTRACT: CLOSEGROUPRANGE */ { -#line 367 "src/libre/parser.act" +#line 360 "src/libre/parser.act" ZIcrange = '-'; ZI203 = lex_state->lx.start; @@ -1745,41 +1738,41 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state (void) ZI203; (void) ZIend; -#line 1749 "src/libre/dialect/native/parser.c" +#line 1742 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: CLOSEGROUPRANGE */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZIrange) = ast_make_expr_literal(act_state->poolp, *flags, (ZIcrange)); if ((ZIrange) == NULL) { goto ZL4; } -#line 1762 "src/libre/dialect/native/parser.c" +#line 1755 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-literal */ /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((ZItmp), (ZIrange))) { goto ZL4; } -#line 1773 "src/libre/dialect/native/parser.c" +#line 1766 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-add-alt */ /* BEGINNING OF ACTION: mark-group */ { -#line 774 "src/libre/parser.act" +#line 767 "src/libre/parser.act" mark(&act_state->groupstart, &(ZIstart)); mark(&act_state->groupend, &(ZIend)); -#line 1783 "src/libre/dialect/native/parser.c" +#line 1776 "src/libre/dialect/native/parser.c" } /* END OF ACTION: mark-group */ } @@ -1792,14 +1785,14 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state { /* BEGINNING OF ACTION: err-expected-closegroup */ { -#line 732 "src/libre/parser.act" +#line 725 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXCLOSEGROUP; } goto ZL1; -#line 1803 "src/libre/dialect/native/parser.c" +#line 1796 "src/libre/dialect/native/parser.c" } /* END OF ACTION: err-expected-closegroup */ } @@ -1828,7 +1821,7 @@ p_180(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp /* BEGINNING OF EXTRACT: RANGE */ { -#line 315 "src/libre/parser.act" +#line 308 "src/libre/parser.act" ZIc = '-'; ZIrstart = lex_state->lx.start; @@ -1838,7 +1831,7 @@ p_180(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp (void) ZIrstart; (void) ZI181; -#line 1842 "src/libre/dialect/native/parser.c" +#line 1835 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: RANGE */ ADVANCE_LEXER; @@ -1849,14 +1842,14 @@ p_180(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp { /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZInode1) = ast_make_expr_literal(act_state->poolp, *flags, (ZIc)); if ((ZInode1) == NULL) { goto ZL1; } -#line 1860 "src/libre/dialect/native/parser.c" +#line 1853 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-literal */ } @@ -1872,17 +1865,17 @@ p_180(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp /* BEGINNING OF ACTION: ast-range-endpoint-literal */ { -#line 846 "src/libre/parser.act" +#line 839 "src/libre/parser.act" (ZIlower).type = AST_ENDPOINT_LITERAL; (ZIlower).u.literal.c = (unsigned char) (ZIc); -#line 1881 "src/libre/dialect/native/parser.c" +#line 1874 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-range-endpoint-literal */ /* BEGINNING OF EXTRACT: RANGE */ { -#line 315 "src/libre/parser.act" +#line 308 "src/libre/parser.act" ZI183 = '-'; ZI184 = lex_state->lx.start; @@ -1892,7 +1885,7 @@ p_180(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp (void) ZI184; (void) ZI185; -#line 1896 "src/libre/dialect/native/parser.c" +#line 1889 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: RANGE */ ADVANCE_LEXER; @@ -1903,7 +1896,7 @@ p_180(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp } /* BEGINNING OF ACTION: ast-make-range */ { -#line 1011 "src/libre/parser.act" +#line 1004 "src/libre/parser.act" unsigned char lower, upper; @@ -1932,7 +1925,7 @@ p_180(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp goto ZL1; } -#line 1936 "src/libre/dialect/native/parser.c" +#line 1929 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-range */ } @@ -1942,13 +1935,13 @@ p_180(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp /* END OF INLINE: 182 */ /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((*ZItmp), (ZInode1))) { goto ZL1; } -#line 1952 "src/libre/dialect/native/parser.c" +#line 1945 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-add-alt */ } @@ -1984,7 +1977,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_Hend(flags flags, lex_state lex_st /* BEGINNING OF EXTRACT: RANGE */ { -#line 315 "src/libre/parser.act" +#line 308 "src/libre/parser.act" ZIc = '-'; ZI149 = lex_state->lx.start; @@ -1994,18 +1987,18 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_Hend(flags flags, lex_state lex_st (void) ZI149; (void) ZIend; -#line 1998 "src/libre/dialect/native/parser.c" +#line 1991 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: RANGE */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-range-endpoint-literal */ { -#line 846 "src/libre/parser.act" +#line 839 "src/libre/parser.act" (ZIr).type = AST_ENDPOINT_LITERAL; (ZIr).u.literal.c = (unsigned char) (ZIc); -#line 2009 "src/libre/dialect/native/parser.c" +#line 2002 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-range-endpoint-literal */ } @@ -2057,7 +2050,7 @@ p_expr_C_Cpiece(flags flags, lex_state lex_state, act_state act_state, err err, } /* BEGINNING OF ACTION: ast-make-piece */ { -#line 904 "src/libre/parser.act" +#line 897 "src/libre/parser.act" if ((ZIc).min == 0 && (ZIc).max == 0) { (ZInode) = ast_make_expr_empty(act_state->poolp, *flags); @@ -2071,7 +2064,7 @@ p_expr_C_Cpiece(flags flags, lex_state lex_state, act_state act_state, err err, goto ZL1; } -#line 2075 "src/libre/dialect/native/parser.c" +#line 2068 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-piece */ } @@ -2095,14 +2088,14 @@ p_expr(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__ex { /* BEGINNING OF ACTION: ast-make-alt */ { -#line 874 "src/libre/parser.act" +#line 867 "src/libre/parser.act" (ZInode) = ast_make_expr_alt(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 2106 "src/libre/dialect/native/parser.c" +#line 2099 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-alt */ p_expr_C_Clist_Hof_Halts (flags, lex_state, act_state, err, ZInode); @@ -2116,14 +2109,14 @@ p_expr(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__ex { /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZInode) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 2127 "src/libre/dialect/native/parser.c" +#line 2120 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -2136,26 +2129,26 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-alts */ { -#line 718 "src/libre/parser.act" +#line 711 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXALTS; } goto ZL2; -#line 2147 "src/libre/dialect/native/parser.c" +#line 2140 "src/libre/dialect/native/parser.c" } /* END OF ACTION: err-expected-alts */ /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZInode) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL2; } -#line 2159 "src/libre/dialect/native/parser.c" +#line 2152 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -2177,14 +2170,14 @@ p_195(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZIs { /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZInode1) = ast_make_expr_literal(act_state->poolp, *flags, (*ZIcbrak)); if ((ZInode1) == NULL) { goto ZL1; } -#line 2188 "src/libre/dialect/native/parser.c" +#line 2181 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-literal */ } @@ -2201,17 +2194,17 @@ p_195(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZIs /* BEGINNING OF ACTION: ast-range-endpoint-literal */ { -#line 846 "src/libre/parser.act" +#line 839 "src/libre/parser.act" (ZIr).type = AST_ENDPOINT_LITERAL; (ZIr).u.literal.c = (unsigned char) (*ZIcbrak); -#line 2210 "src/libre/dialect/native/parser.c" +#line 2203 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-range-endpoint-literal */ /* BEGINNING OF EXTRACT: RANGE */ { -#line 315 "src/libre/parser.act" +#line 308 "src/libre/parser.act" ZI196 = '-'; ZI197 = lex_state->lx.start; @@ -2221,7 +2214,7 @@ p_195(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZIs (void) ZI197; (void) ZI198; -#line 2225 "src/libre/dialect/native/parser.c" +#line 2218 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: RANGE */ ADVANCE_LEXER; @@ -2232,17 +2225,17 @@ p_195(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZIs } /* BEGINNING OF ACTION: ast-range-endpoint-literal */ { -#line 846 "src/libre/parser.act" +#line 839 "src/libre/parser.act" (ZIlower).type = AST_ENDPOINT_LITERAL; (ZIlower).u.literal.c = (unsigned char) (*ZIcbrak); -#line 2241 "src/libre/dialect/native/parser.c" +#line 2234 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-range-endpoint-literal */ /* BEGINNING OF ACTION: ast-make-range */ { -#line 1011 "src/libre/parser.act" +#line 1004 "src/libre/parser.act" unsigned char lower, upper; @@ -2271,7 +2264,7 @@ p_195(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZIs goto ZL1; } -#line 2275 "src/libre/dialect/native/parser.c" +#line 2268 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-range */ } @@ -2301,11 +2294,11 @@ p_re__native(flags flags, lex_state lex_state, act_state act_state, err err, t_a /* BEGINNING OF ACTION: make-group-id */ { -#line 888 "src/libre/parser.act" +#line 881 "src/libre/parser.act" (ZIid) = act_state->group_id++; -#line 2309 "src/libre/dialect/native/parser.c" +#line 2302 "src/libre/dialect/native/parser.c" } /* END OF ACTION: make-group-id */ p_expr (flags, lex_state, act_state, err, &ZIe); @@ -2315,14 +2308,14 @@ p_re__native(flags flags, lex_state lex_state, act_state act_state, err err, t_a } /* BEGINNING OF ACTION: ast-make-group */ { -#line 918 "src/libre/parser.act" +#line 911 "src/libre/parser.act" (ZInode) = ast_make_expr_group(act_state->poolp, *flags, (ZIe), (ZIid)); if ((ZInode) == NULL) { goto ZL1; } -#line 2326 "src/libre/dialect/native/parser.c" +#line 2319 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-group */ /* BEGINNING OF INLINE: 231 */ @@ -2341,14 +2334,14 @@ p_re__native(flags flags, lex_state lex_state, act_state act_state, err err, t_a { /* BEGINNING OF ACTION: err-expected-eof */ { -#line 760 "src/libre/parser.act" +#line 753 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXEOF; } goto ZL1; -#line 2352 "src/libre/dialect/native/parser.c" +#line 2345 "src/libre/dialect/native/parser.c" } /* END OF ACTION: err-expected-eof */ } @@ -2429,13 +2422,13 @@ ZL2_expr_C_Clist_Hof_Halts:; } /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((ZIalts), (ZIa))) { goto ZL1; } -#line 2439 "src/libre/dialect/native/parser.c" +#line 2432 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-add-alt */ /* BEGINNING OF INLINE: 229 */ @@ -2460,14 +2453,14 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-alts */ { -#line 718 "src/libre/parser.act" +#line 711 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXALTS; } goto ZL4; -#line 2471 "src/libre/dialect/native/parser.c" +#line 2464 "src/libre/dialect/native/parser.c" } /* END OF ACTION: err-expected-alts */ } @@ -2492,7 +2485,7 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, /* BEGINNING OF EXTRACT: OPENCOUNT */ { -#line 377 "src/libre/parser.act" +#line 370 "src/libre/parser.act" ZI263 = lex_state->lx.start; ZI264 = lex_state->lx.end; @@ -2500,7 +2493,7 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, (void) ZI263; (void) ZI264; -#line 2504 "src/libre/dialect/native/parser.c" +#line 2497 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: OPENCOUNT */ ADVANCE_LEXER; @@ -2508,7 +2501,7 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, case (TOK_COUNT): /* BEGINNING OF EXTRACT: COUNT */ { -#line 634 "src/libre/parser.act" +#line 627 "src/libre/parser.act" unsigned long u; char *e; @@ -2528,7 +2521,7 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, ZIm = (unsigned int) u; -#line 2532 "src/libre/dialect/native/parser.c" +#line 2525 "src/libre/dialect/native/parser.c" } /* END OF EXTRACT: COUNT */ break; @@ -2548,11 +2541,11 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, ADVANCE_LEXER; /* BEGINNING OF ACTION: count-zero-or-one */ { -#line 823 "src/libre/parser.act" +#line 816 "src/libre/parser.act" (ZIc) = ast_make_count(0, 1); -#line 2556 "src/libre/dialect/native/parser.c" +#line 2549 "src/libre/dialect/native/parser.c" } /* END OF ACTION: count-zero-or-one */ } @@ -2562,11 +2555,11 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, ADVANCE_LEXER; /* BEGINNING OF ACTION: count-one-or-more */ { -#line 819 "src/libre/parser.act" +#line 812 "src/libre/parser.act" (ZIc) = ast_make_count(1, AST_COUNT_UNBOUNDED); -#line 2570 "src/libre/dialect/native/parser.c" +#line 2563 "src/libre/dialect/native/parser.c" } /* END OF ACTION: count-one-or-more */ } @@ -2576,11 +2569,11 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, ADVANCE_LEXER; /* BEGINNING OF ACTION: count-zero-or-more */ { -#line 815 "src/libre/parser.act" +#line 808 "src/libre/parser.act" (ZIc) = ast_make_count(0, AST_COUNT_UNBOUNDED); -#line 2584 "src/libre/dialect/native/parser.c" +#line 2577 "src/libre/dialect/native/parser.c" } /* END OF ACTION: count-zero-or-more */ } @@ -2589,11 +2582,11 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, { /* BEGINNING OF ACTION: count-one */ { -#line 827 "src/libre/parser.act" +#line 820 "src/libre/parser.act" (ZIc) = ast_make_count(1, 1); -#line 2597 "src/libre/dialect/native/parser.c" +#line 2590 "src/libre/dialect/native/parser.c" } /* END OF ACTION: count-one */ } @@ -2606,23 +2599,23 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-count */ { -#line 704 "src/libre/parser.act" +#line 697 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXCOUNT; } goto ZL2; -#line 2617 "src/libre/dialect/native/parser.c" +#line 2610 "src/libre/dialect/native/parser.c" } /* END OF ACTION: err-expected-count */ /* BEGINNING OF ACTION: count-one */ { -#line 827 "src/libre/parser.act" +#line 820 "src/libre/parser.act" (ZIc) = ast_make_count(1, 1); -#line 2626 "src/libre/dialect/native/parser.c" +#line 2619 "src/libre/dialect/native/parser.c" } /* END OF ACTION: count-one */ } @@ -2647,24 +2640,24 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e ADVANCE_LEXER; /* BEGINNING OF ACTION: class-any */ { -#line 789 "src/libre/parser.act" +#line 782 "src/libre/parser.act" /* TODO: or the unicode equivalent */ (ZIa) = (*flags & RE_SINGLE) ? &class_any : &class_notnl; -#line 2656 "src/libre/dialect/native/parser.c" +#line 2649 "src/libre/dialect/native/parser.c" } /* END OF ACTION: class-any */ /* BEGINNING OF ACTION: ast-make-named */ { -#line 1040 "src/libre/parser.act" +#line 1033 "src/libre/parser.act" (ZIe) = ast_make_expr_named(act_state->poolp, *flags, (ZIa)); if ((ZIe) == NULL) { goto ZL1; } -#line 2668 "src/libre/dialect/native/parser.c" +#line 2661 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-named */ } @@ -2674,14 +2667,14 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-anchor-end */ { -#line 949 "src/libre/parser.act" +#line 942 "src/libre/parser.act" (ZIe) = ast_make_expr_anchor(act_state->poolp, *flags, AST_ANCHOR_END); if ((ZIe) == NULL) { goto ZL1; } -#line 2685 "src/libre/dialect/native/parser.c" +#line 2678 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-anchor-end */ } @@ -2694,11 +2687,11 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e ADVANCE_LEXER; /* BEGINNING OF ACTION: make-group-id */ { -#line 888 "src/libre/parser.act" +#line 881 "src/libre/parser.act" (ZIid) = act_state->group_id++; -#line 2702 "src/libre/dialect/native/parser.c" +#line 2695 "src/libre/dialect/native/parser.c" } /* END OF ACTION: make-group-id */ p_expr (flags, lex_state, act_state, err, &ZIg); @@ -2708,14 +2701,14 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e } /* BEGINNING OF ACTION: ast-make-group */ { -#line 918 "src/libre/parser.act" +#line 911 "src/libre/parser.act" (ZIe) = ast_make_expr_group(act_state->poolp, *flags, (ZIg), (ZIid)); if ((ZIe) == NULL) { goto ZL1; } -#line 2719 "src/libre/dialect/native/parser.c" +#line 2712 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-group */ switch (CURRENT_TERMINAL) { @@ -2732,14 +2725,14 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-anchor-start */ { -#line 942 "src/libre/parser.act" +#line 935 "src/libre/parser.act" (ZIe) = ast_make_expr_anchor(act_state->poolp, *flags, AST_ANCHOR_START); if ((ZIe) == NULL) { goto ZL1; } -#line 2743 "src/libre/dialect/native/parser.c" +#line 2736 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-anchor-start */ } @@ -2772,26 +2765,26 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-atom */ { -#line 711 "src/libre/parser.act" +#line 704 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXATOM; } goto ZL2; -#line 2783 "src/libre/dialect/native/parser.c" +#line 2776 "src/libre/dialect/native/parser.c" } /* END OF ACTION: err-expected-atom */ /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZIe) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZIe) == NULL) { goto ZL2; } -#line 2795 "src/libre/dialect/native/parser.c" +#line 2788 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -2813,14 +2806,14 @@ p_246(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__cla { /* BEGINNING OF ACTION: ast-make-named */ { -#line 1040 "src/libre/parser.act" +#line 1033 "src/libre/parser.act" (ZInode) = ast_make_expr_named(act_state->poolp, *flags, (*ZI243)); if ((ZInode) == NULL) { goto ZL1; } -#line 2824 "src/libre/dialect/native/parser.c" +#line 2817 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-named */ } @@ -2833,12 +2826,12 @@ p_246(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__cla /* BEGINNING OF ACTION: ast-range-endpoint-class */ { -#line 851 "src/libre/parser.act" +#line 844 "src/libre/parser.act" (ZIlower).type = AST_ENDPOINT_NAMED; (ZIlower).u.named.class = (*ZI243); -#line 2842 "src/libre/dialect/native/parser.c" +#line 2835 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-range-endpoint-class */ p_154 (flags, lex_state, act_state, err); @@ -2849,17 +2842,17 @@ p_246(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__cla } /* BEGINNING OF ACTION: mark-range */ { -#line 779 "src/libre/parser.act" +#line 772 "src/libre/parser.act" mark(&act_state->rangestart, &(*ZI244)); mark(&act_state->rangeend, &(ZIend)); -#line 2858 "src/libre/dialect/native/parser.c" +#line 2851 "src/libre/dialect/native/parser.c" } /* END OF ACTION: mark-range */ /* BEGINNING OF ACTION: ast-make-range */ { -#line 1011 "src/libre/parser.act" +#line 1004 "src/libre/parser.act" unsigned char lower, upper; @@ -2888,7 +2881,7 @@ p_246(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__cla goto ZL1; } -#line 2892 "src/libre/dialect/native/parser.c" +#line 2885 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-range */ } @@ -2915,14 +2908,14 @@ p_expr_C_Calt(flags flags, lex_state lex_state, act_state act_state, err err, t_ { /* BEGINNING OF ACTION: ast-make-concat */ { -#line 867 "src/libre/parser.act" +#line 860 "src/libre/parser.act" (ZInode) = ast_make_expr_concat(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 2926 "src/libre/dialect/native/parser.c" +#line 2919 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-concat */ p_expr_C_Clist_Hof_Hpieces (flags, lex_state, act_state, err, ZInode); @@ -2949,14 +2942,14 @@ p_250(flags flags, lex_state lex_state, act_state act_state, err err, t_char *ZI { /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZInode) = ast_make_expr_literal(act_state->poolp, *flags, (*ZI247)); if ((ZInode) == NULL) { goto ZL1; } -#line 2960 "src/libre/dialect/native/parser.c" +#line 2953 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-literal */ } @@ -2969,12 +2962,12 @@ p_250(flags flags, lex_state lex_state, act_state act_state, err err, t_char *ZI /* BEGINNING OF ACTION: ast-range-endpoint-literal */ { -#line 846 "src/libre/parser.act" +#line 839 "src/libre/parser.act" (ZIlower).type = AST_ENDPOINT_LITERAL; (ZIlower).u.literal.c = (unsigned char) (*ZI247); -#line 2978 "src/libre/dialect/native/parser.c" +#line 2971 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-range-endpoint-literal */ p_154 (flags, lex_state, act_state, err); @@ -2985,17 +2978,17 @@ p_250(flags flags, lex_state lex_state, act_state act_state, err err, t_char *ZI } /* BEGINNING OF ACTION: mark-range */ { -#line 779 "src/libre/parser.act" +#line 772 "src/libre/parser.act" mark(&act_state->rangestart, &(*ZI248)); mark(&act_state->rangeend, &(ZIend)); -#line 2994 "src/libre/dialect/native/parser.c" +#line 2987 "src/libre/dialect/native/parser.c" } /* END OF ACTION: mark-range */ /* BEGINNING OF ACTION: ast-make-range */ { -#line 1011 "src/libre/parser.act" +#line 1004 "src/libre/parser.act" unsigned char lower, upper; @@ -3024,7 +3017,7 @@ p_250(flags flags, lex_state lex_state, act_state act_state, err err, t_char *ZI goto ZL1; } -#line 3028 "src/libre/dialect/native/parser.c" +#line 3021 "src/libre/dialect/native/parser.c" } /* END OF ACTION: ast-make-range */ } @@ -3042,7 +3035,7 @@ ZL0:; /* BEGINNING OF TRAILER */ -#line 1059 "src/libre/parser.act" +#line 1052 "src/libre/parser.act" static int @@ -3100,11 +3093,6 @@ ZL0:; lex_state->buf.a = NULL; lex_state->buf.len = 0; -#if PCRE_DIALECT - lex_state->extended_mode_comment = 0; - lex_state->flags_ptr = &flags; -#endif /* PCRE_DIALECT */ - /* XXX: unneccessary since we're lexing from a string */ /* (except for pushing "[" and "]" around ::group-$dialect) */ lx->buf_opaque = &lex_state->buf; @@ -3200,6 +3188,6 @@ ZL0:; return NULL; } -#line 3204 "src/libre/dialect/native/parser.c" +#line 3192 "src/libre/dialect/native/parser.c" /* END OF FILE */ diff --git a/src/libre/dialect/native/parser.h b/src/libre/dialect/native/parser.h index 408a2c546..c833c9629 100644 --- a/src/libre/dialect/native/parser.h +++ b/src/libre/dialect/native/parser.h @@ -9,7 +9,7 @@ /* BEGINNING OF HEADER */ -#line 288 "src/libre/parser.act" +#line 281 "src/libre/parser.act" #include @@ -28,7 +28,7 @@ extern void p_re__native(flags, lex_state, act_state, err, t_ast__expr *); /* BEGINNING OF TRAILER */ -#line 1216 "src/libre/parser.act" +#line 1204 "src/libre/parser.act" #line 35 "src/libre/dialect/native/parser.h" diff --git a/src/libre/dialect/pcre/parser.c b/src/libre/dialect/pcre/parser.c index 137be4555..12987d311 100644 --- a/src/libre/dialect/pcre/parser.c +++ b/src/libre/dialect/pcre/parser.c @@ -124,11 +124,6 @@ /* TODO: use lx's generated conveniences for the pattern buffer */ char a[512]; char *p; - -#if PCRE_DIALECT - int extended_mode_comment; - enum re_flags *flags_ptr; -#endif /* PCRE_DIALECT */ }; static void @@ -210,51 +205,49 @@ } static enum LX_TOKEN - current_token(struct lex_state *lex_state, struct act_state *act_state) + current_token(struct lex_state *lex_state, struct act_state *act_state, + enum re_flags *flags) { #ifndef PCRE_DIALECT (void) lex_state; + (void) flags; return act_state->lex_tok; #else - enum re_flags fl = (lex_state->flags_ptr != NULL) ? lex_state->flags_ptr[0] : 0; - enum LX_TOKEN tok; - - if ((fl & RE_EXTENDED) == 0) { - tok = act_state->lex_tok; - - switch (tok) { + if ((*flags & RE_EXTENDED) == 0) { + switch (act_state->lex_tok) { case TOK_WHITESPACE: case TOK_NEWLINE: case TOK_MAYBE_COMMENT: return TOK_CHAR; default: - return tok; + return act_state->lex_tok; } } + int extended_mode_comment = 0; + restart: - tok = act_state->lex_tok; - if (lex_state->extended_mode_comment) { - switch (tok) { + if (extended_mode_comment) { + switch (act_state->lex_tok) { case TOK_EOF: case TOK_ERROR: case TOK_UNKNOWN: /* don't eat EOF or errors */ - return tok; + return act_state->lex_tok; case TOK_NEWLINE: - lex_state->extended_mode_comment = 0; + extended_mode_comment = 0; /* fall through */ default: advance_lexer(lex_state, act_state); goto restart; } } else { - switch (tok) { + switch (act_state->lex_tok) { case TOK_MAYBE_COMMENT: - lex_state->extended_mode_comment = 1; + extended_mode_comment = 1; /* fall through */ case TOK_WHITESPACE: case TOK_NEWLINE: @@ -262,21 +255,21 @@ goto restart; default: - return tok; + return act_state->lex_tok; } } #endif } #define ADVANCE_LEXER (advance_lexer(lex_state, act_state)) - #define CURRENT_TERMINAL (current_token(lex_state, act_state)) + #define CURRENT_TERMINAL (current_token(lex_state, act_state, flags)) #define ERROR_TERMINAL (TOK_ERROR) #define SAVE_LEXER(tok) do { act_state->lex_tok_save = act_state->lex_tok; \ act_state->lex_tok = tok; } while (0) #define RESTORE_LEXER do { act_state->lex_tok = act_state->lex_tok_save; } while (0) -#line 280 "src/libre/dialect/pcre/parser.c" +#line 273 "src/libre/dialect/pcre/parser.c" #ifndef ERROR_TERMINAL @@ -332,21 +325,21 @@ p_expr_C_Cflags_C_Cflag__set(flags flags, lex_state lex_state, act_state act_sta /* BEGINNING OF EXTRACT: FLAG_EXTENDED */ { -#line 672 "src/libre/parser.act" +#line 665 "src/libre/parser.act" ZIc = RE_EXTENDED; -#line 340 "src/libre/dialect/pcre/parser.c" +#line 333 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: FLAG_EXTENDED */ ADVANCE_LEXER; /* BEGINNING OF ACTION: re-flag-union */ { -#line 807 "src/libre/parser.act" +#line 800 "src/libre/parser.act" (ZIo) = (ZIi) | (ZIc); -#line 350 "src/libre/dialect/pcre/parser.c" +#line 343 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: re-flag-union */ } @@ -363,21 +356,21 @@ p_expr_C_Cflags_C_Cflag__set(flags flags, lex_state lex_state, act_state act_sta /* BEGINNING OF EXTRACT: FLAG_INSENSITIVE */ { -#line 668 "src/libre/parser.act" +#line 661 "src/libre/parser.act" ZIc = RE_ICASE; -#line 371 "src/libre/dialect/pcre/parser.c" +#line 364 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: FLAG_INSENSITIVE */ ADVANCE_LEXER; /* BEGINNING OF ACTION: re-flag-union */ { -#line 807 "src/libre/parser.act" +#line 800 "src/libre/parser.act" (ZIo) = (ZIi) | (ZIc); -#line 381 "src/libre/dialect/pcre/parser.c" +#line 374 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: re-flag-union */ } @@ -388,21 +381,21 @@ p_expr_C_Cflags_C_Cflag__set(flags flags, lex_state lex_state, act_state act_sta /* BEGINNING OF EXTRACT: FLAG_SINGLE */ { -#line 676 "src/libre/parser.act" +#line 669 "src/libre/parser.act" ZIc = RE_SINGLE; -#line 396 "src/libre/dialect/pcre/parser.c" +#line 389 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: FLAG_SINGLE */ ADVANCE_LEXER; /* BEGINNING OF ACTION: re-flag-union */ { -#line 807 "src/libre/parser.act" +#line 800 "src/libre/parser.act" (ZIo) = (ZIi) | (ZIc); -#line 406 "src/libre/dialect/pcre/parser.c" +#line 399 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: re-flag-union */ } @@ -413,14 +406,14 @@ p_expr_C_Cflags_C_Cflag__set(flags flags, lex_state lex_state, act_state act_sta ZIo = ZIi; /* BEGINNING OF ACTION: err-unknown-flag */ { -#line 746 "src/libre/parser.act" +#line 739 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EFLAG; } goto ZL1; -#line 424 "src/libre/dialect/pcre/parser.c" +#line 417 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-unknown-flag */ } @@ -458,7 +451,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags { /* BEGINNING OF EXTRACT: CHAR */ { -#line 582 "src/libre/parser.act" +#line 575 "src/libre/parser.act" /* the first byte may be '\x00' */ assert(lex_state->buf.a[1] == '\0'); @@ -471,7 +464,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags ZIc = lex_state->buf.a[0]; -#line 475 "src/libre/dialect/pcre/parser.c" +#line 468 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: CHAR */ ADVANCE_LEXER; @@ -481,7 +474,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags { /* BEGINNING OF EXTRACT: CONTROL */ { -#line 449 "src/libre/parser.act" +#line 442 "src/libre/parser.act" assert(lex_state->buf.a[0] == '\\'); assert(lex_state->buf.a[1] == 'c'); @@ -523,20 +516,20 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags (void) ZIstart; (void) ZIend; -#line 527 "src/libre/dialect/pcre/parser.c" +#line 520 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: CONTROL */ ADVANCE_LEXER; /* BEGINNING OF ACTION: err-unsupported */ { -#line 767 "src/libre/parser.act" +#line 760 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EUNSUPPORTED; } goto ZL1; -#line 540 "src/libre/dialect/pcre/parser.c" +#line 533 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-unsupported */ } @@ -545,7 +538,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags { /* BEGINNING OF EXTRACT: ESC */ { -#line 393 "src/libre/parser.act" +#line 386 "src/libre/parser.act" assert(lex_state->buf.a[0] == '\\'); assert(lex_state->buf.a[1] != '\0'); @@ -571,7 +564,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags (void) ZIstart; (void) ZIend; -#line 575 "src/libre/dialect/pcre/parser.c" +#line 568 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: ESC */ ADVANCE_LEXER; @@ -581,7 +574,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags { /* BEGINNING OF EXTRACT: HEX */ { -#line 534 "src/libre/parser.act" +#line 527 "src/libre/parser.act" unsigned long u; char *s, *e; @@ -629,7 +622,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags ZIc = (char) (unsigned char) u; -#line 633 "src/libre/dialect/pcre/parser.c" +#line 626 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: HEX */ ADVANCE_LEXER; @@ -639,7 +632,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags { /* BEGINNING OF EXTRACT: OCT */ { -#line 491 "src/libre/parser.act" +#line 484 "src/libre/parser.act" unsigned long u; char *s, *e; @@ -682,7 +675,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags ZIc = (char) (unsigned char) u; -#line 686 "src/libre/dialect/pcre/parser.c" +#line 679 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: OCT */ ADVANCE_LEXER; @@ -692,7 +685,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags { /* BEGINNING OF EXTRACT: UNSUPPORTED */ { -#line 433 "src/libre/parser.act" +#line 426 "src/libre/parser.act" /* handle \1-\9 back references */ if (lex_state->buf.a[0] == '\\' && lex_state->buf.a[1] != '\0' && lex_state->buf.a[2] == '\0') { @@ -708,20 +701,20 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags (void) ZIstart; (void) ZIend; -#line 712 "src/libre/dialect/pcre/parser.c" +#line 705 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: UNSUPPORTED */ ADVANCE_LEXER; /* BEGINNING OF ACTION: err-unsupported */ { -#line 767 "src/libre/parser.act" +#line 760 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EUNSUPPORTED; } goto ZL1; -#line 725 "src/libre/dialect/pcre/parser.c" +#line 718 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-unsupported */ } @@ -733,12 +726,12 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hliteral(flags /* END OF INLINE: 155 */ /* BEGINNING OF ACTION: ast-range-endpoint-literal */ { -#line 846 "src/libre/parser.act" +#line 839 "src/libre/parser.act" (ZIr).type = AST_ENDPOINT_LITERAL; (ZIr).u.literal.c = (unsigned char) (ZIc); -#line 742 "src/libre/dialect/pcre/parser.c" +#line 735 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-range-endpoint-literal */ } @@ -769,13 +762,13 @@ ZL2_expr_C_Ccharacter_Hclass_C_Clist_Hof_Hclass_Hterms:; } /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((ZIclass), (ZInode))) { goto ZL1; } -#line 779 "src/libre/dialect/pcre/parser.c" +#line 772 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-add-alt */ /* BEGINNING OF INLINE: expr::character-class::list-of-class-terms */ @@ -829,13 +822,13 @@ ZL2_expr_C_Clist_Hof_Hpieces:; } /* BEGINNING OF ACTION: ast-add-concat */ { -#line 1047 "src/libre/parser.act" +#line 1040 "src/libre/parser.act" if (!ast_add_expr_concat((ZIcat), (ZIa))) { goto ZL1; } -#line 839 "src/libre/dialect/pcre/parser.c" +#line 832 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-add-concat */ } @@ -881,14 +874,14 @@ p_293(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__cla { /* BEGINNING OF ACTION: ast-make-named */ { -#line 1040 "src/libre/parser.act" +#line 1033 "src/libre/parser.act" (ZInode) = ast_make_expr_named(act_state->poolp, *flags, (*ZI290)); if ((ZInode) == NULL) { goto ZL1; } -#line 892 "src/libre/dialect/pcre/parser.c" +#line 885 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-named */ } @@ -901,12 +894,12 @@ p_293(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__cla /* BEGINNING OF ACTION: ast-range-endpoint-class */ { -#line 851 "src/libre/parser.act" +#line 844 "src/libre/parser.act" (ZIlower).type = AST_ENDPOINT_NAMED; (ZIlower).u.named.class = (*ZI290); -#line 910 "src/libre/dialect/pcre/parser.c" +#line 903 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-range-endpoint-class */ p_168 (flags, lex_state, act_state, err); @@ -917,17 +910,17 @@ p_293(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__cla } /* BEGINNING OF ACTION: mark-range */ { -#line 779 "src/libre/parser.act" +#line 772 "src/libre/parser.act" mark(&act_state->rangestart, &(*ZI291)); mark(&act_state->rangeend, &(ZIend)); -#line 926 "src/libre/dialect/pcre/parser.c" +#line 919 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: mark-range */ /* BEGINNING OF ACTION: ast-make-range */ { -#line 1011 "src/libre/parser.act" +#line 1004 "src/libre/parser.act" unsigned char lower, upper; @@ -956,7 +949,7 @@ p_293(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__cla goto ZL1; } -#line 960 "src/libre/dialect/pcre/parser.c" +#line 953 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-range */ } @@ -987,7 +980,7 @@ p_168(flags flags, lex_state lex_state, act_state act_state, err err) case (TOK_RANGE): /* BEGINNING OF EXTRACT: RANGE */ { -#line 315 "src/libre/parser.act" +#line 308 "src/libre/parser.act" ZI169 = '-'; ZI170 = lex_state->lx.start; @@ -997,7 +990,7 @@ p_168(flags flags, lex_state lex_state, act_state act_state, err err) (void) ZI170; (void) ZI171; -#line 1001 "src/libre/dialect/pcre/parser.c" +#line 994 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: RANGE */ break; @@ -1011,14 +1004,14 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-range */ { -#line 725 "src/libre/parser.act" +#line 718 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXRANGE; } goto ZL2; -#line 1022 "src/libre/dialect/pcre/parser.c" +#line 1015 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-expected-range */ } @@ -1050,7 +1043,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err /* BEGINNING OF EXTRACT: CHAR */ { -#line 582 "src/libre/parser.act" +#line 575 "src/libre/parser.act" /* the first byte may be '\x00' */ assert(lex_state->buf.a[1] == '\0'); @@ -1063,7 +1056,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err ZIc = lex_state->buf.a[0]; -#line 1067 "src/libre/dialect/pcre/parser.c" +#line 1060 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: CHAR */ ADVANCE_LEXER; @@ -1076,7 +1069,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err /* BEGINNING OF EXTRACT: CONTROL */ { -#line 449 "src/libre/parser.act" +#line 442 "src/libre/parser.act" assert(lex_state->buf.a[0] == '\\'); assert(lex_state->buf.a[1] == 'c'); @@ -1118,7 +1111,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err (void) ZI123; (void) ZI124; -#line 1122 "src/libre/dialect/pcre/parser.c" +#line 1115 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: CONTROL */ ADVANCE_LEXER; @@ -1131,7 +1124,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err /* BEGINNING OF EXTRACT: ESC */ { -#line 393 "src/libre/parser.act" +#line 386 "src/libre/parser.act" assert(lex_state->buf.a[0] == '\\'); assert(lex_state->buf.a[1] != '\0'); @@ -1157,7 +1150,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err (void) ZI113; (void) ZI114; -#line 1161 "src/libre/dialect/pcre/parser.c" +#line 1154 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: ESC */ ADVANCE_LEXER; @@ -1170,7 +1163,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err /* BEGINNING OF EXTRACT: HEX */ { -#line 534 "src/libre/parser.act" +#line 527 "src/libre/parser.act" unsigned long u; char *s, *e; @@ -1218,7 +1211,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err ZIc = (char) (unsigned char) u; -#line 1222 "src/libre/dialect/pcre/parser.c" +#line 1215 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: HEX */ ADVANCE_LEXER; @@ -1231,7 +1224,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err /* BEGINNING OF EXTRACT: NOESC */ { -#line 419 "src/libre/parser.act" +#line 412 "src/libre/parser.act" assert(lex_state->buf.a[0] == '\\'); assert(lex_state->buf.a[1] != '\0'); @@ -1245,7 +1238,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err (void) ZI115; (void) ZI116; -#line 1249 "src/libre/dialect/pcre/parser.c" +#line 1242 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: NOESC */ ADVANCE_LEXER; @@ -1258,7 +1251,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err /* BEGINNING OF EXTRACT: OCT */ { -#line 491 "src/libre/parser.act" +#line 484 "src/libre/parser.act" unsigned long u; char *s, *e; @@ -1301,7 +1294,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err ZIc = (char) (unsigned char) u; -#line 1305 "src/libre/dialect/pcre/parser.c" +#line 1298 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: OCT */ ADVANCE_LEXER; @@ -1314,7 +1307,7 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err /* BEGINNING OF EXTRACT: UNSUPPORTED */ { -#line 433 "src/libre/parser.act" +#line 426 "src/libre/parser.act" /* handle \1-\9 back references */ if (lex_state->buf.a[0] == '\\' && lex_state->buf.a[1] != '\0' && lex_state->buf.a[2] == '\0') { @@ -1330,20 +1323,20 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err (void) ZI125; (void) ZI126; -#line 1334 "src/libre/dialect/pcre/parser.c" +#line 1327 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: UNSUPPORTED */ ADVANCE_LEXER; /* BEGINNING OF ACTION: err-unsupported */ { -#line 767 "src/libre/parser.act" +#line 760 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EUNSUPPORTED; } goto ZL1; -#line 1347 "src/libre/dialect/pcre/parser.c" +#line 1340 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-unsupported */ } @@ -1355,14 +1348,14 @@ p_expr_C_Cliteral(flags flags, lex_state lex_state, act_state act_state, err err /* END OF INLINE: 111 */ /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZInode) = ast_make_expr_literal(act_state->poolp, *flags, (ZIc)); if ((ZInode) == NULL) { goto ZL1; } -#line 1366 "src/libre/dialect/pcre/parser.c" +#line 1359 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-literal */ } @@ -1388,7 +1381,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ /* BEGINNING OF EXTRACT: CHAR */ { -#line 582 "src/libre/parser.act" +#line 575 "src/libre/parser.act" /* the first byte may be '\x00' */ assert(lex_state->buf.a[1] == '\0'); @@ -1401,7 +1394,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ ZI306 = lex_state->buf.a[0]; -#line 1405 "src/libre/dialect/pcre/parser.c" +#line 1398 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: CHAR */ ADVANCE_LEXER; @@ -1420,7 +1413,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ /* BEGINNING OF EXTRACT: CONTROL */ { -#line 449 "src/libre/parser.act" +#line 442 "src/libre/parser.act" assert(lex_state->buf.a[0] == '\\'); assert(lex_state->buf.a[1] == 'c'); @@ -1462,20 +1455,20 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ (void) ZI311; (void) ZI312; -#line 1466 "src/libre/dialect/pcre/parser.c" +#line 1459 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: CONTROL */ ADVANCE_LEXER; /* BEGINNING OF ACTION: err-unsupported */ { -#line 767 "src/libre/parser.act" +#line 760 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EUNSUPPORTED; } goto ZL1; -#line 1479 "src/libre/dialect/pcre/parser.c" +#line 1472 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-unsupported */ p_317 (flags, lex_state, act_state, err, &ZI310, &ZI311, &ZInode); @@ -1493,7 +1486,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ /* BEGINNING OF EXTRACT: ESC */ { -#line 393 "src/libre/parser.act" +#line 386 "src/libre/parser.act" assert(lex_state->buf.a[0] == '\\'); assert(lex_state->buf.a[1] != '\0'); @@ -1519,7 +1512,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ (void) ZI295; (void) ZI296; -#line 1523 "src/libre/dialect/pcre/parser.c" +#line 1516 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: ESC */ ADVANCE_LEXER; @@ -1538,7 +1531,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ /* BEGINNING OF EXTRACT: HEX */ { -#line 534 "src/libre/parser.act" +#line 527 "src/libre/parser.act" unsigned long u; char *s, *e; @@ -1586,7 +1579,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ ZI302 = (char) (unsigned char) u; -#line 1590 "src/libre/dialect/pcre/parser.c" +#line 1583 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: HEX */ ADVANCE_LEXER; @@ -1605,7 +1598,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ /* BEGINNING OF EXTRACT: NAMED_CLASS */ { -#line 654 "src/libre/parser.act" +#line 647 "src/libre/parser.act" ZI290 = DIALECT_CLASS(lex_state->buf.a); if (ZI290 == NULL) { @@ -1619,7 +1612,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ (void) ZI291; (void) ZI292; -#line 1623 "src/libre/dialect/pcre/parser.c" +#line 1616 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: NAMED_CLASS */ ADVANCE_LEXER; @@ -1638,7 +1631,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ /* BEGINNING OF EXTRACT: NOESC */ { -#line 419 "src/libre/parser.act" +#line 412 "src/libre/parser.act" assert(lex_state->buf.a[0] == '\\'); assert(lex_state->buf.a[1] != '\0'); @@ -1652,20 +1645,20 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ (void) ZI134; (void) ZI135; -#line 1656 "src/libre/dialect/pcre/parser.c" +#line 1649 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: NOESC */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZInode) = ast_make_expr_literal(act_state->poolp, *flags, (ZIc)); if ((ZInode) == NULL) { goto ZL1; } -#line 1669 "src/libre/dialect/pcre/parser.c" +#line 1662 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-literal */ } @@ -1678,7 +1671,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ /* BEGINNING OF EXTRACT: OCT */ { -#line 491 "src/libre/parser.act" +#line 484 "src/libre/parser.act" unsigned long u; char *s, *e; @@ -1721,7 +1714,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ ZI298 = (char) (unsigned char) u; -#line 1725 "src/libre/dialect/pcre/parser.c" +#line 1718 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: OCT */ ADVANCE_LEXER; @@ -1740,7 +1733,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ /* BEGINNING OF EXTRACT: UNSUPPORTED */ { -#line 433 "src/libre/parser.act" +#line 426 "src/libre/parser.act" /* handle \1-\9 back references */ if (lex_state->buf.a[0] == '\\' && lex_state->buf.a[1] != '\0' && lex_state->buf.a[2] == '\0') { @@ -1756,20 +1749,20 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ (void) ZI315; (void) ZI316; -#line 1760 "src/libre/dialect/pcre/parser.c" +#line 1753 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: UNSUPPORTED */ ADVANCE_LEXER; /* BEGINNING OF ACTION: err-unsupported */ { -#line 767 "src/libre/parser.act" +#line 760 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EUNSUPPORTED; } goto ZL1; -#line 1773 "src/libre/dialect/pcre/parser.c" +#line 1766 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-unsupported */ p_317 (flags, lex_state, act_state, err, &ZI314, &ZI315, &ZInode); @@ -1808,14 +1801,14 @@ p_expr_C_Ccomment(flags flags, lex_state lex_state, act_state act_state, err err ADVANCE_LEXER; /* BEGINNING OF ACTION: err-invalid-comment */ { -#line 690 "src/libre/parser.act" +#line 683 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EBADCOMMENT; } goto ZL1; -#line 1819 "src/libre/dialect/pcre/parser.c" +#line 1812 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-invalid-comment */ } @@ -1842,7 +1835,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hclass(flags fl case (TOK_NAMED__CLASS): /* BEGINNING OF EXTRACT: NAMED_CLASS */ { -#line 654 "src/libre/parser.act" +#line 647 "src/libre/parser.act" ZIid = DIALECT_CLASS(lex_state->buf.a); if (ZIid == NULL) { @@ -1856,7 +1849,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hclass(flags fl (void) ZIstart; (void) ZIend; -#line 1860 "src/libre/dialect/pcre/parser.c" +#line 1853 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: NAMED_CLASS */ break; @@ -1866,12 +1859,12 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_C_Crange_Hendpoint_Hclass(flags fl ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-range-endpoint-class */ { -#line 851 "src/libre/parser.act" +#line 844 "src/libre/parser.act" (ZIr).type = AST_ENDPOINT_NAMED; (ZIr).u.named.class = (ZIid); -#line 1875 "src/libre/dialect/pcre/parser.c" +#line 1868 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-range-endpoint-class */ } @@ -1906,7 +1899,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state /* BEGINNING OF EXTRACT: OPENGROUP */ { -#line 325 "src/libre/parser.act" +#line 318 "src/libre/parser.act" ZIstart = lex_state->lx.start; ZI181 = lex_state->lx.end; @@ -1914,20 +1907,20 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state (void) ZIstart; (void) ZI181; -#line 1918 "src/libre/dialect/pcre/parser.c" +#line 1911 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: OPENGROUP */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-alt */ { -#line 874 "src/libre/parser.act" +#line 867 "src/libre/parser.act" (ZInode) = ast_make_expr_alt(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 1931 "src/libre/dialect/pcre/parser.c" +#line 1924 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-alt */ ZItmp = ZInode; @@ -1947,7 +1940,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state /* BEGINNING OF EXTRACT: OPENGROUPCB */ { -#line 341 "src/libre/parser.act" +#line 334 "src/libre/parser.act" ZIstart = lex_state->lx.start; ZI200 = lex_state->lx.end; @@ -1955,30 +1948,30 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state (void) ZIstart; (void) ZI200; -#line 1959 "src/libre/dialect/pcre/parser.c" +#line 1952 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: OPENGROUPCB */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-alt */ { -#line 874 "src/libre/parser.act" +#line 867 "src/libre/parser.act" (ZInode) = ast_make_expr_alt(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 1972 "src/libre/dialect/pcre/parser.c" +#line 1965 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-alt */ ZItmp = ZInode; /* BEGINNING OF ACTION: make-literal-cbrak */ { -#line 892 "src/libre/parser.act" +#line 885 "src/libre/parser.act" (ZIcbrak) = ']'; -#line 1982 "src/libre/dialect/pcre/parser.c" +#line 1975 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: make-literal-cbrak */ p_209 (flags, lex_state, act_state, err, &ZIstart, &ZIcbrak, &ZInode1); @@ -1988,13 +1981,13 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state } /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((ZItmp), (ZInode1))) { goto ZL1; } -#line 1998 "src/libre/dialect/pcre/parser.c" +#line 1991 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-add-alt */ p_expr_C_Ccharacter_Hclass_C_Clist_Hof_Hclass_Hterms (flags, lex_state, act_state, err, ZItmp); @@ -2010,7 +2003,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state /* BEGINNING OF EXTRACT: OPENGROUPINV */ { -#line 333 "src/libre/parser.act" +#line 326 "src/libre/parser.act" ZIstart = lex_state->lx.start; ZI192 = lex_state->lx.end; @@ -2018,26 +2011,26 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state (void) ZIstart; (void) ZI192; -#line 2022 "src/libre/dialect/pcre/parser.c" +#line 2015 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: OPENGROUPINV */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-alt */ { -#line 874 "src/libre/parser.act" +#line 867 "src/libre/parser.act" (ZInode) = ast_make_expr_alt(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 2035 "src/libre/dialect/pcre/parser.c" +#line 2028 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-alt */ ZItmp = ZInode; /* BEGINNING OF ACTION: ast-make-invert */ { -#line 973 "src/libre/parser.act" +#line 966 "src/libre/parser.act" struct ast_expr *any; @@ -2075,7 +2068,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state goto ZL1; } -#line 2079 "src/libre/dialect/pcre/parser.c" +#line 2072 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-invert */ p_194 (flags, lex_state, act_state, err, &ZItmp); @@ -2094,7 +2087,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state /* BEGINNING OF EXTRACT: OPENGROUPINVCB */ { -#line 349 "src/libre/parser.act" +#line 342 "src/libre/parser.act" ZIstart = lex_state->lx.start; ZI207 = lex_state->lx.end; @@ -2102,26 +2095,26 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state (void) ZIstart; (void) ZI207; -#line 2106 "src/libre/dialect/pcre/parser.c" +#line 2099 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: OPENGROUPINVCB */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-alt */ { -#line 874 "src/libre/parser.act" +#line 867 "src/libre/parser.act" (ZInode) = ast_make_expr_alt(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 2119 "src/libre/dialect/pcre/parser.c" +#line 2112 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-alt */ ZItmp = ZInode; /* BEGINNING OF ACTION: ast-make-invert */ { -#line 973 "src/libre/parser.act" +#line 966 "src/libre/parser.act" struct ast_expr *any; @@ -2159,16 +2152,16 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state goto ZL1; } -#line 2163 "src/libre/dialect/pcre/parser.c" +#line 2156 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-invert */ /* BEGINNING OF ACTION: make-literal-cbrak */ { -#line 892 "src/libre/parser.act" +#line 885 "src/libre/parser.act" (ZIcbrak) = ']'; -#line 2172 "src/libre/dialect/pcre/parser.c" +#line 2165 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: make-literal-cbrak */ p_209 (flags, lex_state, act_state, err, &ZIstart, &ZIcbrak, &ZInode1); @@ -2178,13 +2171,13 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state } /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((ZItmp), (ZInode1))) { goto ZL1; } -#line 2188 "src/libre/dialect/pcre/parser.c" +#line 2181 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-add-alt */ p_expr_C_Ccharacter_Hclass_C_Clist_Hof_Hclass_Hterms (flags, lex_state, act_state, err, ZItmp); @@ -2210,7 +2203,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state /* BEGINNING OF EXTRACT: CLOSEGROUP */ { -#line 357 "src/libre/parser.act" +#line 350 "src/libre/parser.act" ZI214 = ']'; ZI215 = lex_state->lx.start; @@ -2220,18 +2213,18 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state (void) ZI215; (void) ZIend; -#line 2224 "src/libre/dialect/pcre/parser.c" +#line 2217 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: CLOSEGROUP */ ADVANCE_LEXER; /* BEGINNING OF ACTION: mark-group */ { -#line 774 "src/libre/parser.act" +#line 767 "src/libre/parser.act" mark(&act_state->groupstart, &(ZIstart)); mark(&act_state->groupend, &(ZIend)); -#line 2235 "src/libre/dialect/pcre/parser.c" +#line 2228 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: mark-group */ } @@ -2245,7 +2238,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state /* BEGINNING OF EXTRACT: CLOSEGROUPRANGE */ { -#line 367 "src/libre/parser.act" +#line 360 "src/libre/parser.act" ZIcrange = '-'; ZI217 = lex_state->lx.start; @@ -2255,41 +2248,41 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state (void) ZI217; (void) ZIend; -#line 2259 "src/libre/dialect/pcre/parser.c" +#line 2252 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: CLOSEGROUPRANGE */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZIrange) = ast_make_expr_literal(act_state->poolp, *flags, (ZIcrange)); if ((ZIrange) == NULL) { goto ZL4; } -#line 2272 "src/libre/dialect/pcre/parser.c" +#line 2265 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-literal */ /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((ZItmp), (ZIrange))) { goto ZL4; } -#line 2283 "src/libre/dialect/pcre/parser.c" +#line 2276 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-add-alt */ /* BEGINNING OF ACTION: mark-group */ { -#line 774 "src/libre/parser.act" +#line 767 "src/libre/parser.act" mark(&act_state->groupstart, &(ZIstart)); mark(&act_state->groupend, &(ZIend)); -#line 2293 "src/libre/dialect/pcre/parser.c" +#line 2286 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: mark-group */ } @@ -2302,14 +2295,14 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state { /* BEGINNING OF ACTION: err-expected-closegroup */ { -#line 732 "src/libre/parser.act" +#line 725 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXCLOSEGROUP; } goto ZL1; -#line 2313 "src/libre/dialect/pcre/parser.c" +#line 2306 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-expected-closegroup */ } @@ -2345,7 +2338,7 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_Hend(flags flags, lex_state lex_st /* BEGINNING OF EXTRACT: RANGE */ { -#line 315 "src/libre/parser.act" +#line 308 "src/libre/parser.act" ZIc = '-'; ZI163 = lex_state->lx.start; @@ -2355,18 +2348,18 @@ p_expr_C_Ccharacter_Hclass_C_Crange_Hendpoint_Hend(flags flags, lex_state lex_st (void) ZI163; (void) ZIend; -#line 2359 "src/libre/dialect/pcre/parser.c" +#line 2352 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: RANGE */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-range-endpoint-literal */ { -#line 846 "src/libre/parser.act" +#line 839 "src/libre/parser.act" (ZIr).type = AST_ENDPOINT_LITERAL; (ZIr).u.literal.c = (unsigned char) (ZIc); -#line 2370 "src/libre/dialect/pcre/parser.c" +#line 2363 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-range-endpoint-literal */ } @@ -2408,14 +2401,14 @@ p_317(flags flags, lex_state lex_state, act_state act_state, err err, t_char *ZI { /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZInode) = ast_make_expr_literal(act_state->poolp, *flags, (*ZI314)); if ((ZInode) == NULL) { goto ZL1; } -#line 2419 "src/libre/dialect/pcre/parser.c" +#line 2412 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-literal */ } @@ -2428,12 +2421,12 @@ p_317(flags flags, lex_state lex_state, act_state act_state, err err, t_char *ZI /* BEGINNING OF ACTION: ast-range-endpoint-literal */ { -#line 846 "src/libre/parser.act" +#line 839 "src/libre/parser.act" (ZIlower).type = AST_ENDPOINT_LITERAL; (ZIlower).u.literal.c = (unsigned char) (*ZI314); -#line 2437 "src/libre/dialect/pcre/parser.c" +#line 2430 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-range-endpoint-literal */ p_168 (flags, lex_state, act_state, err); @@ -2444,17 +2437,17 @@ p_317(flags flags, lex_state lex_state, act_state act_state, err err, t_char *ZI } /* BEGINNING OF ACTION: mark-range */ { -#line 779 "src/libre/parser.act" +#line 772 "src/libre/parser.act" mark(&act_state->rangestart, &(*ZI315)); mark(&act_state->rangeend, &(ZIend)); -#line 2453 "src/libre/dialect/pcre/parser.c" +#line 2446 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: mark-range */ /* BEGINNING OF ACTION: ast-make-range */ { -#line 1011 "src/libre/parser.act" +#line 1004 "src/libre/parser.act" unsigned char lower, upper; @@ -2483,7 +2476,7 @@ p_317(flags flags, lex_state lex_state, act_state act_state, err err, t_char *ZI goto ZL1; } -#line 2487 "src/libre/dialect/pcre/parser.c" +#line 2480 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-range */ } @@ -2529,16 +2522,16 @@ p_expr_C_Cpiece(flags flags, lex_state lex_state, act_state act_state, err err, /* BEGINNING OF ACTION: count-one */ { -#line 827 "src/libre/parser.act" +#line 820 "src/libre/parser.act" (ZIc) = ast_make_count(1, 1); -#line 2537 "src/libre/dialect/pcre/parser.c" +#line 2530 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: count-one */ /* BEGINNING OF ACTION: ast-make-piece */ { -#line 904 "src/libre/parser.act" +#line 897 "src/libre/parser.act" if ((ZIc).min == 0 && (ZIc).max == 0) { (ZInode) = ast_make_expr_empty(act_state->poolp, *flags); @@ -2552,7 +2545,7 @@ p_expr_C_Cpiece(flags flags, lex_state lex_state, act_state act_state, err err, goto ZL1; } -#line 2556 "src/libre/dialect/pcre/parser.c" +#line 2549 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-piece */ } @@ -2585,7 +2578,7 @@ p_320(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI3 /* BEGINNING OF EXTRACT: CLOSECOUNT */ { -#line 385 "src/libre/parser.act" +#line 378 "src/libre/parser.act" ZI256 = lex_state->lx.start; ZIend = lex_state->lx.end; @@ -2593,23 +2586,23 @@ p_320(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI3 (void) ZI256; (void) ZIend; -#line 2597 "src/libre/dialect/pcre/parser.c" +#line 2590 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: CLOSECOUNT */ ADVANCE_LEXER; /* BEGINNING OF ACTION: mark-count */ { -#line 784 "src/libre/parser.act" +#line 777 "src/libre/parser.act" mark(&act_state->countstart, &(*ZI318)); mark(&act_state->countend, &(ZIend)); -#line 2608 "src/libre/dialect/pcre/parser.c" +#line 2601 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: mark-count */ /* BEGINNING OF ACTION: count-range */ { -#line 831 "src/libre/parser.act" +#line 824 "src/libre/parser.act" if ((*ZIm) < (*ZIm)) { err->e = RE_ENEGCOUNT; @@ -2624,7 +2617,7 @@ p_320(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI3 (ZIc) = ast_make_count((*ZIm), (*ZIm)); -#line 2628 "src/libre/dialect/pcre/parser.c" +#line 2621 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: count-range */ } @@ -2663,14 +2656,14 @@ p_expr(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__ex { /* BEGINNING OF ACTION: ast-make-alt */ { -#line 874 "src/libre/parser.act" +#line 867 "src/libre/parser.act" (ZInode) = ast_make_expr_alt(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 2674 "src/libre/dialect/pcre/parser.c" +#line 2667 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-alt */ p_expr_C_Clist_Hof_Halts (flags, lex_state, act_state, err, ZInode); @@ -2684,26 +2677,26 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-alts */ { -#line 718 "src/libre/parser.act" +#line 711 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXALTS; } goto ZL2; -#line 2695 "src/libre/dialect/pcre/parser.c" +#line 2688 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-expected-alts */ /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZInode) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL2; } -#line 2707 "src/libre/dialect/pcre/parser.c" +#line 2700 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -2729,7 +2722,7 @@ p_321(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI3 /* BEGINNING OF EXTRACT: CLOSECOUNT */ { -#line 385 "src/libre/parser.act" +#line 378 "src/libre/parser.act" ZI261 = lex_state->lx.start; ZIend = lex_state->lx.end; @@ -2737,32 +2730,32 @@ p_321(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI3 (void) ZI261; (void) ZIend; -#line 2741 "src/libre/dialect/pcre/parser.c" +#line 2734 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: CLOSECOUNT */ ADVANCE_LEXER; /* BEGINNING OF ACTION: mark-count */ { -#line 784 "src/libre/parser.act" +#line 777 "src/libre/parser.act" mark(&act_state->countstart, &(*ZI318)); mark(&act_state->countend, &(ZIend)); -#line 2752 "src/libre/dialect/pcre/parser.c" +#line 2745 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: mark-count */ /* BEGINNING OF ACTION: count-unbounded */ { -#line 811 "src/libre/parser.act" +#line 804 "src/libre/parser.act" (ZIn) = AST_COUNT_UNBOUNDED; -#line 2761 "src/libre/dialect/pcre/parser.c" +#line 2754 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: count-unbounded */ /* BEGINNING OF ACTION: count-range */ { -#line 831 "src/libre/parser.act" +#line 824 "src/libre/parser.act" if ((ZIn) < (*ZIm)) { err->e = RE_ENEGCOUNT; @@ -2777,7 +2770,7 @@ p_321(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI3 (ZIc) = ast_make_count((*ZIm), (ZIn)); -#line 2781 "src/libre/dialect/pcre/parser.c" +#line 2774 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: count-range */ } @@ -2790,7 +2783,7 @@ p_321(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI3 /* BEGINNING OF EXTRACT: COUNT */ { -#line 634 "src/libre/parser.act" +#line 627 "src/libre/parser.act" unsigned long u; char *e; @@ -2810,7 +2803,7 @@ p_321(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI3 ZIn = (unsigned int) u; -#line 2814 "src/libre/dialect/pcre/parser.c" +#line 2807 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: COUNT */ ADVANCE_LEXER; @@ -2818,7 +2811,7 @@ p_321(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI3 case (TOK_CLOSECOUNT): /* BEGINNING OF EXTRACT: CLOSECOUNT */ { -#line 385 "src/libre/parser.act" +#line 378 "src/libre/parser.act" ZI259 = lex_state->lx.start; ZIend = lex_state->lx.end; @@ -2826,7 +2819,7 @@ p_321(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI3 (void) ZI259; (void) ZIend; -#line 2830 "src/libre/dialect/pcre/parser.c" +#line 2823 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: CLOSECOUNT */ break; @@ -2836,17 +2829,17 @@ p_321(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI3 ADVANCE_LEXER; /* BEGINNING OF ACTION: mark-count */ { -#line 784 "src/libre/parser.act" +#line 777 "src/libre/parser.act" mark(&act_state->countstart, &(*ZI318)); mark(&act_state->countend, &(ZIend)); -#line 2845 "src/libre/dialect/pcre/parser.c" +#line 2838 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: mark-count */ /* BEGINNING OF ACTION: count-range */ { -#line 831 "src/libre/parser.act" +#line 824 "src/libre/parser.act" if ((ZIn) < (*ZIm)) { err->e = RE_ENEGCOUNT; @@ -2861,7 +2854,7 @@ p_321(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI3 (ZIc) = ast_make_count((*ZIm), (ZIn)); -#line 2865 "src/libre/dialect/pcre/parser.c" +#line 2858 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: count-range */ } @@ -2892,7 +2885,7 @@ p_194(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp /* BEGINNING OF EXTRACT: RANGE */ { -#line 315 "src/libre/parser.act" +#line 308 "src/libre/parser.act" ZIc = '-'; ZIrstart = lex_state->lx.start; @@ -2902,7 +2895,7 @@ p_194(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp (void) ZIrstart; (void) ZI195; -#line 2906 "src/libre/dialect/pcre/parser.c" +#line 2899 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: RANGE */ ADVANCE_LEXER; @@ -2913,14 +2906,14 @@ p_194(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp { /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZInode1) = ast_make_expr_literal(act_state->poolp, *flags, (ZIc)); if ((ZInode1) == NULL) { goto ZL1; } -#line 2924 "src/libre/dialect/pcre/parser.c" +#line 2917 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-literal */ } @@ -2936,17 +2929,17 @@ p_194(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp /* BEGINNING OF ACTION: ast-range-endpoint-literal */ { -#line 846 "src/libre/parser.act" +#line 839 "src/libre/parser.act" (ZIlower).type = AST_ENDPOINT_LITERAL; (ZIlower).u.literal.c = (unsigned char) (ZIc); -#line 2945 "src/libre/dialect/pcre/parser.c" +#line 2938 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-range-endpoint-literal */ /* BEGINNING OF EXTRACT: RANGE */ { -#line 315 "src/libre/parser.act" +#line 308 "src/libre/parser.act" ZI197 = '-'; ZI198 = lex_state->lx.start; @@ -2956,7 +2949,7 @@ p_194(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp (void) ZI198; (void) ZI199; -#line 2960 "src/libre/dialect/pcre/parser.c" +#line 2953 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: RANGE */ ADVANCE_LEXER; @@ -2967,7 +2960,7 @@ p_194(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp } /* BEGINNING OF ACTION: ast-make-range */ { -#line 1011 "src/libre/parser.act" +#line 1004 "src/libre/parser.act" unsigned char lower, upper; @@ -2996,7 +2989,7 @@ p_194(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp goto ZL1; } -#line 3000 "src/libre/dialect/pcre/parser.c" +#line 2993 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-range */ } @@ -3006,13 +2999,13 @@ p_194(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp /* END OF INLINE: 196 */ /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((*ZItmp), (ZInode1))) { goto ZL1; } -#line 3016 "src/libre/dialect/pcre/parser.c" +#line 3009 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-add-alt */ } @@ -3051,20 +3044,20 @@ p_expr_C_Cflags(flags flags, lex_state lex_state, act_state act_state, err err, ADVANCE_LEXER; /* BEGINNING OF ACTION: re-flag-none */ { -#line 803 "src/libre/parser.act" +#line 796 "src/libre/parser.act" (ZIempty__pos) = RE_FLAGS_NONE; -#line 3059 "src/libre/dialect/pcre/parser.c" +#line 3052 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: re-flag-none */ /* BEGINNING OF ACTION: re-flag-none */ { -#line 803 "src/libre/parser.act" +#line 796 "src/libre/parser.act" (ZIempty__neg) = RE_FLAGS_NONE; -#line 3068 "src/libre/dialect/pcre/parser.c" +#line 3061 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: re-flag-none */ /* BEGINNING OF INLINE: 231 */ @@ -3117,7 +3110,7 @@ p_expr_C_Cflags(flags flags, lex_state lex_state, act_state act_state, err err, ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-mask-re-flags */ { -#line 933 "src/libre/parser.act" +#line 926 "src/libre/parser.act" /* * Note: in cases like `(?i-i)`, the negative is @@ -3126,19 +3119,19 @@ p_expr_C_Cflags(flags flags, lex_state lex_state, act_state act_state, err err, *flags |= (ZIpos); *flags &= ~(ZIneg); -#line 3130 "src/libre/dialect/pcre/parser.c" +#line 3123 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-mask-re-flags */ /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZInode) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL5; } -#line 3142 "src/libre/dialect/pcre/parser.c" +#line 3135 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -3151,16 +3144,16 @@ p_expr_C_Cflags(flags flags, lex_state lex_state, act_state act_state, err err, ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-get-re-flags */ { -#line 925 "src/libre/parser.act" +#line 918 "src/libre/parser.act" (ZIflags) = *flags; -#line 3159 "src/libre/dialect/pcre/parser.c" +#line 3152 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-get-re-flags */ /* BEGINNING OF ACTION: ast-mask-re-flags */ { -#line 933 "src/libre/parser.act" +#line 926 "src/libre/parser.act" /* * Note: in cases like `(?i-i)`, the negative is @@ -3169,7 +3162,7 @@ p_expr_C_Cflags(flags flags, lex_state lex_state, act_state act_state, err err, *flags |= (ZIpos); *flags &= ~(ZIneg); -#line 3173 "src/libre/dialect/pcre/parser.c" +#line 3166 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-mask-re-flags */ p_expr (flags, lex_state, act_state, err, &ZIe); @@ -3179,11 +3172,11 @@ p_expr_C_Cflags(flags flags, lex_state lex_state, act_state act_state, err err, } /* BEGINNING OF ACTION: ast-set-re-flags */ { -#line 929 "src/libre/parser.act" +#line 922 "src/libre/parser.act" *flags = (ZIflags); -#line 3187 "src/libre/dialect/pcre/parser.c" +#line 3180 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-set-re-flags */ switch (CURRENT_TERMINAL) { @@ -3204,26 +3197,26 @@ p_expr_C_Cflags(flags flags, lex_state lex_state, act_state act_state, err err, { /* BEGINNING OF ACTION: err-expected-closeflags */ { -#line 753 "src/libre/parser.act" +#line 746 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXCLOSEFLAGS; } goto ZL1; -#line 3215 "src/libre/dialect/pcre/parser.c" +#line 3208 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-expected-closeflags */ /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZInode) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 3227 "src/libre/dialect/pcre/parser.c" +#line 3220 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -3257,7 +3250,7 @@ p_expr_C_Cpiece_C_Clist_Hof_Hcounts(flags flags, lex_state lex_state, act_state } /* BEGINNING OF ACTION: ast-make-piece */ { -#line 904 "src/libre/parser.act" +#line 897 "src/libre/parser.act" if ((ZIc).min == 0 && (ZIc).max == 0) { (ZInode) = ast_make_expr_empty(act_state->poolp, *flags); @@ -3271,7 +3264,7 @@ p_expr_C_Cpiece_C_Clist_Hof_Hcounts(flags flags, lex_state lex_state, act_state goto ZL1; } -#line 3275 "src/libre/dialect/pcre/parser.c" +#line 3268 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-piece */ /* BEGINNING OF INLINE: 264 */ @@ -3282,14 +3275,14 @@ p_expr_C_Cpiece_C_Clist_Hof_Hcounts(flags flags, lex_state lex_state, act_state ADVANCE_LEXER; /* BEGINNING OF ACTION: err-unsupported */ { -#line 767 "src/libre/parser.act" +#line 760 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EUNSUPPORTED; } goto ZL1; -#line 3293 "src/libre/dialect/pcre/parser.c" +#line 3286 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-unsupported */ } @@ -3299,14 +3292,14 @@ p_expr_C_Cpiece_C_Clist_Hof_Hcounts(flags flags, lex_state lex_state, act_state ADVANCE_LEXER; /* BEGINNING OF ACTION: err-unsupported */ { -#line 767 "src/libre/parser.act" +#line 760 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EUNSUPPORTED; } goto ZL1; -#line 3310 "src/libre/dialect/pcre/parser.c" +#line 3303 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-unsupported */ } @@ -3391,7 +3384,7 @@ p_class_Hnamed(flags flags, lex_state lex_state, act_state act_state, err err, t case (TOK_NAMED__CLASS): /* BEGINNING OF EXTRACT: NAMED_CLASS */ { -#line 654 "src/libre/parser.act" +#line 647 "src/libre/parser.act" ZIid = DIALECT_CLASS(lex_state->buf.a); if (ZIid == NULL) { @@ -3405,7 +3398,7 @@ p_class_Hnamed(flags flags, lex_state lex_state, act_state act_state, err err, t (void) ZIstart; (void) ZIend; -#line 3409 "src/libre/dialect/pcre/parser.c" +#line 3402 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: NAMED_CLASS */ break; @@ -3415,14 +3408,14 @@ p_class_Hnamed(flags flags, lex_state lex_state, act_state act_state, err err, t ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-named */ { -#line 1040 "src/libre/parser.act" +#line 1033 "src/libre/parser.act" (ZInode) = ast_make_expr_named(act_state->poolp, *flags, (ZIid)); if ((ZInode) == NULL) { goto ZL1; } -#line 3426 "src/libre/dialect/pcre/parser.c" +#line 3419 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-named */ } @@ -3446,14 +3439,14 @@ p_209(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZIs { /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZInode1) = ast_make_expr_literal(act_state->poolp, *flags, (*ZIcbrak)); if ((ZInode1) == NULL) { goto ZL1; } -#line 3457 "src/libre/dialect/pcre/parser.c" +#line 3450 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-literal */ } @@ -3470,17 +3463,17 @@ p_209(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZIs /* BEGINNING OF ACTION: ast-range-endpoint-literal */ { -#line 846 "src/libre/parser.act" +#line 839 "src/libre/parser.act" (ZIr).type = AST_ENDPOINT_LITERAL; (ZIr).u.literal.c = (unsigned char) (*ZIcbrak); -#line 3479 "src/libre/dialect/pcre/parser.c" +#line 3472 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-range-endpoint-literal */ /* BEGINNING OF EXTRACT: RANGE */ { -#line 315 "src/libre/parser.act" +#line 308 "src/libre/parser.act" ZI210 = '-'; ZI211 = lex_state->lx.start; @@ -3490,7 +3483,7 @@ p_209(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZIs (void) ZI211; (void) ZI212; -#line 3494 "src/libre/dialect/pcre/parser.c" +#line 3487 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: RANGE */ ADVANCE_LEXER; @@ -3501,17 +3494,17 @@ p_209(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZIs } /* BEGINNING OF ACTION: ast-range-endpoint-literal */ { -#line 846 "src/libre/parser.act" +#line 839 "src/libre/parser.act" (ZIlower).type = AST_ENDPOINT_LITERAL; (ZIlower).u.literal.c = (unsigned char) (*ZIcbrak); -#line 3510 "src/libre/dialect/pcre/parser.c" +#line 3503 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-range-endpoint-literal */ /* BEGINNING OF ACTION: ast-make-range */ { -#line 1011 "src/libre/parser.act" +#line 1004 "src/libre/parser.act" unsigned char lower, upper; @@ -3540,7 +3533,7 @@ p_209(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZIs goto ZL1; } -#line 3544 "src/libre/dialect/pcre/parser.c" +#line 3537 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-range */ } @@ -3573,13 +3566,13 @@ ZL2_expr_C_Clist_Hof_Halts:; } /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((ZIalts), (ZIa))) { goto ZL1; } -#line 3583 "src/libre/dialect/pcre/parser.c" +#line 3576 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-add-alt */ /* BEGINNING OF INLINE: 278 */ @@ -3604,14 +3597,14 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-alts */ { -#line 718 "src/libre/parser.act" +#line 711 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXALTS; } goto ZL4; -#line 3615 "src/libre/dialect/pcre/parser.c" +#line 3608 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-expected-alts */ } @@ -3636,7 +3629,7 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, /* BEGINNING OF EXTRACT: OPENCOUNT */ { -#line 377 "src/libre/parser.act" +#line 370 "src/libre/parser.act" ZI318 = lex_state->lx.start; ZI319 = lex_state->lx.end; @@ -3644,7 +3637,7 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, (void) ZI318; (void) ZI319; -#line 3648 "src/libre/dialect/pcre/parser.c" +#line 3641 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: OPENCOUNT */ ADVANCE_LEXER; @@ -3652,7 +3645,7 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, case (TOK_COUNT): /* BEGINNING OF EXTRACT: COUNT */ { -#line 634 "src/libre/parser.act" +#line 627 "src/libre/parser.act" unsigned long u; char *e; @@ -3672,7 +3665,7 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, ZIm = (unsigned int) u; -#line 3676 "src/libre/dialect/pcre/parser.c" +#line 3669 "src/libre/dialect/pcre/parser.c" } /* END OF EXTRACT: COUNT */ break; @@ -3692,11 +3685,11 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, ADVANCE_LEXER; /* BEGINNING OF ACTION: count-zero-or-one */ { -#line 823 "src/libre/parser.act" +#line 816 "src/libre/parser.act" (ZIc) = ast_make_count(0, 1); -#line 3700 "src/libre/dialect/pcre/parser.c" +#line 3693 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: count-zero-or-one */ } @@ -3706,11 +3699,11 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, ADVANCE_LEXER; /* BEGINNING OF ACTION: count-one-or-more */ { -#line 819 "src/libre/parser.act" +#line 812 "src/libre/parser.act" (ZIc) = ast_make_count(1, AST_COUNT_UNBOUNDED); -#line 3714 "src/libre/dialect/pcre/parser.c" +#line 3707 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: count-one-or-more */ } @@ -3720,11 +3713,11 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, ADVANCE_LEXER; /* BEGINNING OF ACTION: count-zero-or-more */ { -#line 815 "src/libre/parser.act" +#line 808 "src/libre/parser.act" (ZIc) = ast_make_count(0, AST_COUNT_UNBOUNDED); -#line 3728 "src/libre/dialect/pcre/parser.c" +#line 3721 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: count-zero-or-more */ } @@ -3739,23 +3732,23 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-count */ { -#line 704 "src/libre/parser.act" +#line 697 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXCOUNT; } goto ZL2; -#line 3750 "src/libre/dialect/pcre/parser.c" +#line 3743 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-expected-count */ /* BEGINNING OF ACTION: count-one */ { -#line 827 "src/libre/parser.act" +#line 820 "src/libre/parser.act" (ZIc) = ast_make_count(1, 1); -#line 3759 "src/libre/dialect/pcre/parser.c" +#line 3752 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: count-one */ } @@ -3781,11 +3774,11 @@ p_re__pcre(flags flags, lex_state lex_state, act_state act_state, err err, t_ast /* BEGINNING OF ACTION: make-group-id */ { -#line 888 "src/libre/parser.act" +#line 881 "src/libre/parser.act" (ZIid) = act_state->group_id++; -#line 3789 "src/libre/dialect/pcre/parser.c" +#line 3782 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: make-group-id */ p_expr (flags, lex_state, act_state, err, &ZIe); @@ -3795,14 +3788,14 @@ p_re__pcre(flags flags, lex_state lex_state, act_state act_state, err err, t_ast } /* BEGINNING OF ACTION: ast-make-group */ { -#line 918 "src/libre/parser.act" +#line 911 "src/libre/parser.act" (ZInode) = ast_make_expr_group(act_state->poolp, *flags, (ZIe), (ZIid)); if ((ZInode) == NULL) { goto ZL1; } -#line 3806 "src/libre/dialect/pcre/parser.c" +#line 3799 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-group */ /* BEGINNING OF INLINE: 280 */ @@ -3821,14 +3814,14 @@ p_re__pcre(flags flags, lex_state lex_state, act_state act_state, err err, t_ast { /* BEGINNING OF ACTION: err-expected-eof */ { -#line 760 "src/libre/parser.act" +#line 753 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXEOF; } goto ZL1; -#line 3832 "src/libre/dialect/pcre/parser.c" +#line 3825 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-expected-eof */ } @@ -3857,24 +3850,24 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e ADVANCE_LEXER; /* BEGINNING OF ACTION: class-any */ { -#line 789 "src/libre/parser.act" +#line 782 "src/libre/parser.act" /* TODO: or the unicode equivalent */ (ZIa) = (*flags & RE_SINGLE) ? &class_any : &class_notnl; -#line 3866 "src/libre/dialect/pcre/parser.c" +#line 3859 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: class-any */ /* BEGINNING OF ACTION: ast-make-named */ { -#line 1040 "src/libre/parser.act" +#line 1033 "src/libre/parser.act" (ZIe) = ast_make_expr_named(act_state->poolp, *flags, (ZIa)); if ((ZIe) == NULL) { goto ZL1; } -#line 3878 "src/libre/dialect/pcre/parser.c" +#line 3871 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-named */ } @@ -3884,14 +3877,14 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-anchor-end */ { -#line 949 "src/libre/parser.act" +#line 942 "src/libre/parser.act" (ZIe) = ast_make_expr_anchor(act_state->poolp, *flags, AST_ANCHOR_END); if ((ZIe) == NULL) { goto ZL1; } -#line 3895 "src/libre/dialect/pcre/parser.c" +#line 3888 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-anchor-end */ } @@ -3901,7 +3894,7 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-anchor-end-nl */ { -#line 956 "src/libre/parser.act" +#line 949 "src/libre/parser.act" (ZIe) = ast_make_expr_anchor(act_state->poolp, *flags, AST_ANCHOR_END); if ((ZIe) == NULL) { @@ -3911,7 +3904,7 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e (ZIe)->u.anchor.is_end_nl = 1; } -#line 3915 "src/libre/dialect/pcre/parser.c" +#line 3908 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-anchor-end-nl */ } @@ -3929,134 +3922,134 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e ADVANCE_LEXER; /* BEGINNING OF ACTION: class-bsr */ { -#line 794 "src/libre/parser.act" +#line 787 "src/libre/parser.act" /* TODO: or the unicode equivalent */ (ZIclass__bsr) = &class_bsr; -#line 3938 "src/libre/dialect/pcre/parser.c" +#line 3931 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: class-bsr */ /* BEGINNING OF ACTION: ast-make-named */ { -#line 1040 "src/libre/parser.act" +#line 1033 "src/libre/parser.act" (ZIbsr) = ast_make_expr_named(act_state->poolp, *flags, (ZIclass__bsr)); if ((ZIbsr) == NULL) { goto ZL1; } -#line 3950 "src/libre/dialect/pcre/parser.c" +#line 3943 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-named */ /* BEGINNING OF ACTION: ast-make-concat */ { -#line 867 "src/libre/parser.act" +#line 860 "src/libre/parser.act" (ZIcrlf) = ast_make_expr_concat(act_state->poolp, *flags); if ((ZIcrlf) == NULL) { goto ZL1; } -#line 3962 "src/libre/dialect/pcre/parser.c" +#line 3955 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-concat */ /* BEGINNING OF ACTION: make-literal-cr */ { -#line 896 "src/libre/parser.act" +#line 889 "src/libre/parser.act" (ZIcr) = '\r'; -#line 3971 "src/libre/dialect/pcre/parser.c" +#line 3964 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: make-literal-cr */ /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZIecr) = ast_make_expr_literal(act_state->poolp, *flags, (ZIcr)); if ((ZIecr) == NULL) { goto ZL1; } -#line 3983 "src/libre/dialect/pcre/parser.c" +#line 3976 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-literal */ /* BEGINNING OF ACTION: make-literal-nl */ { -#line 900 "src/libre/parser.act" +#line 893 "src/libre/parser.act" (ZInl) = '\n'; -#line 3992 "src/libre/dialect/pcre/parser.c" +#line 3985 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: make-literal-nl */ /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZIenl) = ast_make_expr_literal(act_state->poolp, *flags, (ZInl)); if ((ZIenl) == NULL) { goto ZL1; } -#line 4004 "src/libre/dialect/pcre/parser.c" +#line 3997 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-literal */ /* BEGINNING OF ACTION: ast-add-concat */ { -#line 1047 "src/libre/parser.act" +#line 1040 "src/libre/parser.act" if (!ast_add_expr_concat((ZIcrlf), (ZIecr))) { goto ZL1; } -#line 4015 "src/libre/dialect/pcre/parser.c" +#line 4008 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-add-concat */ /* BEGINNING OF ACTION: ast-add-concat */ { -#line 1047 "src/libre/parser.act" +#line 1040 "src/libre/parser.act" if (!ast_add_expr_concat((ZIcrlf), (ZIenl))) { goto ZL1; } -#line 4026 "src/libre/dialect/pcre/parser.c" +#line 4019 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-add-concat */ /* BEGINNING OF ACTION: ast-make-alt */ { -#line 874 "src/libre/parser.act" +#line 867 "src/libre/parser.act" (ZIe) = ast_make_expr_alt(act_state->poolp, *flags); if ((ZIe) == NULL) { goto ZL1; } -#line 4038 "src/libre/dialect/pcre/parser.c" +#line 4031 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-alt */ /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((ZIe), (ZIcrlf))) { goto ZL1; } -#line 4049 "src/libre/dialect/pcre/parser.c" +#line 4042 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-add-alt */ /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((ZIe), (ZIbsr))) { goto ZL1; } -#line 4060 "src/libre/dialect/pcre/parser.c" +#line 4053 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-add-alt */ } @@ -4070,20 +4063,20 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-get-re-flags */ { -#line 925 "src/libre/parser.act" +#line 918 "src/libre/parser.act" (ZIflags) = *flags; -#line 4078 "src/libre/dialect/pcre/parser.c" +#line 4071 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-get-re-flags */ /* BEGINNING OF ACTION: make-group-id */ { -#line 888 "src/libre/parser.act" +#line 881 "src/libre/parser.act" (ZIid) = act_state->group_id++; -#line 4087 "src/libre/dialect/pcre/parser.c" +#line 4080 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: make-group-id */ p_expr (flags, lex_state, act_state, err, &ZIg); @@ -4093,23 +4086,23 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e } /* BEGINNING OF ACTION: ast-set-re-flags */ { -#line 929 "src/libre/parser.act" +#line 922 "src/libre/parser.act" *flags = (ZIflags); -#line 4101 "src/libre/dialect/pcre/parser.c" +#line 4094 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-set-re-flags */ /* BEGINNING OF ACTION: ast-make-group */ { -#line 918 "src/libre/parser.act" +#line 911 "src/libre/parser.act" (ZIe) = ast_make_expr_group(act_state->poolp, *flags, (ZIg), (ZIid)); if ((ZIe) == NULL) { goto ZL1; } -#line 4113 "src/libre/dialect/pcre/parser.c" +#line 4106 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-group */ switch (CURRENT_TERMINAL) { @@ -4126,14 +4119,14 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-anchor-start */ { -#line 942 "src/libre/parser.act" +#line 935 "src/libre/parser.act" (ZIe) = ast_make_expr_anchor(act_state->poolp, *flags, AST_ANCHOR_START); if ((ZIe) == NULL) { goto ZL1; } -#line 4137 "src/libre/dialect/pcre/parser.c" +#line 4130 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-anchor-start */ } @@ -4185,26 +4178,26 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-atom */ { -#line 711 "src/libre/parser.act" +#line 704 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXATOM; } goto ZL2; -#line 4196 "src/libre/dialect/pcre/parser.c" +#line 4189 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: err-expected-atom */ /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZIe) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZIe) == NULL) { goto ZL2; } -#line 4208 "src/libre/dialect/pcre/parser.c" +#line 4201 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -4230,14 +4223,14 @@ p_expr_C_Calt(flags flags, lex_state lex_state, act_state act_state, err err, t_ { /* BEGINNING OF ACTION: ast-make-concat */ { -#line 867 "src/libre/parser.act" +#line 860 "src/libre/parser.act" (ZInode) = ast_make_expr_concat(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 4241 "src/libre/dialect/pcre/parser.c" +#line 4234 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-concat */ p_expr_C_Clist_Hof_Hpieces (flags, lex_state, act_state, err, ZInode); @@ -4251,14 +4244,14 @@ p_expr_C_Calt(flags flags, lex_state lex_state, act_state act_state, err err, t_ { /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZInode) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 4262 "src/libre/dialect/pcre/parser.c" +#line 4255 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -4294,25 +4287,25 @@ p_expr_C_Ctype(flags flags, lex_state lex_state, act_state act_state, err err, t } /* BEGINNING OF ACTION: ast-make-alt */ { -#line 874 "src/libre/parser.act" +#line 867 "src/libre/parser.act" (ZInode) = ast_make_expr_alt(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 4305 "src/libre/dialect/pcre/parser.c" +#line 4298 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-make-alt */ /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((ZInode), (ZIclass))) { goto ZL1; } -#line 4316 "src/libre/dialect/pcre/parser.c" +#line 4309 "src/libre/dialect/pcre/parser.c" } /* END OF ACTION: ast-add-alt */ } @@ -4326,7 +4319,7 @@ ZL0:; /* BEGINNING OF TRAILER */ -#line 1059 "src/libre/parser.act" +#line 1052 "src/libre/parser.act" static int @@ -4384,11 +4377,6 @@ ZL0:; lex_state->buf.a = NULL; lex_state->buf.len = 0; -#if PCRE_DIALECT - lex_state->extended_mode_comment = 0; - lex_state->flags_ptr = &flags; -#endif /* PCRE_DIALECT */ - /* XXX: unneccessary since we're lexing from a string */ /* (except for pushing "[" and "]" around ::group-$dialect) */ lx->buf_opaque = &lex_state->buf; @@ -4484,6 +4472,6 @@ ZL0:; return NULL; } -#line 4488 "src/libre/dialect/pcre/parser.c" +#line 4476 "src/libre/dialect/pcre/parser.c" /* END OF FILE */ diff --git a/src/libre/dialect/pcre/parser.h b/src/libre/dialect/pcre/parser.h index b808f0eb6..17a017297 100644 --- a/src/libre/dialect/pcre/parser.h +++ b/src/libre/dialect/pcre/parser.h @@ -9,7 +9,7 @@ /* BEGINNING OF HEADER */ -#line 288 "src/libre/parser.act" +#line 281 "src/libre/parser.act" #include @@ -28,7 +28,7 @@ extern void p_re__pcre(flags, lex_state, act_state, err, t_ast__expr *); /* BEGINNING OF TRAILER */ -#line 1216 "src/libre/parser.act" +#line 1204 "src/libre/parser.act" #line 35 "src/libre/dialect/pcre/parser.h" diff --git a/src/libre/dialect/sql/parser.c b/src/libre/dialect/sql/parser.c index a1158231a..dd60efe03 100644 --- a/src/libre/dialect/sql/parser.c +++ b/src/libre/dialect/sql/parser.c @@ -124,11 +124,6 @@ /* TODO: use lx's generated conveniences for the pattern buffer */ char a[512]; char *p; - -#if PCRE_DIALECT - int extended_mode_comment; - enum re_flags *flags_ptr; -#endif /* PCRE_DIALECT */ }; static void @@ -210,51 +205,49 @@ } static enum LX_TOKEN - current_token(struct lex_state *lex_state, struct act_state *act_state) + current_token(struct lex_state *lex_state, struct act_state *act_state, + enum re_flags *flags) { #ifndef PCRE_DIALECT (void) lex_state; + (void) flags; return act_state->lex_tok; #else - enum re_flags fl = (lex_state->flags_ptr != NULL) ? lex_state->flags_ptr[0] : 0; - enum LX_TOKEN tok; - - if ((fl & RE_EXTENDED) == 0) { - tok = act_state->lex_tok; - - switch (tok) { + if ((*flags & RE_EXTENDED) == 0) { + switch (act_state->lex_tok) { case TOK_WHITESPACE: case TOK_NEWLINE: case TOK_MAYBE_COMMENT: return TOK_CHAR; default: - return tok; + return act_state->lex_tok; } } + int extended_mode_comment = 0; + restart: - tok = act_state->lex_tok; - if (lex_state->extended_mode_comment) { - switch (tok) { + if (extended_mode_comment) { + switch (act_state->lex_tok) { case TOK_EOF: case TOK_ERROR: case TOK_UNKNOWN: /* don't eat EOF or errors */ - return tok; + return act_state->lex_tok; case TOK_NEWLINE: - lex_state->extended_mode_comment = 0; + extended_mode_comment = 0; /* fall through */ default: advance_lexer(lex_state, act_state); goto restart; } } else { - switch (tok) { + switch (act_state->lex_tok) { case TOK_MAYBE_COMMENT: - lex_state->extended_mode_comment = 1; + extended_mode_comment = 1; /* fall through */ case TOK_WHITESPACE: case TOK_NEWLINE: @@ -262,21 +255,21 @@ goto restart; default: - return tok; + return act_state->lex_tok; } } #endif } #define ADVANCE_LEXER (advance_lexer(lex_state, act_state)) - #define CURRENT_TERMINAL (current_token(lex_state, act_state)) + #define CURRENT_TERMINAL (current_token(lex_state, act_state, flags)) #define ERROR_TERMINAL (TOK_ERROR) #define SAVE_LEXER(tok) do { act_state->lex_tok_save = act_state->lex_tok; \ act_state->lex_tok = tok; } while (0) #define RESTORE_LEXER do { act_state->lex_tok = act_state->lex_tok_save; } while (0) -#line 280 "src/libre/dialect/sql/parser.c" +#line 273 "src/libre/dialect/sql/parser.c" #ifndef ERROR_TERMINAL @@ -318,13 +311,13 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hhead(flags flags, lex_state lex_state, act_ /* BEGINNING OF EXTRACT: INVERT */ { -#line 309 "src/libre/parser.act" +#line 302 "src/libre/parser.act" ZI203 = '^'; (void) ZI203; -#line 328 "src/libre/dialect/sql/parser.c" +#line 321 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: INVERT */ ADVANCE_LEXER; @@ -344,7 +337,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hhead(flags flags, lex_state lex_state, act_ /* BEGINNING OF EXTRACT: RANGE */ { -#line 315 "src/libre/parser.act" +#line 308 "src/libre/parser.act" ZIc = '-'; ZI114 = lex_state->lx.start; @@ -354,31 +347,31 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hhead(flags flags, lex_state lex_state, act_ (void) ZI114; (void) ZI115; -#line 358 "src/libre/dialect/sql/parser.c" +#line 351 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: RANGE */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZInode) = ast_make_expr_literal(act_state->poolp, *flags, (ZIc)); if ((ZInode) == NULL) { goto ZL1; } -#line 371 "src/libre/dialect/sql/parser.c" +#line 364 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-literal */ /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((*ZIclass), (ZInode))) { goto ZL1; } -#line 382 "src/libre/dialect/sql/parser.c" +#line 375 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-add-alt */ } @@ -408,11 +401,11 @@ p_re__sql(flags flags, lex_state lex_state, act_state act_state, err err, t_ast_ /* BEGINNING OF ACTION: make-group-id */ { -#line 888 "src/libre/parser.act" +#line 881 "src/libre/parser.act" (ZIid) = act_state->group_id++; -#line 416 "src/libre/dialect/sql/parser.c" +#line 409 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: make-group-id */ p_expr (flags, lex_state, act_state, err, &ZIe); @@ -422,14 +415,14 @@ p_re__sql(flags flags, lex_state lex_state, act_state act_state, err err, t_ast_ } /* BEGINNING OF ACTION: ast-make-group */ { -#line 918 "src/libre/parser.act" +#line 911 "src/libre/parser.act" (ZInode) = ast_make_expr_group(act_state->poolp, *flags, (ZIe), (ZIid)); if ((ZInode) == NULL) { goto ZL1; } -#line 433 "src/libre/dialect/sql/parser.c" +#line 426 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-group */ /* BEGINNING OF INLINE: 191 */ @@ -448,14 +441,14 @@ p_re__sql(flags flags, lex_state lex_state, act_state act_state, err err, t_ast_ { /* BEGINNING OF ACTION: err-expected-eof */ { -#line 760 "src/libre/parser.act" +#line 753 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXEOF; } goto ZL1; -#line 459 "src/libre/dialect/sql/parser.c" +#line 452 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: err-expected-eof */ } @@ -491,13 +484,13 @@ ZL2_expr_C_Ccharacter_Hclass_C_Clist_Hof_Hclass_Hterms:; } /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((ZIclass), (ZInode))) { goto ZL4; } -#line 501 "src/libre/dialect/sql/parser.c" +#line 494 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-add-alt */ } @@ -506,14 +499,14 @@ ZL2_expr_C_Ccharacter_Hclass_C_Clist_Hof_Hclass_Hterms:; { /* BEGINNING OF ACTION: err-expected-term */ { -#line 697 "src/libre/parser.act" +#line 690 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXTERM; } goto ZL1; -#line 517 "src/libre/dialect/sql/parser.c" +#line 510 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: err-expected-term */ } @@ -567,13 +560,13 @@ ZL2_expr_C_Clist_Hof_Hpieces:; } /* BEGINNING OF ACTION: ast-add-concat */ { -#line 1047 "src/libre/parser.act" +#line 1040 "src/libre/parser.act" if (!ast_add_expr_concat((ZIcat), (ZIa))) { goto ZL1; } -#line 577 "src/libre/dialect/sql/parser.c" +#line 570 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-add-concat */ /* BEGINNING OF INLINE: 183 */ @@ -613,7 +606,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ /* BEGINNING OF EXTRACT: CHAR */ { -#line 582 "src/libre/parser.act" +#line 575 "src/libre/parser.act" /* the first byte may be '\x00' */ assert(lex_state->buf.a[1] == '\0'); @@ -626,7 +619,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hterm(flags flags, lex_state lex_state, act_ ZI205 = lex_state->buf.a[0]; -#line 630 "src/libre/dialect/sql/parser.c" +#line 623 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: CHAR */ ADVANCE_LEXER; @@ -677,7 +670,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state case (TOK_OPENGROUP): /* BEGINNING OF EXTRACT: OPENGROUP */ { -#line 325 "src/libre/parser.act" +#line 318 "src/libre/parser.act" ZIopen__start = lex_state->lx.start; ZIopen__end = lex_state->lx.end; @@ -685,7 +678,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state (void) ZIopen__start; (void) ZIopen__end; -#line 689 "src/libre/dialect/sql/parser.c" +#line 682 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: OPENGROUP */ break; @@ -695,14 +688,14 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-alt */ { -#line 874 "src/libre/parser.act" +#line 867 "src/libre/parser.act" (ZIclass) = ast_make_expr_alt(act_state->poolp, *flags); if ((ZIclass) == NULL) { goto ZL1; } -#line 706 "src/libre/dialect/sql/parser.c" +#line 699 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-alt */ ZItmp = ZIclass; @@ -720,7 +713,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state /* BEGINNING OF EXTRACT: CLOSEGROUP */ { -#line 357 "src/libre/parser.act" +#line 350 "src/libre/parser.act" ZI154 = ']'; ZIclose__start = lex_state->lx.start; @@ -730,18 +723,18 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state (void) ZIclose__start; (void) ZIclose__end; -#line 734 "src/libre/dialect/sql/parser.c" +#line 727 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: CLOSEGROUP */ ADVANCE_LEXER; /* BEGINNING OF ACTION: mark-group */ { -#line 774 "src/libre/parser.act" +#line 767 "src/libre/parser.act" mark(&act_state->groupstart, &(ZIopen__start)); mark(&act_state->groupend, &(ZIclose__end)); -#line 745 "src/libre/dialect/sql/parser.c" +#line 738 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: mark-group */ ZInode = ZIclass; @@ -755,26 +748,26 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state /* BEGINNING OF EXTRACT: INVERT */ { -#line 309 "src/libre/parser.act" +#line 302 "src/libre/parser.act" ZI158 = '^'; (void) ZI158; -#line 765 "src/libre/dialect/sql/parser.c" +#line 758 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: INVERT */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-alt */ { -#line 874 "src/libre/parser.act" +#line 867 "src/libre/parser.act" (ZImask) = ast_make_expr_alt(act_state->poolp, *flags); if ((ZImask) == NULL) { goto ZL3; } -#line 778 "src/libre/dialect/sql/parser.c" +#line 771 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-alt */ ZImask__tmp = ZImask; @@ -796,7 +789,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state case (TOK_CLOSEGROUP): /* BEGINNING OF EXTRACT: CLOSEGROUP */ { -#line 357 "src/libre/parser.act" +#line 350 "src/libre/parser.act" ZI163 = ']'; ZIclose__start = lex_state->lx.start; @@ -806,7 +799,7 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state (void) ZIclose__start; (void) ZIclose__end; -#line 810 "src/libre/dialect/sql/parser.c" +#line 803 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: CLOSEGROUP */ break; @@ -816,12 +809,12 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state ADVANCE_LEXER; /* BEGINNING OF ACTION: mark-group */ { -#line 774 "src/libre/parser.act" +#line 767 "src/libre/parser.act" mark(&act_state->groupstart, &(ZIopen__start)); mark(&act_state->groupend, &(ZIclose__end)); -#line 825 "src/libre/dialect/sql/parser.c" +#line 818 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: mark-group */ } @@ -830,14 +823,14 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state { /* BEGINNING OF ACTION: err-expected-closegroup */ { -#line 732 "src/libre/parser.act" +#line 725 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXCLOSEGROUP; } goto ZL3; -#line 841 "src/libre/dialect/sql/parser.c" +#line 834 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: err-expected-closegroup */ } @@ -846,14 +839,14 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state /* END OF INLINE: 162 */ /* BEGINNING OF ACTION: ast-make-subtract */ { -#line 966 "src/libre/parser.act" +#line 959 "src/libre/parser.act" (ZInode) = ast_make_expr_subtract(act_state->poolp, *flags, (ZIclass), (ZImask)); if ((ZInode) == NULL) { goto ZL3; } -#line 857 "src/libre/dialect/sql/parser.c" +#line 850 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-subtract */ } @@ -869,26 +862,26 @@ p_expr_C_Ccharacter_Hclass(flags flags, lex_state lex_state, act_state act_state { /* BEGINNING OF ACTION: err-expected-closegroup */ { -#line 732 "src/libre/parser.act" +#line 725 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXCLOSEGROUP; } goto ZL1; -#line 880 "src/libre/dialect/sql/parser.c" +#line 873 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: err-expected-closegroup */ /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZInode) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 892 "src/libre/dialect/sql/parser.c" +#line 885 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -924,7 +917,7 @@ p_expr_C_Cpiece(flags flags, lex_state lex_state, act_state act_state, err err, } /* BEGINNING OF ACTION: ast-make-piece */ { -#line 904 "src/libre/parser.act" +#line 897 "src/libre/parser.act" if ((ZIc).min == 0 && (ZIc).max == 0) { (ZInode) = ast_make_expr_empty(act_state->poolp, *flags); @@ -938,7 +931,7 @@ p_expr_C_Cpiece(flags flags, lex_state lex_state, act_state act_state, err err, goto ZL1; } -#line 942 "src/libre/dialect/sql/parser.c" +#line 935 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-piece */ } @@ -961,14 +954,14 @@ p_expr(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__ex { /* BEGINNING OF ACTION: ast-make-alt */ { -#line 874 "src/libre/parser.act" +#line 867 "src/libre/parser.act" (ZInode) = ast_make_expr_alt(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 972 "src/libre/dialect/sql/parser.c" +#line 965 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-alt */ p_expr_C_Clist_Hof_Halts (flags, lex_state, act_state, err, ZInode); @@ -982,26 +975,26 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-alts */ { -#line 718 "src/libre/parser.act" +#line 711 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXALTS; } goto ZL2; -#line 993 "src/libre/dialect/sql/parser.c" +#line 986 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: err-expected-alts */ /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZInode) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL2; } -#line 1005 "src/libre/dialect/sql/parser.c" +#line 998 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -1026,7 +1019,7 @@ p_204(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp /* BEGINNING OF EXTRACT: RANGE */ { -#line 315 "src/libre/parser.act" +#line 308 "src/libre/parser.act" ZIc = '-'; ZI117 = lex_state->lx.start; @@ -1036,36 +1029,36 @@ p_204(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp (void) ZI117; (void) ZI118; -#line 1040 "src/libre/dialect/sql/parser.c" +#line 1033 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: RANGE */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZInode) = ast_make_expr_literal(act_state->poolp, *flags, (ZIc)); if ((ZInode) == NULL) { goto ZL1; } -#line 1053 "src/libre/dialect/sql/parser.c" +#line 1046 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-literal */ /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((*ZIclass), (ZInode))) { goto ZL1; } -#line 1064 "src/libre/dialect/sql/parser.c" +#line 1057 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-add-alt */ /* BEGINNING OF ACTION: ast-make-invert */ { -#line 973 "src/libre/parser.act" +#line 966 "src/libre/parser.act" struct ast_expr *any; @@ -1103,7 +1096,7 @@ p_204(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp goto ZL1; } -#line 1107 "src/libre/dialect/sql/parser.c" +#line 1100 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-invert */ } @@ -1112,7 +1105,7 @@ p_204(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp { /* BEGINNING OF ACTION: ast-make-invert */ { -#line 973 "src/libre/parser.act" +#line 966 "src/libre/parser.act" struct ast_expr *any; @@ -1150,7 +1143,7 @@ p_204(flags flags, lex_state lex_state, act_state act_state, err err, t_ast__exp goto ZL1; } -#line 1154 "src/libre/dialect/sql/parser.c" +#line 1147 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-invert */ } @@ -1174,14 +1167,14 @@ p_208(flags flags, lex_state lex_state, act_state act_state, err err, t_char *ZI { /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZInode) = ast_make_expr_literal(act_state->poolp, *flags, (*ZI205)); if ((ZInode) == NULL) { goto ZL1; } -#line 1185 "src/libre/dialect/sql/parser.c" +#line 1178 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-literal */ } @@ -1199,17 +1192,17 @@ p_208(flags flags, lex_state lex_state, act_state act_state, err err, t_char *ZI /* BEGINNING OF ACTION: ast-range-endpoint-literal */ { -#line 846 "src/libre/parser.act" +#line 839 "src/libre/parser.act" (ZIa).type = AST_ENDPOINT_LITERAL; (ZIa).u.literal.c = (unsigned char) (*ZI205); -#line 1208 "src/libre/dialect/sql/parser.c" +#line 1201 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-range-endpoint-literal */ /* BEGINNING OF EXTRACT: RANGE */ { -#line 315 "src/libre/parser.act" +#line 308 "src/libre/parser.act" ZI136 = '-'; ZI137 = lex_state->lx.start; @@ -1219,7 +1212,7 @@ p_208(flags flags, lex_state lex_state, act_state act_state, err err, t_char *ZI (void) ZI137; (void) ZI138; -#line 1223 "src/libre/dialect/sql/parser.c" +#line 1216 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: RANGE */ ADVANCE_LEXER; @@ -1227,7 +1220,7 @@ p_208(flags flags, lex_state lex_state, act_state act_state, err err, t_char *ZI case (TOK_CHAR): /* BEGINNING OF EXTRACT: CHAR */ { -#line 582 "src/libre/parser.act" +#line 575 "src/libre/parser.act" /* the first byte may be '\x00' */ assert(lex_state->buf.a[1] == '\0'); @@ -1240,7 +1233,7 @@ p_208(flags flags, lex_state lex_state, act_state act_state, err err, t_char *ZI ZIcz = lex_state->buf.a[0]; -#line 1244 "src/libre/dialect/sql/parser.c" +#line 1237 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: CHAR */ break; @@ -1250,27 +1243,27 @@ p_208(flags flags, lex_state lex_state, act_state act_state, err err, t_char *ZI ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-range-endpoint-literal */ { -#line 846 "src/libre/parser.act" +#line 839 "src/libre/parser.act" (ZIz).type = AST_ENDPOINT_LITERAL; (ZIz).u.literal.c = (unsigned char) (ZIcz); -#line 1259 "src/libre/dialect/sql/parser.c" +#line 1252 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-range-endpoint-literal */ /* BEGINNING OF ACTION: mark-range */ { -#line 779 "src/libre/parser.act" +#line 772 "src/libre/parser.act" mark(&act_state->rangestart, &(*ZI206)); mark(&act_state->rangeend, &(ZIend)); -#line 1269 "src/libre/dialect/sql/parser.c" +#line 1262 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: mark-range */ /* BEGINNING OF ACTION: ast-make-range */ { -#line 1011 "src/libre/parser.act" +#line 1004 "src/libre/parser.act" unsigned char lower, upper; @@ -1299,7 +1292,7 @@ p_208(flags flags, lex_state lex_state, act_state act_state, err err, t_char *ZI goto ZL1; } -#line 1303 "src/libre/dialect/sql/parser.c" +#line 1296 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-range */ } @@ -1328,7 +1321,7 @@ p_211(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 /* BEGINNING OF EXTRACT: CLOSECOUNT */ { -#line 385 "src/libre/parser.act" +#line 378 "src/libre/parser.act" ZI176 = lex_state->lx.start; ZIend = lex_state->lx.end; @@ -1336,23 +1329,23 @@ p_211(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 (void) ZI176; (void) ZIend; -#line 1340 "src/libre/dialect/sql/parser.c" +#line 1333 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: CLOSECOUNT */ ADVANCE_LEXER; /* BEGINNING OF ACTION: mark-count */ { -#line 784 "src/libre/parser.act" +#line 777 "src/libre/parser.act" mark(&act_state->countstart, &(*ZI209)); mark(&act_state->countend, &(ZIend)); -#line 1351 "src/libre/dialect/sql/parser.c" +#line 1344 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: mark-count */ /* BEGINNING OF ACTION: count-range */ { -#line 831 "src/libre/parser.act" +#line 824 "src/libre/parser.act" if ((*ZIm) < (*ZIm)) { err->e = RE_ENEGCOUNT; @@ -1367,7 +1360,7 @@ p_211(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 (ZIc) = ast_make_count((*ZIm), (*ZIm)); -#line 1371 "src/libre/dialect/sql/parser.c" +#line 1364 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: count-range */ } @@ -1383,7 +1376,7 @@ p_211(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 case (TOK_COUNT): /* BEGINNING OF EXTRACT: COUNT */ { -#line 634 "src/libre/parser.act" +#line 627 "src/libre/parser.act" unsigned long u; char *e; @@ -1403,7 +1396,7 @@ p_211(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 ZIn = (unsigned int) u; -#line 1407 "src/libre/dialect/sql/parser.c" +#line 1400 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: COUNT */ break; @@ -1415,7 +1408,7 @@ p_211(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 case (TOK_CLOSECOUNT): /* BEGINNING OF EXTRACT: CLOSECOUNT */ { -#line 385 "src/libre/parser.act" +#line 378 "src/libre/parser.act" ZI179 = lex_state->lx.start; ZIend = lex_state->lx.end; @@ -1423,7 +1416,7 @@ p_211(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 (void) ZI179; (void) ZIend; -#line 1427 "src/libre/dialect/sql/parser.c" +#line 1420 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: CLOSECOUNT */ break; @@ -1433,17 +1426,17 @@ p_211(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 ADVANCE_LEXER; /* BEGINNING OF ACTION: mark-count */ { -#line 784 "src/libre/parser.act" +#line 777 "src/libre/parser.act" mark(&act_state->countstart, &(*ZI209)); mark(&act_state->countend, &(ZIend)); -#line 1442 "src/libre/dialect/sql/parser.c" +#line 1435 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: mark-count */ /* BEGINNING OF ACTION: count-range */ { -#line 831 "src/libre/parser.act" +#line 824 "src/libre/parser.act" if ((ZIn) < (*ZIm)) { err->e = RE_ENEGCOUNT; @@ -1458,7 +1451,7 @@ p_211(flags flags, lex_state lex_state, act_state act_state, err err, t_pos *ZI2 (ZIc) = ast_make_count((*ZIm), (ZIn)); -#line 1462 "src/libre/dialect/sql/parser.c" +#line 1455 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: count-range */ } @@ -1493,13 +1486,13 @@ ZL2_expr_C_Clist_Hof_Halts:; } /* BEGINNING OF ACTION: ast-add-alt */ { -#line 1053 "src/libre/parser.act" +#line 1046 "src/libre/parser.act" if (!ast_add_expr_alt((ZIalts), (ZIa))) { goto ZL1; } -#line 1503 "src/libre/dialect/sql/parser.c" +#line 1496 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-add-alt */ /* BEGINNING OF INLINE: 189 */ @@ -1524,14 +1517,14 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-alts */ { -#line 718 "src/libre/parser.act" +#line 711 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXALTS; } goto ZL4; -#line 1535 "src/libre/dialect/sql/parser.c" +#line 1528 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: err-expected-alts */ } @@ -1556,7 +1549,7 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, /* BEGINNING OF EXTRACT: OPENCOUNT */ { -#line 377 "src/libre/parser.act" +#line 370 "src/libre/parser.act" ZI209 = lex_state->lx.start; ZI210 = lex_state->lx.end; @@ -1564,7 +1557,7 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, (void) ZI209; (void) ZI210; -#line 1568 "src/libre/dialect/sql/parser.c" +#line 1561 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: OPENCOUNT */ ADVANCE_LEXER; @@ -1572,7 +1565,7 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, case (TOK_COUNT): /* BEGINNING OF EXTRACT: COUNT */ { -#line 634 "src/libre/parser.act" +#line 627 "src/libre/parser.act" unsigned long u; char *e; @@ -1592,7 +1585,7 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, ZIm = (unsigned int) u; -#line 1596 "src/libre/dialect/sql/parser.c" +#line 1589 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: COUNT */ break; @@ -1612,11 +1605,11 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, ADVANCE_LEXER; /* BEGINNING OF ACTION: count-zero-or-one */ { -#line 823 "src/libre/parser.act" +#line 816 "src/libre/parser.act" (ZIc) = ast_make_count(0, 1); -#line 1620 "src/libre/dialect/sql/parser.c" +#line 1613 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: count-zero-or-one */ } @@ -1626,11 +1619,11 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, ADVANCE_LEXER; /* BEGINNING OF ACTION: count-one-or-more */ { -#line 819 "src/libre/parser.act" +#line 812 "src/libre/parser.act" (ZIc) = ast_make_count(1, AST_COUNT_UNBOUNDED); -#line 1634 "src/libre/dialect/sql/parser.c" +#line 1627 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: count-one-or-more */ } @@ -1640,11 +1633,11 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, ADVANCE_LEXER; /* BEGINNING OF ACTION: count-zero-or-more */ { -#line 815 "src/libre/parser.act" +#line 808 "src/libre/parser.act" (ZIc) = ast_make_count(0, AST_COUNT_UNBOUNDED); -#line 1648 "src/libre/dialect/sql/parser.c" +#line 1641 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: count-zero-or-more */ } @@ -1653,11 +1646,11 @@ p_expr_C_Cpiece_C_Ccount(flags flags, lex_state lex_state, act_state act_state, { /* BEGINNING OF ACTION: count-one */ { -#line 827 "src/libre/parser.act" +#line 820 "src/libre/parser.act" (ZIc) = ast_make_count(1, 1); -#line 1661 "src/libre/dialect/sql/parser.c" +#line 1654 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: count-one */ } @@ -1670,23 +1663,23 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-count */ { -#line 704 "src/libre/parser.act" +#line 697 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXCOUNT; } goto ZL2; -#line 1681 "src/libre/dialect/sql/parser.c" +#line 1674 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: err-expected-count */ /* BEGINNING OF ACTION: count-one */ { -#line 827 "src/libre/parser.act" +#line 820 "src/libre/parser.act" (ZIc) = ast_make_count(1, 1); -#line 1690 "src/libre/dialect/sql/parser.c" +#line 1683 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: count-one */ } @@ -1711,24 +1704,24 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e ADVANCE_LEXER; /* BEGINNING OF ACTION: class-any */ { -#line 789 "src/libre/parser.act" +#line 782 "src/libre/parser.act" /* TODO: or the unicode equivalent */ (ZIa) = (*flags & RE_SINGLE) ? &class_any : &class_notnl; -#line 1720 "src/libre/dialect/sql/parser.c" +#line 1713 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: class-any */ /* BEGINNING OF ACTION: ast-make-named */ { -#line 1040 "src/libre/parser.act" +#line 1033 "src/libre/parser.act" (ZIe) = ast_make_expr_named(act_state->poolp, *flags, (ZIa)); if ((ZIe) == NULL) { goto ZL1; } -#line 1732 "src/libre/dialect/sql/parser.c" +#line 1725 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-named */ } @@ -1741,7 +1734,7 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e /* BEGINNING OF EXTRACT: CHAR */ { -#line 582 "src/libre/parser.act" +#line 575 "src/libre/parser.act" /* the first byte may be '\x00' */ assert(lex_state->buf.a[1] == '\0'); @@ -1754,20 +1747,20 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e ZIa = lex_state->buf.a[0]; -#line 1758 "src/libre/dialect/sql/parser.c" +#line 1751 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: CHAR */ ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-literal */ { -#line 881 "src/libre/parser.act" +#line 874 "src/libre/parser.act" (ZIe) = ast_make_expr_literal(act_state->poolp, *flags, (ZIa)); if ((ZIe) == NULL) { goto ZL1; } -#line 1771 "src/libre/dialect/sql/parser.c" +#line 1764 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-literal */ } @@ -1781,38 +1774,38 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e ADVANCE_LEXER; /* BEGINNING OF ACTION: class-any */ { -#line 789 "src/libre/parser.act" +#line 782 "src/libre/parser.act" /* TODO: or the unicode equivalent */ (ZIa) = (*flags & RE_SINGLE) ? &class_any : &class_notnl; -#line 1790 "src/libre/dialect/sql/parser.c" +#line 1783 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: class-any */ /* BEGINNING OF ACTION: ast-make-named */ { -#line 1040 "src/libre/parser.act" +#line 1033 "src/libre/parser.act" (ZIg) = ast_make_expr_named(act_state->poolp, *flags, (ZIa)); if ((ZIg) == NULL) { goto ZL1; } -#line 1802 "src/libre/dialect/sql/parser.c" +#line 1795 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-named */ /* BEGINNING OF ACTION: count-zero-or-more */ { -#line 815 "src/libre/parser.act" +#line 808 "src/libre/parser.act" (ZIc) = ast_make_count(0, AST_COUNT_UNBOUNDED); -#line 1811 "src/libre/dialect/sql/parser.c" +#line 1804 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: count-zero-or-more */ /* BEGINNING OF ACTION: ast-make-piece */ { -#line 904 "src/libre/parser.act" +#line 897 "src/libre/parser.act" if ((ZIc).min == 0 && (ZIc).max == 0) { (ZIe) = ast_make_expr_empty(act_state->poolp, *flags); @@ -1826,7 +1819,7 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e goto ZL1; } -#line 1830 "src/libre/dialect/sql/parser.c" +#line 1823 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-piece */ } @@ -1839,11 +1832,11 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e ADVANCE_LEXER; /* BEGINNING OF ACTION: make-group-id */ { -#line 888 "src/libre/parser.act" +#line 881 "src/libre/parser.act" (ZIid) = act_state->group_id++; -#line 1847 "src/libre/dialect/sql/parser.c" +#line 1840 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: make-group-id */ p_expr (flags, lex_state, act_state, err, &ZIg); @@ -1853,14 +1846,14 @@ p_expr_C_Cpiece_C_Catom(flags flags, lex_state lex_state, act_state act_state, e } /* BEGINNING OF ACTION: ast-make-group */ { -#line 918 "src/libre/parser.act" +#line 911 "src/libre/parser.act" (ZIe) = ast_make_expr_group(act_state->poolp, *flags, (ZIg), (ZIid)); if ((ZIe) == NULL) { goto ZL1; } -#line 1864 "src/libre/dialect/sql/parser.c" +#line 1857 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-group */ switch (CURRENT_TERMINAL) { @@ -1891,26 +1884,26 @@ ZL1:; { /* BEGINNING OF ACTION: err-expected-atom */ { -#line 711 "src/libre/parser.act" +#line 704 "src/libre/parser.act" if (err->e == RE_ESUCCESS) { err->e = RE_EXATOM; } goto ZL2; -#line 1902 "src/libre/dialect/sql/parser.c" +#line 1895 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: err-expected-atom */ /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZIe) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZIe) == NULL) { goto ZL2; } -#line 1914 "src/libre/dialect/sql/parser.c" +#line 1907 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -1939,7 +1932,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hnamed(flags flags, lex_state lex_state, act case (TOK_NAMED__CLASS): /* BEGINNING OF EXTRACT: NAMED_CLASS */ { -#line 654 "src/libre/parser.act" +#line 647 "src/libre/parser.act" ZIid = DIALECT_CLASS(lex_state->buf.a); if (ZIid == NULL) { @@ -1953,7 +1946,7 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hnamed(flags flags, lex_state lex_state, act (void) ZI128; (void) ZI129; -#line 1957 "src/libre/dialect/sql/parser.c" +#line 1950 "src/libre/dialect/sql/parser.c" } /* END OF EXTRACT: NAMED_CLASS */ break; @@ -1963,14 +1956,14 @@ p_expr_C_Ccharacter_Hclass_C_Cclass_Hnamed(flags flags, lex_state lex_state, act ADVANCE_LEXER; /* BEGINNING OF ACTION: ast-make-named */ { -#line 1040 "src/libre/parser.act" +#line 1033 "src/libre/parser.act" (ZInode) = ast_make_expr_named(act_state->poolp, *flags, (ZIid)); if ((ZInode) == NULL) { goto ZL1; } -#line 1974 "src/libre/dialect/sql/parser.c" +#line 1967 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-named */ } @@ -1993,14 +1986,14 @@ p_expr_C_Calt(flags flags, lex_state lex_state, act_state act_state, err err, t_ { /* BEGINNING OF ACTION: ast-make-concat */ { -#line 867 "src/libre/parser.act" +#line 860 "src/libre/parser.act" (ZInode) = ast_make_expr_concat(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 2004 "src/libre/dialect/sql/parser.c" +#line 1997 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-concat */ p_expr_C_Clist_Hof_Hpieces (flags, lex_state, act_state, err, ZInode); @@ -2014,14 +2007,14 @@ p_expr_C_Calt(flags flags, lex_state lex_state, act_state act_state, err err, t_ { /* BEGINNING OF ACTION: ast-make-empty */ { -#line 860 "src/libre/parser.act" +#line 853 "src/libre/parser.act" (ZInode) = ast_make_expr_empty(act_state->poolp, *flags); if ((ZInode) == NULL) { goto ZL1; } -#line 2025 "src/libre/dialect/sql/parser.c" +#line 2018 "src/libre/dialect/sql/parser.c" } /* END OF ACTION: ast-make-empty */ } @@ -2039,7 +2032,7 @@ ZL0:; /* BEGINNING OF TRAILER */ -#line 1059 "src/libre/parser.act" +#line 1052 "src/libre/parser.act" static int @@ -2097,11 +2090,6 @@ ZL0:; lex_state->buf.a = NULL; lex_state->buf.len = 0; -#if PCRE_DIALECT - lex_state->extended_mode_comment = 0; - lex_state->flags_ptr = &flags; -#endif /* PCRE_DIALECT */ - /* XXX: unneccessary since we're lexing from a string */ /* (except for pushing "[" and "]" around ::group-$dialect) */ lx->buf_opaque = &lex_state->buf; @@ -2197,6 +2185,6 @@ ZL0:; return NULL; } -#line 2201 "src/libre/dialect/sql/parser.c" +#line 2189 "src/libre/dialect/sql/parser.c" /* END OF FILE */ diff --git a/src/libre/dialect/sql/parser.h b/src/libre/dialect/sql/parser.h index 7d292714c..cbbd5b111 100644 --- a/src/libre/dialect/sql/parser.h +++ b/src/libre/dialect/sql/parser.h @@ -9,7 +9,7 @@ /* BEGINNING OF HEADER */ -#line 288 "src/libre/parser.act" +#line 281 "src/libre/parser.act" #include @@ -28,7 +28,7 @@ extern void p_re__sql(flags, lex_state, act_state, err, t_ast__expr *); /* BEGINNING OF TRAILER */ -#line 1216 "src/libre/parser.act" +#line 1204 "src/libre/parser.act" #line 35 "src/libre/dialect/sql/parser.h" diff --git a/src/libre/parser.act b/src/libre/parser.act index af2d5724e..0156fbf08 100644 --- a/src/libre/parser.act +++ b/src/libre/parser.act @@ -133,11 +133,6 @@ /* TODO: use lx's generated conveniences for the pattern buffer */ char a[512]; char *p; - -#if PCRE_DIALECT - int extended_mode_comment; - enum re_flags *flags_ptr; -#endif /* PCRE_DIALECT */ }; static void @@ -219,51 +214,49 @@ } static enum LX_TOKEN - current_token(struct lex_state *lex_state, struct act_state *act_state) + current_token(struct lex_state *lex_state, struct act_state *act_state, + enum re_flags *flags) { #ifndef PCRE_DIALECT (void) lex_state; + (void) flags; return act_state->lex_tok; #else - enum re_flags fl = (lex_state->flags_ptr != NULL) ? lex_state->flags_ptr[0] : 0; - enum LX_TOKEN tok; - - if ((fl & RE_EXTENDED) == 0) { - tok = act_state->lex_tok; - - switch (tok) { + if ((*flags & RE_EXTENDED) == 0) { + switch (act_state->lex_tok) { case TOK_WHITESPACE: case TOK_NEWLINE: case TOK_MAYBE_COMMENT: return TOK_CHAR; default: - return tok; + return act_state->lex_tok; } } + int extended_mode_comment = 0; + restart: - tok = act_state->lex_tok; - if (lex_state->extended_mode_comment) { - switch (tok) { + if (extended_mode_comment) { + switch (act_state->lex_tok) { case TOK_EOF: case TOK_ERROR: case TOK_UNKNOWN: /* don't eat EOF or errors */ - return tok; + return act_state->lex_tok; case TOK_NEWLINE: - lex_state->extended_mode_comment = 0; + extended_mode_comment = 0; /* fall through */ default: advance_lexer(lex_state, act_state); goto restart; } } else { - switch (tok) { + switch (act_state->lex_tok) { case TOK_MAYBE_COMMENT: - lex_state->extended_mode_comment = 1; + extended_mode_comment = 1; /* fall through */ case TOK_WHITESPACE: case TOK_NEWLINE: @@ -271,14 +264,14 @@ goto restart; default: - return tok; + return act_state->lex_tok; } } #endif } #define ADVANCE_LEXER (advance_lexer(lex_state, act_state)) - #define CURRENT_TERMINAL (current_token(lex_state, act_state)) + #define CURRENT_TERMINAL (current_token(lex_state, act_state, flags)) #define ERROR_TERMINAL @$ERROR #define SAVE_LEXER(tok) do { act_state->lex_tok_save = act_state->lex_tok; \ @@ -1113,11 +1106,6 @@ lex_state->buf.a = NULL; lex_state->buf.len = 0; -#if PCRE_DIALECT - lex_state->extended_mode_comment = 0; - lex_state->flags_ptr = &flags; -#endif /* PCRE_DIALECT */ - /* XXX: unneccessary since we're lexing from a string */ /* (except for pushing "[" and "]" around ::group-$dialect) */ lx->buf_opaque = &lex_state->buf;