* src/complain.c: Space changes.
* src/reader.c: Comment changes.
Avoid && in assertions.
* src/location.c: Move comments to...
* src/location.h: here.
* src/symlist.h, src/symlist.c: Create a pseudo section for members
that apply to the rule.
#include "quote.h"
warnings warnings_flag =
- Wconflicts_sr | Wconflicts_rr | Wdeprecated | Wother;
+ Wconflicts_sr | Wconflicts_rr | Wdeprecated | Wother;
warnings errors_flag;
}
-/* Output to OUT the location LOC.
- Warning: it uses quotearg's slot 3. */
unsigned
location_print (location loc, FILE *out)
{
void location_compute (location *loc,
boundary *cur, char const *token, size_t size);
-/* Print location to file. Return number of actually printed
- characters. */
+/* Print location to file.
+ Return number of actually printed characters.
+ Warning: uses quotearg's slot 3. */
unsigned location_print (location loc, FILE *out);
/* Free any allocated ressources and close any open file handles that are
/* Insert the initial rule, whose line is that of the first rule
(not that of the start symbol):
- accept: %start EOF. */
+ $accept: %start $end. */
{
symbol_list *p = symbol_list_sym_new (accept, empty_location);
p->location = grammar->location;
grammar = p;
}
- aver (nsyms <= SYMBOL_NUMBER_MAXIMUM && nsyms == ntokens + nvars);
+ aver (nsyms <= SYMBOL_NUMBER_MAXIMUM);
+ aver (nsyms == ntokens + nvars);
/* Assign the symbols their symbol numbers. Write #defines for the
token symbols into FDEFINES if requested. */
res->content_type = SYMLIST_SYMBOL;
res->content.sym = sym;
res->location = res->sym_loc = loc;
+ res->named_ref = NULL;
res->midrule = NULL;
res->midrule_parent_rule = NULL;
res->midrule_parent_rhs_index = 0;
- code_props_none_init (&res->action_props);
-
+ /* Members used for LHS only. */
res->ruleprec = NULL;
+ code_props_none_init (&res->action_props);
res->dprec = 0;
res->merger = 0;
- res->named_ref = NULL;
-
res->next = NULL;
return res;
} content;
location location;
+ /* Named reference. */
+ named_ref *named_ref;
+
/* Proper location of the symbol, not all the rule */
location sym_loc;
struct symbol_list *midrule_parent_rule;
int midrule_parent_rhs_index;
+ /* ---------------------------------------------- */
+ /* Apply to the rule (attached to the LHS only). */
+ /* ---------------------------------------------- */
+
+ /* Precedence/associativity. */
+ symbol *ruleprec;
+
/* The action is attached to the LHS of a rule, but action properties for
* each RHS are also stored here. */
code_props action_props;
- /* Precedence/associativity. */
- symbol *ruleprec;
int dprec;
int merger;
location merger_declaration_location;
- /* Named reference. */
- named_ref *named_ref;
-
/* The list. */
struct symbol_list *next;
} symbol_list;