Hi there,

I'm putting the final touches to my parser of Zoneinfo (1) files and haven't 
been able to solve the last part of the puzzle: how to group a set of AST nodes 
such that I can ensure the order by which nodes are processed in the tree 
grammar. The parser grammar I have should explain better:

line
        : (ruleLine | zoneLine | linkLine | NEWLINE!)*
        ;

ruleLine
        : 'Rule' ruleName ruleFrom ruleTo ruleType ruleIn ruleOn ruleAt 
ruleSave ruleLetters NEWLINE!
        ;

zoneLine
        : 'Zone' zoneName zoneGmtOffset zoneRules zoneFormat 
        (zoneUntil (NEWLINE+) zoneGmtOffset zoneRules zoneFormat)* 
        NEWLINE
        -> 'Zone' zoneName zoneGmtOffset zoneRules zoneFormat 
        (zoneUntil 'Zone' zoneName zoneGmtOffset zoneRules zoneFormat)* 
        ;

linkLine
        : 'Link' linkFrom linkTo NEWLINE!
        ;

In essence, I need to group all of the rule lines together, and all of the zone 
lines together so that all rules are processed by my tree grammar first, then 
all zones are processed and finally all links are processed. This is because 
zones reference rules and links reference zones.

Zoneinfo source files can have rules, zones and links appear in any order hence 
my need to ensure that the AST outputs rules first then zones then links.

I was thinking that referencing a previous rule as described in Terence's book 
on p174 was the way to go, but I've not been able to make that work.

All help appreciated.

Kind regards,
Christopher

(1) http://en.wikipedia.org/wiki/Tz_database

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 [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.

Reply via email to