[antlr-interest] implementing 'if' and 'while' grammar with actions

Abhijit Nandkumar Ghonge Abhijit_Ghonge at infosys.com
Thu Aug 23 22:58:05 PDT 2007


Hi,

I managed to skip the statements for "if" statement implementation using stack concept. Now, I want to implement looping in "while" statement. My rule for while statement is:

whilestatement:
                        'while' LPAREN expr RPAREN 'do' NEWLINE
                        {
                                    //action to push the outcome of expr on stack
                        } statement* done
                        {
                                    // peep the top of the stack
                                    // if expr is true reposition the line number of parser to start of while statement
                                    // else pop the top of the stack and continue ahead
                        }

I'm stuck at the logic to be put for the bold comments above. Is there something like yylineno as in yacc parser, which, if I set the line number of while statement, it loops back?

Please help.

Regards,
Abhijit.



________________________________
From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-bounces at antlr.org] On Behalf Of Abhijit Nandkumar Ghonge
Sent: Thursday, August 23, 2007 6:19 PM
To: antlr-interest at antlr.org
Subject: [antlr-interest] implementing 'if' and 'while' grammar with actions
Importance: High

Hi all,

I want to implement parser grammar for 'if' and 'while' statement with actions in it.
My script is :

var1=10
if ( var1 < 9 ) then
var1++
print (var1)
endif

How do I skip the execution of the statements if the "if-condition" is false as in the above case?

I searched for the grammar implementation in the site, but all examples where implementing grammar rules for "if" and "while" without actions in them. I want to embed actions in the grammars.
Please give some pointers to "if" or "while" grammar implementation with actions in it.
Please Help.

thanks,
Abhijit
**************** CAUTION - Disclaimer *****************
This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely for the use of the addressee(s). If you are not the intended recipient, please notify the sender by e-mail and delete the original message. Further, you are not to copy, disclose, or distribute this e-mail or its contents to any other person and any such actions are unlawful. This e-mail may contain viruses. Infosys has taken every reasonable precaution to minimize this risk, but is not liable for any damage you may sustain as a result of any virus in this e-mail. You should carry out your own virus checks before opening the e-mail or attachment. Infosys reserves the right to monitor and review the content of all messages sent to or from this e-mail address. Messages sent to or from this e-mail address may be stored on the Infosys e-mail system.
***INFOSYS******** End of Disclaimer ********INFOSYS***

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20070824/c7b6b69e/attachment-0001.html 


More information about the antlr-interest mailing list