mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-21 02:03:03 +00:00
C++: don't issue the definition of symbol_type when not used
Currently, in glr.cc, we emit the definitions of basic_symbol and symbol_type, although there are not used. * data/c++.m4 (b4_public_types_declare): Extract these definitions from here, and move them... (b4_symbol_type_declare): here. (b4_public_types_declare): Also remove the definition of the symbol constructors. * data/lalr1.cc (b4_shared_declarations): Adjust: call b4_symbol_type_declare and b4_symbol_constructor_declare.
This commit is contained in:
12
data/c++.m4
12
data/c++.m4
@@ -192,8 +192,15 @@ m4_define([b4_public_types_declare],
|
|||||||
|
|
||||||
/// Internal symbol number for tokens (subsumed by symbol_number_type).
|
/// Internal symbol number for tokens (subsumed by symbol_number_type).
|
||||||
typedef ]b4_int_type_for([b4_translate])[ token_number_type;
|
typedef ]b4_int_type_for([b4_translate])[ token_number_type;
|
||||||
|
]])
|
||||||
|
|
||||||
/// A complete symbol.
|
|
||||||
|
# b4_symbol_type_declare
|
||||||
|
# ----------------------
|
||||||
|
# Define symbol_type, the external type for symbols used for symbol
|
||||||
|
# constructors.
|
||||||
|
m4_define([b4_symbol_type_declare],
|
||||||
|
[[ /// A complete symbol.
|
||||||
///
|
///
|
||||||
/// Expects its Base type to provide access to the symbol type
|
/// Expects its Base type to provide access to the symbol type
|
||||||
/// via type_get().
|
/// via type_get().
|
||||||
@@ -281,8 +288,7 @@ m4_define([b4_public_types_declare],
|
|||||||
|
|
||||||
/// "External" symbols: returned by the scanner.
|
/// "External" symbols: returned by the scanner.
|
||||||
typedef basic_symbol<by_type> symbol_type;
|
typedef basic_symbol<by_type> symbol_type;
|
||||||
|
]])
|
||||||
]b4_symbol_constructor_declare])
|
|
||||||
|
|
||||||
|
|
||||||
# b4_public_types_define(hh|cc)
|
# b4_public_types_define(hh|cc)
|
||||||
|
|||||||
@@ -176,6 +176,7 @@ b4_location_define])])[
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
]b4_public_types_declare[
|
]b4_public_types_declare[
|
||||||
|
]b4_symbol_type_declare[
|
||||||
/// Build a parser object.
|
/// Build a parser object.
|
||||||
]b4_parser_class_name[ (]b4_parse_param_decl[);
|
]b4_parser_class_name[ (]b4_parse_param_decl[);
|
||||||
virtual ~]b4_parser_class_name[ ();
|
virtual ~]b4_parser_class_name[ ();
|
||||||
@@ -206,6 +207,8 @@ b4_location_define])])[
|
|||||||
/// Report a syntax error.
|
/// Report a syntax error.
|
||||||
void error (const syntax_error& err);
|
void error (const syntax_error& err);
|
||||||
|
|
||||||
|
]b4_symbol_constructor_declare[
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// This class is not copyable.
|
/// This class is not copyable.
|
||||||
]b4_parser_class_name[ (const ]b4_parser_class_name[&);
|
]b4_parser_class_name[ (const ]b4_parser_class_name[&);
|
||||||
|
|||||||
Reference in New Issue
Block a user