bison-patches
[Top][All Lists]
Advanced

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

[PATCH 6/6] lalr1.cc: check LAC support


From: Akim Demaille
Subject: [PATCH 6/6] lalr1.cc: check LAC support
Date: Fri, 9 Aug 2019 06:47:02 -0500

* tests/conflicts.at, tests/input.at, tests/regression.at: here.
---
 tests/conflicts.at  | 16 +++++++++++++++-
 tests/input.at      | 11 +++++++++++
 tests/regression.at |  2 ++
 3 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/tests/conflicts.at b/tests/conflicts.at
index 444e2c99..e857bf20 100644
--- a/tests/conflicts.at
+++ b/tests/conflicts.at
@@ -541,7 +541,7 @@ AT_CONSISTENT_ERRORS_CHECK([[%define lr.type canonical-lr]],
                            [AT_PREVIOUS_STATE_INPUT],
                            [[$end]], [[ab]])
 
-# Only LAC gets it right.
+# Only LAC gets it right.  In C.
 AT_CONSISTENT_ERRORS_CHECK([[%define lr.type canonical-lr
                              %define parse.lac full]],
                            [AT_PREVIOUS_STATE_GRAMMAR],
@@ -553,6 +553,20 @@ AT_CONSISTENT_ERRORS_CHECK([[%define lr.type ielr
                            [AT_PREVIOUS_STATE_INPUT],
                            [[$end]], [[b]])
 
+# Only LAC gets it right.  In C++.
+AT_CONSISTENT_ERRORS_CHECK([[%language "c++"
+                             %define lr.type canonical-lr
+                             %define parse.lac full]],
+                           [AT_PREVIOUS_STATE_GRAMMAR],
+                           [AT_PREVIOUS_STATE_INPUT],
+                           [[$end]], [[b]])
+AT_CONSISTENT_ERRORS_CHECK([[%language "c++"
+                             %define lr.type ielr
+                             %define parse.lac full]],
+                           [AT_PREVIOUS_STATE_GRAMMAR],
+                           [AT_PREVIOUS_STATE_INPUT],
+                           [[$end]], [[b]])
+
 m4_popdef([AT_PREVIOUS_STATE_GRAMMAR])
 m4_popdef([AT_PREVIOUS_STATE_INPUT])
 
diff --git a/tests/input.at b/tests/input.at
index 0d3a5917..2cc829f5 100644
--- a/tests/input.at
+++ b/tests/input.at
@@ -2247,6 +2247,7 @@ AT_CLEANUP
 ## ------------------------- ##
 
 AT_SETUP([[LAC: Errors for %define]])
+AT_KEYWORDS([lac])
 
 AT_DATA([[input.y]],
 [[%%
@@ -2263,6 +2264,16 @@ AT_BISON_CHECK([[-Dparse.lac.memory-trace=full input.y]],
 [[<command line>:3: error: %define variable 'parse.lac.memory-trace' is not 
used
 ]])
 
+# parse.lac.* options are useless in C++ even if LAC isn't actually activated.
+AT_BISON_CHECK([[-Dparse.lac.es-capacity-initial=1 -L C++ -Dparse.lac 
input.y]],
+               [[1]], [],
+[[<command line>:3: error: %define variable 'parse.lac.es-capacity-initial' is 
not used
+]])
+AT_BISON_CHECK([[-Dparse.lac.memory-trace=full -L C++ -Dparse.lac  input.y]],
+               [[1]], [],
+[[<command line>:3: error: %define variable 'parse.lac.memory-trace' is not 
used
+]])
+
 AT_CLEANUP
 
 
diff --git a/tests/regression.at b/tests/regression.at
index b593bae6..507bcbb4 100644
--- a/tests/regression.at
+++ b/tests/regression.at
@@ -1375,6 +1375,8 @@ AT_LAC_CHECK([[%define api.push-pull pull %define 
api.pure]])
 AT_LAC_CHECK([[%define api.push-pull both]])
 AT_LAC_CHECK([[%define api.push-pull both %define api.pure]])
 
+AT_LAC_CHECK([[%skeleton "lalr1.cc"]])
+
 m4_popdef([AT_LAC_CHECK])
 
 AT_CLEANUP
-- 
2.22.0




reply via email to

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