develooper Front page | perl.recdescent | Postings from January 2012

How to access a variable from the grammar code

Thread Next
From:
Yuri Shtil
Date:
January 10, 2012 08:55
Subject:
How to access a variable from the grammar code
Message ID:
5F72830DCCB3CC4FBF80CC854C3999F18E9ED87854@HQMAIL02.nvidia.com
I use OO perl and created a class that uses recdecent.
I want to access method variables from the grammar actions. Is there an elegant way to pass a parameter to the Parse::RecDescent constructor and access it from the actions?

I used an awkward construct and I don't like it:

-----

Package Foo;

our $var;

...
my $grammar = '...
# Capture the object instance
my $object = Foo::$var;
startrule: a b c {$object->method}'

...

sub action {
# Capture $var
   $var = SOmeClass->new();
# $var is used in grammar
my $parser = Parse::RecDescent ($grammar);
$parser->startrule(SomeText);
}


Also I think this would not work with Precompile.

-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About