mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-19 17:23:02 +00:00
tests: more uniformity.
* tests/local.at (AT_LEX_FORMALS, AT_LEX_ARGS, AT_LEX_PRE_FORMALS) (AT_LEX_PRE_ARGS): Rename as... (AT_YYLEX_FORMALS, AT_YYLEX_ARGS, AT_YYLEX_PRE_FORMALS) (AT_YYLEX_PRE_ARGS): these, for consistency. (AT_API_PREFIX): Take %name-prefix into account. (AT_YYLEX_PROTOTYPE): New. Use it. * tests/actions.at, tests/calc.at, tests/cxx-type.at: Adjust to use them.
This commit is contained in:
@@ -205,8 +205,8 @@ m4_ifval([$6], [%union
|
|||||||
}])
|
}])
|
||||||
AT_LALR1_CC_IF([%define global_tokens_and_yystype])
|
AT_LALR1_CC_IF([%define global_tokens_and_yystype])
|
||||||
m4_ifval([$6], [[%code provides {]], [[%code {]])
|
m4_ifval([$6], [[%code provides {]], [[%code {]])
|
||||||
AT_LALR1_CC_IF([typedef yy::location YYLTYPE;])
|
AT_LALR1_CC_IF([typedef yy::location YYLTYPE;])[
|
||||||
[static int yylex (]AT_LEX_FORMALS[);
|
]AT_YYLEX_DECLARE[
|
||||||
]AT_LALR1_CC_IF([], [AT_YYERROR_DECLARE])
|
]AT_LALR1_CC_IF([], [AT_YYERROR_DECLARE])
|
||||||
[}
|
[}
|
||||||
|
|
||||||
@@ -309,8 +309,8 @@ thing:
|
|||||||
/* Alias to ARGV[1]. */
|
/* Alias to ARGV[1]. */
|
||||||
const char *source = YY_NULL;
|
const char *source = YY_NULL;
|
||||||
|
|
||||||
static int
|
static
|
||||||
yylex (]AT_LEX_FORMALS[)
|
]AT_YYLEX_PROTOTYPE[
|
||||||
{
|
{
|
||||||
static unsigned int counter = 0;
|
static unsigned int counter = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -110,15 +110,15 @@ main (int argc, const char **argv)
|
|||||||
m4_pushdef([AT_CALC_LEX],
|
m4_pushdef([AT_CALC_LEX],
|
||||||
[[#include <ctype.h>
|
[[#include <ctype.h>
|
||||||
|
|
||||||
int ]AT_NAME_PREFIX[lex (]AT_LEX_FORMALS[);
|
]AT_YYLEX_DECLARE_EXTERN[
|
||||||
static int get_char (]AT_LEX_FORMALS[);
|
static int get_char (]AT_YYLEX_FORMALS[);
|
||||||
static void unget_char (]AT_LEX_PRE_FORMALS[ int c);
|
static void unget_char (]AT_YYLEX_PRE_FORMALS[ int c);
|
||||||
|
|
||||||
]AT_LOCATION_IF([
|
]AT_LOCATION_IF([
|
||||||
static YYLTYPE last_yylloc;
|
static YYLTYPE last_yylloc;
|
||||||
])[
|
])[
|
||||||
static int
|
static int
|
||||||
get_char (]AT_LEX_FORMALS[)
|
get_char (]AT_YYLEX_FORMALS[)
|
||||||
{
|
{
|
||||||
int res = getc (input);
|
int res = getc (input);
|
||||||
]AT_USE_LEX_ARGS[;
|
]AT_USE_LEX_ARGS[;
|
||||||
@@ -136,7 +136,7 @@ get_char (]AT_LEX_FORMALS[)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
unget_char (]AT_LEX_PRE_FORMALS[ int c)
|
unget_char (]AT_YYLEX_PRE_FORMALS[ int c)
|
||||||
{
|
{
|
||||||
]AT_USE_LEX_ARGS[;
|
]AT_USE_LEX_ARGS[;
|
||||||
]AT_LOCATION_IF([
|
]AT_LOCATION_IF([
|
||||||
@@ -147,26 +147,26 @@ unget_char (]AT_LEX_PRE_FORMALS[ int c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
read_signed_integer (]AT_LEX_FORMALS[)
|
read_signed_integer (]AT_YYLEX_FORMALS[)
|
||||||
{
|
{
|
||||||
int c = get_char (]AT_LEX_ARGS[);
|
int c = get_char (]AT_YYLEX_ARGS[);
|
||||||
int sign = 1;
|
int sign = 1;
|
||||||
int n = 0;
|
int n = 0;
|
||||||
|
|
||||||
]AT_USE_LEX_ARGS[;
|
]AT_USE_LEX_ARGS[;
|
||||||
if (c == '-')
|
if (c == '-')
|
||||||
{
|
{
|
||||||
c = get_char (]AT_LEX_ARGS[);
|
c = get_char (]AT_YYLEX_ARGS[);
|
||||||
sign = -1;
|
sign = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (isdigit (c))
|
while (isdigit (c))
|
||||||
{
|
{
|
||||||
n = 10 * n + (c - '0');
|
n = 10 * n + (c - '0');
|
||||||
c = get_char (]AT_LEX_ARGS[);
|
c = get_char (]AT_YYLEX_ARGS[);
|
||||||
}
|
}
|
||||||
|
|
||||||
unget_char (]AT_LEX_PRE_ARGS[ c);
|
unget_char (]AT_YYLEX_PRE_ARGS[ c);
|
||||||
|
|
||||||
return sign * n;
|
return sign * n;
|
||||||
}
|
}
|
||||||
@@ -178,8 +178,7 @@ read_signed_integer (]AT_LEX_FORMALS[)
|
|||||||
| blanks and tabs, returns 0 for EOF. |
|
| blanks and tabs, returns 0 for EOF. |
|
||||||
`---------------------------------------------------------------*/
|
`---------------------------------------------------------------*/
|
||||||
|
|
||||||
int
|
]AT_YYLEX_PROTOTYPE[
|
||||||
]AT_NAME_PREFIX[lex (]AT_LEX_FORMALS[)
|
|
||||||
{
|
{
|
||||||
static int init = 1;
|
static int init = 1;
|
||||||
int c;
|
int c;
|
||||||
@@ -201,13 +200,13 @@ int
|
|||||||
AT_LOC_FIRST_LINE = AT_LOC_LAST_LINE;
|
AT_LOC_FIRST_LINE = AT_LOC_LAST_LINE;
|
||||||
])[
|
])[
|
||||||
}
|
}
|
||||||
while ((c = get_char (]AT_LEX_ARGS[)) == ' ' || c == '\t');
|
while ((c = get_char (]AT_YYLEX_ARGS[)) == ' ' || c == '\t');
|
||||||
|
|
||||||
/* process numbers */
|
/* process numbers */
|
||||||
if (c == '.' || isdigit (c))
|
if (c == '.' || isdigit (c))
|
||||||
{
|
{
|
||||||
unget_char (]AT_LEX_PRE_ARGS[ c);
|
unget_char (]AT_YYLEX_PRE_ARGS[ c);
|
||||||
]AT_VAL[.ival = read_signed_integer (]AT_LEX_ARGS[);
|
]AT_VAL[.ival = read_signed_integer (]AT_YYLEX_ARGS[);
|
||||||
return NUM;
|
return NUM;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -288,14 +287,11 @@ FILE *input;
|
|||||||
static int power (int base, int exponent);
|
static int power (int base, int exponent);
|
||||||
|
|
||||||
]AT_SKEL_CC_IF(,
|
]AT_SKEL_CC_IF(,
|
||||||
[/* yyerror receives the location if:
|
[static void yyerror (AT_YYERROR_ARG_LOC_IF([YYLTYPE *llocp, ])
|
||||||
- %location & %pure & %glr
|
|
||||||
- %location & %pure & %yacc & %parse-param. */
|
|
||||||
static void yyerror (AT_YYERROR_ARG_LOC_IF([YYLTYPE *llocp, ])
|
|
||||||
AT_PARAM_IF([semantic_value *result, int *count, ])
|
AT_PARAM_IF([semantic_value *result, int *count, ])
|
||||||
const char *s
|
const char *s
|
||||||
);])[
|
);])[
|
||||||
int yylex (]AT_LEX_FORMALS[);
|
]AT_YYLEX_DECLARE_EXTERN[
|
||||||
}
|
}
|
||||||
|
|
||||||
]AT_SKEL_CC_IF([AT_LOCATION_TYPE_IF([], [
|
]AT_SKEL_CC_IF([AT_LOCATION_TYPE_IF([], [
|
||||||
|
|||||||
@@ -135,8 +135,7 @@ main (int argc, char **argv)
|
|||||||
|
|
||||||
]AT_YYERROR_DEFINE[
|
]AT_YYERROR_DEFINE[
|
||||||
|
|
||||||
int
|
]AT_YYLEX_PROTOTYPE[
|
||||||
yylex (]AT_LEX_FORMALS[)
|
|
||||||
{
|
{
|
||||||
char buffer[256];
|
char buffer[256];
|
||||||
int c;
|
int c;
|
||||||
|
|||||||
@@ -138,11 +138,11 @@ m4_pushdef([AT_GLR_OR_PARAM_IF],
|
|||||||
[m4_bmatch([$3], [%glr-parser\|%parse-param], [$1], [$2])])
|
[m4_bmatch([$3], [%glr-parser\|%parse-param], [$1], [$2])])
|
||||||
m4_pushdef([AT_NAME_PREFIX],
|
m4_pushdef([AT_NAME_PREFIX],
|
||||||
[m4_bmatch([$3], [%name-prefix ".*"],
|
[m4_bmatch([$3], [%name-prefix ".*"],
|
||||||
[m4_bregexp([$3], [name-prefix "\([^""]*\)"], [\1])],
|
[m4_bregexp([$3], [%name-prefix "\([^""]*\)"], [\1])],
|
||||||
[yy])])
|
[yy])])
|
||||||
m4_pushdef([AT_API_PREFIX],
|
m4_pushdef([AT_API_PREFIX],
|
||||||
[m4_bmatch([$3], [%define api\.prefix ".*"],
|
[m4_bmatch([$3], [\(%define api\.prefix\|%name-prefix\) ".*"],
|
||||||
[m4_bregexp([$3], [%define api\.prefix "\([^""]*\)"], [\1])],
|
[m4_bregexp([$3], [\(%define api\.prefix\|%name-prefix\) "\([^""]*\)"], [\2])],
|
||||||
[yy])])
|
[yy])])
|
||||||
# yyerror receives the location if %location & %pure & (%glr or %parse-param).
|
# yyerror receives the location if %location & %pure & (%glr or %parse-param).
|
||||||
m4_pushdef([AT_YYERROR_ARG_LOC_IF],
|
m4_pushdef([AT_YYERROR_ARG_LOC_IF],
|
||||||
@@ -165,24 +165,24 @@ m4_pushdef([AT_PURE_LEX_IF],
|
|||||||
AT_PURE_LEX_IF(
|
AT_PURE_LEX_IF(
|
||||||
[m4_pushdef([AT_LOC], [(*llocp)])
|
[m4_pushdef([AT_LOC], [(*llocp)])
|
||||||
m4_pushdef([AT_VAL], [(*lvalp)])
|
m4_pushdef([AT_VAL], [(*lvalp)])
|
||||||
m4_pushdef([AT_LEX_FORMALS],
|
m4_pushdef([AT_YYLEX_FORMALS],
|
||||||
[YYSTYPE *lvalp[]AT_LOCATION_IF([, YYLTYPE *llocp])])
|
[YYSTYPE *lvalp[]AT_LOCATION_IF([, YYLTYPE *llocp])])
|
||||||
m4_pushdef([AT_LEX_ARGS],
|
m4_pushdef([AT_YYLEX_ARGS],
|
||||||
[lvalp[]AT_LOCATION_IF([, llocp])])
|
[lvalp[]AT_LOCATION_IF([, llocp])])
|
||||||
m4_pushdef([AT_USE_LEX_ARGS],
|
m4_pushdef([AT_USE_LEX_ARGS],
|
||||||
[(void) lvalp;AT_LOCATION_IF([(void) llocp])])
|
[(void) lvalp;AT_LOCATION_IF([(void) llocp])])
|
||||||
m4_pushdef([AT_LEX_PRE_FORMALS],
|
m4_pushdef([AT_YYLEX_PRE_FORMALS],
|
||||||
[AT_LEX_FORMALS, ])
|
[AT_YYLEX_FORMALS, ])
|
||||||
m4_pushdef([AT_LEX_PRE_ARGS],
|
m4_pushdef([AT_YYLEX_PRE_ARGS],
|
||||||
[AT_LEX_ARGS, ])
|
[AT_YYLEX_ARGS, ])
|
||||||
],
|
],
|
||||||
[m4_pushdef([AT_LOC], [[(]AT_NAME_PREFIX[lloc)]])
|
[m4_pushdef([AT_LOC], [[(]AT_NAME_PREFIX[lloc)]])
|
||||||
m4_pushdef([AT_VAL], [[(]AT_NAME_PREFIX[lval)]])
|
m4_pushdef([AT_VAL], [[(]AT_NAME_PREFIX[lval)]])
|
||||||
m4_pushdef([AT_LEX_FORMALS], [void])
|
m4_pushdef([AT_YYLEX_FORMALS], [void])
|
||||||
m4_pushdef([AT_LEX_ARGS], [])
|
m4_pushdef([AT_YYLEX_ARGS], [])
|
||||||
m4_pushdef([AT_USE_LEX_ARGS], [])
|
m4_pushdef([AT_USE_LEX_ARGS], [])
|
||||||
m4_pushdef([AT_LEX_PRE_FORMALS], [])
|
m4_pushdef([AT_YYLEX_PRE_FORMALS], [])
|
||||||
m4_pushdef([AT_LEX_PRE_ARGS], [])
|
m4_pushdef([AT_YYLEX_PRE_ARGS], [])
|
||||||
])
|
])
|
||||||
|
|
||||||
# Handle the different types of location components.
|
# Handle the different types of location components.
|
||||||
@@ -199,11 +199,11 @@ AT_SKEL_CC_IF(
|
|||||||
# AT_BISON_OPTION_POPDEFS
|
# AT_BISON_OPTION_POPDEFS
|
||||||
# -----------------------
|
# -----------------------
|
||||||
m4_define([AT_BISON_OPTION_POPDEFS],
|
m4_define([AT_BISON_OPTION_POPDEFS],
|
||||||
[m4_popdef([AT_LEX_PRE_ARGS])
|
[m4_popdef([AT_YYLEX_PRE_ARGS])
|
||||||
m4_popdef([AT_LEX_PRE_FORMALS])
|
m4_popdef([AT_YYLEX_PRE_FORMALS])
|
||||||
m4_popdef([AT_USE_LEX_ARGS])
|
m4_popdef([AT_USE_LEX_ARGS])
|
||||||
m4_popdef([AT_LEX_ARGS])
|
m4_popdef([AT_YYLEX_ARGS])
|
||||||
m4_popdef([AT_LEX_FORMALS])
|
m4_popdef([AT_YYLEX_FORMALS])
|
||||||
m4_popdef([AT_VAL])
|
m4_popdef([AT_VAL])
|
||||||
m4_popdef([AT_LOC])
|
m4_popdef([AT_LOC])
|
||||||
m4_popdef([AT_PURE_LEX_IF])
|
m4_popdef([AT_PURE_LEX_IF])
|
||||||
@@ -276,12 +276,17 @@ m4_define([AT_DATA_GRAMMAR],
|
|||||||
$2])
|
$2])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
# AT_YYLEX_PROTOTYPE
|
||||||
# AT_YYLEX_DECLARE_EXTERN
|
# AT_YYLEX_DECLARE_EXTERN
|
||||||
# AT_YYLEX_DECLARE
|
# AT_YYLEX_DECLARE
|
||||||
# AT_YYLEX_DEFINE(INPUT-STRING, [ACTION])
|
# AT_YYLEX_DEFINE(INPUT-STRING, [ACTION])
|
||||||
# ---------------------------------------
|
# ---------------------------------------
|
||||||
|
m4_define([AT_YYLEX_PROTOTYPE],
|
||||||
|
[int AT_API_PREFIX[]lex (]AT_YYLEX_FORMALS[)[]dnl
|
||||||
|
])
|
||||||
|
|
||||||
m4_define([AT_YYLEX_DECLARE_EXTERN],
|
m4_define([AT_YYLEX_DECLARE_EXTERN],
|
||||||
[int AT_API_PREFIX[]lex (]AT_LEX_FORMALS[);dnl
|
[AT_YYLEX_PROTOTYPE;dnl
|
||||||
])
|
])
|
||||||
|
|
||||||
m4_define([AT_YYLEX_DECLARE],
|
m4_define([AT_YYLEX_DECLARE],
|
||||||
@@ -290,8 +295,8 @@ m4_define([AT_YYLEX_DECLARE],
|
|||||||
|
|
||||||
m4_define([AT_YYLEX_DEFINE],
|
m4_define([AT_YYLEX_DEFINE],
|
||||||
[[#include <stdlib.h> /* abort */
|
[[#include <stdlib.h> /* abort */
|
||||||
static int
|
static
|
||||||
]AT_API_PREFIX[lex (]AT_LEX_FORMALS[)
|
]AT_YYLEX_PROTOTYPE[
|
||||||
{
|
{
|
||||||
static char const input[] = "$1";
|
static char const input[] = "$1";
|
||||||
static size_t toknum = 0;
|
static size_t toknum = 0;
|
||||||
@@ -312,9 +317,14 @@ static int
|
|||||||
# AT_YYERROR_DEFINE
|
# AT_YYERROR_DEFINE
|
||||||
# -------------------------
|
# -------------------------
|
||||||
# Must be called inside a AT_BISON_OPTION_PUSHDEFS/POPDEFS pair.
|
# Must be called inside a AT_BISON_OPTION_PUSHDEFS/POPDEFS pair.
|
||||||
|
m4_define([AT_YYERROR_FORMALS],
|
||||||
|
[m4_case(AT_LANG,
|
||||||
|
[c], [AT_YYERROR_ARG_LOC_IF([YYLTYPE *llocp, ])[const char *msg]])[]dnl
|
||||||
|
])
|
||||||
|
|
||||||
m4_define([AT_YYERROR_PROTOTYPE],
|
m4_define([AT_YYERROR_PROTOTYPE],
|
||||||
[m4_case(AT_LANG,
|
[m4_case(AT_LANG,
|
||||||
[c], [[void ]AT_API_PREFIX[error (]AT_YYERROR_ARG_LOC_IF([YYLTYPE *llocp, ])[const char *msg)]])[]dnl
|
[c], [[void ]AT_API_PREFIX[error (]AT_YYERROR_FORMALS[)]])[]dnl
|
||||||
])
|
])
|
||||||
|
|
||||||
m4_define([AT_YYERROR_DECLARE_EXTERN],
|
m4_define([AT_YYERROR_DECLARE_EXTERN],
|
||||||
|
|||||||
Reference in New Issue
Block a user