X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/36b5e963e6a0d2992831ab8635963e75ac36671e..85a6eb13f803feda4264e7e0be1d244ab0d88c27:/src/gram.h diff --git a/src/gram.h b/src/gram.h index b8f316a0..bf60e0a3 100644 --- a/src/gram.h +++ b/src/gram.h @@ -1,24 +1,22 @@ /* Data definitions for internal representation of Bison's input. - Copyright (C) 1984, 1986, 1989, 1992, 2001, 2002, 2003, 2004, 2005 - Free Software Foundation, Inc. + Copyright (C) 1984, 1986, 1989, 1992, 2001, 2002, 2003, 2004, 2005, 2006 + 2007 Free Software Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. - Bison is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bison is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Bison; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #ifndef GRAM_H_ # define GRAM_H_ @@ -115,6 +113,7 @@ extern int ntokens; extern int nvars; typedef int item_number; +#define ITEM_NUMBER_MAX INT_MAX extern item_number *ritem; extern unsigned int nritems; @@ -146,6 +145,7 @@ item_number_is_symbol_number (item_number i) /* Rule numbers. */ typedef int rule_number; +#define RULE_NUMBER_MAX INT_MAX extern rule_number nrules; static inline item_number @@ -218,6 +218,7 @@ bool rule_never_reduced_p (rule *r); already displayed (by a previous call for another rule), avoid useless repetitions. */ void rule_lhs_print (rule *r, symbol *previous_lhs, FILE *out); +void rule_lhs_print_xml (rule *r, FILE *out, int level); /* Return the length of the RHS. */ int rule_rhs_length (rule *r); @@ -252,9 +253,12 @@ size_t ritem_longest_rhs (void); (exclusive) on OUT under TITLE. */ void grammar_rules_partial_print (FILE *out, const char *title, rule_filter filter); +void grammar_rules_partial_print_xml (FILE *out, int level, bool rtag, + rule_filter filter); /* Print the grammar's rules on OUT. */ void grammar_rules_print (FILE *out); +void grammar_rules_print_xml (FILE *out, int level); /* Dump the grammar. */ void grammar_dump (FILE *out, const char *title);