Skip Menu |

This queue is for tickets about the Parse-Eyapp CPAN distribution.

Report information
The Basics
Id: 29329
Status: resolved
Priority: 0/
Queue: Parse-Eyapp

People
Owner: CASIANO [...] cpan.org
Requestors: gwilliams [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: (no value)
Fixed in: 1.077



Subject: Can't create a standalone parsere
Using the eyapp frontend, I am unable to create a standalone parser: The generated parser still uses Parse::Eyapp::Node. I run eyapp using the command: eyapp -s -m RDF::Query::Parser::SPARQL -o lib/RDF/Query/Parser/SPARQL.pm lib/RDF/Query/ Parser/SPARQL.yp Is there a way to bundle Parse::Eyapp::Node with the standalone parser, or easily distribute it with a code bundle?
Many thanks Gregory, On Wed Sep 12 16:48:29 2007, GWILLIAMS wrote: Show quoted text
> Using the eyapp frontend, I am unable to create a standalone parser: > The generated parser still > uses Parse::Eyapp::Node. I run eyapp using the command: > > eyapp -s -m RDF::Query::Parser::SPARQL -o > lib/RDF/Query/Parser/SPARQL.pm lib/RDF/Query/ > Parser/SPARQL.yp >
It is indeed a bug. I have just released version 0.74 of Parse::Eyapp (hopefully will be available soon). It seems to fix the problem but it has been written in haste I haven't worked in Parse::Eyapp for a year. What is standalone is the parser, not the facilities to transform the AST. You must explictly state "use Parse::Eyapp::Node" iff you want to make explicit use of those. Let me know if it works. Thanks a lot for your help Casiano
Show quoted text
> Is there a way to bundle Parse::Eyapp::Node with the standalone > parser, or easily distribute it > with a code bundle?
Hello Gregory, I have uploaded version 1.077 which provides standalone parsers including Parse::Eyapp::Node automatically. Here is an example: First compile with -s: nereida:~/LEyapp/examples> eyapp -s TSPostfix1.eyp let us copy the files to a machine where Parse::Eyapp isn't installed to see if really is working standalone: nereida:~/LEyapp/examples> scp TSPostfix1.pm usetspostfix1.pl beowulf: TSPostfix1.pm 100% 59KB 59.4KB/s 00:00 usetspostfix1.pl 100% 93 0.1KB/s 00:00 Let us connect to that machine: nereida:~/LEyapp/examples> ssh beowulf Linux beowulf 2.6.15-1-686-smp #2 SMP Mon Mar 6 15:34:50 UTC 2006 i686 and just check that Parse::Eyapp isn't installed: casiano@beowulf:~$ perldoc -l Parse::Eyapp No documentation found for "Parse::Eyapp". Ok, now let us run the program (see directory examples in the distro): casiano@beowulf:~$ usetspostfix1.pl -bash: usetspostfix1.pl: command not found casiano@beowulf:~$ ./usetspostfix1.pl 2*3 $VAR1 = bless( { 'children' => [ bless( { 'children' => [ bless( { 'children' => [ bless( { 'children' => [], 'attr' => '2', 'token' => 'NUM' }, 'TERMINAL' ), sub { "DUMMY" } ] }, 'exp_2' ), bless( { 'children' => [], 'attr' => '*', 'token' => '*' }, 'TERMINAL' ), bless( { 'children' => [ bless( { 'children' => [], 'attr' => '3', 'token' => 'NUM' }, 'TERMINAL' ), sub { "DUMMY" } ] }, 'exp_2' ), sub { "DUMMY" } ] }, 'exp_7' ), sub { "DUMMY" } ] }, 'line_1' ); $VAR1 = bless( { 'children' => [ bless( { 'children' => [ bless( { 'children' => [ bless( { 'children' => [], 'attr' => '2', 'token' => 'NUM' }, 'TERMINAL' ), sub { "DUMMY" } ], 't' => '2' }, 'exp_2' ), bless( { 'children' => [], 'attr' => '*', 'token' => '*' }, 'TERMINAL' ), bless( { 'children' => [ bless( { 'children' => [], 'attr' => '3', 'token' => 'NUM' }, 'TERMINAL' ), sub { "DUMMY" } ], 't' => '3' }, 'exp_2' ), sub { "DUMMY" } ], 't' => '2 3 *' }, 'exp_7' ), sub { "DUMMY" } ], 't' => '2 3 *' }, 'line_1' ); casiano@beowulf:~$ Best wishes Casiano
Subject: Can't create a standalone parser
Seems solved in version 1.80