bison-patches
[Top][All Lists]
Advanced

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

[PATCH 4/4] d: prepare to be able to run LAC tests


From: Akim Demaille
Subject: [PATCH 4/4] d: prepare to be able to run LAC tests
Date: Sat, 7 Aug 2021 12:56:32 +0200

Unfortunately it seems to be quite difficult to have "LAC: Exploratory
stack" run for D.

* data/skeletons/lalr1.d: We need File when traces are enabled.
* tests/local.at (AT_YYLEX_DEFINE(d)): New.
* tests/regression.at: Prepare for D, but don't run it, it does not
work.
---
 data/skeletons/lalr1.d |  1 +
 tests/local.at         | 20 ++++++++++++++++++++
 tests/regression.at    | 10 +++++++++-
 3 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/data/skeletons/lalr1.d b/data/skeletons/lalr1.d
index dc54c664..97303772 100644
--- a/data/skeletons/lalr1.d
+++ b/data/skeletons/lalr1.d
@@ -300,6 +300,7 @@ b4_user_union_members
 ]b4_parse_param_cons[
   }
 ]b4_parse_trace_if([[
+  import std.stdio;
   private File yyDebugStream;
 
   /**
diff --git a/tests/local.at b/tests/local.at
index e24c419d..01cf5845 100644
--- a/tests/local.at
+++ b/tests/local.at
@@ -953,6 +953,26 @@ m4_define([AT_YYERROR_DEFINE(d)],
 ]])[]])
 
 
+# FIXME: this does not work.  It is a stub copied blindly from Java.
+m4_define([AT_YYLEX_DEFINE(d)],
+[[
+  /*--------.
+  | yylex.  |
+  `--------*/
+
+  public string input = ]$1[;
+  public int index = 0;
+  public int yylex() {
+    if (index < input.length())
+      return input.charAt(index++);
+    else
+      return 0;
+  }
+  public Object getLVal() {
+    ]m4_ifval([$2], [$2], [return null])[;
+  }
+]])
+
 m4_define([AT_MAIN_DEFINE(d)],
 [[int main ()
 {
diff --git a/tests/regression.at b/tests/regression.at
index 52ef5e15..73d9268a 100644
--- a/tests/regression.at
+++ b/tests/regression.at
@@ -1337,7 +1337,10 @@ m4_pushdef([AT_LAC_CHECK], [
 AT_BISON_OPTION_PUSHDEFS([%debug $1])
 
 AT_DATA_GRAMMAR([input.y],
-[AT_JAVA_IF([[%code imports {
+[AT_LANG_CASE(
+[d], [[%define api.symbol.prefix {SYM_}
+]],
+[java], [[%code imports {
   import java.io.IOException;
 }
 
@@ -1419,6 +1422,11 @@ m4_pushdef([AT_LAC_CHECK], [
 # C++.
 AT_LAC_CHECK([[%skeleton "lalr1.cc"]])
 
+# D.
+# FIXME: does not work.  lalr1.d cannot work with literal chars,
+# and AT_YYLEX_DEFINE(d) is incorrect.
+# AT_LAC_CHECK([[%skeleton "lalr1.d"]])
+
 # Java.
 AT_LAC_CHECK([[%skeleton "lalr1.java"]])
 
-- 
2.32.0




reply via email to

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