]>
git.saurik.com Git - bison.git/blob - src/derives.c
6a5681bb35af7fdff7e779287965290f2a86bcc5
   1 /* Match rules with nonterminals for bison, 
   2    Copyright 1984, 1989, 2000, 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.  */ 
  30 rule_number_t 
**derives 
= NULL
; 
  37   fputs ("DERIVES\n", stderr
); 
  39   for (i 
= ntokens
; i 
< nsyms
; i
++) 
  42       fprintf (stderr
, "\t%s derives\n", symbols
[i
]->tag
); 
  43       for (rp 
= derives
[i
]; *rp 
> 0; rp
++) 
  46           fprintf (stderr
, "\t\t%d:", *rp
); 
  47           for (rhsp 
= rules
[*rp
].rhs
; *rhsp 
>= 0; ++rhsp
) 
  48             fprintf (stderr
, " %s", symbol_tag_get (symbols
[*rhsp
])); 
  49           fprintf (stderr
, " (rule %d)\n", 
  50                    rule_number_of_item_number (*rhsp
) - 1); 
  54   fputs ("\n\n", stderr
); 
  68   dset 
= XCALLOC (shorts 
*, nvars
) - ntokens
; 
  69   delts 
= XCALLOC (shorts
, nrules 
+ 1); 
  72   for (r 
= nrules
; r 
> 0; r
--) 
  74       symbol_number_t lhs 
= rules
[r
].lhs
->number
; 
  81   derives 
= XCALLOC (rule_number_t 
*, nvars
) - ntokens
; 
  82   q 
= XCALLOC (short, nvars 
+ int_of_rule_number (nrules
)); 
  84   for (i 
= ntokens
; i 
< nsyms
; i
++) 
  99   XFREE (dset 
+ ntokens
); 
 106   XFREE (derives
[ntokens
]); 
 107   XFREE (derives 
+ ntokens
);