diff options
author | Akim Demaille <akim.demaille@gmail.com> | 2019-02-03 09:32:12 +0100 |
---|---|---|
committer | Akim Demaille <akim.demaille@gmail.com> | 2019-02-03 10:06:25 +0100 |
commit | 03878edf7716ed16211a431d6ab108563833ebb4 (patch) | |
tree | 55e5a630c1ed9764e18b0637d10a57e2040cbd8e /NEWS | |
parent | cacdfc2f6ed5bbc700b9404f7012aa02fa8dc931 (diff) | |
download | bison-03878edf7716ed16211a431d6ab108563833ebb4.tar.gz |
NEWS: named constructors are preferable to symbol_type ctors
Reported by Frank Heckenbach.
http://lists.gnu.org/archive/html/bug-bison/2019-01/msg00043.html
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 23 |
1 files changed, 12 insertions, 11 deletions
@@ -223,17 +223,18 @@ GNU Bison NEWS symbol_type (int token, const int&); symbol_type (int token); - which should be used in a Flex-scanner as follows. - - %% - [a-z]+ return yy::parser::symbol_type (ID, yytext); - [0-9]+ return yy::parser::symbol_type (INT, text_to_int (yytext); - ":" return yy::parser::symbol_type (’:’); - <<EOF>> return yy::parser::symbol_type (0); - Correct matching between token types and value types is checked via - 'assert'. For instance, 'symbol_type (ID, 42)' would abort (while - 'make_ID (42)' would not even compile). + 'assert'; for instance, 'symbol_type (ID, 42)' would abort. Named + constructors are preferable, as they offer better type safety (for + instance 'make_ID (42)' would not even compile), but symbol_type + constructors may help when token types are discovered at run-time, e.g., + + [a-z]+ { + if (auto i = lookup_keyword (yytext)) + return yy::parser::symbol_type (i); + else + return yy::parser::make_ID (yytext); + } *** C++: Variadic emplace @@ -3486,7 +3487,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. LocalWords: Heimbigner AST src ast Makefile srcdir MinGW xxlex XXSTYPE LocalWords: XXLTYPE strictfp IDEs ffixit fdiagnostics parseable fixits LocalWords: Wdeprecated yytext Variadic variadic yyrhs yyphrs RCS README - LocalWords: noexcept constexpr ispell american + LocalWords: noexcept constexpr ispell american deprecations Local Variables: ispell-dictionary: "american" |