38 |
b4_location_if([, [[YYLTYPE *], [yyllocp]]])])dnl |
b4_location_if([, [[YYLTYPE *], [yyllocp]]])])dnl |
39 |
m4_ifdef([b4_lex_param], [, ]b4_lex_param))) |
m4_ifdef([b4_lex_param], [, ]b4_lex_param))) |
40 |
|
|
41 |
m4_define_default([b4_parse_param]) |
# Yes, this is quite ugly... |
42 |
|
m4_define_default([b4_parse_param]) |
43 |
|
m4_ifdef([b4_parse_param], |
44 |
|
[m4_define([b4_parse_param], |
45 |
|
b4_parse_param)]) |
46 |
|
|
47 |
|
|
48 |
|
|
49 |
## ----------------- ## |
## ----------------- ## |
382 |
}; |
}; |
383 |
|
|
384 |
|
|
385 |
/* The user can define YYPARSE_PARAM as the name of an argument to be passed |
/* Prevent warning if -Wmissing-prototypes. */ |
386 |
into yyparse. The argument should have type void *. |
]b4_c_ansi_function_decl([yyparse], [int], b4_parse_param)[ |
|
It should actually point to an object. |
|
|
Grammar actions can access the variable by casting it |
|
|
to the proper pointer type. */ |
|
|
|
|
|
#ifdef YYPARSE_PARAM |
|
|
# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM |
|
|
#else /* !YYPARSE_PARAM */ |
|
|
# define YYPARSE_PARAM_ARG void |
|
|
#endif /* !YYPARSE_PARAM */ |
|
|
|
|
|
/* Prevent warning if -Wstrict-prototypes. */ |
|
|
#ifdef __GNUC__ |
|
|
# ifdef YYPARSE_PARAM |
|
|
int yyparse (void *); |
|
|
# else |
|
|
int yyparse (void); |
|
|
# endif |
|
|
#endif |
|
387 |
|
|
388 |
/* Error token number */ |
/* Error token number */ |
389 |
#define YYTERROR 1 |
#define YYTERROR 1 |
1647 |
} \ |
} \ |
1648 |
} while (0) |
} while (0) |
1649 |
|
|
1650 |
int |
|
1651 |
yyparse (YYPARSE_PARAM_ARG) |
/*----------. |
1652 |
|
| yyparse. | |
1653 |
|
`----------*/ |
1654 |
|
|
1655 |
|
]b4_c_ansi_function_def([yyparse], [int], b4_parse_param)[ |
1656 |
{ |
{ |
1657 |
yySymbol yytoken; |
yySymbol yytoken; |
1658 |
yyGLRStack yystack; |
yyGLRStack yystack; |