]>
git.saurik.com Git - bison.git/blob - src/gram.c
78764d1c4748d40efeac236e84b8d7da3879beaa
   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  */ 
  41 struct bucket 
**symbols 
= NULL
; 
  42 short *token_translations 
= NULL
; 
  46 int max_user_token_number 
= 256; 
  48 int semantic_parser 
= 0; 
  52 int error_token_number 
= 0; 
  55 /*--------------------------------------. 
  56 | Return the number of symbols in RHS.  | 
  57 `--------------------------------------*/ 
  60 rule_rhs_length (rule_t 
*rule
) 
  64   for (rhsp 
= rule
->rhs
; *rhsp 
>= 0; ++rhsp
) 
  70 /*------------------------. 
  71 | Dump RITEM for traces.  | 
  72 `------------------------*/ 
  75 ritem_print (FILE *out
) 
  78   fputs ("RITEM\n", out
); 
  79   for (i 
= 0; i 
< nritems
; ++i
) 
  81       fprintf (out
, "  %s", quotearg_style (escape_quoting_style
, 
  82                                             symbols
[ritem
[i
]]->tag
)); 
  84       fprintf (out
, "  (rule %d)\n", -ritem
[i
] - 1); 
  89 /*------------------------------------------. 
  90 | Return the size of the longest rule RHS.  | 
  91 `------------------------------------------*/ 
  94 ritem_longest_rhs (void) 
  99   for (i 
= 1; i 
< nrules 
+ 1; ++i
) 
 101       int length 
= rule_rhs_length (&rules
[i
]);