Package edu.mit.csail.sdg.alloy4compiler.ast

Examples of edu.mit.csail.sdg.alloy4compiler.ast.Expr


        return ans;
    }

    /** Parse type. */
    private Expr parseType(XMLNode node) throws IOException, Err {
        Expr expr = null;
        if (!node.is("types")) throw new IOException("<types>...</type> expected");
        for(XMLNode n:node) if (n.is("type")) {
            Sig sig=parseSig(n.getAttribute("ID"), 0);
            if (expr==null) expr=sig; else expr=expr.product(sig);
        }
        if (expr==null) throw new IOException("<type ID=../> expected");
        return expr;
    }
View Full Code Here


             if (s.isLone!=null && !(visit(s).longsize()<=1)) return "There can be at most one "+s;
             if (s.isOne !=null && !(visit(s).longsize()==1)) return "There must be exactly one "+s;
             if (s.isSome!=null && !(visit(s).longsize()>=1)) return "There must be at least one "+s;
             if (s instanceof SubsetSig) {
                SubsetSig p = (SubsetSig)s;
                Expr sum = null;
                for(Sig par: p.parents) sum = par.plus(sum);
                if (p.exact) {
                   if (!equal(s, sum)) return "Sig "+s+" must be equal to the union of its parents "+p.parents;
                } else {
                   if (!isIn(s, sum)) return "Sig "+s+" must be equal or subset of its parents "+p.parents;
                }
             } else if (s != Sig.UNIV && s != Sig.NONE) {
                PrimSig p = (PrimSig)s;
                if (!isIn(s, p.parent)) return "Sig "+s+" must be equal or subset of its parent "+p.parent;
             }
             if (s.isAbstract!=null) {
                Expr sum = null;
                for(Sig x: ((PrimSig)s).children()) sum = x.plus(sum);
                if (sum!=null && !equal(s, sum)) return "Abstract sig "+s+" must be equal to the union of its subsigs";
             }
             for(Decl d: s.getFieldDecls()) for(ExprHasName f: d.names) if (!((Field)f).defined) {
                if (!cform(s.decl.get().join(f).in(d.expr).forAll(s.decl))) {
                   return "Field "+f+" violated its bound: " + visit((Field)f) + "\n" + d.expr;
                }
                SimTupleset setS = visit(s);
                SimTupleset setF = visit((Field)f);
                for(SimAtom x:setF.getAllAtoms(0)) if (!setS.has(x)) return "Field "+f+" first column has extra atom: "+setF+" not in "+setS;
             }
             for(Decl d: s.getFieldDecls()) {
                if (d.disjoint!=null && d.names.size()>0) {
                   if (!cform(ExprList.makeDISJOINT(null, null, d.names))) return "Fields must be disjoint.";
                }
                if (d.disjoint2!=null) for(ExprHasName f: d.names) {
                   Decl that = s.oneOf("that");
                   Expr formula = s.decl.get().equal(that.get()).not().implies(s.decl.get().join(f).intersect(that.get().join(f)).no());
                   if (!cform(formula.forAll(that).forAll(s.decl))) return "Fields must be disjoint.";
                }
             }
             for(Expr f: s.getFacts()) {
                if (!cform(f.forAll(s.decl))) {
                   f = f.deNOP(); if (f instanceof ExprUnary) {
View Full Code Here

       if (node==null) throw new IOException("Unknown FieldID "+id+" encountered.");
       if (!node.is("field")) throw new IOException("ID "+id+" is not a field.");
       String label  = label(node);
       Pos isPrivate = yes(node,"private") ? Pos.UNKNOWN : null;
       Pos isMeta = yes(node,"meta") ? Pos.UNKNOWN : null;
       Expr type = null;
       for(XMLNode sub:node) if (sub.is("types")) { Expr t=parseType(sub); if (type==null) type=t; else type=type.plus(t); }
       int arity;
       if (type==null || (arity=type.type().arity())<2) throw new IOException("Field "+label+" is maltyped.");
       String parentID = node.getAttribute("parentID");
       Sig parent = id2sig.get(parentID);
       if (parent==null) throw new IOException("ID "+parentID+" is not a sig.");
View Full Code Here

    private ExprVar parseSkolem(String id) throws IOException, Err {
       final XMLNode node = nmap.get(id);
       if (node==null) throw new IOException("Unknown ID "+id+" encountered.");
       if (!node.is("skolem")) throw new IOException("ID "+id+" is not a skolem.");
       String label = label(node);
       Expr type = null;
       for(XMLNode sub:node) if (sub.is("types")) { Expr t=parseType(sub); if (type==null) type=t; else type=type.plus(t); }
       int arity;
       if (type==null || (arity=type.type().arity())<1) throw new IOException("Skolem "+label+" is maltyped.");
       ExprVar var = ExprVar.make(Pos.UNKNOWN, label, type.type());
       TupleSet ts = parseTuples(node, arity);
       expr2ts.put(var, ts);
View Full Code Here

      switch (CUP$CompParser$act_num)
        {
          /*. . . . . . . . . . . . . . . . . . . .*/
          case 349: // BaseExpr ::= LBRACE Declz RBRACE
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<Decl> a = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos c = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprQt.Op.COMPREHENSION.make(o, c, a, ExprConstant.TRUE);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BaseExpr",2, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 348: // BaseExpr ::= LBRACE Declz SuperOrBar RBRACE
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        List<Decl> a = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos c = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprQt.Op.COMPREHENSION.make(o, c, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BaseExpr",2, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 347: // BaseExpr ::= Super
            {
              Expr RESULT =null;
        Expr x = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BaseExpr",2, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 346: // BaseExpr ::= AT Name
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        ExprVar x = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(x); RESULT = ExprVar.make(o.merge(x.pos), "@"+x.label);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BaseExpr",2, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 345: // BaseExpr ::= SigRef
            {
              Expr RESULT =null;
        ExprVar x = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BaseExpr",2, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 344: // BaseExpr ::= LPAREN Expr RPAREN
            {
              Expr RESULT =null;
        Expr x = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
         RESULT = x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BaseExpr",2, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 343: // BaseExpr ::= INTNEXT
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprConstant.Op.NEXT.make(o, 0);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BaseExpr",2, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 342: // BaseExpr ::= INTMAX
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprConstant.Op.MAX.make(o, 0);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BaseExpr",2, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 341: // BaseExpr ::= INTMIN
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprConstant.Op.MIN.make(o, 0);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BaseExpr",2, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 340: // BaseExpr ::= THIS
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprVar.make(o, "this");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BaseExpr",2, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 339: // BaseExpr ::= IDEN
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprVar.make(o, "iden");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BaseExpr",2, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 338: // BaseExpr ::= STR
            {
              Expr RESULT =null;
        ExprConstant x = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BaseExpr",2, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 337: // BaseExpr ::= NUMBER
            {
              Expr RESULT =null;
        ExprConstant x = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BaseExpr",2, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 336: // UnopExprB ::= CARET UnopExprB
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.CLOSURE  .make(o,b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnopExprB",80, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 335: // UnopExprB ::= STAR UnopExprB
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.RCLOSURE .make(o,b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnopExprB",80, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 334: // UnopExprB ::= TILDE UnopExprB
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.TRANSPOSE.make(o,b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnopExprB",80, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 333: // UnopExprB ::= BaseExpr
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnopExprB",80, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 332: // UnopExprA ::= CARET UnopExprA
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.CLOSURE  .make(o,b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnopExprA",79, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 331: // UnopExprA ::= STAR UnopExprA
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.RCLOSURE .make(o,b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnopExprA",79, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 330: // UnopExprA ::= TILDE UnopExprA
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.TRANSPOSE.make(o,b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnopExprA",79, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 329: // UnopExprA ::= CARET Bind
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.CLOSURE  .make(o,b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnopExprA",79, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 328: // UnopExprA ::= STAR Bind
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.RCLOSURE .make(o,b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnopExprA",79, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 327: // UnopExprA ::= TILDE Bind
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.TRANSPOSE.make(o,b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnopExprA",79, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 326: // DotExprB ::= BracketExprB DOT SUM
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
         RESULT=ExprUnary.Op.CAST2INT.make(o, a);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("DotExprB",18, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 325: // DotExprB ::= BracketExprB DOT INT
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
         RESULT=ExprUnary.Op.CAST2INT.make(o, a);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("DotExprB",18, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 324: // DotExprB ::= BracketExprB DOT TOTALORDER
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos b = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=t(o, null, a, ExprVar.make(b, "pred/totalOrder"), null);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("DotExprB",18, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 323: // DotExprB ::= BracketExprB DOT DISJ
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos b = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=t(o, null, a, ExprVar.make(b, "disj"),            null);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("DotExprB",18, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 322: // DotExprB ::= BracketExprB DOT UnopExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=t(o, null, a, b,                                  null);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("DotExprB",18, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 321: // DotExprB ::= UnopExprB
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("DotExprB",18, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 320: // DotExprA ::= BracketExprB DOT Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=t(o, null, a, b,                                  null);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("DotExprA",17, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 319: // DotExprA ::= UnopExprA
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("DotExprA",17, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 318: // BracketExprB ::= SUM LBRACKET Exprs RBRACKET
            {
              Expr RESULT =null;
        Pos a = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        List<Expr> b = (List<Expr>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos c = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         Expr aa=ExprVar.make(a, "int");             for(Expr bb:b) aa=t(aa.span().merge(bb.span()), c, bb, aa, c); RESULT=aa;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BracketExprB",5, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 317: // BracketExprB ::= INT LBRACKET Exprs RBRACKET
            {
              Expr RESULT =null;
        Pos a = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        List<Expr> b = (List<Expr>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos c = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         Expr aa=ExprVar.make(a, "int");             for(Expr bb:b) aa=t(aa.span().merge(bb.span()), c, bb, aa, c); RESULT=aa;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BracketExprB",5, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 316: // BracketExprB ::= TOTALORDER LBRACKET Exprs RBRACKET
            {
              Expr RESULT =null;
        Pos a = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        List<Expr> b = (List<Expr>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos c = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         Expr aa=ExprVar.make(a, "pred/totalOrder"); for(Expr bb:b) aa=t(aa.span().merge(bb.span()), c, bb, aa, c); RESULT=aa;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BracketExprB",5, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 315: // BracketExprB ::= DISJ LBRACKET Exprs RBRACKET
            {
              Expr RESULT =null;
        Pos a = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        List<Expr> b = (List<Expr>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos c = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         Expr aa=ExprVar.make(a, "disj");            for(Expr bb:b) aa=t(aa.span().merge(bb.span()), c, bb, aa, c); RESULT=aa;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BracketExprB",5, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 314: // BracketExprB ::= BracketExprB LBRACKET Exprs RBRACKET
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        List<Expr> b = (List<Expr>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos c = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         Expr aa=a;                                  for(Expr bb:b) aa=t(aa.span().merge(bb.span()), c, bb, aa, c); RESULT=aa;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BracketExprB",5, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 313: // BracketExprB ::= DotExprB
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BracketExprB",5, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 312: // BracketExprA ::= DotExprA
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("BracketExprA",4, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 311: // RangeExprB ::= RangeExprB RANGE BracketExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.RANGE.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RangeExprB",55, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 310: // RangeExprB ::= BracketExprB
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RangeExprB",55, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 309: // RangeExprA ::= RangeExprB RANGE Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.RANGE.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RangeExprA",54, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 308: // RangeExprA ::= BracketExprA
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RangeExprA",54, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 307: // DomainExprB ::= DomainExprB DOMAIN RangeExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.DOMAIN.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("DomainExprB",16, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 306: // DomainExprB ::= RangeExprB
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("DomainExprB",16, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 305: // DomainExprA ::= DomainExprB DOMAIN Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.DOMAIN.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("DomainExprA",15, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 304: // DomainExprA ::= RangeExprA
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("DomainExprA",15, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 303: // RelationExprB ::= DomainExprB RelOp RelationExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pair<Pos,ExprBinary.Op> o = (Pair<Pos,ExprBinary.Op>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=o.b.make(o.a, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelationExprB",58, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 302: // RelationExprB ::= DomainExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelationExprB",58, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 301: // RelationExprA ::= DomainExprB RelOp Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pair<Pos,ExprBinary.Op> o = (Pair<Pos,ExprBinary.Op>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=o.b.make(o.a, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelationExprA",57, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 300: // RelationExprA ::= DomainExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelationExprA",57, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 299: // RelOp ::= LONE_ARROW_LONE
            {
              Pair<Pos,ExprBinary.Op> RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Pair<Pos,ExprBinary.Op>(o, ExprBinary.Op.LONE_ARROW_LONE);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelOp",56, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 298: // RelOp ::= LONE_ARROW_ONE
            {
              Pair<Pos,ExprBinary.Op> RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Pair<Pos,ExprBinary.Op>(o, ExprBinary.Op.LONE_ARROW_ONE );
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelOp",56, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 297: // RelOp ::= LONE_ARROW_SOME
            {
              Pair<Pos,ExprBinary.Op> RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Pair<Pos,ExprBinary.Op>(o, ExprBinary.Op.LONE_ARROW_SOME);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelOp",56, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 296: // RelOp ::= LONE_ARROW_ANY
            {
              Pair<Pos,ExprBinary.Op> RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Pair<Pos,ExprBinary.Op>(o, ExprBinary.Op.LONE_ARROW_ANY );
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelOp",56, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 295: // RelOp ::= ONE_ARROW_LONE
            {
              Pair<Pos,ExprBinary.Op> RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Pair<Pos,ExprBinary.Op>(o, ExprBinary.Op.ONE_ARROW_LONE );
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelOp",56, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 294: // RelOp ::= ONE_ARROW_ONE
            {
              Pair<Pos,ExprBinary.Op> RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Pair<Pos,ExprBinary.Op>(o, ExprBinary.Op.ONE_ARROW_ONE  );
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelOp",56, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 293: // RelOp ::= ONE_ARROW_SOME
            {
              Pair<Pos,ExprBinary.Op> RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Pair<Pos,ExprBinary.Op>(o, ExprBinary.Op.ONE_ARROW_SOME );
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelOp",56, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 292: // RelOp ::= ONE_ARROW_ANY
            {
              Pair<Pos,ExprBinary.Op> RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Pair<Pos,ExprBinary.Op>(o, ExprBinary.Op.ONE_ARROW_ANY  );
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelOp",56, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 291: // RelOp ::= SOME_ARROW_LONE
            {
              Pair<Pos,ExprBinary.Op> RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Pair<Pos,ExprBinary.Op>(o, ExprBinary.Op.SOME_ARROW_LONE);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelOp",56, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 290: // RelOp ::= SOME_ARROW_ONE
            {
              Pair<Pos,ExprBinary.Op> RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Pair<Pos,ExprBinary.Op>(o, ExprBinary.Op.SOME_ARROW_ONE );
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelOp",56, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 289: // RelOp ::= SOME_ARROW_SOME
            {
              Pair<Pos,ExprBinary.Op> RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Pair<Pos,ExprBinary.Op>(o, ExprBinary.Op.SOME_ARROW_SOME);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelOp",56, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 288: // RelOp ::= SOME_ARROW_ANY
            {
              Pair<Pos,ExprBinary.Op> RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Pair<Pos,ExprBinary.Op>(o, ExprBinary.Op.SOME_ARROW_ANY );
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelOp",56, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 287: // RelOp ::= ANY_ARROW_LONE
            {
              Pair<Pos,ExprBinary.Op> RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Pair<Pos,ExprBinary.Op>(o, ExprBinary.Op.ANY_ARROW_LONE );
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelOp",56, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 286: // RelOp ::= ANY_ARROW_ONE
            {
              Pair<Pos,ExprBinary.Op> RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Pair<Pos,ExprBinary.Op>(o, ExprBinary.Op.ANY_ARROW_ONE  );
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelOp",56, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 285: // RelOp ::= ANY_ARROW_SOME
            {
              Pair<Pos,ExprBinary.Op> RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Pair<Pos,ExprBinary.Op>(o, ExprBinary.Op.ANY_ARROW_SOME );
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelOp",56, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 284: // RelOp ::= ARROW
            {
              Pair<Pos,ExprBinary.Op> RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Pair<Pos,ExprBinary.Op>(o, ExprBinary.Op.ARROW          );
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("RelOp",56, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 283: // IntersectExprB ::= IntersectExprB AMPERSAND RelationExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.INTERSECT.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("IntersectExprB",37, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 282: // IntersectExprB ::= RelationExprB
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("IntersectExprB",37, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 281: // IntersectExprA ::= IntersectExprB AMPERSAND Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.INTERSECT.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("IntersectExprA",36, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 280: // IntersectExprA ::= RelationExprA
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("IntersectExprA",36, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 279: // OverrideExprB ::= OverrideExprB PLUSPLUS IntersectExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.PLUSPLUS.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("OverrideExprB",52, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 278: // OverrideExprB ::= IntersectExprB
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("OverrideExprB",52, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 277: // OverrideExprA ::= OverrideExprB PLUSPLUS Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.PLUSPLUS.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("OverrideExprA",51, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 276: // OverrideExprA ::= IntersectExprA
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("OverrideExprA",51, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 275: // NumUnopExprB ::= INT NumUnopExprB
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.CAST2INT   .make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NumUnopExprB",48, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 274: // NumUnopExprB ::= SUM NumUnopExprB
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.CAST2INT   .make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NumUnopExprB",48, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 273: // NumUnopExprB ::= HASH NumUnopExprB
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.CARDINALITY.make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NumUnopExprB",48, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 272: // NumUnopExprB ::= OverrideExprB
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NumUnopExprB",48, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 271: // NumUnopExprA ::= INT NumUnopExprA
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.CAST2INT   .make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NumUnopExprA",47, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 270: // NumUnopExprA ::= SUM NumUnopExprA
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.CAST2INT   .make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NumUnopExprA",47, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 269: // NumUnopExprA ::= HASH NumUnopExprA
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.CARDINALITY.make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NumUnopExprA",47, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 268: // NumUnopExprA ::= INT Bind
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.CAST2INT   .make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NumUnopExprA",47, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 267: // NumUnopExprA ::= SUM Bind
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.CAST2INT   .make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NumUnopExprA",47, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 266: // NumUnopExprA ::= HASH Bind
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.CARDINALITY.make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NumUnopExprA",47, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 265: // NumUnopExprA ::= OverrideExprA
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NumUnopExprA",47, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 264: // MulExprB ::= MulExprB INTREM NumUnopExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.REM       .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("MulExprB",76, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 263: // MulExprB ::= MulExprB INTDIV NumUnopExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.DIV       .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("MulExprB",76, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 262: // MulExprB ::= MulExprB INTMUL NumUnopExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.MUL       .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("MulExprB",76, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 261: // MulExprB ::= NumUnopExprB
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("MulExprB",76, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 260: // MulExprA ::= MulExprB INTREM Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.REM       .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("MulExprA",75, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 259: // MulExprA ::= MulExprB INTDIV Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.DIV       .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("MulExprA",75, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 258: // MulExprA ::= MulExprB INTMUL Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.MUL       .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("MulExprA",75, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 257: // MulExprA ::= NumUnopExprA
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("MulExprA",75, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 256: // UnionDiffExprB ::= UnionDiffExprB INTSUB MulExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.MINUS.make(o, null, a.cast2int(), b.cast2int());
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnionDiffExprB",78, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 255: // UnionDiffExprB ::= UnionDiffExprB INTADD MulExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.PLUS .make(o, null, a.cast2int(), b.cast2int());
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnionDiffExprB",78, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 254: // UnionDiffExprB ::= UnionDiffExprB MINUS MulExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.MINUS.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnionDiffExprB",78, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 253: // UnionDiffExprB ::= UnionDiffExprB PLUS MulExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.PLUS .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnionDiffExprB",78, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 252: // UnionDiffExprB ::= MulExprB
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnionDiffExprB",78, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 251: // UnionDiffExprA ::= UnionDiffExprB INTSUB Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.MINUS.make(o, null, a.cast2int(), b.cast2int());
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnionDiffExprA",77, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 250: // UnionDiffExprA ::= UnionDiffExprB INTADD Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.PLUS .make(o, null, a.cast2int(), b.cast2int());
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnionDiffExprA",77, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 249: // UnionDiffExprA ::= UnionDiffExprB MINUS Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.MINUS.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnionDiffExprA",77, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 248: // UnionDiffExprA ::= UnionDiffExprB PLUS Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.PLUS .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnionDiffExprA",77, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 247: // UnionDiffExprA ::= MulExprA
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("UnionDiffExprA",77, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 246: // ShiftExprB ::= ShiftExprB SHA UnionDiffExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.SHA.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ShiftExprB",74, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 245: // ShiftExprB ::= ShiftExprB SHR UnionDiffExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.SHR.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ShiftExprB",74, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 244: // ShiftExprB ::= ShiftExprB SHL UnionDiffExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.SHL.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ShiftExprB",74, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 243: // ShiftExprB ::= UnionDiffExprB
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ShiftExprB",74, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 242: // ShiftExprA ::= ShiftExprB SHA Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.SHA.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ShiftExprA",73, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 241: // ShiftExprA ::= ShiftExprB SHR Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.SHR.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ShiftExprA",73, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 240: // ShiftExprA ::= ShiftExprB SHL Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.SHL.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ShiftExprA",73, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 239: // ShiftExprA ::= UnionDiffExprA
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ShiftExprA",73, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 238: // CompareExprB ::= ShiftExprB
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 237: // CompareExprB ::= SEQ ShiftExprB
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.ISSEQ_ARROW_LONE.make(o, null, ExprVar.make(o,"seq/Int"), b); parser.alloymodule.addSeq(o);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 236: // CompareExprB ::= SET ShiftExprB
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.SETOF.make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 235: // CompareExprB ::= ONE ShiftExprB
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.ONE  .make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 234: // CompareExprB ::= LONE ShiftExprB
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.LONE .make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 233: // CompareExprB ::= SOME ShiftExprB
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.SOME .make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 232: // CompareExprB ::= NO ShiftExprB
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.NO   .make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 231: // CompareExprB ::= ALL ShiftExprB
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
         if (1==1) throw new ErrorSyntax(o,"The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 230: // CompareExprB ::= CompareExprB NOTGTE ShiftExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.NOT_GTE   .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 229: // CompareExprB ::= CompareExprB NOTLTE ShiftExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.NOT_LTE   .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 228: // CompareExprB ::= CompareExprB NOTGT ShiftExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.NOT_GT    .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 227: // CompareExprB ::= CompareExprB NOTLT ShiftExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.NOT_LT    .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 226: // CompareExprB ::= CompareExprB NOTEQUALS ShiftExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.NOT_EQUALS.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 225: // CompareExprB ::= CompareExprB NOTIN ShiftExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.NOT_IN    .make(o, null, a, mult(b));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 224: // CompareExprB ::= CompareExprB GTE ShiftExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.GTE       .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 223: // CompareExprB ::= CompareExprB LTE ShiftExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.LTE       .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 222: // CompareExprB ::= CompareExprB GT ShiftExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.GT        .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 221: // CompareExprB ::= CompareExprB LT ShiftExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.LT        .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 220: // CompareExprB ::= CompareExprB EQUALS ShiftExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.EQUALS    .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 219: // CompareExprB ::= CompareExprB IN ShiftExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.IN        .make(o, null, a, mult(b));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprB",7, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 218: // CompareExprA ::= ShiftExprA
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 217: // CompareExprA ::= SEQ ShiftExprA
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.ISSEQ_ARROW_LONE.make(o, null, ExprVar.make(o, "seq/Int"), b); parser.alloymodule.addSeq(o);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 216: // CompareExprA ::= SET ShiftExprA
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.SETOF.make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 215: // CompareExprA ::= ONE ShiftExprA
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.ONE  .make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 214: // CompareExprA ::= LONE ShiftExprA
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.LONE .make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 213: // CompareExprA ::= SOME ShiftExprA
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.SOME .make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 212: // CompareExprA ::= NO ShiftExprA
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.NO   .make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 211: // CompareExprA ::= ALL ShiftExprA
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
         if (1==1) throw new ErrorSyntax(o,"The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 210: // CompareExprA ::= CompareExprB NOTGTE ShiftExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.NOT_GTE   .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 209: // CompareExprA ::= CompareExprB NOTLTE ShiftExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.NOT_LTE   .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 208: // CompareExprA ::= CompareExprB NOTGT ShiftExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.NOT_GT    .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 207: // CompareExprA ::= CompareExprB NOTLT ShiftExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.NOT_LT    .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 206: // CompareExprA ::= CompareExprB NOTEQUALS ShiftExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.NOT_EQUALS.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 205: // CompareExprA ::= CompareExprB NOTIN ShiftExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.NOT_IN    .make(o, null, a, mult(b));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 204: // CompareExprA ::= CompareExprB GTE ShiftExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.GTE       .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 203: // CompareExprA ::= CompareExprB LTE ShiftExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.LTE       .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 202: // CompareExprA ::= CompareExprB GT ShiftExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.GT        .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 201: // CompareExprA ::= CompareExprB LT ShiftExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.LT        .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 200: // CompareExprA ::= CompareExprB EQUALS ShiftExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.EQUALS    .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 199: // CompareExprA ::= CompareExprB IN ShiftExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.IN        .make(o, null, a, mult(b));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CompareExprA",6, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 198: // NegExprB ::= NOT NegExprB
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.NOT.make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NegExprB",46, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 197: // NegExprB ::= CompareExprB
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NegExprB",46, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 196: // NegExprA ::= NOT NegExprA
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.NOT.make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NegExprA",45, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 195: // NegExprA ::= NOT Bind
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.NOT.make(o, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NegExprA",45, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 194: // NegExprA ::= CompareExprA
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NegExprA",45, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 193: // AndExprB ::= AndExprB AND NegExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.AND.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("AndExprB",1, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 192: // AndExprB ::= NegExprB
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("AndExprB",1, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 191: // AndExprA ::= AndExprB AND Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.AND.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("AndExprA",0, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 190: // AndExprA ::= NegExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("AndExprA",0, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 189: // ImpliesExprOpenB ::= AndExprB IMPLIES ImpliesExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprBinary.Op.IMPLIES.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ImpliesExprOpenB",35, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 188: // ImpliesExprOpenB ::= AndExprB IMPLIES ImpliesExprCloseB ELSE ImpliesExprOpenB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr c = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprITE.make(o,a,b,c);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ImpliesExprOpenB",35, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 187: // ImpliesExprCloseB ::= AndExprB IMPLIES ImpliesExprCloseB ELSE ImpliesExprCloseB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr c = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprITE.make(o,a,b,c);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ImpliesExprCloseB",33, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 186: // ImpliesExprCloseB ::= AndExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ImpliesExprCloseB",33, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 185: // ImpliesExprB ::= ImpliesExprOpenB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ImpliesExprB",31, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 184: // ImpliesExprB ::= ImpliesExprCloseB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ImpliesExprB",31, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 183: // ImpliesExprOpenA ::= AndExprB IMPLIES Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprBinary.Op.IMPLIES.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ImpliesExprOpenA",34, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 182: // ImpliesExprCloseA ::= AndExprB IMPLIES ImpliesExprCloseB ELSE Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr c = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprITE.make(o,a,b,c);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ImpliesExprCloseA",32, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 181: // ImpliesExprOpenA ::= AndExprB IMPLIES ImpliesExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprBinary.Op.IMPLIES.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ImpliesExprOpenA",34, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 180: // ImpliesExprOpenA ::= AndExprB IMPLIES ImpliesExprCloseB ELSE ImpliesExprOpenA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr c = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprITE.make(o,a,b,c);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ImpliesExprOpenA",34, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 179: // ImpliesExprCloseA ::= AndExprB IMPLIES ImpliesExprCloseB ELSE ImpliesExprCloseA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr c = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprITE.make(o,a,b,c);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ImpliesExprCloseA",32, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 178: // ImpliesExprCloseA ::= AndExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ImpliesExprCloseA",32, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 177: // ImpliesExprA ::= ImpliesExprOpenA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ImpliesExprA",30, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 176: // ImpliesExprA ::= ImpliesExprCloseA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("ImpliesExprA",30, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 175: // EquivExprB ::= EquivExprB IFF ImpliesExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.IFF.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("EquivExprB",20, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 174: // EquivExprB ::= ImpliesExprB
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("EquivExprB",20, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 173: // EquivExprA ::= EquivExprB IFF Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.IFF.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("EquivExprA",19, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 172: // EquivExprA ::= ImpliesExprA
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("EquivExprA",19, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 171: // OrExprB ::= OrExprB OR EquivExprB
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.OR.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("OrExprB",50, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 170: // OrExprB ::= EquivExprB
            {
              Expr RESULT =null;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("OrExprB",50, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 169: // OrExprA ::= OrExprB OR Bind
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.OR.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("OrExprA",49, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 168: // OrExprA ::= EquivExprA
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("OrExprA",49, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 167: // Bind ::= SUM2 Declp SuperOrBar
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<Decl> a = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprQt.Op.SUM .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Bind",3, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 166: // Bind ::= ONE2 Declp SuperOrBar
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<Decl> a = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprQt.Op.ONE .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Bind",3, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 165: // Bind ::= LONE2 Declp SuperOrBar
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<Decl> a = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprQt.Op.LONE.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Bind",3, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 164: // Bind ::= SOME2 Declp SuperOrBar
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<Decl> a = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprQt.Op.SOME.make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Bind",3, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 163: // Bind ::= NO2 Declp SuperOrBar
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<Decl> a = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprQt.Op.NO  .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Bind",3, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 162: // Bind ::= ALL2 Declp SuperOrBar
            {
              Expr RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<Decl> a = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprQt.Op.ALL .make(o, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Bind",3, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 161: // Bind ::= LET Let
            {
              Expr RESULT =null;
        Expr x = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Bind",3, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 160: // Expr ::= Bind
            {
              Expr RESULT =null;
        Expr x = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Expr",22, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 159: // Expr ::= OrExprB
            {
              Expr RESULT =null;
        Expr x = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Expr",22, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 158: // Expr ::= OrExprA
            {
              Expr RESULT =null;
        Expr x = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Expr",22, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 157: // Exprp ::= Exprp COMMA Expr
            {
              List<Expr> RESULT =null;
        List<Expr> a = (List<Expr>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         a.add(b); RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Exprp",28, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 156: // Exprp ::= Expr
            {
              List<Expr> RESULT =null;
        Expr x = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new ArrayList<Expr>(); RESULT.add(x);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Exprp",28, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 155: // Exprs ::= Exprp
            {
              List<Expr> RESULT =null;
        List<Expr> x = (List<Expr>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Exprs",27, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 154: // Exprs ::=
            {
              List<Expr> RESULT =null;
         RESULT=new ArrayList<Expr>();
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Exprs",27, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 153: // SuperOrBar ::= Super
            {
              Expr RESULT =null;
        Expr x = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SuperOrBar",26, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 152: // SuperOrBar ::= BAR Expr
            {
              Expr RESULT =null;
        Expr x = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SuperOrBar",26, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 151: // SuperP ::= SuperP Expr
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprBinary.Op.AND.make(null, null, a, b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SuperP",25, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 150: // SuperP ::= Expr
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SuperP",25, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 149: // Super ::= LBRACE RBRACE
            {
              Expr RESULT =null;
        Pos a = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos b = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprConstant.Op.TRUE.make(a.merge(b), 0);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Super",23, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 148: // Super ::= LBRACE SuperP RBRACE
            {
              Expr RESULT =null;
        Pos a = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr x = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos b = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprUnary.Op.NOOP.make(a.merge(b), x);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Super",23, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 147: // SuperOpt ::= Super
            {
              Expr RESULT =null;
        Expr x = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SuperOpt",24, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 146: // SuperOpt ::=
            {
              Expr RESULT =null;
         RESULT=null;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SuperOpt",24, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 145: // Let ::= Name EQUALS Expr COMMA Let
            {
              Expr RESULT =null;
        ExprVar a = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr x = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;

  nod(a);
  if (a.label.indexOf('/')>=0) throw new ErrorSyntax(a.pos, "Let variable name cannot contain \'/\'");
  if (a.label.indexOf('@')>=0) throw new ErrorSyntax(a.pos, "Let variable name cannot contain \'@\'");
  RESULT = ExprLet.make(o, ExprVar.make(a.pos, a.label), b, x);

              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Let",38, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 144: // Let ::= Name EQUALS Expr SuperOrBar
            {
              Expr RESULT =null;
        ExprVar a = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr x = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;

  nod(a);
  if (a.label.indexOf('/')>=0) throw new ErrorSyntax(a.pos, "Let variable name cannot contain \'/\'");
  if (a.label.indexOf('@')>=0) throw new ErrorSyntax(a.pos, "Let variable name cannot contain \'@\'");
  RESULT = ExprLet.make(o, ExprVar.make(a.pos, a.label), b, x);

              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Let",38, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 143: // Decls ::= COMMA Decls
            {
              List<Decl> RESULT =null;
        List<Decl> y = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=y;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Decls",13, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 142: // Decls ::= Declb COMMA Decls
            {
              List<Decl> RESULT =null;
        Decl x = (Decl)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<Decl> y = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=y; RESULT.add(0,x);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Decls",13, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 141: // Decls ::= Declb
            {
              List<Decl> RESULT =null;
        Decl x = (Decl)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new ArrayList<Decl>(); RESULT.add(x);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Decls",13, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 140: // Decls ::=
            {
              List<Decl> RESULT =null;
         RESULT=new ArrayList<Decl>();
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Decls",13, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 139: // Declp ::= Declb
            {
              List<Decl> RESULT =null;
        Decl y = (Decl)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new ArrayList<Decl>(); RESULT.add(y);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declp",12, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 138: // Declp ::= Declp COMMA Declb
            {
              List<Decl> RESULT =null;
        List<Decl> x = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Decl y = (Decl)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=x; RESULT.add(y);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declp",12, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 137: // Declz ::= Decla
            {
              List<Decl> RESULT =null;
        Decl y = (Decl)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new ArrayList<Decl>(); RESULT.add(y);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declz",14, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 136: // Declz ::= Declz COMMA Decla
            {
              List<Decl> RESULT =null;
        List<Decl> x = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Decl y = (Decl)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=x; RESULT.add(y);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declz",14, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 135: // Declb ::= Names EQUALS DISJ Expr
            {
              Decl RESULT =null;
        Pos d = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
         if (1==1) throw new ErrorSyntax(d, "Defined fields cannot be disjoint.");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declb",11, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 134: // Declb ::= PRIVATE Names EQUALS DISJ Expr
            {
              Decl RESULT =null;
        Pos d = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
         if (1==1) throw new ErrorSyntax(d, "Defined fields cannot be disjoint.");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declb",11, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 133: // Declb ::= PRIVATE DISJ Names EQUALS DISJ Expr
            {
              Decl RESULT =null;
        Pos d = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
         if (1==1) throw new ErrorSyntax(d, "Defined fields cannot be disjoint.");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declb",11, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 132: // Declb ::= DISJ Names EQUALS DISJ Expr
            {
              Decl RESULT =null;
        Pos d = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
         if (1==1) throw new ErrorSyntax(d, "Defined fields cannot be disjoint.");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declb",11, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 131: // Declb ::= EXH Names EQUALS DISJ Expr
            {
              Decl RESULT =null;
        Pos k = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
         if (1==1) throw CompModule.hint(k, "exh");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declb",11, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 130: // Declb ::= PART Names EQUALS DISJ Expr
            {
              Decl RESULT =null;
        Pos k = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
         if (1==1) throw CompModule.hint(k, "part");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declb",11, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 129: // Declb ::= Names EQUALS Expr
            {
              Decl RESULT =null;
        List<ExprVar> a = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Decl(null, null, null,  a, ExprUnary.Op.EXACTLYOF.make(null, b));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declb",11, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 128: // Declb ::= PRIVATE Names EQUALS Expr
            {
              Decl RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        List<ExprVar> a = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Decl(p,    null, null,  a, ExprUnary.Op.EXACTLYOF.make(null, b));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declb",11, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 127: // Declb ::= PRIVATE DISJ Names EQUALS Expr
            {
              Decl RESULT =null;
        Pos d = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
         if (1==1) throw new ErrorSyntax(d, "Defined fields cannot be disjoint.");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declb",11, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 126: // Declb ::= DISJ Names EQUALS Expr
            {
              Decl RESULT =null;
        Pos d = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
         if (1==1) throw new ErrorSyntax(d, "Defined fields cannot be disjoint.");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declb",11, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 125: // Declb ::= EXH Names EQUALS Expr
            {
              Decl RESULT =null;
        Pos k = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
         if (1==1) throw CompModule.hint(k, "exh");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declb",11, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 124: // Declb ::= PART Names EQUALS Expr
            {
              Decl RESULT =null;
        Pos k = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
         if (1==1) throw CompModule.hint(k, "part");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declb",11, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 123: // Declb ::= Decla
            {
              Decl RESULT =null;
        Decl x = (Decl)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Declb",11, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 122: // Decla ::= Names COLON DISJ Expr
            {
              Decl RESULT =null;
        List<ExprVar> a = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Pos d = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Decl(null, null, d,    a, mult(b));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Decla",10, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 121: // Decla ::= PRIVATE Names COLON DISJ Expr
            {
              Decl RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        List<ExprVar> a = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Pos d = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Decl(p,    null, d,    a, mult(b));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Decla",10, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 120: // Decla ::= PRIVATE DISJ Names COLON DISJ Expr
            {
              Decl RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-5)).value;
        Pos k = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        List<ExprVar> a = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Pos d = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Decl(p,    k,    d,    a, mult(b));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Decla",10, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 119: // Decla ::= DISJ Names COLON DISJ Expr
            {
              Decl RESULT =null;
        Pos k = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        List<ExprVar> a = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Pos d = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Decl(null, k,    d,    a, mult(b));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Decla",10, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 118: // Decla ::= EXH Names COLON DISJ Expr
            {
              Decl RESULT =null;
        Pos k = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
         if (1==1) throw CompModule.hint(k, "exh");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Decla",10, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 117: // Decla ::= PART Names COLON DISJ Expr
            {
              Decl RESULT =null;
        Pos k = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
         if (1==1) throw CompModule.hint(k, "part");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Decla",10, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 116: // Decla ::= Names COLON Expr
            {
              Decl RESULT =null;
        List<ExprVar> a = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Decl(null, null, null, a, mult(b));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Decla",10, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 115: // Decla ::= PRIVATE Names COLON Expr
            {
              Decl RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        List<ExprVar> a = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Decl(p,    null, null, a, mult(b));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Decla",10, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 114: // Decla ::= PRIVATE DISJ Names COLON Expr
            {
              Decl RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        Pos k = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        List<ExprVar> a = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Decl(p,    k,    null, a, mult(b));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Decla",10, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 113: // Decla ::= DISJ Names COLON Expr
            {
              Decl RESULT =null;
        Pos k = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        List<ExprVar> a = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr b = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new Decl(null, k,    null, a, mult(b));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Decla",10, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 112: // Decla ::= EXH Names COLON Expr
            {
              Decl RESULT =null;
        Pos k = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
         if (1==1) throw CompModule.hint(k, "exh");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Decla",10, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 111: // Decla ::= PART Names COLON Expr
            {
              Decl RESULT =null;
        Pos k = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
         if (1==1) throw CompModule.hint(k, "part");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Decla",10, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 110: // Namex ::= Namex COMMA EXACTLY Name
            {
              List<ExprVar> RESULT =null;
        List<ExprVar> a = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        ExprVar b = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(b); a.add(null); a.add(b); RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Namex",44, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 109: // Namex ::= Namex COMMA Name
            {
              List<ExprVar> RESULT =null;
        List<ExprVar> a = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprVar b = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(b);              a.add(b); RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Namex",44, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 108: // Namex ::= EXACTLY Name
            {
              List<ExprVar> RESULT =null;
        ExprVar x = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(x); RESULT=new ArrayList<ExprVar>(); RESULT.add(null); RESULT.add(x);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Namex",44, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 107: // Namex ::= Name
            {
              List<ExprVar> RESULT =null;
        ExprVar x = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(x); RESULT=new ArrayList<ExprVar>();                   RESULT.add(x);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Namex",44, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 106: // Names ::= Names COMMA Name
            {
              List<ExprVar> RESULT =null;
        List<ExprVar> a = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprVar b = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(b); a.add(b); RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Names",43, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 105: // Names ::= Name
            {
              List<ExprVar> RESULT =null;
        ExprVar x = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(x); RESULT=new ArrayList<ExprVar>(); RESULT.add(x);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Names",43, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 104: // NameHelper ::= NameHelper SLASH ID
            {
              ExprVar RESULT =null;
        ExprVar a = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprVar b = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprVar.make(a.pos.merge(b.pos), a.label+"/"+b.label);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NameHelper",42, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 103: // NameHelper ::= ID
            {
              ExprVar RESULT =null;
        ExprVar x = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("NameHelper",42, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 102: // Name ::= SEQ SLASH NameHelper
            {
              ExprVar RESULT =null;
        Pos a = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprVar b = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprVar.make(a.merge(b.pos)"seq/"+b.label);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Name",41, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 101: // Name ::= THIS SLASH NameHelper
            {
              ExprVar RESULT =null;
        Pos a = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprVar b = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprVar.make(a.merge(b.pos), "this/"+b.label);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Name",41, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 100: // Name ::= NameHelper
            {
              ExprVar RESULT =null;
        ExprVar x = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Name",41, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 99: // SigRefu ::= SigRefu PLUS SigRef
            {
              List<ExprVar> RESULT =null;
        List<ExprVar> a = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprVar b = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         a.add(b); RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigRefu",67, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 98: // SigRefu ::= SigRef
            {
              List<ExprVar> RESULT =null;
        ExprVar x = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new ArrayList<ExprVar>(); RESULT.add(x);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigRefu",67, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 97: // SigRefp ::= SigRefp COMMA SigRef
            {
              List<ExprVar> RESULT =null;
        List<ExprVar> a = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprVar b = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         a.add(b); RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigRefp",65, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 96: // SigRefp ::= SigRef
            {
              List<ExprVar> RESULT =null;
        ExprVar x = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new ArrayList<ExprVar>(); RESULT.add(x);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigRefp",65, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 95: // SigRefs ::= SigRefp
            {
              List<ExprVar> RESULT =null;
        List<ExprVar> x = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigRefs",66, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 94: // SigRefs ::=
            {
              List<ExprVar> RESULT =null;
         RESULT=new ArrayList<ExprVar>();
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigRefs",66, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 93: // SigRef ::= NONE
            {
              ExprVar RESULT =null;
        Pos x = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprVar.make(x, "none");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigRef",64, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 92: // SigRef ::= SEQ SLASH SIGINT
            {
              ExprVar RESULT =null;
        Pos a = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos b = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprVar.make(a.merge(b), "seq/Int");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigRef",64, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 91: // SigRef ::= SIGINT
            {
              ExprVar RESULT =null;
        Pos x = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprVar.make(x, "Int");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigRef",64, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 90: // SigRef ::= STRING
            {
              ExprVar RESULT =null;
        Pos x = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprVar.make(x, "String");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigRef",64, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 89: // SigRef ::= UNIV
            {
              ExprVar RESULT =null;
        Pos x = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=ExprVar.make(x, "univ");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigRef",64, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 88: // SigRef ::= Name
            {
              ExprVar RESULT =null;
        ExprVar x = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=x;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigRef",64, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 87: // SigIn ::=
            {
              List<ExprVar> RESULT =null;
         RESULT=null;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigIn",61, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 86: // SigIn ::= EQUALS SigRefu
            {
              List<ExprVar> RESULT =null;
        Pos a = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        List<ExprVar> x = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=x;  x.add(ExprVar.make(a,"="));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigIn",61, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 85: // SigIn ::= IN SigRefu
            {
              List<ExprVar> RESULT =null;
        Pos a = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        List<ExprVar> x = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=x;  x.add(ExprVar.make(a,"in"));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigIn",61, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 84: // SigIn ::= EXTENDS SigRef
            {
              List<ExprVar> RESULT =null;
        Pos a = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        ExprVar x = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new ArrayList<ExprVar>(2); RESULT.add(x); RESULT.add(ExprVar.make(a, "extends"));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigIn",61, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 83: // SigQuals ::= SigQual SigQuals
            {
              List<Pos> RESULT =null;
        List<Pos> a = (List<Pos>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        List<Pos> b = (List<Pos>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=a; for(int i=0;i<5;i++) if (a.get(i)==null) a.set(i,b.get(i)); else if (b.get(i)!=null) throw new ErrorSyntax(b.get(i), "The same qualifer cannot be specified more than once for the same sig.");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigQuals",63, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 82: // SigQuals ::= SIG
            {
              List<Pos> RESULT =null;
         RESULT=new ArrayList<Pos>(5); RESULT.add(null); RESULT.add(null); RESULT.add(null); RESULT.add(null); RESULT.add(null);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigQuals",63, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 81: // SigQual ::= PRIVATE
            {
              List<Pos> RESULT =null;
        Pos x = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new ArrayList<Pos>(5); RESULT.add(null); RESULT.add(null); RESULT.add(null); RESULT.add(null); RESULT.add(x);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigQual",62, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 80: // SigQual ::= SOME
            {
              List<Pos> RESULT =null;
        Pos x = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new ArrayList<Pos>(5); RESULT.add(null); RESULT.add(null); RESULT.add(null); RESULT.add(x);    RESULT.add(null);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigQual",62, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 79: // SigQual ::= ONE
            {
              List<Pos> RESULT =null;
        Pos x = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new ArrayList<Pos>(5); RESULT.add(null); RESULT.add(null); RESULT.add(x);    RESULT.add(null); RESULT.add(null);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigQual",62, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 78: // SigQual ::= LONE
            {
              List<Pos> RESULT =null;
        Pos x = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new ArrayList<Pos>(5); RESULT.add(null); RESULT.add(x);    RESULT.add(null); RESULT.add(null); RESULT.add(null);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigQual",62, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 77: // SigQual ::= ABSTRACT
            {
              List<Pos> RESULT =null;
        Pos x = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new ArrayList<Pos>(5); RESULT.add(x);    RESULT.add(null); RESULT.add(null); RESULT.add(null); RESULT.add(null);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("SigQual",62, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 76: // Sig ::= SigQuals Names SigIn LBRACE Decls RBRACE SuperOpt
            {
              Object RESULT =null;
        List<Pos> a = (List<Pos>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-6)).value;
        List<ExprVar> b = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-5)).value;
        List<ExprVar> c = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        List<Decl> d = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr e = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;

   if (e==null) e = ExprConstant.Op.TRUE.make(o, 0);
   ExprVar cc = (c!=null && c.size()>0) ? c.remove(c.size()-1) : null;
   for(ExprVar bb:b) {
      parser.alloymodule.addSig(bb.label, cc, c, d, e,
         AttrType.WHERE   .makenull(bb.pos.merge(e==null ? o : e.span())),
         AttrType.ABSTRACT.makenull(a.get(0)),
         AttrType.LONE    .makenull(a.get(1)),
         AttrType.ONE     .makenull(a.get(2)),
         AttrType.SOME    .makenull(a.get(3)),
         AttrType.PRIVATE .makenull(a.get(4)));
   }

              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Sig",60, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 75: // Vis ::= PRIVATE
            {
              Pos RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=p;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Vis",81, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 74: // Vis ::=
            {
              Pos RESULT =null;
         RESULT=null;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Vis",81, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 73: // Predicate ::= Vis PRED SigRef DOT Name Super
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-5)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        ExprVar f = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addFunc(o.merge(v.span()), p, n.label, f   , null , null, v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Predicate",53, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 72: // Predicate ::= Vis PRED SigRef DOT Name LBRACKET Decls RBRACKET Super
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-8)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-7)).value;
        ExprVar f = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-6)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        List<Decl> d = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addFunc(o.merge(v.span()), p, n.label, f   , d    , null, v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Predicate",53, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 71: // Predicate ::= Vis PRED SigRef DOT Name LPAREN Decls RPAREN Super
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-8)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-7)).value;
        ExprVar f = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-6)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        List<Decl> d = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addFunc(o.merge(v.span()), p, n.label, f   , d    , null, v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Predicate",53, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 70: // Predicate ::= Vis PRED Name Super
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addFunc(o.merge(v.span()), p, n.label, null, null , null, v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Predicate",53, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 69: // Predicate ::= Vis PRED Name LBRACKET Decls RBRACKET Super
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-6)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-5)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        List<Decl> d = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addFunc(o.merge(v.span()), p, n.label, null, d    , null, v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Predicate",53, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 68: // Predicate ::= Vis PRED Name LPAREN Decls RPAREN Super
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-6)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-5)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        List<Decl> d = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addFunc(o.merge(v.span()), p, n.label, null, d    , null, v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Predicate",53, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 67: // Function ::= Vis FUN SigRef DOT Name COLON Expr Super
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-7)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-6)).value;
        ExprVar f = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-5)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Expr r = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addFunc(o.merge(v.span()), p, n.label, f   , null , mult(r), v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Function",29, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 66: // Function ::= Vis FUN SigRef DOT Name LBRACKET Decls RBRACKET COLON Expr Super
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-10)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-9)).value;
        ExprVar f = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-8)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-6)).value;
        List<Decl> d = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        Expr r = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addFunc(o.merge(v.span()), p, n.label, f   , d    , mult(r), v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Function",29, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 65: // Function ::= Vis FUN SigRef DOT Name LPAREN Decls RPAREN COLON Expr Super
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-10)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-9)).value;
        ExprVar f = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-8)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-6)).value;
        List<Decl> d = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        Expr r = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addFunc(o.merge(v.span()), p, n.label, f   , d    , mult(r), v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Function",29, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 64: // Function ::= Vis FUN Name COLON Expr Super
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-5)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Expr r = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addFunc(o.merge(v.span()), p, n.label, null, null , mult(r), v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Function",29, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 63: // Function ::= Vis FUN Name LBRACKET Decls RBRACKET COLON Expr Super
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-8)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-7)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-6)).value;
        List<Decl> d = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        Expr r = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addFunc(o.merge(v.span()), p, n.label, null, d    , mult(r), v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Function",29, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 62: // Function ::= Vis FUN Name LPAREN Decls RPAREN COLON Expr Super
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-8)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-7)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-6)).value;
        List<Decl> d = (List<Decl>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        Expr r = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addFunc(o.merge(v.span()), p, n.label, null, d    , mult(r), v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Function",29, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 61: // MacroBody ::= EQUALS Expr
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("MacroBody",40, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 60: // MacroBody ::= Super
            {
              Expr RESULT =null;
        Expr a = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("MacroBody",40, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 59: // Macro ::= Vis LET Name MacroBody
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addMacro(o.merge(v.span()), p, n.label, null  , v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Macro",39, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 58: // Macro ::= Vis LET Name LBRACKET RBRACKET MacroBody
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-5)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addMacro(o.merge(v.span()), p, n.label, null  , v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Macro",39, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 57: // Macro ::= Vis LET Name LBRACKET Names RBRACKET MacroBody
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-6)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-5)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        List<ExprVar> d = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addMacro(o.merge(v.span()), p, n.label, d     , v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Macro",39, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 56: // Macro ::= Vis LET Name LPAREN RPAREN MacroBody
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-5)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addMacro(o.merge(v.span()), p, n.label, null  , v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Macro",39, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 55: // Macro ::= Vis LET Name LPAREN Names RPAREN MacroBody
            {
              Object RESULT =null;
        Pos p = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-6)).value;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-5)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        List<ExprVar> d = (List<ExprVar>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        Expr v = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addMacro(o.merge(v.span()), p, n.label, d     , v);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Macro",39, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 54: // TypeNumber ::= NUMBER COLON NUMBER
            {
              CommandScope RESULT =null;
        ExprConstant a = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprConstant i = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         if (!Version.experimental) throw new ErrorSyntax(a.pos, "Syntax error here."); RESULT = new CommandScope(a.pos.merge(i.pos), Sig.NONE, false, a.num, Integer.MAX_VALUE, i.num);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("TypeNumber",70, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 53: // TypeNumber ::= NUMBER DOT DOT NUMBER COLON NUMBER
            {
              CommandScope RESULT =null;
        ExprConstant a = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-5)).value;
        ExprConstant b = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprConstant i = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         if (!Version.experimental) throw new ErrorSyntax(a.pos, "Syntax error here."); RESULT = new CommandScope(a.pos.merge(i.pos), Sig.NONE, false, a.num, b.num,             i.num);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("TypeNumber",70, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 52: // TypeNumber ::= NUMBER DOT DOT NUMBER
            {
              CommandScope RESULT =null;
        ExprConstant a = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        ExprConstant b = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         if (!Version.experimental) throw new ErrorSyntax(a.pos, "Syntax error here."); RESULT = new CommandScope(a.pos.merge(b.pos), Sig.NONE, false, a.num, b.num,             1    );
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("TypeNumber",70, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 51: // TypeNumber ::= NUMBER
            {
              CommandScope RESULT =null;
        ExprConstant a = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
                                                                                        RESULT = new CommandScope(a.pos             , Sig.NONE, false, a.num, a.num,             1    );
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("TypeNumber",70, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 50: // TypeNumber ::= EXACTLY NUMBER COLON NUMBER
            {
              CommandScope RESULT =null;
        Pos e = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        ExprConstant a = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprConstant i = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         if (!Version.experimental) throw new ErrorSyntax(a.pos, "Syntax error here."); RESULT = new CommandScope(    e.merge(i.pos), Sig.NONE, true,  a.num, Integer.MAX_VALUE, i.num);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("TypeNumber",70, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 49: // TypeNumber ::= EXACTLY NUMBER DOT DOT NUMBER COLON NUMBER
            {
              CommandScope RESULT =null;
        Pos e = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-6)).value;
        ExprConstant a = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-5)).value;
        ExprConstant b = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprConstant i = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         if (!Version.experimental) throw new ErrorSyntax(a.pos, "Syntax error here."); RESULT = new CommandScope(    e.merge(i.pos), Sig.NONE, true,  a.num, b.num,             i.num);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("TypeNumber",70, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 48: // TypeNumber ::= EXACTLY NUMBER DOT DOT NUMBER
            {
              CommandScope RESULT =null;
        Pos e = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        ExprConstant a = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        ExprConstant b = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         if (!Version.experimental) throw new ErrorSyntax(a.pos, "Syntax error here."); RESULT = new CommandScope(    e.merge(b.pos), Sig.NONE, true,  a.num, b.num,             1    );
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("TypeNumber",70, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 47: // TypeNumber ::= EXACTLY NUMBER
            {
              CommandScope RESULT =null;
        Pos e = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        ExprConstant a = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
                                                                                        RESULT = new CommandScope(    e.merge(a.pos), Sig.NONE, true,  a.num, a.num,             1    );
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("TypeNumber",70, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 46: // Typescope ::= TypeNumber NONE
            {
              CommandScope RESULT =null;
        CommandScope e = (CommandScope)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos f = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         if (1==1) throw new ErrorSyntax(e.pos.merge(f), "You cannot set a scope on none.");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Typescope",71, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 45: // Typescope ::= TypeNumber SIGINT
            {
              CommandScope RESULT =null;
        CommandScope e = (CommandScope)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos f = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         if (1==1) throw new ErrorSyntax(e.pos.merge(f), "You can no longer set a scope on Int; the number of Int atoms is always exactly equal to 2^(integer bitwidth).\n");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Typescope",71, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 44: // Typescope ::= TypeNumber STRING
            {
              CommandScope RESULT =null;
        CommandScope a = (CommandScope)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos b = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = new CommandScope(a.pos.merge(b), new PrimSig("String", AttrType.WHERE.make(a.pos.merge(b))), a.isExact, a.startingScope, a.endingScope, a.increment);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Typescope",71, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 43: // Typescope ::= TypeNumber UNIV
            {
              CommandScope RESULT =null;
        CommandScope e = (CommandScope)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos f = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         if (1==1) throw new ErrorSyntax(e.pos.merge(f), "You cannot set a scope on univ.");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Typescope",71, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 42: // Typescope ::= TypeNumber SEQ
            {
              CommandScope RESULT =null;
        CommandScope a = (CommandScope)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos b = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;

   Pos p = a.pos.merge(b);
   if (a.endingScope>a.startingScope) throw new ErrorSyntax(p, "Cannot specify a growing scope for \"seq\"");
   if (a.isExact) throw new ErrorSyntax(p, "The exactly keyword is redundant here since the number of sequence index has to be exact.");
   RESULT = new CommandScope(p, new PrimSig("seq", AttrType.WHERE.make(p)), a.isExact, a.startingScope, a.startingScope, 1);

              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Typescope",71, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 41: // Typescope ::= TypeNumber INT
            {
              CommandScope RESULT =null;
        CommandScope a = (CommandScope)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Pos b = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;

   Pos p = a.pos.merge(b);
   if (a.endingScope>a.startingScope) throw new ErrorSyntax(p, "Cannot specify a growing scope for \"int\"");
   if (a.isExact) throw new ErrorSyntax(p, "The exactly keyword is redundant here since the integer bitwidth must be exact.");
   RESULT = new CommandScope(p, new PrimSig("int", AttrType.WHERE.make(p)), a.isExact, a.startingScope, a.startingScope, 1);

              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Typescope",71, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 40: // Typescope ::= TypeNumber Name
            {
              CommandScope RESULT =null;
        CommandScope a = (CommandScope)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        ExprVar b = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;

   nod(b);
   RESULT = new CommandScope(a.pos.merge(b.pos), new PrimSig(b.label, AttrType.WHERE.make(a.pos.merge(b.pos))), a.isExact, a.startingScope, a.endingScope, a.increment);

              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Typescope",71, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 39: // Typescopes ::= Typescopes COMMA Typescope
            {
              List<CommandScope> RESULT =null;
        List<CommandScope> a = (List<CommandScope>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        CommandScope b = (CommandScope)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=a; a.add(b);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Typescopes",72, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 38: // Typescopes ::= Typescope
            {
              List<CommandScope> RESULT =null;
        CommandScope a = (CommandScope)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new ArrayList<CommandScope>(); RESULT.add(a);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Typescopes",72, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 37: // Scope ::=
            {
              List<CommandScope> RESULT =null;
         RESULT=new ArrayList<CommandScope>();
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Scope",59, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 36: // Scope ::= FOR Typescopes
            {
              List<CommandScope> RESULT =null;
        List<CommandScope> b = (List<CommandScope>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Scope",59, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 35: // Scope ::= FOR NUMBER BUT Typescopes
            {
              List<CommandScope> RESULT =null;
        ExprConstant a = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<CommandScope> b = (List<CommandScope>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=b;                                  b.add(new CommandScope(a.pos, new PrimSig("univ", AttrType.WHERE.make(a.pos)), true, a.num, a.num, 1));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Scope",59, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 34: // Scope ::= FOR NUMBER
            {
              List<CommandScope> RESULT =null;
        ExprConstant a = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=new ArrayList<CommandScope>(); RESULT.add(new CommandScope(a.pos, new PrimSig("univ", AttrType.WHERE.make(a.pos)), true, a.num, a.num, 1));
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Scope",59, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 33: // Expects ::= EXPECT NUMBER
            {
              ExprConstant RESULT =null;
        ExprConstant a = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT=a;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Expects",21, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 32: // Expects ::=
            {
              ExprConstant RESULT =null;
         RESULT=null;
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Expects",21, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 31: // Command ::= Command IMPLIES CommandPrefix Name Scope Expects
            {
              Object RESULT =null;
        ExprVar o = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<CommandScope> s = (List<CommandScope>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        ExprConstant c = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         c(true ,o,null,n   ,null,s,c);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Command",8, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 30: // Command ::= Command IMPLIES CommandPrefix Name Name Scope Expects
            {
              Object RESULT =null;
        ExprVar o = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        ExprVar x = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<CommandScope> s = (List<CommandScope>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        ExprConstant c = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         c(true ,o,x   ,n   ,null,s,c);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Command",8, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 29: // Command ::= CommandPrefix Name Scope Expects
            {
              Object RESULT =null;
        ExprVar o = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<CommandScope> s = (List<CommandScope>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        ExprConstant c = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         c(false,o,null,n   ,null,s,c);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Command",8, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 28: // Command ::= CommandPrefix Name Name Scope Expects
            {
              Object RESULT =null;
        ExprVar o = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        ExprVar x = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<CommandScope> s = (List<CommandScope>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        ExprConstant c = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         c(false,o,x   ,n   ,null,s,c);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Command",8, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 27: // Command ::= Command IMPLIES CommandPrefix Super Scope Expects
            {
              Object RESULT =null;
        ExprVar o = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Expr e = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<CommandScope> s = (List<CommandScope>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        ExprConstant c = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         c(true ,o,null,null,e   ,s,c);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Command",8, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 26: // Command ::= Command IMPLIES CommandPrefix Name Super Scope Expects
            {
              Object RESULT =null;
        ExprVar o = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        ExprVar x = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Expr e = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<CommandScope> s = (List<CommandScope>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        ExprConstant c = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         c(true ,o,x   ,null,e   ,s,c);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Command",8, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 25: // Command ::= CommandPrefix Super Scope Expects
            {
              Object RESULT =null;
        ExprVar o = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Expr e = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<CommandScope> s = (List<CommandScope>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        ExprConstant c = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         c(false,o,null,null,e   ,s,c);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Command",8, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 24: // Command ::= CommandPrefix Name Super Scope Expects
            {
              Object RESULT =null;
        ExprVar o = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-4)).value;
        ExprVar x = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-3)).value;
        Expr e = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        List<CommandScope> s = (List<CommandScope>)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        ExprConstant c = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         c(false,o,x   ,null,e   ,s,c);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Command",8, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 23: // CommandPrefix ::= RUN
            {
              ExprVar RESULT =null;
        Pos r = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprVar.make(r, "r");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CommandPrefix",9, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 22: // CommandPrefix ::= CHECK
            {
              ExprVar RESULT =null;
        Pos c = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         RESULT = ExprVar.make(c, "c");
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("CommandPrefix",9, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 21: // Spec ::=
            {
              Object RESULT =null;

              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Spec",69, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 20: // Spec ::= Spec Command
            {
              Object RESULT =null;

              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Spec",69, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 19: // Spec ::= Spec Macro
            {
              Object RESULT =null;

              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Spec",69, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 18: // Spec ::= Spec Predicate
            {
              Object RESULT =null;

              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Spec",69, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 17: // Spec ::= Spec Function
            {
              Object RESULT =null;

              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Spec",69, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 16: // Spec ::= Spec Sig
            {
              Object RESULT =null;

              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Spec",69, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 15: // Spec ::= Spec ASSERT STR Super
            {
              Object RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprConstant n = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr e = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
                 parser.alloymodule.addAssertion (o , n.string , e);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Spec",69, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 14: // Spec ::= Spec ASSERT Name Super
            {
              Object RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr e = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addAssertion (o , n.label  , e);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Spec",69, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 13: // Spec ::= Spec ASSERT Super
            {
              Object RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr e = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
                 parser.alloymodule.addAssertion (o , ""       , e);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Spec",69, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 12: // Spec ::= Spec FACT STR Super
            {
              Object RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprConstant n = (ExprConstant)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr e = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
                 parser.alloymodule.addFact      (o , n.string , e);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Spec",69, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 11: // Spec ::= Spec FACT Name Super
            {
              Object RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-2)).value;
        ExprVar n = (ExprVar)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr e = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
         nod(n); parser.alloymodule.addFact      (o , n.label  , e);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Spec",69, RESULT);
            }
          return CUP$CompParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 10: // Spec ::= Spec FACT Super
            {
              Object RESULT =null;
        Pos o = (Pos)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.elementAt(CUP$CompParser$top-1)).value;
        Expr e = (Expr)((java_cup_11a.runtime.Symbol) CUP$CompParser$stack.peek()).value;
                 parser.alloymodule.addFact      (o , ""       , e);
              CUP$CompParser$result = parser.getSymbolFactory().newSymbol("Spec",69, RESULT);
            }
          return CUP$CompParser$result;

View Full Code Here

        // one sig A2 extends A {}
        PrimSig A2 = new PrimSig("A2", A, Attr.ONE);

        // A { f: B lone->lone B }
        Expr f = A.addField("f", B.lone_arrow_lone(B));
        // Since (B lone->lone B) is not unary,  the default is "setOf",  meaning "f:set (B lone->lone B)"

        // A { g: B }
        Expr g = A.addField("g", B);
        // The line above is the same as:   A.addField(null, "g", B.oneOf())  since B is unary.
        // If you want "setOf", you need:   A.addField(null, "g", B.setOf())

        // pred someG { some g }
        Func someG = new Func(null, "SomeG", null, null, g.some());

        // pred atMostThree[x:univ, y:univ] { #(x+y) >= 3 }
        Decl x = UNIV.oneOf("x");
        Decl y = UNIV.oneOf("y");
        Expr body = x.get().plus(y.get()).cardinality().lte(ExprConstant.makeNUMBER(3));
        Func atMost3 = new Func(null, "atMost3", Util.asList(x,y), null, body);

        List<Sig> sigs = Arrays.asList(new Sig[]{A, B, A1, A2});

        // run { some A && atMostThree[B,B] } for 3 but 3 int, 3 seq
        Expr expr1 = A.some().and(atMost3.call(B,B));
        Command cmd1 = new Command(false, 3, 3, 3, expr1);
        A4Solution sol1 = TranslateAlloyToKodkod.execute_command(NOP, sigs, cmd1, opt);
        System.out.println("[Solution1]:");
        System.out.println(sol1.toString());

        // run { some f && SomeG[] } for 3 but 2 int, 1 seq, 5 A, exactly 6 B
        Expr expr2 = f.some().and(someG.call());
        Command cmd2 = new Command(false, 3, 2, 1, expr2);
        cmd2 = cmd2.change(A, false, 5);
        cmd2 = cmd2.change(B, true, 6);
        A4Solution sol2 = TranslateAlloyToKodkod.execute_command(NOP, sigs, cmd2, opt);
        System.out.println("[Solution2]:");
View Full Code Here

        }
        if (expr instanceof ExprConstant && ((ExprConstant)expr).op==ExprConstant.Op.EMPTYNESS) return Expression.NONE;
        if (expr instanceof ExprConstant && ((ExprConstant)expr).op==ExprConstant.Op.STRING) return s2k.get(((ExprConstant)expr).string);
        if (expr instanceof Sig || expr instanceof Field || expr instanceof ExprVar) return a2k.get(expr);
        if (expr instanceof ExprBinary) {
            Expr a=((ExprBinary)expr).left, b=((ExprBinary)expr).right;
            switch(((ExprBinary)expr).op) {
              case ARROW: return a2k(a).product(a2k(b));
              case PLUS: return a2k(a).union(a2k(b));
              case MINUS: return a2k(a).difference(a2k(b));
            }
View Full Code Here

          Object x = k2pos(f);
          if (x instanceof Pos) {
             // System.out.println("F: "+f+" at "+x+"\n"); System.out.flush();
             ans1.add((Pos)x);
          } else if (x instanceof Expr) {
             Expr expr = (Expr)x;
             Pos p = ((Expr)x).span();
             ans1.add(p);
             // System.out.println("F: "+f+" by "+p.x+","+p.y+"->"+p.x2+","+p.y2+" for "+x+"\n\n"); System.out.flush();
             for(Func func: expr.findAllFunctions()) ans2.add(func.getBody().span());
          }
       }
       return hCoreCache = new Pair<Set<Pos>,Set<Pos>>(Collections.unmodifiableSet(ans1), Collections.unmodifiableSet(ans2));
    }
View Full Code Here

       Type type = expr.type();
       if (!type.hasTuple()) return false;
       if (sol!=null) {
          // Check to see if the tupleset is *really* fully contained inside "type".
          // If not, then grow "type" until the tupleset is fully contained inside "type"
          Expr sum = type.toExpr();
          int lastSize = (-1);
          while(true) {
             A4TupleSet ts = (A4TupleSet)(sol.eval(expr.minus(sum)));
             int n = ts.size();
             if (n<=0) break;
             if (lastSize>0 && lastSize<=n) throw new ErrorFatal("An internal error occurred in the evaluator.");
             lastSize=n;
             Type extra = ts.iterator().next().type();
             type = type.merge(extra);
             sum = sum.plus(extra.toExpr());
          }
          // Now, write out the tupleset
          A4TupleSet ts = (A4TupleSet)(sol.eval(expr));
          for(A4Tuple t: ts) {
             if (prefix.length()>0) { out.print(prefix); prefix=""; }
View Full Code Here

            return new ExprBad(p, toString(), new ErrorType(p, "Macro substitution too deep; possibly indicating an infinite recursion."));
        }
        if (params.size() != args.size()) return this;
        Context cx2 = new Context(realModule, warnings, cx.unrolls-1);
        for(int n=params.size(), i=0; i<n; i++) {
            Expr tmp = args.get(i);
            if (!(tmp instanceof Macro)) tmp = tmp.resolve(tmp.type(), warnings);
            cx2.put(params.get(i).label, tmp);
        }
        return cx2.check(body);
    }
View Full Code Here

TOP

Related Classes of edu.mit.csail.sdg.alloy4compiler.ast.Expr

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.