bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 2/5] tests: refactor


From: Akim Demaille
Subject: [PATCH 2/5] tests: refactor
Date: Mon, 31 Dec 2018 07:53:58 +0100

---
 tests/c++.at | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/tests/c++.at b/tests/c++.at
index 92697379..4dd39bc7 100644
--- a/tests/c++.at
+++ b/tests/c++.at
@@ -853,6 +853,7 @@ AT_CLEANUP
 
 m4_popdef([AT_TEST])
 
+
 ## -------------------------------------- ##
 ## Syntax error discarding no lookahead.  ##
 ## -------------------------------------- ##
@@ -936,12 +937,14 @@ AT_CLEANUP
 ## 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]],
-[[%skeleton "lalr1.cc"
+AT_DATA_GRAMMAR([[input.yy]],
+[[$1
 %defines
 
 %code
@@ -950,7 +953,6 @@ AT_DATA_GRAMMAR([[input.y]],
   int yylex (yy::parser::semantic_type *);
 }
 
-%define api.value.type variant
 %define parse.error verbose
 %define parse.trace
 %%
@@ -969,7 +971,7 @@ item:
   'a'
 | '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_DATA_SOURCE([input-scan.cc],
+AT_DATA_SOURCE([scan.cc],
 [[#include "input.hh"
 
 int
@@ -1000,8 +1002,10 @@ yylex (yy::parser::semantic_type *)
 }
 ]])
 
+AT_BISON_CHECK([[-o input.cc input.yy]])
+
 AT_FOR_EACH_CXX([
-AT_FULL_COMPILE([[input]], [[scan]])
+AT_LANG_COMPILE([[input]], [[input.cc scan.cc]])
 
 AT_PARSER_CHECK([[./input]], [[0]], [[]],
 [[error: invalid expression
@@ -1013,7 +1017,11 @@ caught error
 
 AT_BISON_OPTION_POPDEFS
 AT_CLEANUP
+])
+
+AT_TEST([%skeleton "lalr1.cc"])
 
+m4_popdef([AT_TEST])
 
 ## ------------------ ##
 ## Exception safety.  ##
-- 
2.20.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]