//---------------------------------------------------- // The following code was generated by CUP v0.11a beta 20060608 // Thu Nov 23 22:36:25 CET 2006 //---------------------------------------------------- package se.chalmers.cs.gf.GFCC; /** CUP v0.11a beta 20060608 generated parser. * @version Thu Nov 23 22:36:25 CET 2006 */ 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\062\000\002\002\004\000\002\002\007\000\002\003" + "\007\000\002\004\006\000\002\005\007\000\002\006\007" + "\000\002\007\005\000\002\010\005\000\002\011\006\000" + "\002\011\003\000\002\012\003\000\002\012\003\000\002" + "\012\003\000\002\012\003\000\002\012\003\000\002\013" + "\005\000\002\013\007\000\002\013\005\000\002\013\003" + "\000\002\013\004\000\002\013\003\000\002\013\003\000" + "\002\013\005\000\002\013\007\000\002\013\007\000\002" + "\013\003\000\002\013\007\000\002\013\004\000\002\014" + "\003\000\002\014\011\000\002\015\005\000\002\016\002" + "\000\002\016\005\000\002\017\002\000\002\017\005\000" + "\002\020\002\000\002\020\005\000\002\021\002\000\002" + "\021\003\000\002\021\005\000\002\022\002\000\002\022" + "\003\000\002\022\005\000\002\023\002\000\002\023\004" + "\000\002\024\002\000\002\024\004\000\002\025\002\000" + "\002\025\003\000\002\025\005" }); /** Access to production table. */ public short[][] production_table() {return _production_table;} /** Parse-action table. */ protected static final short[][] _action_table = unpackFromStrings(new String[] { "\000\146\000\004\032\004\001\002\000\004\037\145\001" + "\002\000\004\002\144\001\002\000\004\004\007\001\002" + "\000\004\030\010\001\002\000\004\007\111\001\002\000" + "\004\004\012\001\002\000\006\002\uffe2\031\uffe2\001\002" + "\000\006\002\000\031\014\001\002\000\004\037\017\001" + "\002\000\004\004\016\001\002\000\006\002\uffe1\031\uffe1" + "\001\002\000\004\007\020\001\002\000\006\010\uffde\037" + "\uffde\001\002\000\006\010\022\037\024\001\002\000\004" + "\004\ufffd\001\002\000\004\004\110\001\002\000\004\012" + "\025\001\002\000\024\005\030\014\026\015\040\020\035" + "\021\034\025\031\034\033\035\037\037\036\001\002\000" + "\020\004\uffe8\006\uffe8\016\uffe8\017\uffe8\022\uffe8\024\uffe8" + "\027\uffe8\001\002\000\020\004\uffef\006\uffef\016\uffef\017" + "\uffef\022\uffef\024\uffef\027\uffef\001\002\000\026\005\030" + "\006\uffd9\014\026\015\040\020\035\021\034\025\031\034" + "\070\035\037\037\072\001\002\000\004\037\066\001\002" + "\000\004\004\ufffb\001\002\000\014\004\uffe5\006\uffe5\016" + "\uffe5\022\uffe5\027\uffe5\001\002\000\026\005\030\014\026" + "\015\040\020\035\021\034\022\uffd9\025\031\034\033\035" + "\037\037\036\001\002\000\004\035\063\001\002\000\014" + "\004\uffec\006\uffec\016\uffec\022\uffec\027\uffec\001\002\000" + "\020\004\uffed\006\uffed\016\uffed\017\uffed\022\uffed\024\uffed" + "\027\uffed\001\002\000\030\005\030\014\026\015\040\016" + "\uffd9\020\035\021\034\025\031\033\042\034\033\035\037" + "\037\036\001\002\000\004\016\062\001\002\000\006\015" + "\uffd4\034\uffd4\001\002\000\012\006\uffd8\016\uffd8\022\uffd8" + "\027\044\001\002\000\032\005\030\006\uffd9\014\026\015" + "\040\016\uffd9\020\035\021\034\022\uffd9\025\031\034\033" + "\035\037\037\036\001\002\000\010\006\uffd7\016\uffd7\022" + "\uffd7\001\002\000\006\015\050\034\047\001\002\000\014" + "\015\uffd3\016\uffd3\026\uffd3\027\uffd3\034\uffd3\001\002\000" + "\010\016\uffd2\026\uffd4\034\uffd4\001\002\000\006\016\uffd1" + "\027\060\001\002\000\006\026\056\034\047\001\002\000" + "\004\016\054\001\002\000\004\016\055\001\002\000\020" + "\004\uffe4\006\uffe4\016\uffe4\017\uffe4\022\uffe4\024\uffe4\027" + "\uffe4\001\002\000\010\016\uffd4\027\uffd4\034\uffd4\001\002" + "\000\010\016\uffe3\027\uffe3\034\047\001\002\000\010\016" + "\uffd2\026\uffd4\034\uffd4\001\002\000\004\016\uffd0\001\002" + "\000\020\004\ufff2\006\ufff2\016\ufff2\017\ufff2\022\ufff2\024" + "\ufff2\027\ufff2\001\002\000\020\004\uffee\006\uffee\016\uffee" + "\017\uffee\022\uffee\024\uffee\027\uffee\001\002\000\004\022" + "\065\001\002\000\020\004\uffeb\006\uffeb\016\uffeb\017\uffeb" + "\022\uffeb\024\uffeb\027\uffeb\001\002\000\020\004\uffe6\006" + "\uffe6\016\uffe6\017\uffe6\022\uffe6\024\uffe6\027\uffe6\001\002" + "\000\004\006\107\001\002\000\014\006\uffe5\017\uffe5\023" + "\104\024\uffe5\027\uffe5\001\002\000\012\006\uffd8\017\077" + "\024\076\027\044\001\002\000\014\006\uffec\013\073\017" + "\uffec\024\uffec\027\uffec\001\002\000\024\005\030\014\026" + "\015\040\020\035\021\034\025\031\034\033\035\037\037" + "\036\001\002\000\004\006\075\001\002\000\020\004\uffe7" + "\006\uffe7\016\uffe7\017\uffe7\022\uffe7\024\uffe7\027\uffe7\001" + "\002\000\024\005\030\014\026\015\040\020\035\021\034" + "\025\031\034\033\035\037\037\036\001\002\000\024\005" + "\030\014\026\015\040\020\035\021\034\025\031\034\033" + "\035\037\037\036\001\002\000\004\006\101\001\002\000" + "\020\004\ufff1\006\ufff1\016\ufff1\017\ufff1\022\ufff1\024\ufff1" + "\027\ufff1\001\002\000\004\006\103\001\002\000\020\004" + "\uffe9\006\uffe9\016\uffe9\017\uffe9\022\uffe9\024\uffe9\027\uffe9" + "\001\002\000\024\005\030\014\026\015\040\020\035\021" + "\034\025\031\034\033\035\037\037\036\001\002\000\004" + "\006\106\001\002\000\020\004\uffea\006\uffea\016\uffea\017" + "\uffea\022\uffea\024\uffea\027\uffea\001\002\000\020\004\ufff0" + "\006\ufff0\016\ufff0\017\ufff0\022\ufff0\024\ufff0\027\ufff0\001" + "\002\000\006\010\uffdd\037\uffdd\001\002\000\006\010\uffe0" + "\037\uffe0\001\002\000\006\010\113\037\115\001\002\000" + "\004\004\ufffe\001\002\000\004\004\143\001\002\000\004" + "\011\116\001\002\000\006\013\uffdc\037\120\001\002\000" + "\004\012\126\001\002\000\010\006\uffdb\013\uffdb\027\124" + "\001\002\000\004\013\122\001\002\000\004\037\123\001" + "\002\000\004\012\ufffa\001\002\000\010\006\uffdc\013\uffdc" + "\037\120\001\002\000\006\006\uffda\013\uffda\001\002\000" + "\016\005\131\014\134\034\127\035\133\036\136\037\135" + "\001\002\000\022\004\ufff6\005\ufff6\006\ufff6\014\ufff6\034" + "\ufff6\035\ufff6\036\ufff6\037\ufff6\001\002\000\022\004\ufff8" + "\005\ufff8\006\ufff8\014\ufff8\034\ufff8\035\ufff8\036\ufff8\037" + "\ufff8\001\002\000\014\014\134\034\127\035\133\036\136" + "\037\135\001\002\000\004\004\ufffc\001\002\000\022\004" + "\ufff5\005\ufff5\006\ufff5\014\ufff5\034\ufff5\035\ufff5\036\ufff5" + "\037\ufff5\001\002\000\022\004\ufff3\005\ufff3\006\ufff3\014" + "\ufff3\034\ufff3\035\ufff3\036\ufff3\037\ufff3\001\002\000\022" + "\004\ufff7\005\ufff7\006\ufff7\014\ufff7\034\ufff7\035\ufff7\036" + "\ufff7\037\ufff7\001\002\000\022\004\ufff4\005\ufff4\006\ufff4" + "\014\ufff4\034\ufff4\035\ufff4\036\ufff4\037\ufff4\001\002\000" + "\020\005\uffd6\006\uffd6\014\uffd6\034\uffd6\035\uffd6\036\uffd6" + "\037\uffd6\001\002\000\020\005\131\006\141\014\134\034" + "\127\035\133\036\136\037\135\001\002\000\022\004\ufff9" + "\005\ufff9\006\ufff9\014\ufff9\034\ufff9\035\ufff9\036\ufff9\037" + "\ufff9\001\002\000\020\005\uffd5\006\uffd5\014\uffd5\034\uffd5" + "\035\uffd5\036\uffd5\037\uffd5\001\002\000\006\010\uffdf\037" + "\uffdf\001\002\000\004\002\001\001\002\000\004\005\146" + "\001\002\000\006\006\uffdc\037\120\001\002\000\004\006" + "\150\001\002\000\004\004\uffff\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\146\000\006\002\004\003\005\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\004\004\010" + "\001\001\000\002\001\001\000\002\001\001\000\004\016" + "\012\001\001\000\004\005\014\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\004\020\020\001\001\000\004\007\022\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\006\013" + "\031\014\026\001\001\000\002\001\001\000\002\001\001" + "\000\010\013\070\014\026\022\066\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\010\013\042" + "\014\026\022\063\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\010\013\042\014\026\022\040" + "\001\001\000\002\001\001\000\004\024\045\001\001\000" + "\002\001\001\000\010\013\042\014\026\022\044\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\010\015\050\024\051\025\052\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\004\024\056\001\001\000\002\001\001" + "\000\010\015\050\024\051\025\060\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\006" + "\013\073\014\026\001\001\000\002\001\001\000\002\001" + "\001\000\006\013\101\014\026\001\001\000\006\013\077" + "\014\026\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\006\013\104\014\026" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\004\017\111\001\001\000\004" + "\006\113\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\006\010\116\021\120\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\004\021\124\001\001\000\002" + "\001\001\000\006\011\131\012\127\001\001\000\002\001" + "\001\000\002\001\001\000\004\012\136\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\004\023\137\001\001\000\006" + "\011\141\012\127\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\004\021\146\001\001\000\002\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$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 0;} /** EOF Symbol index. */ public int EOF_sym() {return 0;} /** error Symbol index. */ public int error_sym() {return 1;} public se.chalmers.cs.gf.GFCC.Absyn.Grammar pGrammar() throws Exception { java_cup.runtime.Symbol res = parse(); return (se.chalmers.cs.gf.GFCC.Absyn.Grammar) res.value; } public > A cons_(B x, A xs) { xs.addFirst(x); return xs; } public se.chalmers.cs.gf.GFCC.Absyn.Exp trA_ (se.chalmers.cs.gf.GFCC.Absyn.Atom a_) { return new se.chalmers.cs.gf.GFCC.Absyn.Tr(a_, new se.chalmers.cs.gf.GFCC.Absyn.ListExp()); } public void syntax_error(java_cup.runtime.Symbol cur_token) { report_error("Syntax Error, trying to recover and continue parse...", cur_token); } public void unrecovered_syntax_error(java_cup.runtime.Symbol cur_token) throws java.lang.Exception { throw new Exception("Unrecoverable Syntax Error"); } } /** 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 49: // ListVariant ::= Variant _SYMB_19 ListVariant { se.chalmers.cs.gf.GFCC.Absyn.ListVariant RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.Variant p_1 = (se.chalmers.cs.gf.GFCC.Absyn.Variant)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; se.chalmers.cs.gf.GFCC.Absyn.ListVariant p_3 = (se.chalmers.cs.gf.GFCC.Absyn.ListVariant)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = p_3; p_3.addFirst(p_1); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListVariant",19, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 48: // ListVariant ::= Variant { se.chalmers.cs.gf.GFCC.Absyn.ListVariant RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.Variant p_1 = (se.chalmers.cs.gf.GFCC.Absyn.Variant)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.ListVariant(); RESULT.addLast(p_1); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListVariant",19, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 47: // ListVariant ::= { se.chalmers.cs.gf.GFCC.Absyn.ListVariant RESULT =null; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.ListVariant(); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListVariant",19, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 46: // ListString ::= ListString _STRING_ { se.chalmers.cs.gf.GFCC.Absyn.ListString RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.ListString p_1 = (se.chalmers.cs.gf.GFCC.Absyn.ListString)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; String p_2 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = p_1; p_1.addLast(p_2); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListString",18, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 45: // ListString ::= { se.chalmers.cs.gf.GFCC.Absyn.ListString RESULT =null; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.ListString(); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListString",18, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 44: // ListExp ::= ListExp Exp { se.chalmers.cs.gf.GFCC.Absyn.ListExp RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.ListExp p_1 = (se.chalmers.cs.gf.GFCC.Absyn.ListExp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; se.chalmers.cs.gf.GFCC.Absyn.Exp p_2 = (se.chalmers.cs.gf.GFCC.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = p_1; p_1.addLast(p_2); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListExp",17, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 43: // ListExp ::= { se.chalmers.cs.gf.GFCC.Absyn.ListExp RESULT =null; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.ListExp(); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListExp",17, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 42: // ListTerm ::= Term _SYMB_19 ListTerm { se.chalmers.cs.gf.GFCC.Absyn.ListTerm RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.Term p_1 = (se.chalmers.cs.gf.GFCC.Absyn.Term)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; se.chalmers.cs.gf.GFCC.Absyn.ListTerm p_3 = (se.chalmers.cs.gf.GFCC.Absyn.ListTerm)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = p_3; p_3.addFirst(p_1); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListTerm",16, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 41: // ListTerm ::= Term { se.chalmers.cs.gf.GFCC.Absyn.ListTerm RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.Term p_1 = (se.chalmers.cs.gf.GFCC.Absyn.Term)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.ListTerm(); RESULT.addLast(p_1); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListTerm",16, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 40: // ListTerm ::= { se.chalmers.cs.gf.GFCC.Absyn.ListTerm RESULT =null; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.ListTerm(); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListTerm",16, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 39: // ListCId ::= CId _SYMB_19 ListCId { se.chalmers.cs.gf.GFCC.Absyn.ListCId RESULT =null; String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; se.chalmers.cs.gf.GFCC.Absyn.ListCId p_3 = (se.chalmers.cs.gf.GFCC.Absyn.ListCId)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = p_3; p_3.addFirst(p_1); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListCId",15, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 38: // ListCId ::= CId { se.chalmers.cs.gf.GFCC.Absyn.ListCId RESULT =null; String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.ListCId(); RESULT.addLast(p_1); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListCId",15, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 37: // ListCId ::= { se.chalmers.cs.gf.GFCC.Absyn.ListCId RESULT =null; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.ListCId(); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListCId",15, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 36: // ListCncDef ::= ListCncDef CncDef _SYMB_0 { se.chalmers.cs.gf.GFCC.Absyn.ListCncDef RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.ListCncDef p_1 = (se.chalmers.cs.gf.GFCC.Absyn.ListCncDef)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; se.chalmers.cs.gf.GFCC.Absyn.CncDef p_2 = (se.chalmers.cs.gf.GFCC.Absyn.CncDef)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = p_1; p_1.addLast(p_2); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListCncDef",14, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 35: // ListCncDef ::= { se.chalmers.cs.gf.GFCC.Absyn.ListCncDef RESULT =null; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.ListCncDef(); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListCncDef",14, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 34: // ListAbsDef ::= ListAbsDef AbsDef _SYMB_0 { se.chalmers.cs.gf.GFCC.Absyn.ListAbsDef RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.ListAbsDef p_1 = (se.chalmers.cs.gf.GFCC.Absyn.ListAbsDef)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; se.chalmers.cs.gf.GFCC.Absyn.AbsDef p_2 = (se.chalmers.cs.gf.GFCC.Absyn.AbsDef)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = p_1; p_1.addLast(p_2); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListAbsDef",13, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 33: // ListAbsDef ::= { se.chalmers.cs.gf.GFCC.Absyn.ListAbsDef RESULT =null; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.ListAbsDef(); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListAbsDef",13, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 32: // ListConcrete ::= ListConcrete Concrete _SYMB_0 { se.chalmers.cs.gf.GFCC.Absyn.ListConcrete RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.ListConcrete p_1 = (se.chalmers.cs.gf.GFCC.Absyn.ListConcrete)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; se.chalmers.cs.gf.GFCC.Absyn.Concrete p_2 = (se.chalmers.cs.gf.GFCC.Absyn.Concrete)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = p_1; p_1.addLast(p_2); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListConcrete",12, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 31: // ListConcrete ::= { se.chalmers.cs.gf.GFCC.Absyn.ListConcrete RESULT =null; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.ListConcrete(); CUP$parser$result = parser.getSymbolFactory().newSymbol("ListConcrete",12, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 30: // Variant ::= ListString _SYMB_18 ListString { se.chalmers.cs.gf.GFCC.Absyn.Variant RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.ListString p_1 = (se.chalmers.cs.gf.GFCC.Absyn.ListString)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; se.chalmers.cs.gf.GFCC.Absyn.ListString p_3 = (se.chalmers.cs.gf.GFCC.Absyn.ListString)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.Var(p_1,p_3); CUP$parser$result = parser.getSymbolFactory().newSymbol("Variant",11, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 29: // Tokn ::= _SYMB_9 _SYMB_23 ListString _SYMB_9 ListVariant _SYMB_10 _SYMB_10 { se.chalmers.cs.gf.GFCC.Absyn.Tokn RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.ListString p_3 = (se.chalmers.cs.gf.GFCC.Absyn.ListString)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; se.chalmers.cs.gf.GFCC.Absyn.ListVariant p_5 = (se.chalmers.cs.gf.GFCC.Absyn.ListVariant)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.KP(p_3,p_5); CUP$parser$result = parser.getSymbolFactory().newSymbol("Tokn",10, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 28: // Tokn ::= _STRING_ { se.chalmers.cs.gf.GFCC.Absyn.Tokn RESULT =null; String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.KS(p_1); CUP$parser$result = parser.getSymbolFactory().newSymbol("Tokn",10, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 27: // Term ::= _SYMB_17 CId { se.chalmers.cs.gf.GFCC.Absyn.Term RESULT =null; String p_2 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.BV(p_2); CUP$parser$result = parser.getSymbolFactory().newSymbol("Term",9, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 26: // Term ::= _SYMB_1 CId _SYMB_7 Term _SYMB_2 { se.chalmers.cs.gf.GFCC.Absyn.Term RESULT =null; String p_2 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; se.chalmers.cs.gf.GFCC.Absyn.Term p_4 = (se.chalmers.cs.gf.GFCC.Absyn.Term)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.L(p_2,p_4); CUP$parser$result = parser.getSymbolFactory().newSymbol("Term",9, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 25: // Term ::= _SYMB_8 { se.chalmers.cs.gf.GFCC.Absyn.Term RESULT =null; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.TM(); CUP$parser$result = parser.getSymbolFactory().newSymbol("Term",9, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 24: // Term ::= _SYMB_1 Term _SYMB_16 Term _SYMB_2 { se.chalmers.cs.gf.GFCC.Absyn.Term RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.Term p_2 = (se.chalmers.cs.gf.GFCC.Absyn.Term)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; se.chalmers.cs.gf.GFCC.Absyn.Term p_4 = (se.chalmers.cs.gf.GFCC.Absyn.Term)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.RP(p_2,p_4); CUP$parser$result = parser.getSymbolFactory().newSymbol("Term",9, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 23: // Term ::= _SYMB_1 _STRING_ _SYMB_15 Term _SYMB_2 { se.chalmers.cs.gf.GFCC.Absyn.Term RESULT =null; String p_2 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; se.chalmers.cs.gf.GFCC.Absyn.Term p_4 = (se.chalmers.cs.gf.GFCC.Absyn.Term)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.W(p_2,p_4); CUP$parser$result = parser.getSymbolFactory().newSymbol("Term",9, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 22: // Term ::= _SYMB_13 ListTerm _SYMB_14 { se.chalmers.cs.gf.GFCC.Absyn.Term RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.ListTerm p_2 = (se.chalmers.cs.gf.GFCC.Absyn.ListTerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.FV(p_2); CUP$parser$result = parser.getSymbolFactory().newSymbol("Term",9, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 21: // Term ::= CId { se.chalmers.cs.gf.GFCC.Absyn.Term RESULT =null; String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.F(p_1); CUP$parser$result = parser.getSymbolFactory().newSymbol("Term",9, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 20: // Term ::= _INTEGER_ { se.chalmers.cs.gf.GFCC.Absyn.Term RESULT =null; Integer p_1 = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.C(p_1); CUP$parser$result = parser.getSymbolFactory().newSymbol("Term",9, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 19: // Term ::= _SYMB_12 _INTEGER_ { se.chalmers.cs.gf.GFCC.Absyn.Term RESULT =null; Integer p_2 = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.V(p_2); CUP$parser$result = parser.getSymbolFactory().newSymbol("Term",9, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 18: // Term ::= Tokn { se.chalmers.cs.gf.GFCC.Absyn.Term RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.Tokn p_1 = (se.chalmers.cs.gf.GFCC.Absyn.Tokn)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.K(p_1); CUP$parser$result = parser.getSymbolFactory().newSymbol("Term",9, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 17: // Term ::= _SYMB_1 ListTerm _SYMB_2 { se.chalmers.cs.gf.GFCC.Absyn.Term RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.ListTerm p_2 = (se.chalmers.cs.gf.GFCC.Absyn.ListTerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.S(p_2); CUP$parser$result = parser.getSymbolFactory().newSymbol("Term",9, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 16: // Term ::= _SYMB_1 Term _SYMB_11 Term _SYMB_2 { se.chalmers.cs.gf.GFCC.Absyn.Term RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.Term p_2 = (se.chalmers.cs.gf.GFCC.Absyn.Term)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; se.chalmers.cs.gf.GFCC.Absyn.Term p_4 = (se.chalmers.cs.gf.GFCC.Absyn.Term)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.P(p_2,p_4); CUP$parser$result = parser.getSymbolFactory().newSymbol("Term",9, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 15: // Term ::= _SYMB_9 ListTerm _SYMB_10 { se.chalmers.cs.gf.GFCC.Absyn.Term RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.ListTerm p_2 = (se.chalmers.cs.gf.GFCC.Absyn.ListTerm)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.R(p_2); CUP$parser$result = parser.getSymbolFactory().newSymbol("Term",9, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 14: // Atom ::= _SYMB_8 { se.chalmers.cs.gf.GFCC.Absyn.Atom RESULT =null; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.AM(); CUP$parser$result = parser.getSymbolFactory().newSymbol("Atom",8, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 13: // Atom ::= _DOUBLE_ { se.chalmers.cs.gf.GFCC.Absyn.Atom RESULT =null; Double p_1 = (Double)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.AF(p_1); CUP$parser$result = parser.getSymbolFactory().newSymbol("Atom",8, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 12: // Atom ::= _INTEGER_ { se.chalmers.cs.gf.GFCC.Absyn.Atom RESULT =null; Integer p_1 = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.AI(p_1); CUP$parser$result = parser.getSymbolFactory().newSymbol("Atom",8, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 11: // Atom ::= _STRING_ { se.chalmers.cs.gf.GFCC.Absyn.Atom RESULT =null; String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.AS(p_1); CUP$parser$result = parser.getSymbolFactory().newSymbol("Atom",8, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 10: // Atom ::= CId { se.chalmers.cs.gf.GFCC.Absyn.Atom RESULT =null; String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.AC(p_1); CUP$parser$result = parser.getSymbolFactory().newSymbol("Atom",8, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 9: // Exp ::= Atom { se.chalmers.cs.gf.GFCC.Absyn.Exp RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.Atom p_1 = (se.chalmers.cs.gf.GFCC.Absyn.Atom)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = parser.trA_(p_1); CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp",7, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 8: // Exp ::= _SYMB_1 Atom ListExp _SYMB_2 { se.chalmers.cs.gf.GFCC.Absyn.Exp RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.Atom p_2 = (se.chalmers.cs.gf.GFCC.Absyn.Atom)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; se.chalmers.cs.gf.GFCC.Absyn.ListExp p_3 = (se.chalmers.cs.gf.GFCC.Absyn.ListExp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.Tr(p_2,p_3); CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp",7, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 7: // Type ::= ListCId _SYMB_7 CId { se.chalmers.cs.gf.GFCC.Absyn.Type RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.ListCId p_1 = (se.chalmers.cs.gf.GFCC.Absyn.ListCId)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; String p_3 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.Typ(p_1,p_3); CUP$parser$result = parser.getSymbolFactory().newSymbol("Type",6, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 6: // CncDef ::= CId _SYMB_6 Term { se.chalmers.cs.gf.GFCC.Absyn.CncDef RESULT =null; String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; se.chalmers.cs.gf.GFCC.Absyn.Term p_3 = (se.chalmers.cs.gf.GFCC.Absyn.Term)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.Lin(p_1,p_3); CUP$parser$result = parser.getSymbolFactory().newSymbol("CncDef",5, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 5: // AbsDef ::= CId _SYMB_5 Type _SYMB_6 Exp { se.chalmers.cs.gf.GFCC.Absyn.AbsDef RESULT =null; String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; se.chalmers.cs.gf.GFCC.Absyn.Type p_3 = (se.chalmers.cs.gf.GFCC.Absyn.Type)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; se.chalmers.cs.gf.GFCC.Absyn.Exp p_5 = (se.chalmers.cs.gf.GFCC.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.Fun(p_1,p_3,p_5); CUP$parser$result = parser.getSymbolFactory().newSymbol("AbsDef",4, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 4: // Concrete ::= _SYMB_21 CId _SYMB_3 ListCncDef _SYMB_4 { se.chalmers.cs.gf.GFCC.Absyn.Concrete RESULT =null; String p_2 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; se.chalmers.cs.gf.GFCC.Absyn.ListCncDef p_4 = (se.chalmers.cs.gf.GFCC.Absyn.ListCncDef)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.Cnc(p_2,p_4); CUP$parser$result = parser.getSymbolFactory().newSymbol("Concrete",3, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 3: // Abstract ::= _SYMB_20 _SYMB_3 ListAbsDef _SYMB_4 { se.chalmers.cs.gf.GFCC.Absyn.Abstract RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.ListAbsDef p_3 = (se.chalmers.cs.gf.GFCC.Absyn.ListAbsDef)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.Abs(p_3); CUP$parser$result = parser.getSymbolFactory().newSymbol("Abstract",2, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 2: // Header ::= _SYMB_22 CId _SYMB_1 ListCId _SYMB_2 { se.chalmers.cs.gf.GFCC.Absyn.Header RESULT =null; String p_2 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; se.chalmers.cs.gf.GFCC.Absyn.ListCId p_4 = (se.chalmers.cs.gf.GFCC.Absyn.ListCId)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.Hdr(p_2,p_4); CUP$parser$result = parser.getSymbolFactory().newSymbol("Header",1, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 1: // Grammar ::= Header _SYMB_0 Abstract _SYMB_0 ListConcrete { se.chalmers.cs.gf.GFCC.Absyn.Grammar RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.Header p_1 = (se.chalmers.cs.gf.GFCC.Absyn.Header)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; se.chalmers.cs.gf.GFCC.Absyn.Abstract p_3 = (se.chalmers.cs.gf.GFCC.Absyn.Abstract)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; se.chalmers.cs.gf.GFCC.Absyn.ListConcrete p_5 = (se.chalmers.cs.gf.GFCC.Absyn.ListConcrete)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; RESULT = new se.chalmers.cs.gf.GFCC.Absyn.Grm(p_1,p_3,p_5); CUP$parser$result = parser.getSymbolFactory().newSymbol("Grammar",0, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 0: // $START ::= Grammar EOF { Object RESULT =null; se.chalmers.cs.gf.GFCC.Absyn.Grammar start_val = (se.chalmers.cs.gf.GFCC.Absyn.Grammar)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = start_val; CUP$parser$result = parser.getSymbolFactory().newSymbol("$START",0, RESULT); } /* ACCEPT */ CUP$parser$parser.done_parsing(); return CUP$parser$result; /* . . . . . .*/ default: throw new Exception( "Invalid action number found in internal parse table"); } } }