mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-20 17:53:02 +00:00
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:
@@ -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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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 ()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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"]])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user