]> git.saurik.com Git - bison.git/blame - src/reader.h
Document how `%define "var" "value"' is not M4-friendly.
[bison.git] / src / reader.h
CommitLineData
ef4479de
PE
1/* Input parser for Bison
2
279cabb6 3 Copyright (C) 2000, 2001, 2002, 2003, 2005, 2006, 2007 Free Software
6b702268 4 Foundation, Inc.
a70083a3
AD
5
6 This file is part of Bison, the GNU Compiler Compiler.
7
f16b0819 8 This program is free software: you can redistribute it and/or modify
a70083a3 9 it under the terms of the GNU General Public License as published by
f16b0819
PE
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
a70083a3 12
f16b0819 13 This program is distributed in the hope that it will be useful,
a70083a3
AD
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
f16b0819 19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
a70083a3
AD
20
21#ifndef READER_H_
22# define READER_H_
23
0aa32d51 24# include "location.h"
56c47203 25# include "symlist.h"
5b2dd224 26
e9955c83
AD
27# include "parse-gram.h"
28
676385e2
PH
29typedef struct merger_list
30{
31 struct merger_list* next;
5b2dd224
PE
32 uniqstr name;
33 uniqstr type;
8ee5b538 34 location type_declaration_location;
5b2dd224 35} merger_list;
676385e2 36
e9955c83
AD
37/* From the parser. */
38extern int gram_debug;
f6d03984 39int gram_parse (void);
6e0f8287 40char const *token_name (int type);
9280d3ef 41
e9955c83
AD
42
43/* From reader.c. */
a737b216 44void grammar_start_symbol_set (symbol *sym, location loc);
8f3596a6
AD
45void grammar_current_rule_begin (symbol *lhs, location loc);
46void grammar_current_rule_end (location loc);
6b702268 47void grammar_midrule_action (void);
5b2dd224
PE
48void grammar_current_rule_prec_set (symbol *precsym, location loc);
49void grammar_current_rule_dprec_set (int dprec, location loc);
50void grammar_current_rule_merge_set (uniqstr name, location loc);
5b2dd224
PE
51void grammar_current_rule_symbol_append (symbol *sym, location loc);
52void grammar_current_rule_action_append (const char *action, location loc);
d33cb3ae
PE
53void reader (void);
54void free_merger_functions (void);
676385e2
PH
55
56extern merger_list *merge_functions;
57
34f98f46 58/* Was %union seen? */
ddc8ede1
PE
59extern bool union_seen;
60
61/* Was a tag seen? */
62extern bool tag_seen;
affac613
AD
63
64/* Should rules have a default precedence? */
39a06c25 65extern bool default_prec;
a70083a3
AD
66
67#endif /* !READER_H_ */