diff options
author | Akim Demaille <akim.demaille@gmail.com> | 2020-02-02 07:44:31 +0100 |
---|---|---|
committer | Akim Demaille <akim.demaille@gmail.com> | 2020-02-02 11:33:16 +0100 |
commit | 88d1ab421a4730504aabd1e61e8380027ec96545 (patch) | |
tree | 5c13ced59fe693c2903bf9bbd461851ead57d01a | |
parent | edf495b38ec55c158bba6de6835e7b147a1dc83a (diff) | |
download | bison-88d1ab421a4730504aabd1e61e8380027ec96545.tar.gz |
java: add access to the number of errors
* data/skeletons/lalr1.java (yynewrrs, getNumberOfErrors): New.
Formatting changes.
-rw-r--r-- | data/skeletons/lalr1.java | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/data/skeletons/lalr1.java b/data/skeletons/lalr1.java index ecdd70b0..de912383 100644 --- a/data/skeletons/lalr1.java +++ b/data/skeletons/lalr1.java @@ -64,8 +64,7 @@ m4_define([b4_define_state],[[ YYStack yystack = new YYStack (); int label = YYNEWSTATE; - /* Error handling. */ - int yynerrs_ = 0;]b4_locations_if([[ +]b4_locations_if([[ /* The location where the error started. */ ]b4_location_type[ yyerrloc = null; @@ -285,6 +284,13 @@ m4_define([b4_define_state],[[ public final void setDebugLevel (int level) { yydebug = level; } ]])[ + private int yynerrs = 0; + + /** + * The number of syntax errors so far. + */ + public final int getNumberOfErrors () { return yynerrs; } + /** * Print an error message via the lexer. *]b4_locations_if([[ Use a <code>null</code> location.]])[ @@ -561,6 +567,7 @@ m4_define([b4_define_state],[[ ]b4_define_state[]b4_parse_trace_if([[ yycdebug ("Starting parse\n");]])[ yyerrstatus_ = 0; + yynerrs = 0; /* Initialize the stack. */ yystack.push (yystate, yylval]b4_locations_if([, yylloc])[); @@ -700,7 +707,7 @@ b4_dollar_popdef[]dnl /* If not already recovering from an error, report this error. */ if (yyerrstatus_ == 0) { - ++yynerrs_; + ++yynerrs; if (yychar == yyempty_) yytoken = yyempty_; yyerror (]b4_locations_if([yylloc, ])[yysyntax_error (yystate, yytoken)); @@ -825,7 +832,7 @@ b4_dollar_popdef[]dnl this.label = YYNEWSTATE; /* Error handling. */ - this.yynerrs_ = 0;]b4_locations_if([[ + this.yynerrs = 0;]b4_locations_if([[ /* The location where the error started. */ this.yyerrloc = null; this.yylloc = new ]b4_location_type[ (null, null);]])[ |