* tests/actions.at, tests/glr-regression.at, tests/regression.at: here.
# include <assert.h>
]AT_YYERROR_DECLARE[
- static int yylex (YYSTYPE *yylval);
+ ]AT_YYLEX_DECLARE[
}
%%
input:
%%
]AT_YYERROR_DEFINE[
-static int
-yylex (YYSTYPE *yylval)
-{
- static char const input[] = "bcd";
- static size_t toknum;
- assert (toknum < sizeof input);
- *yylval = (toknum + 1) * 10;
- return input[toknum++];
-}
+]AT_YYLEX_DEFINE(["bcd"], [*lvalp = (toknum + 1) * 10])[
int
main (void)
}
]AT_YYERROR_DEFINE[
-static int
-yylex (void)
-{
- static int const input[] = { PARENT_RHS_AFTER, 0 };
- static size_t toknum;
- assert (toknum < sizeof input / sizeof *input);
- if (input[toknum] == PARENT_RHS_AFTER)
- parent_rhs_after_value = 1;
- return input[toknum++];
-}
+]AT_YYLEX_DEFINE([{ PARENT_RHS_AFTER, 0 }],
+ [if (res == PARENT_RHS_AFTER)
+ parent_rhs_after_value = 1;])[
int
main (void)
%%
]AT_YYERROR_DEFINE[
-static int
-yylex (void)
-{
- static char const input[] = "ab";
- static size_t toknum;
- assert (toknum < sizeof input);
- yylloc.first_line = yylloc.last_line = 1;
- yylloc.first_column = yylloc.last_column = toknum + 1;
- yylval.value = input[toknum] + 'A' - 'a';
- return input[toknum++];
-}
+]AT_YYLEX_DEFINE(["ab"],
+ [yylval.value = res + 'A' - 'a'])[
static void
print_lookahead (char const *reduction)
%%
]AT_YYERROR_DEFINE[
-static int
-yylex (void)
-{
- static char const input[] = "ab";
- static size_t toknum;
- assert (toknum < sizeof input);
- if (input[toknum] == 'b')
- lookahead_value = 1;
- return input[toknum++];
-}
+]AT_YYLEX_DEFINE(["ab"],
+ [if (res == 'b')
+ lookahead_value = 1])[
int
main (void)
exp: "a" "\\\'\?\"\a\b\f\n\r\t\v\001\201\x001\x000081??!";
%%
]AT_YYERROR_DEFINE[
-
-int
-yylex (void)
-{
- static int called;
- if (called++)
- abort ();
- return SPECIAL;
-}
+]AT_YYLEX_DEFINE([{ SPECIAL }])[
int
main (void)
# so that possible bound checking compilers could check all the skeletons.
m4_define([_AT_DATA_DANCER_Y],
[AT_DATA_GRAMMAR([dancer.y],
-[%{
-static int yylex (AT_LALR1_CC_IF([int *], [void]));
-AT_LALR1_CC_IF([],
-[#include <stdlib.h>
-#include <stdio.h>
-]AT_YYERROR_DECLARE[])
-%}
+[[%code provides
+{
+ ]AT_YYERROR_DECLARE[
+ ]AT_YYLEX_DECLARE[
+}
$1
%token ARROW INVALID NUMBER STRING DATA
%defines
| INVALID
;
%%
-AT_YYERROR_DEFINE[
+]AT_YYERROR_DEFINE[
+]AT_YYLEX_DEFINE([":"])[
]AT_LALR1_CC_IF(
[int
yyparse ()
#endif
return parser.parse ();
}
-])
-
-#include <assert.h>
-static int
-yylex (AT_LALR1_CC_IF([int *lval], [void]))
-[{
- static int const tokens[] =
- {
- ':', -1
- };
- static size_t toknum;
- ]AT_LALR1_CC_IF([*lval = 0; /* Pacify GCC. */])[
- assert (toknum < sizeof tokens / sizeof *tokens);
- return tokens[toknum++];
-}]
+])[
int
main (void)
{
return yyparse ();
}
-])
+]])
])# _AT_DATA_DANCER_Y
%printer { fprintf (yyoutput, "PRINTER"); } 'a';
%%
-
]AT_YYERROR_DEFINE[
-static int
-yylex (void)
-{
- return 'a';
-}
+]AT_YYLEX_DEFINE(["a"])[
int
main (void)
%%
]AT_YYERROR_DEFINE[
-int
-yylex (void)
-{
- static int const input[] = { 1, 2, 3, 0 };
- static int const *inputp = input;
- return *inputp++;
-}
+]AT_YYLEX_DEFINE([{ 1, 2, 3, 0 }])[
int
main (void)