[antlr-interest] adding child node in rewring rule

William B. Clodius wclodius at los-alamos.net
Tue Feb 2 19:34:45 PST 2010


Again I urge you to check out the Open Fortran Parser Project, 
http://fortran-parser.sourceforge.net/,
as you are trying to reinvent the wheel. If their license is too restrictive you might consider the parser portion of g2c, g77, gfortran, or some of the commercial 
compilers.

On Feb 1, 2010, at 1:48 PM, Юрушкин Михаил wrote:

> Hello,
> Could you help me with following problem:
> 
> I try to parse do_stmts of fortran (incudining non-block)
> 
> there is a part of grammar
> 
> do_construct
>   :  do_stmt
>         ( ( {blablabla}?=>  (exec_construct | end_do) ) )+	
>      -> ^(T_DO_CONSTRUCT do_stmt execution_part_construct* T_ENDDO)
> 
> as you can see, (..)+ cycle can be stopped by blablabla predicate.
> 
> What I need:
> if the last stmt is exec_construct, I want to generate the following:
>   ^(T_DO_CONSTRUCT do_stmt execution_part_construct* T_ENDDO)
> 
> If the last stmt is end_do, I want to generate the following:
>   ^(T_DO_CONSTRUCT do_stmt execution_part_construct* end_do)
> 
> what can you suggest?
> thanks a lot
> 
> -- 
> Best regards,
> Michael
> 
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address
> 



More information about the antlr-interest mailing list