[antlr-interest] Simple question on resolving non-determinism in tree walker

Bharath Sundararaman bharath at starthis.com
Wed Jun 23 12:41:36 PDT 2004


Hi Grp,

In my tree walker, I am trying resolve non-determinisms between these two
rules in vain:

#(IDENT #(TYPEDECL Type_Name) #(VALUE (constant)?) 
#(IDENT #(TYPEDECL subRange) #(VALUE (signed_Int)?)

I get a non-determinism warning on TYPEDECL. The problem is, if I club
TYPEDECL parts to form this rule:

Soln 1:
--------
#(IDENT #(TYPEDECL (Type_Name|subRange)) #(VALUE (constant|signed_Int)?) 
-- this will work but It leads to the possibility of "Type_Name" appearing
with "signed_Int" as its value. Type_Name should only have a "constant"
value.

Soln 2:
--------
#(TYPEDECL (Type_Name #(VALUE (constant)?) | subRange #(VALUE
(signed_Int)?)) 
Should not work either because "VALUE" would become a child of "Type_Name".

I'm sure this is a common problem and that I'm missing something. 

Any ideas?

Thanks!
 

-----Original Message-----
From: Monty Zukowski [mailto:monty at codetransform.com] 
Sent: Tuesday, June 22, 2004 1:56 PM
To: antlr-interest at yahoogroups.com
Cc: Monty Zukowski
Subject: Re: [antlr-interest] Generating tree walkers.


On Jun 22, 2004, at 9:14 AM, Bharath Sundararaman wrote:

> I have the lexer, parser and an AST for a PASCAL-like grammar and I
> would
> like to perform semantic analysis/symbol table checks/constant folding 
> etc.
> Is it a cumbersome task to write a tree walker for the abstract syntax 
> tree
> to perform these checks? When you perform semantic analysis on your 
> input,
> would you prefer to walk the tree or would you just embed it in your 
> grammar
> as actions?

I prefer to build the symbol table during the parse (necessary to parse 
C).  Analysis I like to do in tree passes, it's cleaner because it's a 
simplification of the grammar which you build so that it doesn't have 
ambiguities or extraneous punctuation, etc.

Monty

ANTLR & Java Consultant -- http://www.codetransform.com
ANSI C/GCC transformation toolkit -- 
http://www.codetransform.com/gcc.html
Embrace the Decay -- http://www.codetransform.com/EmbraceDecay.html



 
Yahoo! Groups Links



 




 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
     http://groups.yahoo.com/group/antlr-interest/

<*> To unsubscribe from this group, send an email to:
     antlr-interest-unsubscribe at yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
     http://docs.yahoo.com/info/terms/
 



More information about the antlr-interest mailing list