[antlr-interest] Tree parser eats up DOWN node when navigating optional child node
Junkman
j at junkwallah.org
Wed Aug 4 17:09:30 PDT 2010
Gerald Rosenberg wrote:
> As best I understand your questions, the answers are no, no, and no . . .
>
> Given an input "PAB", your given parser will construct an AST ^( ^(
> PARENT A ) B ) and your given tree grammar will likewise match that.
>
I think you have that wrong.
When fed the input "PAB", the parser/rewrite rule:
parent: P A? B? -> ^( ^( PARENT A? ) B? )
generates ^(PARENT A B), a PARENT node with two children, A and B, and
produces the following sequence when flattened:
PARENT DOWN A B UP
This is as documented in TDAR. You can try it yourself with the demo
codes (attached again).
> If you somehow feed the tree grammar an AST ^( PARENT A B) or ^( PARENT
> B ), the rule will fail - both structure and content of the AST must
> match for the tree rule to match.
>
That seems to be the case in tree parser. It's this discrepancy between
tree generation and tree parsing I've tripped over.
I am wondering if the discrepancy is intentional and consistent through
all tree parser rules, or only the rules that match a node with optional
children.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: TreeParserDemo.zip
Type: application/x-zip-compressed
Size: 4789 bytes
Desc: not available
Url : http://www.antlr.org/pipermail/antlr-interest/attachments/20100804/da085296/attachment.bin
More information about the antlr-interest
mailing list