summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorAkim Demaille <akim.demaille@gmail.com>2019-08-31 19:22:32 -0500
committerAkim Demaille <akim.demaille@gmail.com>2019-09-14 10:09:08 +0200
commit3ca713abd0f64086c820457d8b25ad0fb9696638 (patch)
tree7981954ff70a4332391bb8b54856c5507bc4539e /NEWS
parent8c18e3f18c73359f72ab54ec27418c3544be2e9d (diff)
downloadbison-3ca713abd0f64086c820457d8b25ad0fb9696638.tar.gz
api.token.raw: document it
* doc/bison.texi: here.
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS14
1 files changed, 14 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 8e5b2da2..83163f56 100644
--- a/NEWS
+++ b/NEWS
@@ -21,6 +21,20 @@ GNU Bison NEWS
The C++ deterministic skeleton (lalr1.cc) now supports LAC, via the
%define variable parse.lac.
+*** Variable api.token.raw: Optimized token numbers (all skeletons)
+
+ In the generated parsers, tokens have two numbers: the "external" token
+ number as returned by yylex (which starts at 257), and the "internal"
+ symbol number (which starts at 3). Each time yylex is called, a table
+ lookup maps the external token number to the internal symbol number.
+
+ When the %define variable api.token.raw is set, tokens are assigned their
+ internal number, which saves one table lookup per token, and also saves
+ the generation of the mapping table.
+
+ The gain is typically moderate, but in extreme cases (very simple user
+ actions), a 10% improvement can be observed.
+
*** Debug traces in Java
The Java backend no longer emits code and data for parser tracing if the