[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH 6/6] lalr1.cc: check LAC support,
Akim Demaille <=