From: nitnelave <[email protected]> This patch improves the symbol alias structure: instead of having duplicate but possibly different info in the symbol and the alias, they both share a pointer to a separate structure containing all the common info. There is no longer need to check the alias consistency, as it is assured at all points. Alias resolution is useless most of the time, and a simple boolean assures the differenciation between alias and non-alias. All the conflicts due to a different printer, precedence, etc for the symbol and its alias are resolved when they are encountered, and not at a later time during a consistency check for the aliases.
NB: There is no new test included in this patch because I couldn't think of any relevant for this implementation detail meant to change no output. nitnelave (2): symbols: improve symbol aliasing regen NEWS | 9 ++ src/AnnotationList.c | 17 ++-- src/conflicts.c | 16 +-- src/gram.c | 16 +-- src/gram.h | 9 +- src/graphviz.c | 2 +- src/ielr.c | 4 +- src/output.c | 24 +++-- src/parse-gram.c | 245 ++++++++++++++++++++++---------------------- src/parse-gram.h | 6 +- src/parse-gram.y | 23 +++-- src/print-xml.c | 8 +- src/print.c | 9 +- src/print_graph.c | 9 +- src/reader.c | 55 +++++----- src/reduce.c | 18 ++-- src/state.h | 2 +- src/symlist.c | 8 +- src/symtab.c | 275 +++++++++++++++++++++++--------------------------- src/symtab.h | 30 ++++-- src/tables.c | 4 +- tests/input.at | 18 ++-- 22 files changed, 409 insertions(+), 398 deletions(-) -- 1.7.9.5
