b4_semantic_type_declare.

* data/c++.m4 (b4_semantic_type_declare): New.
	Factors and generalizes what was in glr.cc and lalr1.cc.
	* data/variant.hh (b4_semantic_type_declare): Redefine it for
	variants.
	* data/lalr1.cc, data/glr.cc: Use it.
This commit is contained in:
Akim Demaille
2008-12-31 12:44:58 +01:00
parent 6a6e7f0c65
commit b9e4eb5b72
5 changed files with 37 additions and 24 deletions

View File

@@ -189,6 +189,18 @@ m4_define([b4_variant_definition],
## -------------------------- ##
# b4_semantic_type_declare
# ------------------------
# Declare semantic_type.
m4_define([b4_semantic_type_declare],
[ /// An auxiliary type to compute the largest semantic type.
union union_type
{]b4_type_foreach([b4_char_sizeof])[};
/// Symbol semantic values.
typedef variant<sizeof(union_type)> semantic_type;])
# How the semantic value is extracted when using variants.
# b4_symbol_value(VAL, [TYPE])