268, 269, 271, 272, 273, 274, 275, 276, 277, 278,
279, 282, 283, 284, 285, 286, 287, 288, 289, 290,
291, 292, 294, 298, 299, 300, 302, 314, 328, 345,
- 350, 353, 356, 359, 371, 382, 391, 396, 397, 398,
- 408, 422, 429, 449, 459, 474, 484, 511, 524, 540,
- 555, 572, 573, 584, 595, 596, 608, 624, 634, 661,
-
- 673, 695, 696, 707, 722, 738, 739, 740, 741, 742,
- 743, 744, 747, 749, 763, 781, 786, 787, 793, 794,
- 806, 812, 818, 824, 841, 842, 846, 853, 878, 904,
- 932, 979, 981
+ 350, 353, 356, 359, 376, 387, 396, 401, 402, 403,
+ 413, 427, 434, 454, 464, 483, 495, 522, 535, 551,
+ 566, 583, 584, 595, 606, 607, 619, 635, 645, 672,
+
+ 684, 706, 707, 718, 733, 749, 750, 751, 752, 753,
+ 754, 755, 758, 760, 774, 792, 797, 798, 804, 805,
+ 817, 823, 829, 835, 852, 853, 857, 864, 894, 920,
+ 948, 995, 997
} ;
/* The intent behind this definition is that it'll catch
code_start = loc->start;
BEGIN SC_BRACED_CODE;
gram_piece_pack();
+#if 1 /* new way, includes braces, wrapped by <AST_Production_Action> later */
+ gram_piece_append("<AST_Text>");
+ gram_piece_flush(strlen(yytext));
+#else
gram_piece_append("<AST_BracedCode>");
gram_piece_flush(strlen(yytext));
gram_piece_append("<AST_Text>");
+#endif
}
YY_BREAK
/* Semantic predicate. */
case 75:
/* rule 75 can match eol */
YY_RULE_SETUP
-#line 371 "src/scan-gram.l"
+#line 376 "src/scan-gram.l"
{
nesting = 0;
code_start = loc->start;
/* Nick extra rules for element groups */
case 76:
YY_RULE_SETUP
-#line 382 "src/scan-gram.l"
+#line 387 "src/scan-gram.l"
{
STRING_GROW;
nesting = 0;
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 391 "src/scan-gram.l"
+#line 396 "src/scan-gram.l"
{
return ')';
}
/* A type. */
case 78:
YY_RULE_SETUP
-#line 396 "src/scan-gram.l"
+#line 401 "src/scan-gram.l"
gram_piece_pack(); gram_piece_append("<AST_TagRef><<AST_Text>*</AST_Text>></AST_TagRef>"); return ~TAG_ANY; /*return TAG_ANY;*/
YY_BREAK
case 79:
YY_RULE_SETUP
-#line 397 "src/scan-gram.l"
+#line 402 "src/scan-gram.l"
gram_piece_pack(); gram_piece_append("<AST_TagRef><<AST_Text />></AST_TagRef>"); return ~TAG_NONE; /*return TAG_NONE;*/
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 398 "src/scan-gram.l"
+#line 403 "src/scan-gram.l"
{
nesting = 0;
token_start = loc->start;
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 408 "src/scan-gram.l"
+#line 413 "src/scan-gram.l"
{
static int percent_percent_count;
if (++percent_percent_count == 2)
YY_BREAK
case 82:
YY_RULE_SETUP
-#line 422 "src/scan-gram.l"
+#line 427 "src/scan-gram.l"
{
bracketed_id_str = NULL;
bracketed_id_start = loc->start;
YY_BREAK
case 83:
YY_RULE_SETUP
-#line 429 "src/scan-gram.l"
+#line 434 "src/scan-gram.l"
{
complain (loc, complaint, "%s: %s",
ngettext ("invalid character", "invalid characters", yyleng),
}
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 435 "src/scan-gram.l"
+#line 440 "src/scan-gram.l"
{
loc->start = loc->end = scanner_cursor;
yyterminate ();
case 84:
YY_RULE_SETUP
-#line 449 "src/scan-gram.l"
+#line 454 "src/scan-gram.l"
complain (loc, complaint, _("invalid null character"));
YY_BREAK
case 85:
YY_RULE_SETUP
-#line 459 "src/scan-gram.l"
+#line 464 "src/scan-gram.l"
{
if (bracketed_id_str)
{
ROLLBACK_CURRENT_TOKEN;
BEGIN SC_RETURN_BRACKETED_ID;
*loc = id_loc;
+#if 1
+ return ~ID;
+#else
return ID;
+#endif
}
else
{
YY_BREAK
case 86:
YY_RULE_SETUP
-#line 474 "src/scan-gram.l"
+#line 483 "src/scan-gram.l"
{
BEGIN (bracketed_id_str ? SC_RETURN_BRACKETED_ID : INITIAL);
*loc = id_loc;
#if 1
gram_piece_escape(yytext, strlen(yytext));
+ --gram_piece0;
+ gram_piece_pack();
return ~ID_COLON;
#else
return ID_COLON;
YY_BREAK
case 87:
YY_RULE_SETUP
-#line 484 "src/scan-gram.l"
+#line 495 "src/scan-gram.l"
{
ROLLBACK_CURRENT_TOKEN;
BEGIN (bracketed_id_str ? SC_RETURN_BRACKETED_ID : INITIAL);
}
YY_BREAK
case YY_STATE_EOF(SC_AFTER_IDENTIFIER):
-#line 494 "src/scan-gram.l"
+#line 505 "src/scan-gram.l"
{
BEGIN (bracketed_id_str ? SC_RETURN_BRACKETED_ID : INITIAL);
*loc = id_loc;
case 88:
YY_RULE_SETUP
-#line 511 "src/scan-gram.l"
+#line 522 "src/scan-gram.l"
{
if (bracketed_id_str)
{
YY_BREAK
case 89:
YY_RULE_SETUP
-#line 524 "src/scan-gram.l"
+#line 535 "src/scan-gram.l"
{
BEGIN bracketed_id_context_state;
if (bracketed_id_str)
YY_BREAK
case 90:
YY_RULE_SETUP
-#line 540 "src/scan-gram.l"
+#line 551 "src/scan-gram.l"
{
complain (loc, complaint, "%s: %s",
ngettext ("invalid character in bracketed name",
}
YY_BREAK
case YY_STATE_EOF(SC_BRACKETED_ID):
-#line 547 "src/scan-gram.l"
+#line 558 "src/scan-gram.l"
{
BEGIN bracketed_id_context_state;
unexpected_eof (bracketed_id_start, "]");
case 91:
YY_RULE_SETUP
-#line 555 "src/scan-gram.l"
+#line 566 "src/scan-gram.l"
{
ROLLBACK_CURRENT_TOKEN;
val->uniqstr = bracketed_id_str;
case 92:
YY_RULE_SETUP
-#line 572 "src/scan-gram.l"
+#line 583 "src/scan-gram.l"
BEGIN context_state;
YY_BREAK
case 93:
/* rule 93 can match eol */
YY_RULE_SETUP
-#line 573 "src/scan-gram.l"
+#line 584 "src/scan-gram.l"
continue;
YY_BREAK
case YY_STATE_EOF(SC_YACC_COMMENT):
-#line 574 "src/scan-gram.l"
+#line 585 "src/scan-gram.l"
unexpected_eof (token_start, "*/"); BEGIN context_state;
YY_BREAK
case 94:
/* rule 94 can match eol */
YY_RULE_SETUP
-#line 584 "src/scan-gram.l"
+#line 595 "src/scan-gram.l"
STRING_GROW; BEGIN context_state;
YY_BREAK
case YY_STATE_EOF(SC_COMMENT):
-#line 585 "src/scan-gram.l"
+#line 596 "src/scan-gram.l"
unexpected_eof (token_start, "*/"); BEGIN context_state;
YY_BREAK
case 95:
/* rule 95 can match eol */
YY_RULE_SETUP
-#line 595 "src/scan-gram.l"
+#line 606 "src/scan-gram.l"
STRING_GROW; BEGIN context_state;
YY_BREAK
case 96:
/* rule 96 can match eol */
YY_RULE_SETUP
-#line 596 "src/scan-gram.l"
+#line 607 "src/scan-gram.l"
STRING_GROW;
YY_BREAK
case YY_STATE_EOF(SC_LINE_COMMENT):
-#line 597 "src/scan-gram.l"
+#line 608 "src/scan-gram.l"
BEGIN context_state;
YY_BREAK
case 97:
YY_RULE_SETUP
-#line 608 "src/scan-gram.l"
+#line 619 "src/scan-gram.l"
{
STRING_FINISH;
loc->start = token_start;
}
YY_BREAK
case YY_STATE_EOF(SC_ESCAPED_STRING):
-#line 623 "src/scan-gram.l"
+#line 634 "src/scan-gram.l"
unexpected_eof (token_start, "\"");
YY_BREAK
case 98:
/* rule 98 can match eol */
YY_RULE_SETUP
-#line 624 "src/scan-gram.l"
+#line 635 "src/scan-gram.l"
unexpected_newline (token_start, "\"");
YY_BREAK
case 99:
YY_RULE_SETUP
-#line 634 "src/scan-gram.l"
+#line 645 "src/scan-gram.l"
{
STRING_FINISH;
loc->start = token_start;
case 100:
/* rule 100 can match eol */
YY_RULE_SETUP
-#line 661 "src/scan-gram.l"
+#line 672 "src/scan-gram.l"
unexpected_newline (token_start, "'");
YY_BREAK
case YY_STATE_EOF(SC_ESCAPED_CHARACTER):
-#line 662 "src/scan-gram.l"
+#line 673 "src/scan-gram.l"
unexpected_eof (token_start, "'");
YY_BREAK
case 101:
YY_RULE_SETUP
-#line 673 "src/scan-gram.l"
+#line 684 "src/scan-gram.l"
{
--nesting;
if (nesting < 0)
case 102:
/* rule 102 can match eol */
YY_RULE_SETUP
-#line 695 "src/scan-gram.l"
+#line 706 "src/scan-gram.l"
STRING_GROW;
YY_BREAK
case 103:
YY_RULE_SETUP
-#line 696 "src/scan-gram.l"
+#line 707 "src/scan-gram.l"
STRING_GROW; nesting += yyleng;
YY_BREAK
case YY_STATE_EOF(SC_TAG):
-#line 698 "src/scan-gram.l"
+#line 709 "src/scan-gram.l"
unexpected_eof (token_start, ">");
YY_BREAK
case 104:
YY_RULE_SETUP
-#line 707 "src/scan-gram.l"
+#line 718 "src/scan-gram.l"
{
unsigned long int c = strtoul (yytext + 1, NULL, 8);
if (!c || UCHAR_MAX < c)
YY_BREAK
case 105:
YY_RULE_SETUP
-#line 722 "src/scan-gram.l"
+#line 733 "src/scan-gram.l"
{
verify (UCHAR_MAX < ULONG_MAX);
unsigned long int c = strtoul (yytext + 2, NULL, 16);
YY_BREAK
case 106:
YY_RULE_SETUP
-#line 738 "src/scan-gram.l"
+#line 749 "src/scan-gram.l"
obstack_1grow (&obstack_for_string, '\a'); gram_piece_append("<AST_Text_Escape character=\"7\">"); gram_piece_flush(strlen(yytext)); gram_piece_append("</AST_Text_Escape>");
YY_BREAK
case 107:
YY_RULE_SETUP
-#line 739 "src/scan-gram.l"
+#line 750 "src/scan-gram.l"
obstack_1grow (&obstack_for_string, '\b'); gram_piece_append("<AST_Text_Escape character=\"8\">"); gram_piece_flush(strlen(yytext)); gram_piece_append("</AST_Text_Escape>");
YY_BREAK
case 108:
YY_RULE_SETUP
-#line 740 "src/scan-gram.l"
+#line 751 "src/scan-gram.l"
obstack_1grow (&obstack_for_string, '\f'); gram_piece_append("<AST_Text_Escape character=\"12\">"); gram_piece_flush(strlen(yytext)); gram_piece_append("</AST_Text_Escape>");
YY_BREAK
case 109:
YY_RULE_SETUP
-#line 741 "src/scan-gram.l"
+#line 752 "src/scan-gram.l"
obstack_1grow (&obstack_for_string, '\n'); gram_piece_append("<AST_Text_Escape character=\"10\">"); gram_piece_flush(strlen(yytext)); gram_piece_append("</AST_Text_Escape>");
YY_BREAK
case 110:
YY_RULE_SETUP
-#line 742 "src/scan-gram.l"
+#line 753 "src/scan-gram.l"
obstack_1grow (&obstack_for_string, '\r'); gram_piece_append("<AST_Text_Escape character=\"13\">"); gram_piece_flush(strlen(yytext)); gram_piece_append("</AST_Text_Escape>");
YY_BREAK
case 111:
YY_RULE_SETUP
-#line 743 "src/scan-gram.l"
+#line 754 "src/scan-gram.l"
obstack_1grow (&obstack_for_string, '\t'); gram_piece_append("<AST_Text_Escape character=\"9\">"); gram_piece_flush(strlen(yytext)); gram_piece_append("</AST_Text_Escape>");
YY_BREAK
case 112:
YY_RULE_SETUP
-#line 744 "src/scan-gram.l"
+#line 755 "src/scan-gram.l"
obstack_1grow (&obstack_for_string, '\v'); gram_piece_append("<AST_Text_Escape character=\"11\">"); gram_piece_flush(strlen(yytext)); gram_piece_append("</AST_Text_Escape>");
YY_BREAK
/* \\[\"\'?\\] would be shorter, but it confuses xgettext. */
case 113:
YY_RULE_SETUP
-#line 747 "src/scan-gram.l"
+#line 758 "src/scan-gram.l"
obstack_1grow (&obstack_for_string, yytext[1]); sprintf(gram_piece_temp, "<AST_Text_Escape character=\"%d\">", yytext[1]); gram_piece_append(gram_piece_temp); gram_piece_flush(strlen(yytext)); gram_piece_append("</AST_Text_Escape>");
YY_BREAK
case 114:
YY_RULE_SETUP
-#line 749 "src/scan-gram.l"
+#line 760 "src/scan-gram.l"
{
int c = convert_ucn_to_byte (yytext);
if (c <= 0)
case 115:
/* rule 115 can match eol */
YY_RULE_SETUP
-#line 763 "src/scan-gram.l"
+#line 774 "src/scan-gram.l"
{
char const *p = yytext + 1;
/* Quote only if escaping won't make the character visible. */
case 116:
/* rule 116 can match eol */
YY_RULE_SETUP
-#line 781 "src/scan-gram.l"
+#line 792 "src/scan-gram.l"
STRING_GROW;
YY_BREAK
case 117:
YY_RULE_SETUP
-#line 786 "src/scan-gram.l"
+#line 797 "src/scan-gram.l"
STRING_GROW; BEGIN context_state;
YY_BREAK
case 118:
/* rule 118 can match eol */
YY_RULE_SETUP
-#line 787 "src/scan-gram.l"
+#line 798 "src/scan-gram.l"
unexpected_newline (token_start, "'");
YY_BREAK
case YY_STATE_EOF(SC_CHARACTER):
-#line 788 "src/scan-gram.l"
+#line 799 "src/scan-gram.l"
unexpected_eof (token_start, "'");
YY_BREAK
case 119:
YY_RULE_SETUP
-#line 793 "src/scan-gram.l"
+#line 804 "src/scan-gram.l"
STRING_GROW; BEGIN context_state;
YY_BREAK
case 120:
/* rule 120 can match eol */
YY_RULE_SETUP
-#line 794 "src/scan-gram.l"
+#line 805 "src/scan-gram.l"
unexpected_newline (token_start, "\"");
YY_BREAK
case YY_STATE_EOF(SC_STRING):
-#line 795 "src/scan-gram.l"
+#line 806 "src/scan-gram.l"
unexpected_eof (token_start, "\"");
YY_BREAK
case 121:
YY_RULE_SETUP
-#line 806 "src/scan-gram.l"
+#line 817 "src/scan-gram.l"
{
STRING_GROW;
context_state = YY_START;
YY_BREAK
case 122:
YY_RULE_SETUP
-#line 812 "src/scan-gram.l"
+#line 823 "src/scan-gram.l"
{
STRING_GROW;
context_state = YY_START;
case 123:
/* rule 123 can match eol */
YY_RULE_SETUP
-#line 818 "src/scan-gram.l"
+#line 829 "src/scan-gram.l"
{
STRING_GROW;
context_state = YY_START;
case 124:
/* rule 124 can match eol */
YY_RULE_SETUP
-#line 824 "src/scan-gram.l"
+#line 835 "src/scan-gram.l"
{
STRING_GROW;
context_state = YY_START;
case 125:
/* rule 125 can match eol */
YY_RULE_SETUP
-#line 841 "src/scan-gram.l"
+#line 852 "src/scan-gram.l"
STRING_GROW; nesting++;
YY_BREAK
case 126:
/* rule 126 can match eol */
YY_RULE_SETUP
-#line 842 "src/scan-gram.l"
+#line 853 "src/scan-gram.l"
STRING_GROW; nesting--;
YY_BREAK
/* Tokenize '<<%' correctly (as '<<' '%') rather than incorrrectly
case 127:
/* rule 127 can match eol */
YY_RULE_SETUP
-#line 846 "src/scan-gram.l"
+#line 857 "src/scan-gram.l"
STRING_GROW;
YY_BREAK
case YY_STATE_EOF(SC_BRACED_CODE):
case YY_STATE_EOF(SC_PREDICATE):
case YY_STATE_EOF(SC_ELEMENT_GROUP):
-#line 848 "src/scan-gram.l"
+#line 859 "src/scan-gram.l"
unexpected_eof (code_start, "}");
YY_BREAK
case 128:
YY_RULE_SETUP
-#line 853 "src/scan-gram.l"
+#line 864 "src/scan-gram.l"
{
obstack_1grow (&obstack_for_string, '}');
val->code = last_string;
BEGIN INITIAL;
#if 1
+#if 1 /* new way, includes braces, wrapped by <AST_Production_Action> later */
+ gram_piece_escape(yytext, strlen(yytext));
+ gram_piece_append("</AST_Text>");
+#else
gram_piece_append("</AST_Text>");
gram_piece_escape(yytext, strlen(yytext));
gram_piece_append("</AST_BracedCode>");
+#endif
gram_piece_pack();
return ~BRACED_CODE;
#else
case 129:
YY_RULE_SETUP
-#line 878 "src/scan-gram.l"
+#line 894 "src/scan-gram.l"
{
--nesting;
if (nesting < 0)
case 130:
YY_RULE_SETUP
-#line 904 "src/scan-gram.l"
+#line 920 "src/scan-gram.l"
{
obstack_1grow (&obstack_for_string, '}');
case 131:
YY_RULE_SETUP
-#line 932 "src/scan-gram.l"
+#line 948 "src/scan-gram.l"
{
STRING_FINISH;
loc->start = code_start;
}
YY_BREAK
case YY_STATE_EOF(SC_PROLOGUE):
-#line 948 "src/scan-gram.l"
+#line 964 "src/scan-gram.l"
unexpected_eof (code_start, "%}");
YY_BREAK
case YY_STATE_EOF(SC_EPILOGUE):
-#line 959 "src/scan-gram.l"
+#line 975 "src/scan-gram.l"
{
STRING_FINISH;
loc->start = code_start;
`-----------------------------------------------------*/
/* Nick added: SC_ELEMENT_GROUP */
case 132:
-#line 980 "src/scan-gram.l"
+#line 996 "src/scan-gram.l"
/* Nick added: SC_ELEMENT_GROUP */
case 133:
/* rule 133 can match eol */
YY_RULE_SETUP
-#line 981 "src/scan-gram.l"
+#line 997 "src/scan-gram.l"
STRING_GROW;
YY_BREAK
case 134:
YY_RULE_SETUP
-#line 984 "src/scan-gram.l"
+#line 1000 "src/scan-gram.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
-#line 3101 "src/scan-gram.c"
+#line 3117 "src/scan-gram.c"
case YY_STATE_EOF(SC_RETURN_BRACKETED_ID):
yyterminate();
/* %ok-for-header */
-#line 984 "src/scan-gram.l"
+#line 1000 "src/scan-gram.l"
/* Read bytes from FP into buffer BUF of size SIZE. Return the