c++: style changes

* data/c++.m4, data/variant.hh: Improve layout of the generated code.
Avoid casts.
(_b4_symbol_constructor_declare, _b4_symbol_constructor_define): Rename
as...
(_b4_token_maker_declare, _b4_token_maker_define): these.
* tests/types.at: Improve pair printing.
This commit is contained in:
Akim Demaille
2018-12-19 17:51:10 +01:00
parent a8e66fc010
commit 34c52d10ac
3 changed files with 31 additions and 33 deletions

View File

@@ -259,9 +259,8 @@ m4_define([b4_symbol_type_declare],
basic_symbol ();
/// Move or copy constructor.
basic_symbol (YY_RVREF (basic_symbol) other);
basic_symbol (YY_RVREF (basic_symbol) other);]b4_variant_if([[
]b4_variant_if([[
/// Constructor for valueless symbols, and symbols from each type.
]b4_type_foreach([b4_basic_symbol_constructor_declare])], [[
/// Constructor for valueless symbols.
@@ -360,8 +359,8 @@ m4_define([b4_public_types_define],
, location (YY_MOVE (other.location))])[
{]b4_variant_if([
b4_symbol_variant([other.type_get ()], [value], [YY_MOVE_OR_COPY],
[YY_MOVE (other.value)])])[
}
[YY_MOVE (other.value)])
])[}
]b4_variant_if([[
// Implementation of basic_symbol constructor for each type.
@@ -475,7 +474,7 @@ m4_define([b4_public_types_define],
{
]b4_toknum[
};
return static_cast<token_type> (yytoken_number_[type]);
return token_type (yytoken_number_[type]);
}
]])[]dnl

View File

@@ -335,25 +335,25 @@ m4_define([b4_symbol_value_template],
## ------------- ##
# _b4_symbol_constructor_declare(SYMBOL-NUM)
# ------------------------------------------
# _b4_token_maker_declare(SYMBOL-NUM)
# -----------------------------------
# Declare make_SYMBOL for SYMBOL-NUM. Use at class-level.
m4_define([_b4_symbol_constructor_declare],
m4_define([_b4_token_maker_declare],
[b4_token_visible_if([$1],
[#if 201103L <= YY_CPLUSPLUS
static
symbol_type
make_[]_b4_symbol([$1], [id]) (dnl
b4_join(b4_symbol_if([$1], [has_type],
[b4_symbol([$1], [type]) v]),
b4_locations_if([location_type l])));
make_[]_b4_symbol([$1], [id]) (b4_join(
b4_symbol_if([$1], [has_type],
[b4_symbol([$1], [type]) v]),
b4_locations_if([location_type l])));
#else
static
symbol_type
make_[]_b4_symbol([$1], [id]) (dnl
b4_join(b4_symbol_if([$1], [has_type],
[const b4_symbol([$1], [type])& v]),
b4_locations_if([const location_type& l])));
make_[]_b4_symbol([$1], [id]) (b4_join(
b4_symbol_if([$1], [has_type],
[const b4_symbol([$1], [type])& v]),
b4_locations_if([const location_type& l])));
#endif
])])
@@ -364,22 +364,22 @@ b4_join(b4_symbol_if([$1], [has_type],
# Use at class-level.
m4_define([b4_symbol_constructor_declare],
[ // Symbol constructors declarations.
b4_symbol_foreach([_b4_symbol_constructor_declare])])
b4_symbol_foreach([_b4_token_maker_declare])])
# _b4_symbol_constructor_define(SYMBOL-NUM)
# -----------------------------------------
# _b4_token_maker_define(SYMBOL-NUM)
# ----------------------------------
# Define make_SYMBOL for SYMBOL-NUM.
m4_define([_b4_symbol_constructor_define],
m4_define([_b4_token_maker_define],
[b4_token_visible_if([$1],
[#if 201103L <= YY_CPLUSPLUS
inline
b4_parser_class_name::symbol_type
b4_parser_class_name::make_[]_b4_symbol([$1], [id]) (dnl
b4_join(b4_symbol_if([$1], [has_type],
b4_parser_class_name::make_[]_b4_symbol([$1], [id]) (b4_join(
b4_symbol_if([$1], [has_type],
[b4_symbol([$1], [type]) v]),
b4_locations_if([location_type l])))
b4_locations_if([location_type l])))
{
return symbol_type (b4_join([token::b4_symbol([$1], [id])],
b4_symbol_if([$1], [has_type], [std::move (v)]),
@@ -388,10 +388,10 @@ b4_join(b4_symbol_if([$1], [has_type],
#else
inline
b4_parser_class_name::symbol_type
b4_parser_class_name::make_[]_b4_symbol([$1], [id]) (dnl
b4_join(b4_symbol_if([$1], [has_type],
b4_parser_class_name::make_[]_b4_symbol([$1], [id]) (b4_join(
b4_symbol_if([$1], [has_type],
[const b4_symbol([$1], [type])& v]),
b4_locations_if([const location_type& l])))
b4_locations_if([const location_type& l])))
{
return symbol_type (b4_join([token::b4_symbol([$1], [id])],
b4_symbol_if([$1], [has_type], [v]),
@@ -446,9 +446,10 @@ m4_define([b4_basic_symbol_constructor_define],
#endif
]])
# b4_symbol_constructor_define
# ----------------------------
# Define the overloaded versions of make_symbol for all the value types.
m4_define([b4_symbol_constructor_define],
[ // Implementation of make_symbol for each symbol type.
b4_symbol_foreach([_b4_symbol_constructor_define])])
b4_symbol_foreach([_b4_token_maker_define])])