[antlr-interest] Flow of control in AST parsing.
Bharath Sundararaman
Bharath.Sundararaman at starthis.com
Wed Feb 16 08:08:59 PST 2005
Hi all,
I have a tree walker which walks function calls in the AST to perform
type checking in the following form:
A function sqrt(a,b); will be walked as #(s:IDENT #(PARAM param_List));
If I find out the "sqrt" is an undefined/erroneous function, I want to
avoid walking through the parameters of the function. So, I did this:
If (sqrt is an erroneous function) #s.removeChildren(); Note that "s" is
the label for the "IDENT" token which is the name of the function.
The problem is, the children are removed but I don't know how to return
the flow of control to the rule that invoked this rule. For example, I
am unable to return to an assignment statement of the form:
result := sqrt(a,b); How can I return the control to the assignment
statement after I remove the children?
Thanks,
Bharath.
-----Original Message-----
From: antlr-interest-bounces at antlr.org
[mailto:antlr-interest-bounces at antlr.org] On Behalf Of Terence Parr
Sent: Tuesday, February 15, 2005 8:30 PM
To: ANTLR Interest
Subject: [antlr-interest] new article on language translation
withStringTemplate
Howdy,
You all might be interested in the following article I just put up at
codegeneration.net:
http://www.codegeneration.net/tiki-read_article.php?articleId=77
"This article demonstrates how to translate a very simple C dialect,
which I will call "C-" in honor of the grades I received in college, to
three different languages, again using a single model and controller
with multiple views. The targets are Java, Python, and bytecodes
similar to the Jasmin Java bytecode assembler format. Merely swapping
in a new template file generates completely different output without
even recompiling the translator!"
Ter
--
CS Professor & Grad Director, University of San Francisco
Creator, ANTLR Parser Generator, http://www.antlr.org
Cofounder, http://www.jguru.com
More information about the antlr-interest
mailing list