On page 164 of "The Definitive Antlr Reference" under the heading "Omitting 
Input Elements" Terrance shows using an empty rewrite rule to allow omitting 
unneeded symbols from the output AST tree.

This does not say that it could not be causing a problem with the generated 'C' 
code.

Jim, is there a possibility that this is a problem?

Alan
---

Alan Condit
1085 Tierra Ct.
Woodburn, OR 97071

Email -- acon...@ipns.com
Home-Office (503) 982-0906

On May 19, 2010, at 3:36 PM, John B. Brodie wrote:

> Pardon me for butting in.
> 
> And I have never used the C code generator, but.....
> 
> On Wed, 2010-05-19 at 14:06 -0700, Alan Condit wrote:
> 
>> which I assume, based on the comment, is generated from this rule:
>> line :       line_number? segment+ K_NEWLINE
>>              -> ^(STMT segment+)
>>      |       line_number? K_NEWLINE
>>              ->
>>      |       oword_stmt
>>              -> ^(STMT oword_stmt)
>>      ;
>> 
>> The grammar is for parsing an existing language not one of my invention,
>> and grammatically the newlines delineate a semantic block therefore must
>> be known by the parser, but empty lines are discarded and therefore
>> should not be in the tree.
> 
> having an empty RHS of the -> rewrite operator feels well unusual.
> 
> i am not sure that ANTLR permits a rule which produces no tree when
> output=AST is present....
> 
> Maybe try (untested):
> 
> line : line_number? ( segment+ -> ^(STMT segment+) )? K_NEWLINE
>     | oword_stmt -> ^(STMT oword_stmt)
>     ;
> 
> but i do not know what would happen when no segment is present for the
> above rule....
> 
> have you considered building a dummy tree node for the empty case and
> then your tree walker can just ignore it?
> 
> not sure that i have really helped any, sorry.
>   -jbb
> 
> 


List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe: 
http://www.antlr.org/mailman/options/antlr-interest/your-email-address

-- 
You received this message because you are subscribed to the Google Groups 
"il-antlr-interest" group.
To post to this group, send email to il-antlr-inter...@googlegroups.com.
To unsubscribe from this group, send email to 
il-antlr-interest+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en.

Reply via email to