Hi ANTLR Folks, I am raising this issue again as none responded to my earlier thread. I would be glad if any of you could shed light on this, Thanks!
We are new to ANTLR and we all love this tool! Thanks to Terence! \__/
We are trying to write a C2C converter.
However, we are stuck with the handling of the "block statement" in the Tree
Grammar part.
Though we have a workaround, we would like to know whether this is an ANTLR bug
(or) a gap in our understanding.
I have written a concise grammar that captures the problem. Kindly see the
attachment.
The problem is very simple:
A compound statement is a 'statement' that starts with '{', has zero or more
variable declarations, followed by zero or more 'statements' and ends with '}'
In the grammar above, 'v' stands for variable declaration, 's' stands for a
statement.
When I run this project , I get the following output.
-------------------------------
Console
-------------------------------
{vs{s}}
Tree = ({ v s ({ s }) })
Tree Grammar Output = {vs{vs} }
--------------------------------
Now look at "Tree Grammar Output". It carries over the "v" from the previous
level. It should have been {vs{s}}.
However if I re-write the grammar as below, I don't have this problem.
b->'{' '}'
| '{' v '}'
| '{' s '}'
| '{' v+ s+ '}'
Kindly advice me on what is the right way to do things!
Are we missing something? (like... RTFM?)
Thanks,
Best Regards,
Sarnath
List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address
driver.java
Description: driver.java
block.g
Description: block.g
blockTree.g
Description: blockTree.g
-- You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
