d: prepare to be able to run LAC tests

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.
This commit is contained in:
Akim Demaille
2021-08-07 12:49:33 +02:00
parent 6d86d26b33
commit 7f1e9249d0
3 changed files with 30 additions and 1 deletions

View File

@@ -300,6 +300,7 @@ b4_user_union_members
]b4_parse_param_cons[ ]b4_parse_param_cons[
} }
]b4_parse_trace_if([[ ]b4_parse_trace_if([[
import std.stdio;
private File yyDebugStream; private File yyDebugStream;
/** /**

View File

@@ -953,6 +953,26 @@ public void reportSyntaxError(]AT_API_PREFIX[Parser.Context ctx)
]])[]]) ]])[]])
# 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)], m4_define([AT_MAIN_DEFINE(d)],
[[int main () [[int main ()
{ {

View File

@@ -1337,7 +1337,10 @@ m4_pushdef([AT_LAC_CHECK], [
AT_BISON_OPTION_PUSHDEFS([%debug $1]) AT_BISON_OPTION_PUSHDEFS([%debug $1])
AT_DATA_GRAMMAR([input.y], 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; import java.io.IOException;
} }
@@ -1419,6 +1422,11 @@ AT_LAC_CHECK([[%define api.push-pull both %define api.pure]])
# C++. # C++.
AT_LAC_CHECK([[%skeleton "lalr1.cc"]]) 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. # Java.
AT_LAC_CHECK([[%skeleton "lalr1.java"]]) AT_LAC_CHECK([[%skeleton "lalr1.java"]])