Compiler Construction with ANTLR and Java

By Gary L. Schaps

Dr. Dobb's Journal March 1999

// cycle names
cycleNames
// init-action 
{CycleNames cycleN = null; int startLine=LT(1).getLine();}
// rule
:   "CYCLE_NAMES" ASSIGN LCURLY 
    {cycleN = new CycleNames();}
    // rest of rule
    cycleSet[cycleN] (COMMA cycleSet[cycleN])* RCURLY SEMI 
    // semantic action
    {
        try{
            PBIBuilder.registerCycleNames(cycleN);
        }catch (IllegalStateException ex){
            PBIBuilder.foundBadCode();
            System.err.println("Error: line(" + (startLine) +  
             "), " + ex.getMessage());
        }
    }
;

Example 4: Parsing an element of the language.

Back to Article


Copyright © 1999, Dr. Dobb's Journal