//----------------------------------------------------
// The following code was generated by CUP v0.11a beta 20060608
// Thu Nov 23 22:36:24 CET 2006
//----------------------------------------------------
package se.chalmers.cs.gf.Core;
/** CUP v0.11a beta 20060608 generated parser.
* @version Thu Nov 23 22:36:24 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\075\000\002\002\004\000\002\002\003\000\002\003" +
"\002\000\002\003\003\000\002\003\005\000\002\004\012" +
"\000\002\004\005\000\002\004\005\000\002\005\005\000" +
"\002\006\002\000\002\006\003\000\002\006\005\000\002" +
"\007\002\000\002\007\004\000\002\010\006\000\002\010" +
"\003\000\002\010\006\000\002\010\003\000\002\010\003" +
"\000\002\011\005\000\002\012\002\000\002\012\003\000" +
"\002\012\005\000\002\013\003\000\002\013\003\000\002" +
"\014\010\000\002\014\010\000\002\014\003\000\002\015" +
"\005\000\002\016\002\000\002\016\003\000\002\016\005" +
"\000\002\017\007\000\002\020\002\000\002\020\003\000" +
"\002\020\005\000\002\021\006\000\002\021\011\000\002" +
"\021\003\000\002\022\004\000\002\022\003\000\002\023" +
"\005\000\002\023\003\000\002\024\006\000\002\024\006" +
"\000\002\024\003\000\002\024\003\000\002\024\003\000" +
"\002\024\003\000\002\024\003\000\002\024\003\000\002" +
"\024\005\000\002\025\005\000\002\026\002\000\002\026" +
"\003\000\002\026\005\000\002\027\005\000\002\030\002" +
"\000\002\030\003\000\002\030\005\000\002\031\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\171\000\010\002\uffff\022\007\035\004\001\002\000" +
"\006\005\171\010\170\001\002\000\004\002\000\001\002" +
"\000\004\002\167\001\002\000\004\035\013\001\002\000" +
"\006\002\ufffe\004\011\001\002\000\010\002\uffff\022\007" +
"\035\004\001\002\000\004\002\ufffd\001\002\000\004\005" +
"\014\001\002\000\032\011\027\016\026\020\025\021\024" +
"\024\022\026\020\027\017\031\016\032\015\033\023\034" +
"\030\035\021\001\002\000\044\002\uffd1\004\uffd1\007\uffd1" +
"\011\uffd1\012\uffd1\015\uffd1\017\uffd1\020\uffd1\025\uffd1\026" +
"\uffd1\027\uffd1\030\uffd1\031\uffd1\032\uffd1\033\uffd1\034\uffd1" +
"\035\uffd1\001\002\000\044\002\uffd2\004\uffd2\007\uffd2\011" +
"\uffd2\012\uffd2\015\uffd2\017\uffd2\020\uffd2\025\uffd2\026\uffd2" +
"\027\uffd2\030\uffd2\031\uffd2\032\uffd2\033\uffd2\034\uffd2\035" +
"\uffd2\001\002\000\004\006\156\001\002\000\004\006\145" +
"\001\002\000\044\002\uffd4\004\uffd4\007\uffd4\011\uffd4\012" +
"\uffd4\015\uffd4\017\uffd4\020\uffd4\025\uffd4\026\uffd4\027\uffd4" +
"\030\uffd4\031\uffd4\032\uffd4\033\uffd4\034\uffd4\035\uffd4\001" +
"\002\000\004\006\132\001\002\000\044\002\uffd0\004\uffd0" +
"\007\uffd0\011\uffd0\012\uffd0\015\uffd0\017\uffd0\020\uffd0\025" +
"\uffd0\026\uffd0\027\uffd0\030\uffd0\031\uffd0\032\uffd0\033\uffd0" +
"\034\uffd0\035\uffd0\001\002\000\032\011\027\016\026\020" +
"\025\021\024\024\022\026\020\027\017\031\016\032\015" +
"\033\023\034\030\035\021\001\002\000\044\002\uffd3\004" +
"\uffd3\007\uffd3\011\uffd3\012\uffd3\015\uffd3\017\uffd3\020\uffd3" +
"\025\uffd3\026\uffd3\027\uffd3\030\uffd3\031\uffd3\032\uffd3\033" +
"\uffd3\034\uffd3\035\uffd3\001\002\000\006\013\061\035\067" +
"\001\002\000\034\011\027\013\061\016\026\020\025\021" +
"\024\024\022\026\020\027\017\031\016\032\015\033\023" +
"\034\030\035\060\001\002\000\044\002\uffcf\004\uffcf\007" +
"\uffcf\011\uffcf\012\uffcf\015\uffcf\017\uffcf\020\uffcf\025\uffcf" +
"\026\uffcf\027\uffcf\030\uffcf\031\uffcf\032\uffcf\033\uffcf\034" +
"\uffcf\035\uffcf\001\002\000\004\030\045\001\002\000\044" +
"\002\uffd7\004\uffd7\007\uffd7\011\uffd7\012\uffd7\015\uffd7\017" +
"\uffd7\020\uffd7\025\uffd7\026\uffd7\027\uffd7\030\uffd7\031\uffd7" +
"\032\uffd7\033\uffd7\034\uffd7\035\uffd7\001\002\000\044\002" +
"\uffd9\004\uffd9\007\uffd9\011\uffd9\012\uffd9\015\uffd9\017\041" +
"\020\uffd9\025\uffd9\026\uffd9\027\uffd9\030\uffd9\031\uffd9\032" +
"\uffd9\033\uffd9\034\uffd9\035\uffd9\001\002\000\042\002\uffc5" +
"\004\uffc5\007\uffc5\011\037\012\uffc5\015\uffc5\020\025\025" +
"\uffc5\026\020\027\017\030\uffc5\031\016\032\015\033\023" +
"\034\030\035\021\001\002\000\020\002\uffdb\004\uffdb\007" +
"\uffdb\012\uffdb\015\uffdb\025\uffdb\030\uffdb\001\002\000\020" +
"\002\uffe6\004\uffe6\007\uffe6\012\uffe6\015\uffe6\025\uffe6\030" +
"\uffe6\001\002\000\032\011\027\016\026\020\025\021\024" +
"\024\022\026\020\027\017\031\016\032\015\033\023\034" +
"\030\035\021\001\002\000\044\002\uffda\004\uffda\007\uffda" +
"\011\uffda\012\uffda\015\uffda\017\041\020\uffda\025\uffda\026" +
"\uffda\027\uffda\030\uffda\031\uffda\032\uffda\033\uffda\034\uffda" +
"\035\uffda\001\002\000\004\035\042\001\002\000\044\002" +
"\uffd8\004\uffd8\007\uffd8\011\uffd8\012\uffd8\015\uffd8\017\uffd8" +
"\020\uffd8\025\uffd8\026\uffd8\027\uffd8\030\uffd8\031\uffd8\032" +
"\uffd8\033\uffd8\034\uffd8\035\uffd8\001\002\000\004\012\044" +
"\001\002\000\044\002\uffce\004\uffce\007\uffce\011\uffce\012" +
"\uffce\015\uffce\017\uffce\020\uffce\025\uffce\026\uffce\027\uffce" +
"\030\uffce\031\uffce\032\uffce\033\uffce\034\uffce\035\uffce\001" +
"\002\000\004\006\046\001\002\000\006\007\ufff8\035\047" +
"\001\002\000\004\005\055\001\002\000\004\007\054\001" +
"\002\000\006\004\052\007\ufff7\001\002\000\006\007\ufff8" +
"\035\047\001\002\000\004\007\ufff6\001\002\000\006\002" +
"\ufffc\004\ufffc\001\002\000\032\011\027\016\026\020\025" +
"\021\024\024\022\026\020\027\017\031\016\032\015\033" +
"\023\034\030\035\021\001\002\000\006\004\ufff9\007\ufff9" +
"\001\002\000\004\005\062\001\002\000\032\005\uffea\011" +
"\uffd4\012\uffd4\017\uffd4\020\uffd4\026\uffd4\027\uffd4\031\uffd4" +
"\032\uffd4\033\uffd4\034\uffd4\035\uffd4\001\002\000\032\004" +
"\uffe9\005\uffe9\007\uffe9\011\uffe9\012\uffe9\013\uffe9\014\uffe9" +
"\015\uffe9\026\uffe9\031\uffe9\032\uffe9\035\uffe9\001\002\000" +
"\032\011\027\016\026\020\025\021\024\024\022\026\020" +
"\027\017\031\016\032\015\033\023\034\030\035\021\001" +
"\002\000\004\012\064\001\002\000\004\015\065\001\002" +
"\000\032\011\027\016\026\020\025\021\024\024\022\026" +
"\020\027\017\031\016\032\015\033\023\034\030\035\021" +
"\001\002\000\020\002\uffdc\004\uffdc\007\uffdc\012\uffdc\015" +
"\uffdc\025\uffdc\030\uffdc\001\002\000\030\004\uffea\007\uffea" +
"\011\uffea\012\uffea\013\uffea\014\uffea\015\uffea\026\uffea\031" +
"\uffea\032\uffea\035\uffea\001\002\000\004\015\071\001\002" +
"\000\032\011\027\016\026\020\025\021\024\024\022\026" +
"\020\027\017\031\016\032\015\033\023\034\030\035\021" +
"\001\002\000\020\002\uffdd\004\uffdd\007\uffdd\012\uffdd\015" +
"\uffdd\025\uffdd\030\uffdd\001\002\000\004\025\074\001\002" +
"\000\004\006\075\001\002\000\020\007\uffe0\011\076\013" +
"\061\026\101\031\103\032\105\035\067\001\002\000\004" +
"\035\126\001\002\000\006\004\124\007\uffdf\001\002\000" +
"\004\014\120\001\002\000\004\006\107\001\002\000\026" +
"\004\ufff2\007\ufff2\011\ufff2\012\ufff2\013\ufff2\014\ufff2\026" +
"\ufff2\031\ufff2\032\ufff2\035\ufff2\001\002\000\026\004\ufff0" +
"\007\ufff0\011\ufff0\012\ufff0\013\ufff0\014\ufff0\026\ufff0\031" +
"\ufff0\032\ufff0\035\ufff0\001\002\000\004\007\106\001\002" +
"\000\026\004\uffef\007\uffef\011\uffef\012\uffef\013\uffef\014" +
"\uffef\026\uffef\031\uffef\032\uffef\035\uffef\001\002\000\020" +
"\002\uffe7\004\uffe7\007\uffe7\012\uffe7\015\uffe7\025\uffe7\030" +
"\uffe7\001\002\000\006\007\uffed\035\110\001\002\000\004" +
"\010\116\001\002\000\004\007\115\001\002\000\006\004" +
"\113\007\uffec\001\002\000\006\007\uffed\035\110\001\002" +
"\000\004\007\uffeb\001\002\000\026\004\ufff1\007\ufff1\011" +
"\ufff1\012\ufff1\013\ufff1\014\ufff1\026\ufff1\031\ufff1\032\ufff1" +
"\035\ufff1\001\002\000\016\011\076\013\061\026\101\031" +
"\103\032\105\035\067\001\002\000\006\004\uffee\007\uffee" +
"\001\002\000\032\011\027\016\026\020\025\021\024\024" +
"\022\026\020\027\017\031\016\032\015\033\023\034\030" +
"\035\021\001\002\000\004\015\122\001\002\000\032\011" +
"\027\016\026\020\025\021\024\024\022\026\020\027\017" +
"\031\016\032\015\033\023\034\030\035\021\001\002\000" +
"\006\004\uffe1\007\uffe1\001\002\000\020\007\uffe0\011\076" +
"\013\061\026\101\031\103\032\105\035\067\001\002\000" +
"\004\007\uffde\001\002\000\020\011\ufff5\012\ufff5\013\ufff5" +
"\026\ufff5\031\ufff5\032\ufff5\035\ufff5\001\002\000\020\011" +
"\076\012\130\013\061\026\101\031\103\032\105\035\067" +
"\001\002\000\026\004\ufff3\007\ufff3\011\ufff3\012\ufff3\013" +
"\ufff3\014\ufff3\026\ufff3\031\ufff3\032\ufff3\035\ufff3\001\002" +
"\000\020\011\ufff4\012\ufff4\013\ufff4\026\ufff4\031\ufff4\032" +
"\ufff4\035\ufff4\001\002\000\006\007\uffe4\035\134\001\002" +
"\000\006\004\143\007\uffe3\001\002\000\004\010\141\001" +
"\002\000\004\007\136\001\002\000\004\023\137\001\002" +
"\000\032\011\027\016\026\020\025\021\024\024\022\026" +
"\020\027\017\031\016\032\015\033\023\034\030\035\021" +
"\001\002\000\020\002\uffe8\004\uffe8\007\uffe8\012\uffe8\015" +
"\uffe8\025\uffe8\030\uffe8\001\002\000\032\011\027\016\026" +
"\020\025\021\024\024\022\026\020\027\017\031\016\032" +
"\015\033\023\034\030\035\021\001\002\000\006\004\uffe5" +
"\007\uffe5\001\002\000\006\007\uffe4\035\134\001\002\000" +
"\004\007\uffe2\001\002\000\006\007\uffc8\035\146\001\002" +
"\000\004\010\154\001\002\000\004\007\153\001\002\000" +
"\006\004\151\007\uffc7\001\002\000\006\007\uffc8\035\146" +
"\001\002\000\004\007\uffc6\001\002\000\044\002\uffd5\004" +
"\uffd5\007\uffd5\011\uffd5\012\uffd5\015\uffd5\017\uffd5\020\uffd5" +
"\025\uffd5\026\uffd5\027\uffd5\030\uffd5\031\uffd5\032\uffd5\033" +
"\uffd5\034\uffd5\035\uffd5\001\002\000\032\011\027\016\026" +
"\020\025\021\024\024\022\026\020\027\017\031\016\032" +
"\015\033\023\034\030\035\021\001\002\000\006\004\uffc9" +
"\007\uffc9\001\002\000\006\007\uffcc\035\160\001\002\000" +
"\006\004\165\007\uffcb\001\002\000\004\005\163\001\002" +
"\000\004\007\162\001\002\000\044\002\uffd6\004\uffd6\007" +
"\uffd6\011\uffd6\012\uffd6\015\uffd6\017\uffd6\020\uffd6\025\uffd6" +
"\026\uffd6\027\uffd6\030\uffd6\031\uffd6\032\uffd6\033\uffd6\034" +
"\uffd6\035\uffd6\001\002\000\032\011\027\016\026\020\025" +
"\021\024\024\022\026\020\027\017\031\016\032\015\033" +
"\023\034\030\035\021\001\002\000\006\004\uffcd\007\uffcd" +
"\001\002\000\006\007\uffcc\035\160\001\002\000\004\007" +
"\uffca\001\002\000\004\002\001\001\002\000\032\011\027" +
"\016\026\020\025\021\024\024\022\026\020\027\017\031" +
"\016\032\015\033\023\034\030\035\021\001\002\000\032" +
"\011\027\016\026\020\025\021\024\024\022\026\020\027" +
"\017\031\016\032\015\033\023\034\030\035\021\001\002" +
"\000\006\002\ufffb\004\ufffb\001\002\000\006\002\ufffa\004" +
"\ufffa\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\171\000\010\002\005\003\004\004\007\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\006\003\011\004\007\001" +
"\001\000\002\001\001\000\002\001\001\000\016\014\030" +
"\021\035\022\033\023\032\024\031\031\034\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\016\014\072\021\035\022\033\023\032\024\031" +
"\031\034\001\001\000\002\001\001\000\004\013\067\001" +
"\001\000\020\013\056\014\042\021\035\022\033\023\032" +
"\024\031\031\034\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\006\023\037" +
"\024\031\001\001\000\002\001\001\000\002\001\001\000" +
"\016\014\042\021\035\022\033\023\032\024\031\031\034" +
"\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\005\050\006\047\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\006\005\050\006\052" +
"\001\001\000\002\001\001\000\002\001\001\000\016\014" +
"\055\021\035\022\033\023\032\024\031\031\034\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\016\014\062\021\035\022\033\023\032" +
"\024\031\031\034\001\001\000\002\001\001\000\002\001" +
"\001\000\016\014\065\021\035\022\033\023\032\024\031" +
"\031\034\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\016\014\071\021\035\022\033\023\032" +
"\024\031\031\034\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\012\010\077\013\101\017\076" +
"\020\103\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\011\111\012\110\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\006\011\111\012" +
"\113\001\001\000\002\001\001\000\002\001\001\000\006" +
"\010\116\013\101\001\001\000\002\001\001\000\016\014" +
"\120\021\035\022\033\023\032\024\031\031\034\001\001" +
"\000\002\001\001\000\016\014\122\021\035\022\033\023" +
"\032\024\031\031\034\001\001\000\002\001\001\000\012" +
"\010\077\013\101\017\076\020\124\001\001\000\002\001" +
"\001\000\004\007\126\001\001\000\006\010\130\013\101" +
"\001\001\000\002\001\001\000\002\001\001\000\006\015" +
"\132\016\134\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\016\014\137\021" +
"\035\022\033\023\032\024\031\031\034\001\001\000\002" +
"\001\001\000\016\014\141\021\035\022\033\023\032\024" +
"\031\031\034\001\001\000\002\001\001\000\006\015\132" +
"\016\143\001\001\000\002\001\001\000\006\027\147\030" +
"\146\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\006\027\147\030\151\001\001\000\002\001" +
"\001\000\002\001\001\000\016\014\154\021\035\022\033" +
"\023\032\024\031\031\034\001\001\000\002\001\001\000" +
"\006\025\156\026\160\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\016\014" +
"\163\021\035\022\033\023\032\024\031\031\034\001\001" +
"\000\002\001\001\000\006\025\156\026\165\001\001\000" +
"\002\001\001\000\002\001\001\000\016\014\172\021\035" +
"\022\033\023\032\024\031\031\034\001\001\000\016\014" +
"\171\021\035\022\033\023\032\024\031\031\034\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.Core.Absyn.Module pModule() throws Exception
{
java_cup.runtime.Symbol res = parse();
return (se.chalmers.cs.gf.Core.Absyn.Module) res.value;
}
public > A cons_(B x, A xs) { xs.addFirst(x); return xs; }
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 60: // Exp2 ::= Exp3
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
se.chalmers.cs.gf.Core.Absyn.Exp p_1 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = p_1;
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp2",23, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 59: // ListFieldValue ::= FieldValue _SYMB_0 ListFieldValue
{
se.chalmers.cs.gf.Core.Absyn.ListFieldValue RESULT =null;
se.chalmers.cs.gf.Core.Absyn.FieldValue p_1 = (se.chalmers.cs.gf.Core.Absyn.FieldValue)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.ListFieldValue p_3 = (se.chalmers.cs.gf.Core.Absyn.ListFieldValue)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = p_3; p_3.addFirst(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListFieldValue",22, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 58: // ListFieldValue ::= FieldValue
{
se.chalmers.cs.gf.Core.Absyn.ListFieldValue RESULT =null;
se.chalmers.cs.gf.Core.Absyn.FieldValue p_1 = (se.chalmers.cs.gf.Core.Absyn.FieldValue)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ListFieldValue(); RESULT.addLast(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListFieldValue",22, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 57: // ListFieldValue ::=
{
se.chalmers.cs.gf.Core.Absyn.ListFieldValue RESULT =null;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ListFieldValue();
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListFieldValue",22, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 56: // FieldValue ::= CIdent _SYMB_4 Exp
{
se.chalmers.cs.gf.Core.Absyn.FieldValue RESULT =null;
String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.Exp p_3 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.FieldValue(p_1,p_3);
CUP$parser$result = parser.getSymbolFactory().newSymbol("FieldValue",21, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 55: // ListFieldType ::= FieldType _SYMB_0 ListFieldType
{
se.chalmers.cs.gf.Core.Absyn.ListFieldType RESULT =null;
se.chalmers.cs.gf.Core.Absyn.FieldType p_1 = (se.chalmers.cs.gf.Core.Absyn.FieldType)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.ListFieldType p_3 = (se.chalmers.cs.gf.Core.Absyn.ListFieldType)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = p_3; p_3.addFirst(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListFieldType",20, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 54: // ListFieldType ::= FieldType
{
se.chalmers.cs.gf.Core.Absyn.ListFieldType RESULT =null;
se.chalmers.cs.gf.Core.Absyn.FieldType p_1 = (se.chalmers.cs.gf.Core.Absyn.FieldType)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ListFieldType(); RESULT.addLast(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListFieldType",20, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 53: // ListFieldType ::=
{
se.chalmers.cs.gf.Core.Absyn.ListFieldType RESULT =null;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ListFieldType();
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListFieldType",20, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 52: // FieldType ::= CIdent _SYMB_1 Exp
{
se.chalmers.cs.gf.Core.Absyn.FieldType RESULT =null;
String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.Exp p_3 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.FieldType(p_1,p_3);
CUP$parser$result = parser.getSymbolFactory().newSymbol("FieldType",19, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 51: // Exp5 ::= _SYMB_5 Exp _SYMB_6
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
se.chalmers.cs.gf.Core.Absyn.Exp p_2 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = p_2;
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp5",18, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 50: // Exp5 ::= TMeta
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.EMeta(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp5",18, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 49: // Exp5 ::= _DOUBLE_
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
Double p_1 = (Double)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.EDouble(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp5",18, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 48: // Exp5 ::= _INTEGER_
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
Integer p_1 = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.EInteger(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp5",18, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 47: // Exp5 ::= _STRING_
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.EStr(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp5",18, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 46: // Exp5 ::= _SYMB_12
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
RESULT = new se.chalmers.cs.gf.Core.Absyn.EType();
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp5",18, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 45: // Exp5 ::= CIdent
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.EVar(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp5",18, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 44: // Exp5 ::= _SYMB_18 _SYMB_2 ListFieldValue _SYMB_3
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
se.chalmers.cs.gf.Core.Absyn.ListFieldValue p_3 = (se.chalmers.cs.gf.Core.Absyn.ListFieldValue)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ERec(p_3);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp5",18, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 43: // Exp5 ::= _SYMB_19 _SYMB_2 ListFieldType _SYMB_3
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
se.chalmers.cs.gf.Core.Absyn.ListFieldType p_3 = (se.chalmers.cs.gf.Core.Absyn.ListFieldType)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ERecType(p_3);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp5",18, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 42: // Exp4 ::= Exp5
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
se.chalmers.cs.gf.Core.Absyn.Exp p_1 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = p_1;
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp4",17, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 41: // Exp4 ::= Exp4 _SYMB_11 CIdent
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
se.chalmers.cs.gf.Core.Absyn.Exp p_1 = (se.chalmers.cs.gf.Core.Absyn.Exp)((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.Core.Absyn.EProj(p_1,p_3);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp4",17, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 40: // Exp3 ::= Exp4
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
se.chalmers.cs.gf.Core.Absyn.Exp p_1 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = p_1;
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp3",16, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 39: // Exp3 ::= Exp3 Exp4
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
se.chalmers.cs.gf.Core.Absyn.Exp p_1 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
se.chalmers.cs.gf.Core.Absyn.Exp p_2 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.EApp(p_1,p_2);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp3",16, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 38: // Exp1 ::= Exp2
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
se.chalmers.cs.gf.Core.Absyn.Exp p_1 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = p_1;
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp1",15, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 37: // Exp1 ::= _SYMB_5 PatternVariable _SYMB_1 Exp _SYMB_6 _SYMB_9 Exp
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
se.chalmers.cs.gf.Core.Absyn.PatternVariable p_2 = (se.chalmers.cs.gf.Core.Absyn.PatternVariable)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
se.chalmers.cs.gf.Core.Absyn.Exp p_4 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
se.chalmers.cs.gf.Core.Absyn.Exp p_7 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.EPi(p_2,p_4,p_7);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp1",15, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 36: // Exp1 ::= _SYMB_10 PatternVariable _SYMB_9 Exp
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
se.chalmers.cs.gf.Core.Absyn.PatternVariable p_2 = (se.chalmers.cs.gf.Core.Absyn.PatternVariable)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.Exp p_4 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.EAbs(p_2,p_4);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp1",15, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 35: // ListCase ::= Case _SYMB_0 ListCase
{
se.chalmers.cs.gf.Core.Absyn.ListCase RESULT =null;
se.chalmers.cs.gf.Core.Absyn.Case p_1 = (se.chalmers.cs.gf.Core.Absyn.Case)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.ListCase p_3 = (se.chalmers.cs.gf.Core.Absyn.ListCase)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = p_3; p_3.addFirst(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListCase",14, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 34: // ListCase ::= Case
{
se.chalmers.cs.gf.Core.Absyn.ListCase RESULT =null;
se.chalmers.cs.gf.Core.Absyn.Case p_1 = (se.chalmers.cs.gf.Core.Absyn.Case)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ListCase(); RESULT.addLast(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListCase",14, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 33: // ListCase ::=
{
se.chalmers.cs.gf.Core.Absyn.ListCase RESULT =null;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ListCase();
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListCase",14, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 32: // Case ::= Pattern _SYMB_8 Exp _SYMB_9 Exp
{
se.chalmers.cs.gf.Core.Absyn.Case RESULT =null;
se.chalmers.cs.gf.Core.Absyn.Pattern p_1 = (se.chalmers.cs.gf.Core.Absyn.Pattern)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
se.chalmers.cs.gf.Core.Absyn.Exp p_3 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.Exp p_5 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.Case(p_1,p_3,p_5);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Case",13, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 31: // ListLetDef ::= LetDef _SYMB_0 ListLetDef
{
se.chalmers.cs.gf.Core.Absyn.ListLetDef RESULT =null;
se.chalmers.cs.gf.Core.Absyn.LetDef p_1 = (se.chalmers.cs.gf.Core.Absyn.LetDef)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.ListLetDef p_3 = (se.chalmers.cs.gf.Core.Absyn.ListLetDef)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = p_3; p_3.addFirst(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListLetDef",12, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 30: // ListLetDef ::= LetDef
{
se.chalmers.cs.gf.Core.Absyn.ListLetDef RESULT =null;
se.chalmers.cs.gf.Core.Absyn.LetDef p_1 = (se.chalmers.cs.gf.Core.Absyn.LetDef)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ListLetDef(); RESULT.addLast(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListLetDef",12, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 29: // ListLetDef ::=
{
se.chalmers.cs.gf.Core.Absyn.ListLetDef RESULT =null;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ListLetDef();
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListLetDef",12, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 28: // LetDef ::= CIdent _SYMB_4 Exp
{
se.chalmers.cs.gf.Core.Absyn.LetDef RESULT =null;
String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.Exp p_3 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.LetDef(p_1,p_3);
CUP$parser$result = parser.getSymbolFactory().newSymbol("LetDef",11, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 27: // Exp ::= Exp1
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
se.chalmers.cs.gf.Core.Absyn.Exp p_1 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = p_1;
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp",10, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 26: // Exp ::= _SYMB_13 Exp _SYMB_17 _SYMB_2 ListCase _SYMB_3
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
se.chalmers.cs.gf.Core.Absyn.Exp p_2 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
se.chalmers.cs.gf.Core.Absyn.ListCase p_5 = (se.chalmers.cs.gf.Core.Absyn.ListCase)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ECase(p_2,p_5);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp",10, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 25: // Exp ::= _SYMB_16 _SYMB_2 ListLetDef _SYMB_3 _SYMB_15 Exp
{
se.chalmers.cs.gf.Core.Absyn.Exp RESULT =null;
se.chalmers.cs.gf.Core.Absyn.ListLetDef p_3 = (se.chalmers.cs.gf.Core.Absyn.ListLetDef)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;
se.chalmers.cs.gf.Core.Absyn.Exp p_6 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ELet(p_3,p_6);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Exp",10, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 24: // PatternVariable ::= _SYMB_7
{
se.chalmers.cs.gf.Core.Absyn.PatternVariable RESULT =null;
RESULT = new se.chalmers.cs.gf.Core.Absyn.PVWild();
CUP$parser$result = parser.getSymbolFactory().newSymbol("PatternVariable",9, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 23: // PatternVariable ::= CIdent
{
se.chalmers.cs.gf.Core.Absyn.PatternVariable RESULT =null;
String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.PVVar(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("PatternVariable",9, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 22: // ListFieldPattern ::= FieldPattern _SYMB_0 ListFieldPattern
{
se.chalmers.cs.gf.Core.Absyn.ListFieldPattern RESULT =null;
se.chalmers.cs.gf.Core.Absyn.FieldPattern p_1 = (se.chalmers.cs.gf.Core.Absyn.FieldPattern)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.ListFieldPattern p_3 = (se.chalmers.cs.gf.Core.Absyn.ListFieldPattern)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = p_3; p_3.addFirst(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListFieldPattern",8, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 21: // ListFieldPattern ::= FieldPattern
{
se.chalmers.cs.gf.Core.Absyn.ListFieldPattern RESULT =null;
se.chalmers.cs.gf.Core.Absyn.FieldPattern p_1 = (se.chalmers.cs.gf.Core.Absyn.FieldPattern)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ListFieldPattern(); RESULT.addLast(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListFieldPattern",8, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 20: // ListFieldPattern ::=
{
se.chalmers.cs.gf.Core.Absyn.ListFieldPattern RESULT =null;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ListFieldPattern();
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListFieldPattern",8, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 19: // FieldPattern ::= CIdent _SYMB_4 Pattern
{
se.chalmers.cs.gf.Core.Absyn.FieldPattern RESULT =null;
String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.Pattern p_3 = (se.chalmers.cs.gf.Core.Absyn.Pattern)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.FieldPattern(p_1,p_3);
CUP$parser$result = parser.getSymbolFactory().newSymbol("FieldPattern",7, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 18: // Pattern ::= _INTEGER_
{
se.chalmers.cs.gf.Core.Absyn.Pattern RESULT =null;
Integer p_1 = (Integer)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.PInt(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Pattern",6, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 17: // Pattern ::= _STRING_
{
se.chalmers.cs.gf.Core.Absyn.Pattern RESULT =null;
String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.PStr(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Pattern",6, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 16: // Pattern ::= _SYMB_18 _SYMB_2 ListFieldPattern _SYMB_3
{
se.chalmers.cs.gf.Core.Absyn.Pattern RESULT =null;
se.chalmers.cs.gf.Core.Absyn.ListFieldPattern p_3 = (se.chalmers.cs.gf.Core.Absyn.ListFieldPattern)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.PRec(p_3);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Pattern",6, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 15: // Pattern ::= PatternVariable
{
se.chalmers.cs.gf.Core.Absyn.Pattern RESULT =null;
se.chalmers.cs.gf.Core.Absyn.PatternVariable p_1 = (se.chalmers.cs.gf.Core.Absyn.PatternVariable)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.PVar(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Pattern",6, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 14: // Pattern ::= _SYMB_5 CIdent ListPattern _SYMB_6
{
se.chalmers.cs.gf.Core.Absyn.Pattern RESULT =null;
String p_2 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.ListPattern p_3 = (se.chalmers.cs.gf.Core.Absyn.ListPattern)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.PCons(p_2,p_3);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Pattern",6, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 13: // ListPattern ::= ListPattern Pattern
{
se.chalmers.cs.gf.Core.Absyn.ListPattern RESULT =null;
se.chalmers.cs.gf.Core.Absyn.ListPattern p_1 = (se.chalmers.cs.gf.Core.Absyn.ListPattern)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
se.chalmers.cs.gf.Core.Absyn.Pattern p_2 = (se.chalmers.cs.gf.Core.Absyn.Pattern)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = p_1; p_1.addLast(p_2);
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListPattern",5, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 12: // ListPattern ::=
{
se.chalmers.cs.gf.Core.Absyn.ListPattern RESULT =null;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ListPattern();
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListPattern",5, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 11: // ListConsDecl ::= ConsDecl _SYMB_0 ListConsDecl
{
se.chalmers.cs.gf.Core.Absyn.ListConsDecl RESULT =null;
se.chalmers.cs.gf.Core.Absyn.ConsDecl p_1 = (se.chalmers.cs.gf.Core.Absyn.ConsDecl)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.ListConsDecl p_3 = (se.chalmers.cs.gf.Core.Absyn.ListConsDecl)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = p_3; p_3.addFirst(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListConsDecl",4, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 10: // ListConsDecl ::= ConsDecl
{
se.chalmers.cs.gf.Core.Absyn.ListConsDecl RESULT =null;
se.chalmers.cs.gf.Core.Absyn.ConsDecl p_1 = (se.chalmers.cs.gf.Core.Absyn.ConsDecl)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ListConsDecl(); RESULT.addLast(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListConsDecl",4, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 9: // ListConsDecl ::=
{
se.chalmers.cs.gf.Core.Absyn.ListConsDecl RESULT =null;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ListConsDecl();
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListConsDecl",4, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 8: // ConsDecl ::= CIdent _SYMB_1 Exp
{
se.chalmers.cs.gf.Core.Absyn.ConsDecl RESULT =null;
String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.Exp p_3 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ConsDecl(p_1,p_3);
CUP$parser$result = parser.getSymbolFactory().newSymbol("ConsDecl",3, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 7: // Decl ::= CIdent _SYMB_4 Exp
{
se.chalmers.cs.gf.Core.Absyn.Decl RESULT =null;
String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.Exp p_3 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ValueDecl(p_1,p_3);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Decl",2, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 6: // Decl ::= CIdent _SYMB_1 Exp
{
se.chalmers.cs.gf.Core.Absyn.Decl RESULT =null;
String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.Exp p_3 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.TypeDecl(p_1,p_3);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Decl",2, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 5: // Decl ::= _SYMB_14 CIdent _SYMB_1 Exp _SYMB_20 _SYMB_2 ListConsDecl _SYMB_3
{
se.chalmers.cs.gf.Core.Absyn.Decl RESULT =null;
String p_2 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-6)).value;
se.chalmers.cs.gf.Core.Absyn.Exp p_4 = (se.chalmers.cs.gf.Core.Absyn.Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
se.chalmers.cs.gf.Core.Absyn.ListConsDecl p_7 = (se.chalmers.cs.gf.Core.Absyn.ListConsDecl)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.DataDecl(p_2,p_4,p_7);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Decl",2, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 4: // ListDecl ::= Decl _SYMB_0 ListDecl
{
se.chalmers.cs.gf.Core.Absyn.ListDecl RESULT =null;
se.chalmers.cs.gf.Core.Absyn.Decl p_1 = (se.chalmers.cs.gf.Core.Absyn.Decl)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
se.chalmers.cs.gf.Core.Absyn.ListDecl p_3 = (se.chalmers.cs.gf.Core.Absyn.ListDecl)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = p_3; p_3.addFirst(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListDecl",1, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 3: // ListDecl ::= Decl
{
se.chalmers.cs.gf.Core.Absyn.ListDecl RESULT =null;
se.chalmers.cs.gf.Core.Absyn.Decl p_1 = (se.chalmers.cs.gf.Core.Absyn.Decl)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ListDecl(); RESULT.addLast(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListDecl",1, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 2: // ListDecl ::=
{
se.chalmers.cs.gf.Core.Absyn.ListDecl RESULT =null;
RESULT = new se.chalmers.cs.gf.Core.Absyn.ListDecl();
CUP$parser$result = parser.getSymbolFactory().newSymbol("ListDecl",1, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 1: // Module ::= ListDecl
{
se.chalmers.cs.gf.Core.Absyn.Module RESULT =null;
se.chalmers.cs.gf.Core.Absyn.ListDecl p_1 = (se.chalmers.cs.gf.Core.Absyn.ListDecl)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value;
RESULT = new se.chalmers.cs.gf.Core.Absyn.Module(p_1);
CUP$parser$result = parser.getSymbolFactory().newSymbol("Module",0, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 0: // $START ::= Module EOF
{
Object RESULT =null;
se.chalmers.cs.gf.Core.Absyn.Module start_val = (se.chalmers.cs.gf.Core.Absyn.Module)((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");
}
}
}