]>
git.saurik.com Git - bison.git/blob - src/gram.c
1 /* Allocate input grammar variables for bison,
2 Copyright (C) 1984, 1986, 1989, 2001, 2002 Free Software Foundation, Inc.
4 This file is part of Bison, the GNU Compiler Compiler.
6 Bison is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
11 Bison is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with Bison; see the file COPYING. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */
28 /* comments for these variables are in gram.h */
30 item_number_t
*ritem
= NULL
;
36 symbol_t
**symbols
= NULL
;
41 token_number_t
*token_translations
= NULL
;
45 int max_user_token_number
= 256;
47 int semantic_parser
= 0;
51 int error_token_number
= 0;
54 /*--------------------------------------.
55 | Return the number of symbols in RHS. |
56 `--------------------------------------*/
59 rule_rhs_length (rule_t
*rule
)
63 for (rhsp
= rule
->rhs
; *rhsp
>= 0; ++rhsp
)
69 /*------------------------.
70 | Dump RITEM for traces. |
71 `------------------------*/
74 ritem_print (FILE *out
)
77 fputs ("RITEM\n", out
);
78 for (i
= 0; i
< nritems
; ++i
)
80 fprintf (out
, " %s", quotearg_style (escape_quoting_style
,
81 symbols
[ritem
[i
]]->tag
));
83 fprintf (out
, " (rule %d)\n", -ritem
[i
] - 1);
88 /*------------------------------------------.
89 | Return the size of the longest rule RHS. |
90 `------------------------------------------*/
93 ritem_longest_rhs (void)
98 for (i
= 1; i
< nrules
+ 1; ++i
)
100 int length
= rule_rhs_length (&rules
[i
]);