mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-21 18:23:03 +00:00
tests: refactor
This commit is contained in:
24
tests/c++.at
24
tests/c++.at
@@ -853,6 +853,7 @@ AT_CLEANUP
|
|||||||
|
|
||||||
m4_popdef([AT_TEST])
|
m4_popdef([AT_TEST])
|
||||||
|
|
||||||
|
|
||||||
## -------------------------------------- ##
|
## -------------------------------------- ##
|
||||||
## Syntax error discarding no lookahead. ##
|
## Syntax error discarding no lookahead. ##
|
||||||
## -------------------------------------- ##
|
## -------------------------------------- ##
|
||||||
@@ -936,12 +937,14 @@ AT_CLEANUP
|
|||||||
## Syntax error as exception. ##
|
## Syntax error as exception. ##
|
||||||
## --------------------------- ##
|
## --------------------------- ##
|
||||||
|
|
||||||
AT_SETUP([[Syntax error as exception]])
|
# AT_TEST([BISON-DIRECTIVES = ''])
|
||||||
|
m4_pushdef([AT_TEST],
|
||||||
|
[AT_SETUP([[Syntax error as exception: $1]])
|
||||||
|
|
||||||
AT_BISON_OPTION_PUSHDEFS([%skeleton "lalr1.cc"])
|
AT_BISON_OPTION_PUSHDEFS([$1])
|
||||||
|
|
||||||
AT_DATA_GRAMMAR([[input.y]],
|
AT_DATA_GRAMMAR([[input.yy]],
|
||||||
[[%skeleton "lalr1.cc"
|
[[$1
|
||||||
%defines
|
%defines
|
||||||
|
|
||||||
%code
|
%code
|
||||||
@@ -950,7 +953,6 @@ AT_DATA_GRAMMAR([[input.y]],
|
|||||||
int yylex (yy::parser::semantic_type *);
|
int yylex (yy::parser::semantic_type *);
|
||||||
}
|
}
|
||||||
|
|
||||||
%define api.value.type variant
|
|
||||||
%define parse.error verbose
|
%define parse.error verbose
|
||||||
%define parse.trace
|
%define parse.trace
|
||||||
%%
|
%%
|
||||||
@@ -969,7 +971,7 @@ item:
|
|||||||
'a'
|
'a'
|
||||||
| 's'
|
| 's'
|
||||||
{
|
{
|
||||||
throw yy::parser::syntax_error ("invalid expression");
|
throw syntax_error ("invalid expression");
|
||||||
}
|
}
|
||||||
|
|
||||||
%%
|
%%
|
||||||
@@ -982,7 +984,7 @@ yy::parser::error (const std::string &m)
|
|||||||
]AT_MAIN_DEFINE[
|
]AT_MAIN_DEFINE[
|
||||||
]])
|
]])
|
||||||
|
|
||||||
AT_DATA_SOURCE([input-scan.cc],
|
AT_DATA_SOURCE([scan.cc],
|
||||||
[[#include "input.hh"
|
[[#include "input.hh"
|
||||||
|
|
||||||
int
|
int
|
||||||
@@ -1000,8 +1002,10 @@ yylex (yy::parser::semantic_type *)
|
|||||||
}
|
}
|
||||||
]])
|
]])
|
||||||
|
|
||||||
|
AT_BISON_CHECK([[-o input.cc input.yy]])
|
||||||
|
|
||||||
AT_FOR_EACH_CXX([
|
AT_FOR_EACH_CXX([
|
||||||
AT_FULL_COMPILE([[input]], [[scan]])
|
AT_LANG_COMPILE([[input]], [[input.cc scan.cc]])
|
||||||
|
|
||||||
AT_PARSER_CHECK([[./input]], [[0]], [[]],
|
AT_PARSER_CHECK([[./input]], [[0]], [[]],
|
||||||
[[error: invalid expression
|
[[error: invalid expression
|
||||||
@@ -1013,7 +1017,11 @@ caught error
|
|||||||
|
|
||||||
AT_BISON_OPTION_POPDEFS
|
AT_BISON_OPTION_POPDEFS
|
||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
|
])
|
||||||
|
|
||||||
|
AT_TEST([%skeleton "lalr1.cc"])
|
||||||
|
|
||||||
|
m4_popdef([AT_TEST])
|
||||||
|
|
||||||
## ------------------ ##
|
## ------------------ ##
|
||||||
## Exception safety. ##
|
## Exception safety. ##
|
||||||
|
|||||||
Reference in New Issue
Block a user