]> git.saurik.com Git - bison.git/commitdiff
* data/lalr1.cc: Extensive Doxygenation.
authorAkim Demaille <akim@epita.fr>
Fri, 17 Dec 2004 15:24:32 +0000 (15:24 +0000)
committerAkim Demaille <akim@epita.fr>
Fri, 17 Dec 2004 15:24:32 +0000 (15:24 +0000)
(error_): Rename as...
(error): this, since it is visible to the user.
Adjust callers.
(Parser::message): Now an automatic variable from...
(Parser::yyreport_syntax_error_): here.
* tests/actions.at, tests/calc.at, tests/regression.at: Adjust to
Parser::error.
* tests/input.at: Escape $.

ChangeLog
NEWS
data/lalr1.cc
tests/actions.at
tests/calc.at
tests/input.at
tests/regression.at

index 133b261581406b5d36f1b940db63f19d9ff9e12b..7fd2fce406974422edfe457d1f4e0788042db731 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2004-12-17  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc: Extensive Doxygenation.
+       (error_): Rename as...
+       (error): this, since it is visible to the user.
+       Adjust callers.
+       (Parser::message): Now an automatic variable from...
+       (Parser::yyreport_syntax_error_): here.
+       * tests/actions.at, tests/calc.at, tests/regression.at: Adjust to
+       Parser::error.
+       * tests/input.at: Escape $.
+
 2004-12-16  Paul Eggert  <eggert@cs.ucla.edu>
 
        * data/glr.c (b4_lhs_value, b4_rhs_value, b4_rhs-location):
diff --git a/NEWS b/NEWS
index f223eb97e6c1de336058d0ba0d697374caecb7bc..d51ec81789ffab7c903b8f3fe4d70f4a08f4b733 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,8 @@
 Bison News
 ----------
 
+Changes in version 1.875f:
+
 Changes in version 1.875e, 2004-12-10:
 
 * New directive: %initial-action.
