]> git.saurik.com Git - bison.git/blame - src/reader.h
Merge remote-tracking branch 'origin/maint'
[bison.git] / src / reader.h
CommitLineData
ef4479de
PE
1/* Input parser for Bison
2
7d6bad19 3 Copyright (C) 2000-2003, 2005-2007, 2009-2013 Free Software
575619af 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"
b9f1d9a4 26# include "named-ref.h"
5b2dd224 27
e9955c83
AD
28# include "parse-gram.h"
29
676385e2
PH
30typedef struct merger_list
31{
32 struct merger_list* next;
5b2dd224
PE
33 uniqstr name;
34 uniqstr type;
8ee5b538 35 location type_declaration_location;
5b2dd224 36} merger_list;
676385e2 37
e9955c83
AD
38/* From the parser. */
39extern int gram_debug;
f6d03984 40int gram_parse (void);
6e0f8287 41char const *token_name (int type);
9280d3ef 42
e9955c83
AD
43
44/* From reader.c. */
a737b216 45void grammar_start_symbol_set (symbol *sym, location loc);
b9f1d9a4 46void grammar_current_rule_begin (symbol *lhs, location loc,
e9690142 47 named_ref *lhs_named_ref);
8f3596a6 48void grammar_current_rule_end (location loc);
6b702268 49void grammar_midrule_action (void);
ae2b48f5
AD
50/* Apply %empty to the current rule. */
51void grammar_current_rule_empty_set (location loc);
5b2dd224
PE
52void grammar_current_rule_prec_set (symbol *precsym, location loc);
53void grammar_current_rule_dprec_set (int dprec, location loc);
54void grammar_current_rule_merge_set (uniqstr name, location loc);
b9f1d9a4 55void grammar_current_rule_symbol_append (symbol *sym, location loc,
d0a30438 56 named_ref *nref);
b9f1d9a4 57void grammar_current_rule_action_append (const char *action, location loc,
d0a30438 58 named_ref *nref, bool);
d33cb3ae
PE
59void reader (void);
60void free_merger_functions (void);
676385e2
PH
61
62extern merger_list *merge_functions;
63
34f98f46 64/* Was %union seen? */
ddc8ede1
PE
65extern bool union_seen;
66
67/* Was a tag seen? */
68extern bool tag_seen;
affac613
AD
69
70/* Should rules have a default precedence? */
39a06c25 71extern bool default_prec;
a70083a3
AD
72
73#endif /* !READER_H_ */