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 marpa-parser+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to