index 6a1642bcc570ea813bc330cd156631e1b0f43736..52b823ed2fb5033c49eacc597f7d26dd903954dc 100644 (file)
@@ -203,6 +203,7 @@ namespace yy
 
 namespace yy
 {
+  /// A Bison parser.
   class ]b4_parser_class_name[
   {
   public:
@@ -217,10 +218,14 @@ namespace yy
     /// Symbol locations.
     typedef Traits<]b4_parser_class_name[>::LocationType    LocationType;
 
+    /// State stack type.
     typedef Stack<StateType>    StateStack;
+    /// Semantic value stack type.
     typedef Stack<SemanticType> SemanticStack;
+    /// Location stack type.
     typedef Stack<LocationType> LocationStack;
 
+    /// Build a parser object.
     ]b4_parser_class_name[ (]b4_parse_param_decl[) :
       yydebug_ (false),
       yycdebug_ (&std::cerr)]b4_parse_param_cons[
@@ -251,9 +256,15 @@ namespace yy
 
     /// Call the scanner.
     virtual void yylex_ ();
-    virtual void error_ ();
-    /// Generate an error message, and invoke error. */
+
+    /// Report a syntax error.
+    /// \param loc    where the syntax error is found.
+    /// \param msg    a description of the syntax error.
+    virtual void error (const LocationType& loc, const std::string& msg);
+
+    /// Generate an error message, and invoke error.
     virtual void yyreport_syntax_error_ ();
+
 #if YYDEBUG
     /// \brief Report a symbol on the debug stream.
     /// \param yytype       The token type.
@@ -273,19 +284,38 @@ namespace yy
     LocationStack yylocation_stack_;
 
     /* Tables.  */
+    /// For a state, the index in \a yytable_ of its portion.
     static const ]b4_int_type_for([b4_pact])[ yypact_[];
     static const ]b4_int_type(b4_pact_ninf, b4_pact_ninf)[ yypact_ninf_;
+
+    /// For a state, default rule to reduce.
+    /// Unless\a  yytable_ specifies something else to do.
+    /// Zero means the default is an error.
     static const ]b4_int_type_for([b4_defact])[ yydefact_[];
+
     static const ]b4_int_type_for([b4_pgoto])[ yypgoto_[];
     static const ]b4_int_type_for([b4_defgoto])[ yydefgoto_[];
+
+    /// What to do in a state.
+    /// \a yytable_[yypact_[s]]: what to do in state \a s.
+    /// - if positive, shift that token.
+    /// - if negative, reduce the rule which number is the opposite.
+    /// - if zero, do what YYDEFACT says.
     static const ]b4_int_type_for([b4_table])[ yytable_[];
     static const ]b4_int_type(b4_table_ninf, b4_table_ninf)[ yytable_ninf_;
+
     static const ]b4_int_type_for([b4_check])[ yycheck_[];
+
+    /// For a state, its accessing symbol.
     static const ]b4_int_type_for([b4_stos])[ yystos_[];
+
+    /// For a rule, its LHS.
     static const ]b4_int_type_for([b4_r1])[ yyr1_[];
+    /// For a rule, its RHS length.
     static const ]b4_int_type_for([b4_r2])[ yyr2_[];
 
 #if YYDEBUG || YYERROR_VERBOSE
+    /// For a symbol, its name in clear.
     static const char* const yyname_[];
 #endif
 
@@ -298,9 +328,9 @@ namespace yy
     static const ]b4_int_type_for([b4_rline])[ yyrline_[];
     /// For each scanner token number, its symbol number.
     static const ]b4_int_type_for([b4_toknum])[ yytoken_number_[];
-    /// Report on the debug stream that the rule \a yyrule is going to be reduced.
-    virtual void yyreduce_print_ (int yyrule);
-/// Print the state stack on the debug stream.
+    /// Report on the debug stream that the rule \a r is going to be reduced.
+    virtual void yyreduce_print_ (int r);
+    /// Print the state stack on the debug stream.
     virtual void yystack_print_ ();
 #endif
 
@@ -350,9 +380,6 @@ namespace yy
     int yylooka_;
     int yyilooka_;
 
-    /* Message.  */
-    std::string message;
-
     /// Semantic value of the look-ahead.
     SemanticType value;
     /// Location of the look-ahead.
@@ -805,7 +832,7 @@ yy::]b4_parser_class_name[::yyreport_syntax_error_ ()
   if (!yyerrstatus_)
     {
       ++yynerrs_;
-
+      std::string message;
 #if YYERROR_VERBOSE
       yyn_ = yypact_[yystate_];
       if (yypact_ninf_ < yyn_ && yyn_ < yylast_)
@@ -838,7 +865,7 @@ yy::]b4_parser_class_name[::yyreport_syntax_error_ ()
       else
 #endif
        message = "syntax error";
-      error_ ();
+      error (location, message);
     }
 }
 
index 05432aee96ed5d9bb400a8daa9e5fed117687b09..a51cea118530558f617ecf16408c1b645e734580 100644 (file)
@@ -311,9 +311,9 @@ yylex (]AT_LEX_FORMALS[)
 ]AT_LALR1_CC_IF(
 [/* A C++ error reporting function. */
 void
-yy::Parser::error_ ()
+yy::Parser::error (const Location& l, const std::string& m)
 {
-  printf ("%d-%d: %s\n", RANGE (location), message.c_str());
+  printf ("%d-%d: %s\n", RANGE (l), m.c_str());
 }
 
 static bool yydebug;
index 27598e613ecf3235425e5938b0b745cec2848e42..c921590ff6a66f43fb9fc4c8de9d033d9831dbe3 100644 (file)
@@ -128,9 +128,10 @@ static FILE *yyin;
 ]AT_LALR1_CC_IF(
 [/* A C++ error reporting function. */
 void
-yy::Parser::error_ ()
+yy::Parser::error (const Location& l, const std::string& m)
 {
-  std::cerr << AT_LOCATION_IF([location << ": " << ])message << std::endl;
+  (void) l;
+  std::cerr << AT_LOCATION_IF([l << ": " << ])m << std::endl;
 }
 
 int
index 1b89d737101a6fff07c53a9c04dbb90797f7c2e0..14fb129955cbfa202b0404c54c52c6579aafc3d1 100644 (file)
@@ -25,7 +25,7 @@ AT_BANNER([[Input Processing.]])
 ## Invalid $n.  ##
 ## ------------ ##
 
-AT_SETUP([Invalid $n])
+AT_SETUP([Invalid \$n])
 
 AT_DATA([input.y],
 [[%%
index ab0b71e8ac57fa81508a13c81413b9876d59d7a4..ca5adab122ca9640a247a6bc716d79fea4ba22c8 100644 (file)
@@ -727,9 +727,9 @@ member: STRING
 AT_LALR1_CC_IF(
 [/* A C++ error reporting function. */
 void
-yy::Parser::error_ ()
+yy::Parser::error (const Location&, const std::string& m)
 {
-  std::cerr << message << std::endl;
+  std::cerr << m << std::endl;
 }
 
 int