//---------------------------------------------------- // The following code was generated by CUP v0.11a beta 20060608 // Wed Jul 22 21:31:13 NZST 2009 //---------------------------------------------------- package weka.core.json; import java_cup.runtime.*; import java.io.*; import java.util.*; /** CUP v0.11a beta 20060608 generated parser. * @version Wed Jul 22 21:31:13 NZST 2009 */ public class Parser extends java_cup.runtime.lr_parser { /** Default constructor. */ public Parser() {super();} /** Constructor which sets the default scanner. */ public Parser(java_cup.runtime.Scanner s) {super(s);} /** Constructor which sets the default scanner. */ public Parser(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);} /** Production table. */ protected static final short _production_table[][] = unpackFromStrings(new String[] { "\000\053\000\002\002\004\000\002\002\004\000\002\002" + "\005\000\002\003\005\000\002\003\003\000\002\004\003" + "\000\002\004\003\000\002\004\003\000\002\005\003\000" + "\002\005\003\000\002\005\003\000\002\005\003\000\002" + "\005\003\000\002\006\005\000\002\007\005\000\002\010" + "\005\000\002\011\005\000\002\012\005\000\002\014\004" + "\000\002\014\005\000\002\015\005\000\002\013\004\000" + "\002\013\005\000\002\016\003\000\002\017\003\000\002" + "\020\003\000\002\022\004\000\002\022\005\000\002\023" + "\005\000\002\021\004\000\002\021\005\000\002\024\003" + "\000\002\025\003\000\002\026\003\000\002\027\005\000" + "\002\027\003\000\002\030\003\000\002\030\003\000\002" + "\030\003\000\002\030\003\000\002\030\003\000\002\030" + "\003\000\002\030\003" }); /** Access to production table. */ public short[][] production_table() {return _production_table;} /** Parse-action table. */ protected static final short[][] _action_table = unpackFromStrings(new String[] { "\000\073\000\004\007\005\001\002\000\004\002\075\001" + "\002\000\006\010\020\016\014\001\002\000\006\004\062" + "\010\074\001\002\000\006\010\060\016\014\001\002\000" + "\022\005\035\006\043\007\051\012\042\013\041\014\037" + "\015\047\016\045\001\002\000\006\004\ufffd\010\ufffd\001" + "\002\000\006\004\ufffb\010\ufffb\001\002\000\006\004\ufff7" + "\010\ufff7\001\002\000\004\011\024\001\002\000\006\004" + "\ufff9\010\ufff9\001\002\000\006\004\ufffc\010\ufffc\001\002" + "\000\006\004\ufff5\010\ufff5\001\002\000\004\002\001\001" + "\002\000\006\004\ufff6\010\ufff6\001\002\000\006\004\ufffa" + "\010\ufffa\001\002\000\006\004\ufff8\010\ufff8\001\002\000" + "\020\005\025\007\031\012\032\013\033\014\026\015\027" + "\016\030\001\002\000\022\005\uffe5\006\uffe5\007\uffe5\012" + "\uffe5\013\uffe5\014\uffe5\015\uffe5\016\uffe5\001\002\000\006" + "\004\ufff2\010\ufff2\001\002\000\006\004\ufff1\010\ufff1\001" + "\002\000\006\004\ufff0\010\ufff0\001\002\000\006\010\uffed" + "\016\uffed\001\002\000\006\004\ufff4\010\ufff4\001\002\000" + "\006\004\ufff3\010\ufff3\001\002\000\006\004\067\006\uffe1" + "\001\002\000\022\005\uffe2\006\uffe2\007\uffe2\012\uffe2\013" + "\uffe2\014\uffe2\015\uffe2\016\uffe2\001\002\000\022\005\035" + "\006\043\007\051\012\042\013\041\014\037\015\047\016" + "\045\001\002\000\006\004\uffdb\006\uffdb\001\002\000\006" + "\004\uffe7\010\uffe7\001\002\000\006\004\uffdc\006\uffdc\001" + "\002\000\006\004\uffdd\006\uffdd\001\002\000\010\004\uffe0" + "\006\uffe0\010\uffe0\001\002\000\006\004\uffde\006\uffde\001" + "\002\000\006\004\uffd9\006\uffd9\001\002\000\006\010\060" + "\016\014\001\002\000\006\004\uffda\006\uffda\001\002\000" + "\004\006\043\001\002\000\006\010\uffea\016\uffea\001\002" + "\000\006\004\uffd7\006\uffd7\001\002\000\006\004\uffd8\006" + "\uffd8\001\002\000\006\004\uffe6\010\uffe6\001\002\000\006" + "\004\062\010\uffe9\001\002\000\004\010\060\001\002\000" + "\006\004\uffec\006\uffec\001\002\000\010\004\uffe8\006\uffe8" + "\010\uffe8\001\002\000\006\004\uffeb\006\uffeb\001\002\000" + "\004\016\014\001\002\000\006\004\ufffe\010\ufffe\001\002" + "\000\006\004\uffe4\006\uffe4\001\002\000\004\006\043\001" + "\002\000\006\004\uffe3\006\uffe3\001\002\000\020\005\035" + "\007\051\012\042\013\041\014\037\015\047\016\045\001" + "\002\000\006\004\uffdf\006\uffdf\001\002\000\004\010\060" + "\001\002\000\006\004\uffef\010\uffef\001\002\000\006\004" + "\uffee\010\uffee\001\002\000\004\002\uffff\001\002\000\004" + "\002\000\001\002" }); /** Access to parse-action table. */ public short[][] action_table() {return _action_table;} /** <code>reduce_goto</code> table. */ protected static final short[][] _reduce_table = unpackFromStrings(new String[] { "\000\073\000\004\002\003\001\001\000\002\001\001\000" + "\032\003\005\004\010\005\015\006\014\007\022\010\012" + "\011\020\012\016\014\011\015\006\022\021\023\007\001" + "\001\000\002\001\001\000\036\003\054\004\010\005\015" + "\006\014\007\022\010\012\011\020\012\016\014\011\015" + "\006\017\070\020\071\022\021\023\007\001\001\000\022" + "\013\052\016\045\021\051\024\035\025\047\026\037\027" + "\033\030\043\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\022" + "\013\052\016\045\021\051\024\035\025\064\026\063\027" + "\033\030\043\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\036\003\054\004\010" + "\005\015\006\014\007\022\010\012\011\020\012\016\014" + "\011\015\006\017\055\020\056\022\021\023\007\001\001" + "\000\002\001\001\000\004\026\053\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\004\020\060\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\030\004\062" + "\005\015\006\014\007\022\010\012\011\020\012\016\014" + "\011\015\006\022\021\023\007\001\001\000\002\001\001" + "\000\002\001\001\000\004\026\065\001\001\000\002\001" + "\001\000\014\013\052\016\045\021\051\024\035\030\067" + "\001\001\000\002\001\001\000\004\020\072\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001" }); /** Access to <code>reduce_goto</code> table. */ public short[][] reduce_table() {return _reduce_table;} /** Instance of action encapsulation class. */ protected CUP$Parser$actions action_obj; /** Action encapsulation object initializer. */ protected void init_actions() { action_obj = new CUP$Parser$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$Parser$do_action(act_num, parser, stack, top); } /** Indicates start state. */ public int start_state() {return 0;} /** Indicates start production. */ public int start_production() {return 1;} /** <code>EOF</code> Symbol index. */ public int EOF_sym() {return 0;} /** <code>error</code> Symbol index. */ public int error_sym() {return 1;} /** User initialization code. */ public void user_init() throws java.lang.Exception { m_Symbols = new HashMap(); m_Result = new JSONNode(); m_Stack = new Stack<JSONNode>(); m_Stack.push(m_Result); } /** variable - value relation. */ protected HashMap m_Symbols; /** for storing the parsed JSON data structure. */ protected JSONNode m_Result; /** the stack for keeping track of the current parent node. */ protected Stack<JSONNode> m_Stack; /** * Returns the JSON data structure. * * @return the result */ public JSONNode getResult() { return m_Result; } /** * Returns the stack used internally for keeping track of the current * parent node. * * @return the stack */ protected Stack<JSONNode> getStack() { return m_Stack; } /** * Runs the parser from commandline. Expects a filename as first parameter, * pointing to a JSON file. * * @param args the commandline arguments * @throws Exception if something goes wrong */ public static void main(String args[]) throws Exception { if (args.length != 1) { System.err.println("No JSON file specified!"); System.exit(1); } FileInputStream stream = new FileInputStream(args[0]); SymbolFactory sf = new DefaultSymbolFactory(); Parser parser = new Parser(new Scanner(stream, sf), sf); parser.parse(); StringBuffer buffer = new StringBuffer(); parser.getResult().toString(buffer); System.out.println(buffer.toString()); } } /** Cup generated class to encapsulate user supplied action code.*/ class CUP$Parser$actions { private final Parser parser; /** Constructor */ CUP$Parser$actions(Parser parser) { this.parser = parser; } /** Method with the actual generated action code. */ public final java_cup.runtime.Symbol CUP$Parser$do_action( int CUP$Parser$act_num, java_cup.runtime.lr_parser CUP$Parser$parser, java.util.Stack CUP$Parser$stack, int CUP$Parser$top) throws java.lang.Exception { /* Symbol object for return from actions */ java_cup.runtime.Symbol CUP$Parser$result; /* select the action based on the action number */ switch (CUP$Parser$act_num) { /*. . . . . . . . . . . . . . . . . . . .*/ case 42: // element ::= anon_array { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("element",22, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 41: // element ::= anon_object { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("element",22, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 40: // element ::= STRING { Object RESULT =null; int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; String s = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; parser.getStack().peek().addArrayElement(s); CUP$Parser$result = parser.getSymbolFactory().newSymbol("element",22, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 39: // element ::= DOUBLE { Object RESULT =null; int dleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; int dright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; Double d = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; parser.getStack().peek().addArrayElement(d); CUP$Parser$result = parser.getSymbolFactory().newSymbol("element",22, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 38: // element ::= INTEGER { Object RESULT =null; int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; Integer i = (Integer)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; parser.getStack().peek().addArrayElement(i); CUP$Parser$result = parser.getSymbolFactory().newSymbol("element",22, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 37: // element ::= BOOLEAN { Object RESULT =null; int bleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; int bright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; Boolean b = (Boolean)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; parser.getStack().peek().addArrayElement(b); CUP$Parser$result = parser.getSymbolFactory().newSymbol("element",22, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 36: // element ::= NULL { Object RESULT =null; parser.getStack().peek().addArrayElement(null); CUP$Parser$result = parser.getSymbolFactory().newSymbol("element",22, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 35: // elements ::= element { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("elements",21, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 34: // elements ::= elements COMMA element { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("elements",21, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 33: // array_end ::= RSQUARE { Object RESULT =null; parser.getStack().pop(); CUP$Parser$result = parser.getSymbolFactory().newSymbol("array_end",20, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 32: // array_content ::= elements { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("array_content",19, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 31: // anon_array_start ::= LSQUARE { Object RESULT =null; JSONNode node = parser.getStack().peek().addArray(null); parser.getStack().push(node); CUP$Parser$result = parser.getSymbolFactory().newSymbol("anon_array_start",18, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 30: // anon_array ::= anon_array_start array_content array_end { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("anon_array",15, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 29: // anon_array ::= anon_array_start array_end { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("anon_array",15, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 28: // named_array_start ::= STRING COLON LSQUARE { Object RESULT =null; int nameleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; int nameright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; String name = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; JSONNode node = parser.getStack().peek().addArray(name); parser.getStack().push(node); CUP$Parser$result = parser.getSymbolFactory().newSymbol("named_array_start",17, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 27: // named_array ::= named_array_start array_content array_end { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("named_array",16, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 26: // named_array ::= named_array_start array_end { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("named_array",16, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 25: // object_end ::= RCURLY { Object RESULT =null; parser.getStack().pop(); CUP$Parser$result = parser.getSymbolFactory().newSymbol("object_end",14, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 24: // object_content ::= pairs { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("object_content",13, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 23: // anon_object_start ::= LCURLY { Object RESULT =null; JSONNode node = parser.getStack().peek().addObject(null); parser.getStack().push(node); CUP$Parser$result = parser.getSymbolFactory().newSymbol("anon_object_start",12, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 22: // anon_object ::= anon_object_start object_content object_end { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("anon_object",9, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 21: // anon_object ::= anon_object_start object_end { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("anon_object",9, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 20: // named_object_start ::= STRING COLON LCURLY { Object RESULT =null; int nameleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; int nameright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; String name = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; JSONNode node = parser.getStack().peek().addObject(name); parser.getStack().push(node); CUP$Parser$result = parser.getSymbolFactory().newSymbol("named_object_start",11, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 19: // named_object ::= named_object_start object_content object_end { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("named_object",10, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 18: // named_object ::= named_object_start object_end { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("named_object",10, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 17: // string ::= STRING COLON STRING { String RESULT =null; int nameleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; int nameright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; String name = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; String s = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; parser.getStack().peek().addPrimitive(name, s); CUP$Parser$result = parser.getSymbolFactory().newSymbol("string",8, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 16: // double ::= STRING COLON DOUBLE { Double RESULT =null; int nameleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; int nameright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; String name = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; int dleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; int dright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; Double d = (Double)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; parser.getStack().peek().addPrimitive(name, d); CUP$Parser$result = parser.getSymbolFactory().newSymbol("double",7, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 15: // integer ::= STRING COLON INTEGER { Integer RESULT =null; int nameleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; int nameright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; String name = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; Integer i = (Integer)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; parser.getStack().peek().addPrimitive(name, i); CUP$Parser$result = parser.getSymbolFactory().newSymbol("integer",6, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 14: // boolean ::= STRING COLON BOOLEAN { Boolean RESULT =null; int nameleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; int nameright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; String name = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; int bleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; int bright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; Boolean b = (Boolean)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; parser.getStack().peek().addPrimitive(name, b); CUP$Parser$result = parser.getSymbolFactory().newSymbol("boolean",5, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 13: // null ::= STRING COLON NULL { Object RESULT =null; int nameleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; int nameright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; String name = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; parser.getStack().peek().addNull(name); CUP$Parser$result = parser.getSymbolFactory().newSymbol("null",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 12: // primitive ::= string { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("primitive",3, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 11: // primitive ::= double { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("primitive",3, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 10: // primitive ::= integer { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("primitive",3, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 9: // primitive ::= boolean { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("primitive",3, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 8: // primitive ::= null { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("primitive",3, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 7: // pair ::= named_array { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("pair",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 6: // pair ::= named_object { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("pair",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 5: // pair ::= primitive { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("pair",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 4: // pairs ::= pair { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("pairs",1, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 3: // pairs ::= pairs COMMA pair { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("pairs",1, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 2: // json ::= LCURLY pairs RCURLY { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("json",0, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 1: // $START ::= json EOF { Object RESULT =null; int start_valleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; int start_valright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; Object start_val = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; RESULT = start_val; CUP$Parser$result = parser.getSymbolFactory().newSymbol("$START",0, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } /* ACCEPT */ CUP$Parser$parser.done_parsing(); return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 0: // json ::= LCURLY RCURLY { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("json",0, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /* . . . . . .*/ default: throw new Exception( "Invalid action number found in internal parse table"); } } }