//---------------------------------------------------- // The following code was generated by CUP v0.10k // Sun Oct 05 01:55:08 CEST 2003 //---------------------------------------------------- package org.noreply.fancydress.directory.parser; import java_cup.runtime.*; /** CUP v0.10k generated parser. * @version Sun Oct 05 01:55:08 CEST 2003 */ public class DirectoryParser extends java_cup.runtime.lr_parser { /** Default constructor. */ public DirectoryParser() {super();} /** Constructor which sets the default scanner. */ public DirectoryParser(java_cup.runtime.Scanner s) {super(s);} /** Production table. */ protected static final short _production_table[][] = unpackFromStrings(new String[] { "\000\026\000\002\002\004\000\002\005\003\000\002\005" + "\004\000\002\004\003\000\002\004\004\000\002\006\007" + "\000\002\003\007\000\002\007\004\000\002\007\002\000" + "\002\010\003\000\002\010\005\000\002\013\003\000\002" + "\013\004\000\002\011\003\000\002\011\003\000\002\011" + "\003\000\002\011\003\000\002\014\003\000\002\014\002" + "\000\002\015\003\000\002\015\003\000\002\015\004" }); /** Access to production table. */ public short[][] production_table() {return _production_table;} /** Parse-action table. */ protected static final short[][] _action_table = unpackFromStrings(new String[] { "\000\040\000\004\010\005\001\002\000\006\002\042\010" + "\005\001\002\000\004\007\034\001\002\000\010\002\000" + "\007\011\010\000\001\002\000\010\002\ufffe\007\ufffe\010" + "\ufffe\001\002\000\010\002\ufffd\007\ufffd\010\ufffd\001\002" + "\000\004\012\012\001\002\000\004\006\013\001\002\000" + "\016\004\ufff9\005\ufff9\007\021\010\020\011\015\012\022" + "\001\002\000\020\004\ufff8\005\ufff8\006\ufff8\007\021\010" + "\020\011\015\012\022\001\002\000\020\004\ufff1\005\ufff1" + "\006\ufff1\007\ufff1\010\ufff1\011\ufff1\012\ufff1\001\002\000" + "\010\004\uffef\005\uffef\006\030\001\002\000\020\004\ufff6" + "\005\ufff6\006\ufff6\007\ufff6\010\ufff6\011\ufff6\012\ufff6\001" + "\002\000\020\004\ufff2\005\ufff2\006\ufff2\007\ufff2\010\ufff2" + "\011\ufff2\012\ufff2\001\002\000\020\004\ufff4\005\ufff4\006" + "\ufff4\007\ufff4\010\ufff4\011\ufff4\012\ufff4\001\002\000\020" + "\004\ufff3\005\ufff3\006\ufff3\007\ufff3\010\ufff3\011\ufff3\012" + "\ufff3\001\002\000\006\004\025\005\026\001\002\000\010" + "\002\ufffb\007\ufffb\010\ufffb\001\002\000\010\002\uffee\007" + "\uffee\010\uffee\001\002\000\012\002\uffed\004\027\007\uffed" + "\010\uffed\001\002\000\010\002\uffec\007\uffec\010\uffec\001" + "\002\000\016\004\ufff0\005\ufff0\007\021\010\020\011\015" + "\012\022\001\002\000\006\004\ufffa\005\ufffa\001\002\000" + "\020\004\ufff7\005\ufff7\006\ufff7\007\021\010\020\011\015" + "\012\022\001\002\000\020\004\ufff5\005\ufff5\006\ufff5\007" + "\ufff5\010\ufff5\011\ufff5\012\ufff5\001\002\000\004\011\035" + "\001\002\000\010\004\uffef\005\uffef\006\036\001\002\000" + "\006\004\ufff0\005\ufff0\001\002\000\006\004\025\005\026" + "\001\002\000\010\002\ufffc\007\ufffc\010\ufffc\001\002\000" + "\010\002\uffff\007\011\010\uffff\001\002\000\004\002\001" + "\001\002" }); /** Access to parse-action table. */ public short[][] action_table() {return _action_table;} /** reduce_goto table. */ protected static final short[][] _reduce_table = unpackFromStrings(new String[] { "\000\040\000\010\004\005\005\003\006\006\001\001\000" + "\006\004\040\006\006\001\001\000\002\001\001\000\004" + "\003\007\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\012\007\022\010\015" + "\011\016\013\013\001\001\000\004\011\032\001\001\000" + "\002\001\001\000\004\014\030\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\004\015\023\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\006\011\016\013" + "\031\001\001\000\002\001\001\000\004\011\032\001\001" + "\000\002\001\001\000\002\001\001\000\004\014\036\001" + "\001\000\002\001\001\000\004\015\037\001\001\000\002" + "\001\001\000\004\003\007\001\001\000\002\001\001" }); /** Access to reduce_goto table. */ public short[][] reduce_table() {return _reduce_table;} /** Instance of action encapsulation class. */ protected CUP$DirectoryParser$actions action_obj; /** Action encapsulation object initializer. */ protected void init_actions() { action_obj = new CUP$DirectoryParser$actions(this); } /** Invoke a user supplied parse action. */ public java_cup.runtime.Symbol do_action( int act_num, java_cup.runtime.lr_parser parser, java.util.Stack stack, int top) throws java.lang.Exception { /* call code in generated class */ return action_obj.CUP$DirectoryParser$do_action(act_num, parser, stack, top); } /** Indicates start state. */ public int start_state() {return 0;} /** Indicates start production. */ public int start_production() {return 0;} /** EOF Symbol index. */ public int EOF_sym() {return 0;} /** error Symbol index. */ public int error_sym() {return 1;} /* FIXME */ /* Change the method report_error so it will display the line and column of where the error occurred in the input as well as the reason for the error which is passed into the method in the String 'message'. */ public void report_error(String message, Object info) { /* Create a StringBuffer called 'm' with the string 'Error' in it. */ StringBuffer m = new StringBuffer("Error"); /* Check if the information passed to the method is the same type as the type java_cup.runtime.Symbol. */ if (info instanceof java_cup.runtime.Symbol) { /* Declare a java_cup.runtime.Symbol object 's' with the information in the object info that is being typecasted as a java_cup.runtime.Symbol object. */ java_cup.runtime.Symbol s = ((java_cup.runtime.Symbol) info); /* Check if the line number in the input is greater or equal to zero. */ if (s.left >= 0) { /* Add to the end of the StringBuffer error message the line number of the error in the input. */ m.append(" in line "+(s.left+1)); /* Check if the column number in the input is greater or equal to zero. */ if (s.right >= 0) /* Add to the end of the StringBuffer error message the column number of the error in the input. */ m.append(", column "+(s.right+1)); } } /* Add to the end of the StringBuffer error message created in this method the message that was passed into this method. */ m.append(" : "+message); /* Print the contents of the StringBuffer 'm', which contains an error message, out on a line. */ System.err.println(m); } /* Change the method report_fatal_error so when it reports a fatal error it will display the line and column number of where the fatal error occurred in the input as well as the reason for the fatal error which is passed into the method in the object 'message' and then exit.*/ public void report_fatal_error(String message, Object info) { report_error(message, info); System.exit(1); } } /** Cup generated class to encapsulate user supplied action code.*/ class CUP$DirectoryParser$actions { private final DirectoryParser parser; /** Constructor */ CUP$DirectoryParser$actions(DirectoryParser parser) { this.parser = parser; } /** Method with the actual generated action code. */ public final java_cup.runtime.Symbol CUP$DirectoryParser$do_action( int CUP$DirectoryParser$act_num, java_cup.runtime.lr_parser CUP$DirectoryParser$parser, java.util.Stack CUP$DirectoryParser$stack, int CUP$DirectoryParser$top) throws java.lang.Exception { /* Symbol object for return from actions */ java_cup.runtime.Symbol CUP$DirectoryParser$result; /* select the action based on the action number */ switch (CUP$DirectoryParser$act_num) { /*. . . . . . . . . . . . . . . . . . . .*/ case 21: // EndOfLine ::= CR NL { String RESULT = null; CUP$DirectoryParser$result = new java_cup.runtime.Symbol(11/*EndOfLine*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 20: // EndOfLine ::= CR { String RESULT = null; CUP$DirectoryParser$result = new java_cup.runtime.Symbol(11/*EndOfLine*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 19: // EndOfLine ::= NL { String RESULT = null; CUP$DirectoryParser$result = new java_cup.runtime.Symbol(11/*EndOfLine*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 18: // OptSpace ::= { String RESULT = null; CUP$DirectoryParser$result = new java_cup.runtime.Symbol(10/*OptSpace*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 17: // OptSpace ::= SPACE { String RESULT = null; CUP$DirectoryParser$result = new java_cup.runtime.Symbol(10/*OptSpace*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 16: // NonSpaceValueChar ::= RIGHT_BRACKET { String RESULT = null; int cleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left; int cright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right; String c = (String)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).value; RESULT = c; CUP$DirectoryParser$result = new java_cup.runtime.Symbol(7/*NonSpaceValueChar*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 15: // NonSpaceValueChar ::= LEFT_BRACKET { String RESULT = null; int cleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left; int cright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right; String c = (String)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).value; RESULT = c; CUP$DirectoryParser$result = new java_cup.runtime.Symbol(7/*NonSpaceValueChar*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 14: // NonSpaceValueChar ::= COLON { String RESULT = null; int cleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left; int cright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right; String c = (String)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).value; RESULT = c; CUP$DirectoryParser$result = new java_cup.runtime.Symbol(7/*NonSpaceValueChar*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 13: // NonSpaceValueChar ::= IDENTIFIER { String RESULT = null; int cleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left; int cright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right; String c = (String)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).value; RESULT = c; CUP$DirectoryParser$result = new java_cup.runtime.Symbol(7/*NonSpaceValueChar*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 12: // NonSpaceValue ::= NonSpaceValue NonSpaceValueChar { String RESULT = null; int vleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).left; int vright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).right; String v = (String)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).value; int cleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left; int cright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right; String c = (String)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).value; RESULT = new String(v+c); CUP$DirectoryParser$result = new java_cup.runtime.Symbol(9/*NonSpaceValue*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 11: // NonSpaceValue ::= NonSpaceValueChar { String RESULT = null; int cleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left; int cright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right; String c = (String)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).value; RESULT = c; CUP$DirectoryParser$result = new java_cup.runtime.Symbol(9/*NonSpaceValue*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 10: // Value ::= Value SPACE NonSpaceValue { String RESULT = null; int v1left = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-2)).left; int v1right = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-2)).right; String v1 = (String)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-2)).value; int cleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).left; int cright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).right; String c = (String)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).value; int v2left = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left; int v2right = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right; String v2 = (String)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).value; RESULT = new String(v1+c+v2); CUP$DirectoryParser$result = new java_cup.runtime.Symbol(6/*Value*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 9: // Value ::= NonSpaceValue { String RESULT = null; int vleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left; int vright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right; String v = (String)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).value; RESULT = v; CUP$DirectoryParser$result = new java_cup.runtime.Symbol(6/*Value*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 8: // OptValue ::= { String RESULT = null; RESULT = new String(""); CUP$DirectoryParser$result = new java_cup.runtime.Symbol(5/*OptValue*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 7: // OptValue ::= Value OptSpace { String RESULT = null; int vleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).left; int vright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).right; String v = (String)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).value; RESULT = v; CUP$DirectoryParser$result = new java_cup.runtime.Symbol(5/*OptValue*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 6: // Entry ::= IDENTIFIER COLON SPACE OptValue EndOfLine { DirectoryEntry RESULT = null; int ileft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-4)).left; int iright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-4)).right; String i = (String)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-4)).value; int vleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).left; int vright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).right; String v = (String)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).value; RESULT = new DirectoryEntry(i, v.trim()); CUP$DirectoryParser$result = new java_cup.runtime.Symbol(1/*Entry*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 5: // Header ::= LEFT_BRACKET IDENTIFIER RIGHT_BRACKET OptSpace EndOfLine { String RESULT = null; int ileft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-3)).left; int iright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-3)).right; String i = (String)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-3)).value; RESULT = i; CUP$DirectoryParser$result = new java_cup.runtime.Symbol(4/*Header*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 4: // Section ::= Section Entry { DirectorySection RESULT = null; int sleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).left; int sright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).right; DirectorySection s = (DirectorySection)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).value; int eleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left; int eright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right; DirectoryEntry e = (DirectoryEntry)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).value; s.addEntry(e); RESULT = s; CUP$DirectoryParser$result = new java_cup.runtime.Symbol(2/*Section*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 3: // Section ::= Header { DirectorySection RESULT = null; int hleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left; int hright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right; String h = (String)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).value; RESULT = new DirectorySection(h); CUP$DirectoryParser$result = new java_cup.runtime.Symbol(2/*Section*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 2: // Message ::= Message Section { DirectoryMessage RESULT = null; int mleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).left; int mright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).right; DirectoryMessage m = (DirectoryMessage)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).value; int sleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left; int sright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right; DirectorySection s = (DirectorySection)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).value; m.addSection(s); RESULT = m; CUP$DirectoryParser$result = new java_cup.runtime.Symbol(3/*Message*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 1: // Message ::= Section { DirectoryMessage RESULT = null; int sleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left; int sright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right; DirectorySection s = (DirectorySection)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).value; RESULT = new DirectoryMessage(s); CUP$DirectoryParser$result = new java_cup.runtime.Symbol(3/*Message*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } return CUP$DirectoryParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 0: // $START ::= Message EOF { Object RESULT = null; int start_valleft = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).left; int start_valright = ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).right; DirectoryMessage start_val = (DirectoryMessage)((java_cup.runtime.Symbol) CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).value; RESULT = start_val; CUP$DirectoryParser$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DirectoryParser$stack.elementAt(CUP$DirectoryParser$top-0)).right, RESULT); } /* ACCEPT */ CUP$DirectoryParser$parser.done_parsing(); return CUP$DirectoryParser$result; /* . . . . . .*/ default: throw new Exception( "Invalid action number found in internal parse table"); } } }