Have more complete shift traces.

* data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
to report Shifts instead of ad hoc YYDPRINTF invocations,
including for the error token.
* data/lalr1.cc (symprint_): Output the location.
* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
output the location within the %printer.
Activate GLR tests, at least to make sure they compile properly.
They still don't pass though.
* tests/calc.at: Adjust expect verbose output, since now "Entering
state..." is on a different line than the "Shifting" message.
This commit is contained in:
Akim Demaille
2004-09-16 14:14:27 +00:00
parent 9c66f418c4
commit 1576d44dce
6 changed files with 44 additions and 32 deletions

View File

@@ -196,7 +196,7 @@ m4_ifval([$6], [%union
%printer
{
]AT_LALR1_CC_IF([cdebug_ << @$ << ": " << $$;],
]AT_LALR1_CC_IF([cdebug_ << $$;],
[fprintf (yyoutput, "%d@%d-%d", $$, RANGE (@$))])[;
}
input line thing 'x' 'y'
@@ -471,7 +471,5 @@ AT_CHECK_PRINTER_AND_DESTRUCTOR([])
AT_CHECK_PRINTER_AND_DESTRUCTOR([], [with union])
AT_CHECK_PRINTER_AND_DESTRUCTOR([%defines %skeleton "lalr1.cc"])
AT_CHECK_PRINTER_AND_DESTRUCTOR([%defines %skeleton "lalr1.cc"], [with union])
# FIXME. These test cases fail.
#AT_CHECK_PRINTER_AND_DESTRUCTOR([%glr-parser])
#AT_CHECK_PRINTER_AND_DESTRUCTOR([%glr-parser], [with union])
AT_CHECK_PRINTER_AND_DESTRUCTOR([%glr-parser])
AT_CHECK_PRINTER_AND_DESTRUCTOR([%glr-parser], [with union])