dcsimg
I have to generate a Parser Generator for RUBY with ANTLR
0 posts in topic
Flat View  Flat View
TOPIC ACTIONS:
 

Posted By:   Anonymous
Posted On:   Friday, October 28, 2005 06:53 AM

Hi, can you help me? I have to write a parser for Ruby. I had think to use the parser generator ANTLR. I have find Ruby Grammar, but I have problem with ANTLR for "infinite recursion". I have cancel left recursion but I have the same problem :( Please, can you help me? Now I'm trying with a simple grammar to find where is the problem. The simple grammar is: // PARSER class RubyParser extends Parser; options { buildAST=true; } program : compstmt; compstmt : stmt; stmt : stmt1 expr | ; stmt1 : stmt IF    More>>


Hi,
can you help me?

I have to write a parser for Ruby. I had think to use the parser
generator ANTLR.

I have find Ruby Grammar, but I have problem with ANTLR for "infinite
recursion". I have cancel left recursion but I have the same problem :(



Please, can you help me?

Now I'm trying with a simple grammar to find where is the problem. The
simple grammar is:



// PARSER
class RubyParser extends Parser;

options { buildAST=true; }



program : compstmt;

compstmt : stmt;

stmt : stmt1 expr

| ;

stmt1 : stmt IF

| stmt WHILE

| stmt UNLESS

| stmt UNTIL

| ;

expr : ;



// LEXER

class RubyLexer extends Lexer;

IF : "if";

WHILE : "while";

UNLESS : "unless";

UNTIL : "until";



I have write this on a file provaLexerParser.g

On the command line I have write:



antlr provaLexerParser.g



and the result is:




java -classpath "C:antlr275libantlr.jar;" antlr.Tool
provaLexerParser.g

ANTLR Parser Generator Version 2.7.5 (20050128) 1989-2005 jGuru.com



provaLexerParser.g:7:19: infinite recursion to rule stmt1 from rule

stmt

provaLexerParser.g:9:19: infinite recursion to rule stmt1 from rule
stmt1

provaLexerParser.g:10:19: infinite recursion to rule stmt1 from rule
stmt1

provaLexerParser.g:11:19: infinite recursion to rule stmt1 from rule
stmt1

provaLexerParser.g:12:19: infinite recursion to rule stmt1 from rule
stmt1

provaLexerParser.g:7:19: infinite recursion to rule stmt1 from rule
stmt

provaLexerParser.g:7: warning:nondeterminism between alts 1 and 2 of
block upon
provaLexerParser.g:7: k==1:EOF,IF,WHILE,UNLESS,UNTIL

Exiting due to errors.



Plase, I need help.



Thank you for all!



bye,

puellula

   <<Less
About | Sitemap | Contact