X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/c6f1a33c06db52ed122d0922885602cf37f99941..3e6656f9ab66ae7e629f8e5d5b41810bf070f09d:/src/tables.h diff --git a/src/tables.h b/src/tables.h index 937c3ffd..6d56889d 100644 --- a/src/tables.h +++ b/src/tables.h @@ -23,6 +23,73 @@ # 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_ */