.
prolog ## %{ ... %} prior to the first %%
+.
+. /** error output stream.
+. It should be changeable.
+. */
+. public System.IO.TextWriter ErrorOutput = System.Console.Out;
.
. /** simplified error message.
. @see <a href="#yyerror(java.lang.String, java.lang.String[])">yyerror</a>
. */
. public void yyerror (string message, string[] expected) {
. if ((expected != null) && (expected.Length > 0)) {
-. System.Console.Write (message+", expecting");
+. ErrorOutput.Write (message+", expecting");
. for (int n = 0; n < expected.Length; ++ n)
-. System.Console.Write (" "+expected[n]);
-. System.Console.WriteLine ();
+. ErrorOutput.Write (" "+expected[n]);
+. ErrorOutput.WriteLine ();
. } else
-. System.Console.WriteLine (message);
+. ErrorOutput.WriteLine (message);
. }
.
. /** debugging support, requires the package jay.yydebug.
. switch (yyErrorFlag) {
.
. case 0:
-. yyerror("syntax error", yyExpecting(yyState));
+. yyerror(String.Format ("syntax error, got token `{0}'", yyname (yyToken)), yyExpecting(yyState));
t if (debug != null) debug.error("syntax error");
. goto case 1;
. case 1: case 2:
.
. class yyDebugSimple : yyDebug {
. void println (string s){
-. Console.WriteLine (s);
+. Console.Error.WriteLine (s);
. }
.
. public void push (int state, Object value) {