mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-18 00:33:03 +00:00
java: tests: check push parsers like the others
Currently in javapush.at. * tests/calc.at: Here.
This commit is contained in:
@@ -726,8 +726,8 @@ m4_define([AT_DATA_CALC_Y],
|
|||||||
# count them.
|
# count them.
|
||||||
m4_define([_AT_CHECK_CALC],
|
m4_define([_AT_CHECK_CALC],
|
||||||
[AT_DATA([[input]],
|
[AT_DATA([[input]],
|
||||||
[[$2
|
[$2
|
||||||
]])
|
])
|
||||||
AT_JAVA_IF(
|
AT_JAVA_IF(
|
||||||
[AT_JAVA_PARSER_CHECK([Calc < input], 0, [AT_PARAM_IF([m4_n([$3])])], [stderr])],
|
[AT_JAVA_PARSER_CHECK([Calc < input], 0, [AT_PARAM_IF([m4_n([$3])])], [stderr])],
|
||||||
[AT_PARSER_CHECK([calc input], 0, [AT_PARAM_IF([m4_n([$3])])], [stderr])])
|
[AT_PARSER_CHECK([calc input], 0, [AT_PARAM_IF([m4_n([$3])])], [stderr])])
|
||||||
@@ -843,6 +843,15 @@ m4_define([AT_CHECK_SPACES],
|
|||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# AT_CHECK_JAVA_GREP(FILE, [LINE], [COUNT=1])
|
||||||
|
# -------------------------------------------
|
||||||
|
# Check that FILE contains exactly COUNT lines matching ^LINE$
|
||||||
|
# with grep. Unquoted so that COUNT can be a shell expression.
|
||||||
|
m4_define([AT_CHECK_JAVA_GREP],
|
||||||
|
[AT_CHECK_UNQUOTED([grep -c '^$2$' $1], [ignore], [m4_default([$3], [1])
|
||||||
|
])])
|
||||||
|
|
||||||
|
|
||||||
# AT_CHECK_CALC([BISON-OPTIONS], [COMPILER-OPTIONS])
|
# AT_CHECK_CALC([BISON-OPTIONS], [COMPILER-OPTIONS])
|
||||||
# --------------------------------------------------
|
# --------------------------------------------------
|
||||||
# Start a testing chunk which compiles 'calc' grammar with
|
# Start a testing chunk which compiles 'calc' grammar with
|
||||||
@@ -857,13 +866,18 @@ AT_BISON_OPTION_PUSHDEFS([$1])
|
|||||||
|
|
||||||
AT_DATA_CALC_Y([$1])
|
AT_DATA_CALC_Y([$1])
|
||||||
AT_FULL_COMPILE(AT_JAVA_IF([[Calc]], [[calc]]), AT_DEFINES_IF([[lex], [main]], [[], []]), [$2], [-Wno-deprecated])
|
AT_FULL_COMPILE(AT_JAVA_IF([[Calc]], [[calc]]), AT_DEFINES_IF([[lex], [main]], [[], []]), [$2], [-Wno-deprecated])
|
||||||
|
AT_PUSH_IF([AT_JAVA_IF(
|
||||||
|
[# Verify that this is a push parser.
|
||||||
|
AT_CHECK_JAVA_GREP([[Calc.java]],
|
||||||
|
[[.*public void push_parse_initialize ().*]])])])
|
||||||
|
|
||||||
AT_CHECK_SPACES([AT_JAVA_IF([Calc], [calc]).AT_LANG_EXT AT_DEFINES_IF([AT_JAVA_IF([Calc], [calc]).AT_LANG_HDR])])
|
AT_CHECK_SPACES([AT_JAVA_IF([Calc], [calc]).AT_LANG_EXT AT_DEFINES_IF([AT_JAVA_IF([Calc], [calc]).AT_LANG_HDR])])
|
||||||
|
|
||||||
# Test the precedences.
|
# Test the precedences.
|
||||||
# The Java traces do not show the clean up sequence at the end,
|
# The Java traces do not show the clean up sequence at the end,
|
||||||
# since it does not support %destructor.
|
# since it does not support %destructor.
|
||||||
_AT_CHECK_CALC([$1],
|
_AT_CHECK_CALC([$1],
|
||||||
[1 + 2 * 3 = 7
|
[[1 + 2 * 3 = 7
|
||||||
1 + 2 * -3 = -5
|
1 + 2 * -3 = -5
|
||||||
|
|
||||||
-1^2 = -1
|
-1^2 = -1
|
||||||
@@ -875,7 +889,7 @@ _AT_CHECK_CALC([$1],
|
|||||||
1 - (2 - 3) = 2
|
1 - (2 - 3) = 2
|
||||||
|
|
||||||
2^2^3 = 256
|
2^2^3 = 256
|
||||||
(2^2)^3 = 64],
|
(2^2)^3 = 64]],
|
||||||
[[final: 64 12 0]],
|
[[final: 64 12 0]],
|
||||||
[AT_JAVA_IF([1014], [1017])])
|
[AT_JAVA_IF([1014], [1017])])
|
||||||
|
|
||||||
@@ -1161,9 +1175,11 @@ m4_define([AT_CHECK_CALC_LALR1_JAVA],
|
|||||||
AT_CHECK_CALC_LALR1_JAVA
|
AT_CHECK_CALC_LALR1_JAVA
|
||||||
AT_CHECK_CALC_LALR1_JAVA([%define parse.error verbose])
|
AT_CHECK_CALC_LALR1_JAVA([%define parse.error verbose])
|
||||||
AT_CHECK_CALC_LALR1_JAVA([%locations %define parse.error verbose])
|
AT_CHECK_CALC_LALR1_JAVA([%locations %define parse.error verbose])
|
||||||
AT_CHECK_CALC_LALR1_JAVA([%define parse.trace %define parse.error verbose %locations])
|
AT_CHECK_CALC_LALR1_JAVA([%define parse.trace %define parse.error verbose])
|
||||||
AT_CHECK_CALC_LALR1_JAVA([%define parse.trace %define parse.error verbose %locations %lex-param {InputStream is}])
|
AT_CHECK_CALC_LALR1_JAVA([%define parse.trace %define parse.error verbose %locations %lex-param {InputStream is}])
|
||||||
|
|
||||||
|
AT_CHECK_CALC_LALR1_JAVA([%define api.push-pull both])
|
||||||
|
AT_CHECK_CALC_LALR1_JAVA([%define parse.trace %define parse.error verbose %locations %lex-param {InputStream is} %define api.push-pull both])
|
||||||
|
|
||||||
m4_popdef([AT_TOKEN_TRANSLATE_IF])
|
m4_popdef([AT_TOKEN_TRANSLATE_IF])
|
||||||
m4_popdef([AT_CALC_MAIN])
|
m4_popdef([AT_CALC_MAIN])
|
||||||
|
|||||||
@@ -236,6 +236,11 @@ AT_CHECK_JAVA_GREP(
|
|||||||
[1])
|
[1])
|
||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
|
|
||||||
|
|
||||||
|
## ------------------------------ ##
|
||||||
|
## Calculator with a push parser ##
|
||||||
|
## ------------------------------ ##
|
||||||
|
|
||||||
# Define a single copy of the Calculator grammar.
|
# Define a single copy of the Calculator grammar.
|
||||||
m4_define([AT_CALC_BODY],[
|
m4_define([AT_CALC_BODY],[
|
||||||
%code imports {
|
%code imports {
|
||||||
|
|||||||
Reference in New Issue
Block a user