I am wondering if it is possible to define a LHS action. I mean something
like this:
<create table> ::=
(CREATE TABLE) identifier ('(') <table element list> (')' ';')
action => ::lhs
This should mean call the action with the name of the rule. Later on it
would be possible to define a default action for all rules:
:default ::= action => ::lhs
I also thought to define it myself, but I can not find a place where I can
define what gets passed to an action. I seems to me that it is always the
value. If I would be able to pass also the LHS to the action, I could do
the dispatching myself.
Is it possible anyhow or do I have to write the action name in every rule:
<create table> ::=
(CREATE TABLE) identifier ('(') <table element list> (')' ';')
action => create_table
The reason why I want to use the 'action' attribute instead of 'bless' is,
that I want to build in one pass ready to use Perl objects. If I use the
'bless' approach, I have two passes. The first builds a bunch of blessed
arrays, which define the AST and after that I have to traverse the AST to
build my Perl objects. When I use the actions to define the Perl objects, I
can avoid the AST creation and the second pass.
--
You received this message because you are subscribed to the Google Groups
"marpa parser" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.