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 @@ 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)], [[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 @@ AT_LAC_CHECK([[%define api.push-pull both %define api.pure]]) # 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"]])