diff options
author | Akim Demaille <akim.demaille@gmail.com> | 2018-06-17 18:15:05 +0200 |
---|---|---|
committer | Akim Demaille <akim.demaille@gmail.com> | 2018-08-11 18:09:29 +0200 |
commit | 7b24c424b5413a8790a983bb7027fe2de37b9d82 (patch) | |
tree | 27abb47de72448b5187dfed01226284f5596d947 /THANKS | |
parent | 0d06a966f85b2bf4fd6dc95531fc79c238bab803 (diff) | |
download | bison-7b24c424b5413a8790a983bb7027fe2de37b9d82.tar.gz |
add support for typed mid-rule actions
Prompted on Piotr Marcińczyk's message:
http://lists.gnu.org/archive/html/bug-bison/2017-06/msg00000.html.
See also http://lists.gnu.org/archive/html/bug-bison/2018-06/msg00001.html.
Because their type is unknown to Bison, the values of midrule actions are
not treated like the others: they don't have %printer and %destructor
support. In addition, in C++, (Bison) variants cannot work properly.
Typed midrule actions address these issues. Instead of:
exp: { $<ival>$ = 1; } { $<ival>$ = 2; } { $$ = $<ival>1 + $<ival>2; }
write:
exp: <ival>{ $$ = 1; } <ival>{ $$ = 2; } { $$ = $1 + $2; }
* src/scan-code.h, src/scan-code.l (code_props): Add a `type` field to
record the declared type of an action.
(code_props_rule_action_init): Add a type argument.
* src/parse-gram.y: Accept an optional type tag for actions.
* src/reader.h, src/reader.c (grammar_current_rule_action_append): Add
a type argument.
(grammar_midrule_action): When a mid-rule is typed, pass its type to
the defined dummy non terminal symbol.
Diffstat (limited to 'THANKS')
-rw-r--r-- | THANKS | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -121,6 +121,7 @@ Peter Simons simons@cryp.to Petr Machata pmachata@redhat.com Pho pho@cielonegro.org Piotr Gackiewicz gacek@intertel.com.pl +Piotr Marcińczyk piomar123@gmail.com Quentin Hocquet hocquet@gostai.com Quoc Peyrot chojin@lrde.epita.fr R Blake blakers@mac.com |