summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorAkim Demaille <akim.demaille@gmail.com>2019-02-03 09:32:12 +0100
committerAkim Demaille <akim.demaille@gmail.com>2019-02-03 10:06:25 +0100
commit03878edf7716ed16211a431d6ab108563833ebb4 (patch)
tree55e5a630c1ed9764e18b0637d10a57e2040cbd8e /NEWS
parentcacdfc2f6ed5bbc700b9404f7012aa02fa8dc931 (diff)
downloadbison-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--NEWS23
1 files changed, 12 insertions, 11 deletions
diff --git a/NEWS b/NEWS
index f5475861..9880d609 100644
--- a/NEWS
+++ b/NEWS
@@ -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"