]> git.saurik.com Git - bison.git/blobdiff - src/tables.h
(Torturing the Scanner): Don't invoke "cc a.c b.c
[bison.git] / src / tables.h
index 937c3ffdcf78e8b143f0543393720ecabbeccc2c..6d56889d48920f9c848d8013e74c5d948f845439 100644 (file)
 
 # include "state.h"
 
+/* The parser tables consist of these tables.
+
+   YYTRANSLATE = vector mapping yylex's token numbers into bison's
+   token numbers.
+
+   YYTNAME = vector of string-names indexed by bison token number.
+
+   YYTOKNUM = vector of yylex token numbers corresponding to entries
+   in YYTNAME.
+
+   YYRLINE = vector of line-numbers of all rules.  For yydebug
+   printouts.
+
+   YYRHS = vector of items of all rules.  This is exactly what RITEMS
+   contains.  For yydebug and for semantic parser.
+
+   YYPRHS[R] = index in YYRHS of first item for rule R.
+
+   YYR1[R] = symbol number of symbol that rule R derives.
+
+   YYR2[R] = number of symbols composing right hand side of rule R.
+
+   YYSTOS[S] = the symbol number of the symbol that leads to state S.
+
+   YYDEFACT[S] = default rule to reduce with in state s, when YYTABLE
+   doesn't specify something else to do.  Zero means the default is an
+   error.
+
+   YYDEFGOTO[I] = default state to go to after a reduction of a rule
+   that generates variable NTOKENS + I, except when YYTABLE specifies
+   something else to do.
+
+   YYPACT[S] = index in YYTABLE of the portion describing state S.
+   The lookahead token's type is used to index that portion to find
+   out what to do.
+
+   If the value in YYTABLE is positive, we shift the token and go to
+   that state.
+
+   If the value is negative, it is minus a rule number to reduce by.
+
+   If the value is zero, the default action from YYDEFACT[S] is used.
+
+   YYPGOTO[I] = the index in YYTABLE of the portion describing what to
+   do after reducing a rule that derives variable I + NTOKENS.  This
+   portion is indexed by the parser state number, S, as of before the
+   text for this nonterminal was read.  The value from YYTABLE is the
+   state to go to if the corresponding value in YYCHECK is S.
+
+   YYTABLE = a vector filled with portions for different uses, found
+   via YYPACT and YYPGOTO.
+
+   YYCHECK = a vector indexed in parallel with YYTABLE.  It indicates,
+   in a roundabout way, the bounds of the portion you are trying to
+   examine.
+
+   Suppose that the portion of YYTABLE starts at index P and the index
+   to be examined within the portion is I.  Then if YYCHECK[P+I] != I,
+   I is outside the bounds of what is actually allocated, and the
+   default (from YYDEFACT or YYDEFGOTO) should be used.  Otherwise,
+   YYTABLE[P+I] should be used.
+
+   YYFINAL = the state number of the termination state.
+
+   YYLAST ( = high) the number of the last element of YYTABLE, i.e.,
+   sizeof (YYTABLE) - 1.  */
+
 extern int nvectors;
 
 typedef int base_t;
@@ -46,7 +113,7 @@ extern state_number_t *yydefgoto;
 extern rule_number_t *yydefact;
 extern int high;
 
-void tables_generate PARAMS ((void));
-void tables_free PARAMS ((void));
+void tables_generate (void);
+void tables_free (void);
 
 #endif /* !TABLES_H_ */