[e-cvs] cvs commit: e/src/jsrc/org/erights/e/elib/tables Equalizer.java

markm@eros.cs.jhu.edu markm@eros.cs.jhu.edu
Sun, 11 Nov 2001 12:51:15 -0500


markm       01/11/11 12:51:14

  Modified:    src/jsrc/org/erights/e/elang/evm ObjectExpr.java
               src/jsrc/org/erights/e/elang/scope EvalContext.java
                        InnerScope.java OuterScope.java Scope.java
               src/jsrc/org/erights/e/elang/syntax EParser.java
               src/jsrc/org/erights/e/elib/prim MirandaMethods.java
               src/jsrc/org/erights/e/elib/tables Equalizer.java
  Added:       src/jsrc/org/erights/e/elang/scope ForwardingSlot.java
  Log:
  &x now correct for mutable (interactive) scopes.  Uses ForwardingSlot.

Revision  Changes    Path
1.38      +2 -1      e/src/jsrc/org/erights/e/elang/evm/ObjectExpr.java

Index: ObjectExpr.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/evm/ObjectExpr.java,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- ObjectExpr.java	2001/11/10 19:40:39	1.37
+++ ObjectExpr.java	2001/11/11 17:51:13	1.38
@@ -141,7 +141,8 @@
      */
     public boolean matchBind(Object[] args,
                              Object specimen,
-                             FlexList bindings) {
+                             FlexList bindings)
+    {
         ObjectExpr other;
         try {
             other = (ObjectExpr)Ref.resolution(specimen);



1.3       +6 -2      e/src/jsrc/org/erights/e/elang/scope/EvalContext.java

Index: EvalContext.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/scope/EvalContext.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- EvalContext.java	2001/11/10 19:40:41	1.2
+++ EvalContext.java	2001/11/11 17:51:13	1.3
@@ -42,7 +42,10 @@
 
     private OuterScope myOuters;
 
-    static public EvalContext make(int localCount, Object[] fields, OuterScope outers) {
+    static public EvalContext make(int localCount,
+                                   Object[] fields,
+                                   OuterScope outers)
+    {
         return new EvalContext(new Object[localCount], fields, outers);
     }
 
@@ -89,7 +92,8 @@
 
     public void initLocal(int index, Object value) {
         if (index >= myLocals.length) {
-            System.err.println("Assign: " + index + " within: " + myLocals.length);
+            System.err.println("Assign: " + index +
+                               " within: " + myLocals.length);
         }
         myLocals[index] = value;
     }



1.3       +4 -1      e/src/jsrc/org/erights/e/elang/scope/InnerScope.java

Index: InnerScope.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/scope/InnerScope.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- InnerScope.java	2001/11/10 19:40:41	1.2
+++ InnerScope.java	2001/11/11 17:51:13	1.3
@@ -24,7 +24,10 @@
 import org.erights.e.elib.util.AlreadyDefinedException;
 
 /**
- * The implementation of E's interactive top-level lexical scope.
+ * A Scope that represents a nested lexical scope.
+ * <p>
+ * Made after the fact from a ScopeMap (static info) and an EvalContext
+ * (runtime info).
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */



1.3       +33 -6     e/src/jsrc/org/erights/e/elang/scope/OuterScope.java

Index: OuterScope.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/scope/OuterScope.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- OuterScope.java	2001/11/10 19:40:41	1.2
+++ OuterScope.java	2001/11/11 17:51:13	1.3
@@ -26,7 +26,7 @@
 import org.erights.e.elib.util.AlreadyDefinedException;
 
 /**
- * The normal implementation of an E lexical scope.
+ * The normal implementation of an outermost E lexical scope.
  *
  * @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
  */
@@ -40,14 +40,16 @@
 
     static public OuterScope make(ScopeMap map,
                                   Slot[] outers,
-                                  int nextOuter) {
+                                  int nextOuter)
+    {
         return new OuterScope(map, outers, nextOuter, false);
     }
 
     static public OuterScope make(ScopeMap map,
                                   Slot[] outers,
                                   int nextOuter,
-                                  boolean isMutable) {
+                                  boolean isMutable)
+    {
         return new OuterScope(map, outers, nextOuter, isMutable);
     }
 
@@ -57,17 +59,26 @@
     private OuterScope(ScopeMap map,
                        Slot[] outers,
                        int nextOuter,
-                       boolean isMutable) {
+                       boolean isMutable)
+    {
         super(map);
         myOuters = outers;
         myNextOuter = nextOuter;
         myIsMutable = isMutable;
     }
 
-    /*package*/ Slot getIndex(int index) {
+    /*package*/ Slot getCurrentAtIndex(int index) {
         return myOuters[index];
     }
 
+    /*package*/ Slot getIndex(int index) {
+        if (myIsMutable) {
+            return new ForwardingSlot(this, index);
+        } else {
+            return myOuters[index];
+        }
+    }
+
     /*package*/ void initIndex(int index, Slot value) {
         myOuters[index] = value;
     }
@@ -111,8 +122,24 @@
     }
 
     public Slot getSlot(String name) {
+        OuterNounExpr noun = (OuterNounExpr)myScopeMap.getNoun(name);
+        return getIndex(noun.getIndex());
+    }
+
+    /**
+     * Override to avoid overhead of ForwardingSlot
+     */
+    public Object get(String name) {
+        OuterNounExpr noun = (OuterNounExpr)myScopeMap.getNoun(name);
+        return myOuters[noun.getIndex()].getValue();
+    }
+
+    /**
+     * Override to avoid overhead of ForwardingSlot
+     */
+    public void put(String name, Object newValue) {
         OuterNounExpr noun = (OuterNounExpr)myScopeMap.getNoun(name);
-        return myOuters[noun.getIndex()];
+        myOuters[noun.getIndex()].setValue(newValue);
     }
 
     /**



1.49      +2 -1      e/src/jsrc/org/erights/e/elang/scope/Scope.java

Index: Scope.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/scope/Scope.java,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- Scope.java	2001/11/11 05:54:37	1.48
+++ Scope.java	2001/11/11 17:51:13	1.49
@@ -74,7 +74,8 @@
     }
 
     /**
-     * Return a new scope that does not share outers data structures with the receiver.
+     * Return a new scope that does not share outers data structures with the
+     * receiver.
      */
     public abstract Scope sprout();
 



1.1                  e/src/jsrc/org/erights/e/elang/scope/ForwardingSlot.java

Index: ForwardingSlot.java
===================================================================
package org.erights.e.elang.scope;

import org.erights.e.elib.slot.Slot;
import org.erights.e.elib.base.Callable;
import org.erights.e.elib.base.TypeDesc;
import org.erights.e.elib.sealing.SealedBox;
import org.erights.e.elib.sealing.Brand;
import org.erights.e.elib.prim.E;
import org.erights.e.elib.prim.MirandaMethods;

import java.math.BigInteger;

/**
 * Used to implement unary '&' (SlotExpr) when the variable is in a mutable
 * {@link OuterScope}.
 *
 * @author <a href="mailto:markm@caplet.com">Mark S Miller</a>
 */
/*package*/ class ForwardingSlot implements Slot, Callable {

    private final OuterScope myOuters;

    private final int myIndex;

    /**
     * Always acts like whatever Slot is currently at 'index' in 'outers'.
     */
    /*package*/ ForwardingSlot(OuterScope outers, int index) {
        myOuters = outers;
        myIndex = index;
    }

    /**
     * The slot I currently forward to
     */
    private Slot target() {
        return myOuters.getCurrentAtIndex(myIndex);
    }

    /**
     * Forwards
     */
    public Object getValue() {
        return target().getValue();
    }

    /**
     * Forwards
     */
    public void setValue(Object specimen) {
        target().setValue(specimen);
    }

    /**
     * Doesn't forward, returns null
     */
    public SealedBox optMeta(Brand brand) {
        return null;
    }

    /**
     * Forwards
     */
    public TypeDesc getAllegedType() {
        return (TypeDesc)E.as(E.call(target(), "getAllegedType"),
                              TypeDesc.class);
    }

    /**
     * Forwards
     */
    public boolean respondsTo(String verb, int arity) {
        return E.asBoolean(E.call(target(),
                                  "respondsTo",
                                  verb,
                                  BigInteger.valueOf(arity)));
    }

    /**
     * Forwards, except for the {@link MirandaMethods}<ul>
     * <li>yourself/0</li>
     * <li>optMeta/1</li>
     * <li>whenBroken/1</li>
     * <li>whenMoreResolved/1</li>
     * <li>order/2</li>
     * </ul>
     * for which it does the Miranda behavior for this forwarding slot.
     * <p>
     * XXX Is this list correct?  What if the target slot doesn't respond to
     * a MirandaMethod?  Then getAllegedType and respondsTo would seem to be
     * wrong.
     */
    public Object callAll(String verb, Object[] args) {
        if (0 == args.length) {
            if ("yourself".equals(verb)) {
                return MirandaMethods.yourself(this);
            }
        } else if (1 == args.length) {
            if ("optMeta".equals(verb)) {
                return null;
            }
            if ("whenBroken".equals(verb)) {
                MirandaMethods.whenBroken(this, args[0]);
                return null;
            } else if ("whenMoreResolved".equals(verb)) {
                MirandaMethods.whenMoreResolved(this, args[0]);
                return null;
            }
        } else if (2 == args.length) {
            if ("order".equals(verb)) {
                String nestedVerb = (String)E.as(args[0], String.class);
                Object[] nestedArgs = (Object[])E.as(args[1], Object[].class);
                return MirandaMethods.order(this, nestedVerb, nestedArgs);
            }
        }
        return E.callAll(target(), verb, args);
    }
}



1.101     +2536 -3200e/src/jsrc/org/erights/e/elang/syntax/EParser.java

Index: EParser.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elang/syntax/EParser.java,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -r1.100 -r1.101
--- EParser.java	2001/11/10 19:40:42	1.100
+++ EParser.java	2001/11/11 17:51:13	1.101
@@ -12,8 +12,13 @@
 //#line 30 "e.y"
 package org.erights.e.elang.syntax;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInput;
+import java.io.ObjectInputStream;
 import org.erights.build.EYaccFixer;
 import org.erights.e.develop.exception.ThrowableSugar;
+import org.erights.e.elang.evm.EExpr;
 import org.erights.e.elang.evm.ENode;
 import org.erights.e.elang.interp.Interp;
 import org.erights.e.elib.base.Ejector;
@@ -24,12 +29,6 @@
 import org.erights.e.elib.tables.IntTable;
 import org.erights.e.elib.tables.Twine;
 import org.quasiliteral.astro.AstroToken;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInput;
-import java.io.ObjectInputStream;
-
 //#line 30 "EParser.java"
 
 
@@ -40,3557 +39,2894 @@
 // does : encapsulates yacc() parser functionality in a Java
 //        class for quick code development
 //#####################################################################
-public class EParser extends EBuilder {
+public class EParser extends EBuilder
+{
 
-    boolean yydebug;        //do I want debug output?
+boolean yydebug;        //do I want debug output?
+int yynerrs;            //number of errors so far
+int yyerrflag;          //was there an error?
+int yychar;             //the current working character
 
-    int yynerrs;            //number of errors so far
-
-    int yyerrflag;          //was there an error?
-
-    int yychar;             //the current working character
-
 //########## MESSAGES ##########
 //###############################################################
 // method: debug
 //###############################################################
-    void debug(String msg) {
-        if (yydebug)
-            System.out.println(msg);
-    }
+void debug(String msg)
+{
+  if (yydebug)
+    System.out.println(msg);
+}
 
 //########## STATE STACK ##########
-    final static int YYSTACKSIZE = 500;  //maximum stack size
-
-    int statestk[],stateptr;             //state stack
+final static int YYSTACKSIZE = 500;  //maximum stack size
+int statestk[],stateptr;             //state stack
 //###############################################################
 // methods: state stack push,pop,drop,peek
 //###############################################################
-    void state_push(int state) {
-        if (stateptr >= YYSTACKSIZE)         //overflowed?
-            return;
-        statestk[++stateptr] = state;
-    }
-
-    int state_pop() {
-        if (stateptr < 0)                    //underflowed?
-            return -1;
-        return statestk[stateptr--];
-    }
-
-    void state_drop(int cnt) {
-        int ptr;
-        ptr = stateptr - cnt;
-        if (ptr < 0)
-            return;
-        stateptr = ptr;
-    }
-
-    int state_peek(int relative) {
-        int ptr;
-        ptr = stateptr - relative;
-        if (ptr < 0)
-            return -1;
-        return statestk[ptr];
-    }
+void state_push(int state)
+{
+  if (stateptr>=YYSTACKSIZE)         //overflowed?
+    return;
+  statestk[++stateptr]=state;
+}
+int state_pop()
+{
+  if (stateptr<0)                    //underflowed?
+    return -1;
+  return statestk[stateptr--];
+}
+void state_drop(int cnt)
+{
+int ptr;
+  ptr=stateptr-cnt;
+  if (ptr<0)
+    return;
+  stateptr = ptr;
+}
+int state_peek(int relative)
+{
+int ptr;
+  ptr=stateptr-relative;
+  if (ptr<0)
+    return -1;
+  return statestk[ptr];
+}
 //###############################################################
 // method: init_stacks : allocate and prepare stacks
 //###############################################################
-    boolean init_stacks() {
-        statestk = new int[YYSTACKSIZE];
-        stateptr = -1;
-        val_init();
-        return true;
-    }
+boolean init_stacks()
+{
+  statestk = new int[YYSTACKSIZE];
+  stateptr = -1;
+  val_init();
+  return true;
+}
 //###############################################################
 // method: dump_stacks : show n levels of the stacks
 //###############################################################
-    void dump_stacks(int count) {
-        int i;
-        System.out.println("=index==state====value=     s:" + stateptr + "  v:" + valptr);
-        for (i = 0; i < count; i++)
-            System.out.println(" " + i + "    " + statestk[i] + "      " + valstk[i]);
-        System.out.println("======================");
-    }
+void dump_stacks(int count)
+{
+int i;
+  System.out.println("=index==state====value=     s:"+stateptr+"  v:"+valptr);
+  for (i=0;i<count;i++)
+    System.out.println(" "+i+"    "+statestk[i]+"      "+valstk[i]);
+  System.out.println("======================");
+}
 
 
 //########## SEMANTIC VALUES ##########
 //## **user defined:Object
-    String yytext;//user variable to return contextual strings
-
-    Object yyval; //used to return semantic vals from action routines
-
-    Object yylval;//the 'lval' (result) I got from yylex()
-
-    Object valstk[];
-
-    int valptr;
+String   yytext;//user variable to return contextual strings
+Object yyval; //used to return semantic vals from action routines
+Object yylval;//the 'lval' (result) I got from yylex()
+Object valstk[];
+int valptr;
 //###############################################################
 // methods: value stack push,pop,drop,peek.
 //###############################################################
-    void val_init() {
-        valstk = new Object[YYSTACKSIZE];
-        yyval = new Object();
-        yylval = new Object();
-        valptr = -1;
-    }
-
-    void val_push(Object val) {
-        if (valptr >= YYSTACKSIZE)
-            return;
-        valstk[++valptr] = val;
-    }
-
-    Object val_pop() {
-        if (valptr < 0)
-            return null;
-        return valstk[valptr--];
-    }
-
-    void val_drop(int cnt) {
-        int ptr;
-        ptr = valptr - cnt;
-        if (ptr < 0)
-            return;
-        valptr = ptr;
-    }
-
-    Object val_peek(int relative) {
-        int ptr;
-        ptr = valptr - relative;
-        if (ptr < 0)
-            return null;
-        return valstk[ptr];
-    }
+void val_init()
+{
+  valstk=new Object[YYSTACKSIZE];
+  yyval=new Object();
+  yylval=new Object();
+  valptr=-1;
+}
+void val_push(Object val)
+{
+  if (valptr>=YYSTACKSIZE)
+    return;
+  valstk[++valptr]=val;
+}
+Object val_pop()
+{
+  if (valptr<0)
+    return null;
+  return valstk[valptr--];
+}
+void val_drop(int cnt)
+{
+int ptr;
+  ptr=valptr-cnt;
+  if (ptr<0)
+    return;
+  valptr = ptr;
+}
+Object val_peek(int relative)
+{
+int ptr;
+  ptr=valptr-relative;
+  if (ptr<0)
+    return null;
+  return valstk[ptr];
+}
 //#### end semantic value section ####
-    public final static short LiteralInteger = 257;
-
-    public final static short LiteralFloat64 = 258;
-
-    public final static short LiteralChar = 259;
-
-    public final static short LiteralString = 260;
-
-    public final static short LiteralTwine = 261;
-
-    public final static short Identifier = 262;
-
-    public final static short VerbAssign = 263;
-
-    public final static short QuasiOpen = 264;
-
-    public final static short QuasiClose = 265;
-
-    public final static short DollarIdent = 266;
-
-    public final static short AtIdent = 267;
-
-    public final static short DollarOpen = 268;
-
-    public final static short AtOpen = 269;
-
-    public final static short URI = 270;
-
-    public final static short URIStart = 271;
-
-    public final static short BodyStartWord = 272;
-
-    public final static short BodyNextWord = 273;
-
-    public final static short VTableStartWord = 274;
-
-    public final static short VTableNextWord = 275;
-
-    public final static short BIND = 276;
-
-    public final static short CATCH = 277;
-
-    public final static short CLASS = 278;
-
-    public final static short DEF = 279;
-
-    public final static short DELEGATE = 280;
-
-    public final static short ELSE = 281;
-
-    public final static short ESCAPE = 282;
-
-    public final static short FINALLY = 283;
-
-    public final static short FOR = 284;
-
-    public final static short IF = 285;
-
-    public final static short IN = 286;
-
-    public final static short MATCH = 287;
-
-    public final static short META = 288;
-
-    public final static short PRAGMA = 289;
-
-    public final static short SWITCH = 290;
-
-    public final static short THUNK = 291;
-
-    public final static short TO = 292;
-
-    public final static short TRY = 293;
-
-    public final static short VAR = 294;
-
-    public final static short WHEN = 295;
-
-    public final static short WHILE = 296;
-
-    public final static short _ = 297;
-
-    public final static short DEFINE = 298;
-
-    public final static short ON = 299;
-
-    public final static short SELECT = 300;
-
-    public final static short TYPEDEF = 301;
-
-    public final static short ABSTRACT = 302;
-
-    public final static short AN = 303;
-
-    public final static short AS = 304;
-
-    public final static short ATTRIBUTE = 305;
-
-    public final static short BE = 306;
-
-    public final static short BEGIN = 307;
-
-    public final static short BEHALF = 308;
-
-    public final static short BELIEF = 309;
-
-    public final static short BELIEVE = 310;
-
-    public final static short BELIEVES = 311;
-
-    public final static short CASE = 312;
-
-    public final static short CONST = 313;
-
-    public final static short CONSTRUCTOR = 314;
-
-    public final static short CONTEXT = 315;
-
-    public final static short DECLARE = 316;
-
-    public final static short DEFAULT = 317;
-
-    public final static short DEFMACRO = 318;
-
-    public final static short DEPRECATED = 319;
-
-    public final static short DISPATCH = 320;
-
-    public final static short DO = 321;
-
-    public final static short ENCAPSULATE = 322;
-
-    public final static short ENCAPSULATED = 323;
-
-    public final static short ENCAPSULATES = 324;
-
-    public final static short END = 325;
-
-    public final static short ENSURE = 326;
-
-    public final static short ENUM = 327;
-
-    public final static short EVENTUAL = 328;
-
-    public final static short EVENTUALLY = 329;
-
-    public final static short EXPORT = 330;
-
-    public final static short EXTENDS = 331;
-
-    public final static short FACET = 332;
-
-    public final static short FORALL = 333;
-
-    public final static short FUNCTION = 334;
-
-    public final static short GIVEN = 335;
-
-    public final static short HIDDEN = 336;
-
-    public final static short HIDES = 337;
-
-    public final static short IMPLEMENTS = 338;
-
-    public final static short INTERFACE = 339;
-
-    public final static short IS = 340;
-
-    public final static short KNOW = 341;
-
-    public final static short KNOWS = 342;
-
-    public final static short LAMBDA = 343;
-
-    public final static short LET = 344;
-
-    public final static short METHOD = 345;
-
-    public final static short METHODS = 346;
-
-    public final static short MODULE = 347;
-
-    public final static short NAMESPACE = 348;
-
-    public final static short NATIVE = 349;
-
-    public final static short OBEYS = 350;
-
-    public final static short OCTET = 351;
-
-    public final static short ONEWAY = 352;
-
-    public final static short PACKAGE = 353;
-
-    public final static short PRIVATE = 354;
-
-    public final static short PROTECTED = 355;
-
-    public final static short PUBLIC = 356;
-
-    public final static short RAISES = 357;
-
-    public final static short RELIANCE = 358;
-
-    public final static short RELIANT = 359;
-
-    public final static short RELIES = 360;
-
-    public final static short RELY = 361;
-
-    public final static short REVEAL = 362;
-
-    public final static short SAKE = 363;
-
-    public final static short SIGNED = 364;
-
-    public final static short STATIC = 365;
-
-    public final static short STRUCT = 366;
-
-    public final static short SUCHTHAT = 367;
+public final static short LiteralInteger=257;
+public final static short LiteralFloat64=258;
+public final static short LiteralChar=259;
+public final static short LiteralString=260;
+public final static short LiteralTwine=261;
+public final static short Identifier=262;
+public final static short VerbAssign=263;
+public final static short QuasiOpen=264;
+public final static short QuasiClose=265;
+public final static short DollarIdent=266;
+public final static short AtIdent=267;
+public final static short DollarOpen=268;
+public final static short AtOpen=269;
+public final static short URI=270;
+public final static short URIStart=271;
+public final static short BodyStartWord=272;
+public final static short BodyNextWord=273;
+public final static short VTableStartWord=274;
+public final static short VTableNextWord=275;
+public final static short BIND=276;
+public final static short CATCH=277;
+public final static short CLASS=278;
+public final static short DEF=279;
+public final static short DELEGATE=280;
+public final static short ELSE=281;
+public final static short ESCAPE=282;
+public final static short FINALLY=283;
+public final static short FOR=284;
+public final static short IF=285;
+public final static short IN=286;
+public final static short MATCH=287;
+public final static short META=288;
+public final static short PRAGMA=289;
+public final static short SWITCH=290;
+public final static short THUNK=291;
+public final static short TO=292;
+public final static short TRY=293;
+public final static short VAR=294;
+public final static short WHEN=295;
+public final static short WHILE=296;
+public final static short _=297;
+public final static short DEFINE=298;
+public final static short ON=299;
+public final static short SELECT=300;
+public final static short TYPEDEF=301;
+public final static short ABSTRACT=302;
+public final static short AN=303;
+public final static short AS=304;
+public final static short ATTRIBUTE=305;
+public final static short BE=306;
+public final static short BEGIN=307;
+public final static short BEHALF=308;
+public final static short BELIEF=309;
+public final static short BELIEVE=310;
+public final static short BELIEVES=311;
+public final static short CASE=312;
+public final static short CONST=313;
+public final static short CONSTRUCTOR=314;
+public final static short CONTEXT=315;
+public final static short DECLARE=316;
+public final static short DEFAULT=317;
+public final static short DEFMACRO=318;
+public final static short DEPRECATED=319;
+public final static short DISPATCH=320;
+public final static short DO=321;
+public final static short ENCAPSULATE=322;
+public final static short ENCAPSULATED=323;
+public final static short ENCAPSULATES=324;
+public final static short END=325;
+public final static short ENSURE=326;
+public final static short ENUM=327;
+public final static short EVENTUAL=328;
+public final static short EVENTUALLY=329;
+public final static short EXPORT=330;
+public final static short EXTENDS=331;
+public final static short FACET=332;
+public final static short FORALL=333;
+public final static short FUNCTION=334;
+public final static short GIVEN=335;
+public final static short HIDDEN=336;
+public final static short HIDES=337;
+public final static short IMPLEMENTS=338;
+public final static short INTERFACE=339;
+public final static short IS=340;
+public final static short KNOW=341;
+public final static short KNOWS=342;
+public final static short LAMBDA=343;
+public final static short LET=344;
+public final static short METHOD=345;
+public final static short METHODS=346;
+public final static short MODULE=347;
+public final static short NAMESPACE=348;
+public final static short NATIVE=349;
+public final static short OBEYS=350;
+public final static short OCTET=351;
+public final static short ONEWAY=352;
+public final static short PACKAGE=353;
+public final static short PRIVATE=354;
+public final static short PROTECTED=355;
+public final static short PUBLIC=356;
+public final static short RAISES=357;
+public final static short RELIANCE=358;
+public final static short RELIANT=359;
+public final static short RELIES=360;
+public final static short RELY=361;
+public final static short REVEAL=362;
+public final static short SAKE=363;
+public final static short SIGNED=364;
+public final static short STATIC=365;
+public final static short STRUCT=366;
+public final static short SUCHTHAT=367;
+public final static short SUPPORTS=368;
+public final static short SUSPECT=369;
+public final static short SUSPECTS=370;
+public final static short SYNCHRONIZED=371;
+public final static short THIS=372;
+public final static short THROWS=373;
+public final static short TRANSIENT=374;
+public final static short TRUNCATABLE=375;
+public final static short UNSIGNED=376;
+public final static short UNUM=377;
+public final static short USES=378;
+public final static short USING=379;
+public final static short UTF8=380;
+public final static short UTF16=381;
+public final static short VALUETYPE=382;
+public final static short VIRTUAL=383;
+public final static short VOLATILE=384;
+public final static short WSTRING=385;
+public final static short EOL=386;
+public final static short OpLAnd=387;
+public final static short OpLOr=388;
+public final static short OpSame=389;
+public final static short OpNSame=390;
+public final static short OpButNot=391;
+public final static short OpLeq=392;
+public final static short OpABA=393;
+public final static short OpGeq=394;
+public final static short OpThru=395;
+public final static short OpTill=396;
+public final static short OpAsl=397;
+public final static short OpAsr=398;
+public final static short OpFlrDiv=399;
+public final static short OpMod=400;
+public final static short OpPow=401;
+public final static short OpAss=402;
+public final static short OpAssAdd=403;
+public final static short OpAssAnd=404;
+public final static short OpAssAprxDiv=405;
+public final static short OpAssFlrDiv=406;
+public final static short OpAssAsl=407;
+public final static short OpAssAsr=408;
+public final static short OpAssRemdr=409;
+public final static short OpAssMod=410;
+public final static short OpAssMul=411;
+public final static short OpAssOr=412;
+public final static short OpAssPow=413;
+public final static short OpAssSub=414;
+public final static short OpAssXor=415;
+public final static short Send=416;
+public final static short OpWhen=417;
+public final static short MapsTo=418;
+public final static short MatchBind=419;
+public final static short MisMatch=420;
+public final static short Audit=421;
+public final static short YYERRCODE=256;
+final static short yylhs[] = {                           -1,
+    0,    0,    0,    4,    4,    2,    6,    5,    5,    7,
+    7,    8,   10,   10,   11,   11,   11,   14,   14,   12,
+   12,   12,   12,   12,   12,   12,   12,   16,   16,   21,
+   21,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+   24,   24,   23,   23,   23,   23,   23,   23,   25,   25,
+   25,   26,   26,   26,   28,   28,   27,   27,   27,   30,
+   30,   29,   29,   29,   29,   29,   29,   32,   32,   31,
+   31,   34,   34,   33,   33,   33,   33,   33,   35,   35,
+   35,   35,   35,   35,   35,   35,   35,   38,   38,   38,
+   38,   38,   38,   37,   37,   37,   36,   36,   36,   36,
+   36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+   36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+   36,   36,   36,   36,   36,   59,   59,   59,   59,   59,
+   59,   43,   46,   56,   56,   56,   54,   55,   57,   57,
+   69,   68,   68,   67,   67,   67,   44,   44,   44,   45,
+   45,   70,   70,   71,   71,   72,   72,   74,   74,   75,
+   76,   76,   64,   64,   77,   77,    3,    3,    3,   79,
+   79,   79,   79,   79,   80,   80,   81,   81,   82,   82,
+   83,   83,   84,   84,   85,   85,   78,   78,   78,   78,
+   78,   78,   78,   78,   78,   19,   19,   20,   20,   86,
+   86,   86,   86,   86,   86,   86,   88,   88,   88,   89,
+   89,   60,   60,   90,   90,   15,   15,   87,   87,   92,
+   92,   92,   92,   92,   93,   93,   93,   62,   62,   62,
+   63,   95,   96,   94,   94,   97,   65,   65,   98,   98,
+   99,    1,    1,    9,    9,  100,   73,   18,   18,   39,
+   39,   91,   91,   47,   47,  101,  101,   40,   13,   41,
+   41,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+   17,   17,   17,   49,   49,   50,   61,   61,   61,  104,
+  104,  105,  105,  103,  103,   52,   52,   66,  106,   53,
+   53,   58,   58,  107,  107,  107,  107,  109,  109,  109,
+  109,  108,  108,  108,  111,  111,  112,  112,  113,  113,
+  110,  110,   42,   42,   48,   51,  102,  102,  102,  102,
+  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+};
+final static short yylen[] = {                            2,
+    1,    1,    2,    1,    1,    3,    3,    1,    3,    1,
+    3,    1,    1,    2,    1,    3,    2,    1,    1,    1,
+    3,    3,    3,    3,    4,    3,    3,    1,    3,    1,
+    3,    1,    3,    3,    3,    3,    3,    3,    3,    3,
+    1,    1,    1,    3,    3,    3,    3,    3,    1,    3,
+    3,    1,    3,    3,    1,    1,    1,    3,    3,    1,
+    1,    1,    3,    3,    3,    3,    3,    1,    1,    1,
+    3,    1,    1,    1,    2,    2,    2,    2,    1,    1,
+    4,    4,    3,    3,    2,    3,    4,    2,    3,    3,
+    4,    2,    3,    1,    2,    3,    1,    1,    1,    1,
+    1,    1,    1,    3,    2,    1,    3,    3,    2,    4,
+    4,    5,    5,    1,    1,    1,    1,    3,    2,    2,
+    3,    2,    3,    2,    1,    2,    4,    3,    3,    4,
+    3,    1,    3,    4,    6,    7,    8,    5,    5,    6,
+    0,    6,    6,    0,    1,    1,    0,    1,    3,    1,
+    2,    2,    3,    1,    3,    1,    2,    1,    4,    2,
+    1,    4,    1,    1,    3,    2,    1,    3,    4,    1,
+    3,    5,    3,    5,    1,    2,    1,    2,    1,    2,
+    2,    3,    1,    1,    1,    3,    3,    1,    2,    1,
+    3,    1,    1,    3,    3,    4,    2,    4,    2,    1,
+    1,    2,    2,    3,    3,    1,    2,    2,    2,    1,
+    3,    1,    3,    1,    4,    2,    5,    1,    1,    4,
+    6,    4,    6,    4,    4,    5,    2,    4,    5,    2,
+    6,    4,    3,    0,    2,    3,    8,    6,    1,    3,
+    3,    0,    1,    1,    2,    0,    1,    3,    2,    1,
+    1,    1,    3,    1,    3,    3,    2,    1,    1,    1,
+    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+    1,    1,    1,    4,    6,    4,    5,    1,    1,    1,
+    3,    1,    3,    1,    3,    1,    1,    2,    4,    0,
+    3,    5,    3,    1,    2,    2,    4,    2,    4,    2,
+    4,    2,    5,    4,    2,    3,    1,    4,    2,    2,
+    0,    2,    1,    1,    0,    0,    1,    1,    1,    1,
+    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+};
+final static short yydefred[] = {                         0,
+  244,    0,    0,    0,    2,    0,  260,    0,    0,    0,
+  313,  314,    0,    0,  317,  318,  319,  320,  321,  322,
+  323,  324,  325,  326,  327,  328,  329,  330,  331,  332,
+  333,  334,  335,  336,  337,  338,  339,  340,  341,  342,
+  343,  344,  345,  346,  347,  348,  349,  350,  351,  352,
+  353,  354,  355,  356,  357,  358,  359,  360,  361,  362,
+  363,  364,  365,  366,  367,  368,  369,  370,  371,  372,
+  373,  374,  375,  376,  377,  378,  379,  380,  381,  382,
+  383,  384,  385,  386,  387,  388,  389,  390,  391,  392,
+  393,  394,  395,  396,  397,  398,  399,  400,    0,    0,
+    0,    0,    3,    0,  192,  193,    0,    0,    0,  177,
+    0,  170,  175,  261,   97,   98,   99,  100,  101,    0,
+    0,  103,    0,  315,  315,    0,    0,    4,    0,    0,
+    5,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    8,   12,    0,   15,  132,    0,    0,
+    0,    0,   30,    0,    0,    0,    0,    0,   62,    0,
+    0,   94,    0,   80,    0,  102,    0,  106,    0,  114,
+  115,  116,  117,  125,    0,    0,  245,    0,    0,    0,
+  259,    0,    0,    0,    0,    0,  176,  189,    0,  247,
+    0,    0,  156,    0,    0,    0,  161,    0,    0,    0,
+    0,    0,    0,  179,  178,    0,    0,    0,    0,    0,
+    0,    0,    0,  218,  219,    0,    0,    0,    0,  201,
+  200,    0,    0,  206,  315,    0,    0,    0,  315,    0,
+    0,  124,    0,   78,   77,   75,   76,    0,    0,    0,
+    0,    0,  250,    0,  254,  119,  120,  122,    0,    0,
+    0,    0,    0,    0,    0,    0,  207,    6,    0,    0,
+    0,    0,    0,  262,  263,  264,  265,  266,    0,  267,
+  268,  269,  270,  271,  272,  273,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,  258,
+    0,    0,    0,    0,    0,    0,  150,  105,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,  109,    0,
+    0,  126,  278,  279,    0,  194,  195,    0,    0,  191,
+  208,  209,  166,    0,    0,    0,  157,    0,    0,  160,
+    0,   10,  149,  187,    0,    0,  154,  185,    0,    0,
+  183,  181,  184,    0,  180,  168,  118,  121,  104,  146,
+  145,    0,    0,    0,    0,  202,  203,  129,    0,    0,
+  252,    0,  246,    0,    0,    0,  123,    0,    0,    0,
+    0,  257,    0,  107,  108,    0,    0,    0,    0,    0,
+    0,    0,    0,    9,    0,   16,    0,    0,   21,   23,
+    0,   18,   22,   19,   26,   27,   31,   33,   34,   42,
+   41,   38,   39,   40,   35,   36,   37,   45,   46,   47,
+   44,   48,    0,    0,   56,    0,   53,    0,   61,    0,
+   58,   59,   69,   68,   65,   67,   63,   64,   66,   73,
+   72,   71,    0,    0,    0,    0,    0,    0,    0,  249,
+    0,    0,    0,  152,    0,  151,    0,    0,    0,  164,
+    0,    0,  128,  246,    0,    0,    0,  131,    0,    0,
+  246,    0,    0,    0,  214,    0,  196,  198,  165,    0,
+    0,    0,    0,    7,    0,  133,  169,    0,    0,  182,
+    0,    0,  316,  204,  205,    0,    0,  236,  315,    0,
+  286,    0,  315,  246,    0,    0,    0,    0,    0,  302,
+  293,  256,    0,  255,  253,    0,    0,   25,    0,  216,
+    0,    0,   81,    0,  248,    0,  153,  110,    0,    0,
+  316,    0,  287,  111,  158,    0,    0,    0,  230,  130,
+  316,    0,  280,    0,  233,    0,  127,    0,  172,  159,
+  174,    0,  162,   11,  155,  186,  315,  139,    0,    0,
+    0,    0,  288,    0,  138,    0,    0,  239,    0,  284,
+    0,    0,    0,  305,    0,  307,    0,    0,    0,    0,
+  294,    0,    0,    0,  312,    0,  315,  315,  112,    0,
+  113,    0,    0,  235,  274,    0,    0,    0,    0,    0,
+  232,    0,    0,  315,  140,    0,    0,    0,    0,    0,
+    0,    0,  276,    0,    0,  310,  309,    0,  306,  304,
+  295,  298,  300,  292,  296,    0,    0,    0,    0,    0,
+  135,  228,    0,  316,    0,    0,    0,  281,    0,  277,
+  215,    0,    0,  231,    0,  291,  241,  238,  240,    0,
+  285,    0,    0,    0,    0,  303,  217,  316,  136,  229,
+  275,    0,    0,    0,    0,    0,    0,  283,  316,    0,
+  289,    0,  308,  297,  299,  301,  137,    0,  224,    0,
+    0,    0,  227,  220,  222,    0,    0,  237,  316,    0,
+  316,    0,  143,  142,  223,  225,  221,    0,  226,
+};
+final static short yydgoto[] = {                          3,
+  198,    5,  545,  186,  143,  381,  351,  144,    6,  352,
+  146,  147,  148,  413,  443,  149,  277,  312,  105,  106,
+  152,  153,  154,  422,  155,  156,  157,  437,  158,  441,
+  159,  445,  160,  452,  161,  162,  163,  164,  241,  390,
+  107,  165,  166,  167,  318,  168,  242,  169,  329,  387,
+  570,  509,  575,  170,  171,  172,  173,  232,  174,  175,
+  332,  479,  222,  469,  228,  510,  372,  568,  569,  319,
+  361,  192,  193,  194,  195,  196,  197,  110,  111,  112,
+  113,  205,  206,  362,  363,  223,  224,  176,  225,  486,
+  244,  608,  675,  693,  333,  334,  230,  577,  578,  511,
+  245,  114,  581,  554,  610,  573,  592,  391,  593,  520,
+  516,  585,  586,
+};
+final static short yysindex[] = {                      -310,
+    0,15951,    0,14168,    0, -280,    0, -127, -122,19458,
+    0,    0,19458,   87,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,16556,19458,
+12002, -229,    0,  104,    0,    0,    0,  163,  -95,    0,
+  142,    0,    0,    0,    0,    0,    0,    0,    0,  -44,
+    6,    0,14521,    0,    0,19458,19086,    0,19458,16806,
+    0,  163,19086,19458,16556,16556,16556, -306,   -9,    8,
+ -229,15129, -229,    0,    0,  190,    0,    0,  735, -125,
+ -109, -107,    0,  -24,   76,   66,   52,    2,    0,  -84,
+12592,    0,  265,    0,12252,    0,  -23,    0,  694,    0,
+    0,    0,    0,    0,  197,  -93,    0,  201,  216,  285,
+    0,  290,14521,19458,19458,19086,    0,    0,16680,    0,
+  -48,  260,    0,  -27,  284,  -26,    0,14168,  332,14521,
+ -229,  -40,  456,    0,    0,   46,14521,  255,  257,   49,
+16075,16075,  285,    0,    0,  127,  131,19458,19458,    0,
+    0,  271,  -14,    0,    0,  290, -229,  271,    0,  -20,
+  289,    0,17870,    0,    0,    0,    0,19458,14168,   -5,
+  323,   17,    0,  373,    0,    0,    0,    0,  379,  164,
+  176,19458,19458,   87,   32,  104,    0,    0,12721,14168,
+  265,14521,14168,    0,    0,    0,    0,    0,14168,    0,
+    0,    0,    0,    0,    0,    0,14650,14168,14168,14521,
+14521,14521,15003,15951,15951,15003,15003,15003,14521,14521,
+14521,14521,14521,14521,14521,15003,14521,15003,15003,15003,
+15003,15003,15003,15003,15003,18588, -229,19458,  265,    0,
+ -229,  147,18588,  147,  265, -152,    0,    0,   58,15951,
+12127,  163,  163,  271,  271,  163,17994, -229,    0, -229,
+17400,    0,    0,    0,19458,    0,    0,14521,14521,    0,
+    0,    0,    0,15951,  396, -229,    0,  325, -229,    0,
+ -229,    0,    0,    0,  409,15951,    0,    0, -229,15951,
+    0,    0,    0,  456,    0,    0,    0,    0,    0,    0,
+    0,  271,  197,  327,  333,    0,    0,    0,19458,  419,
+    0,   40,    0,  431,19086, -229,    0, -229, -229,   61,
+   86,    0, -229,    0,    0, -306, -229,    0,  348,  350,
+  285,  290,14168,    0,15129,    0,  147, -107,    0,    0,
+  -12,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,  -96,  -96,    0,   52,    0,   52,    0,    2,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,  147,  265,  383,  265,  147,  437, -126,    0,
+  147,  265,  147,    0, -152,    0,  271,  -48,  193,    0,
+  271,  289,    0,    0,  271,15601,   89,    0,  271,14039,
+    0,  271,15951,  271,    0,  436,    0,    0,    0,16423,
+15951,16423,12127,    0,12721,    0,    0,  357,  358,    0,
+  210, -112,    0,    0,    0,  436,15601,    0,    0,    0,
+    0, -229,    0,    0,19210,  445, -184, -229,19458,    0,
+    0,    0,   -5,    0,    0,    0,    0,    0,  104,    0,
+  102,  147,    0,  147,    0,  147,    0,    0,14168,  206,
+    0,    0,    0,    0,    0,  451,15601,14521,    0,    0,
+    0, -229,    0,    0,    0,  271,    0, -229,    0,    0,
+    0,  -48,    0,    0,    0,    0,    0,    0,  220,  210,
+  455,  221,    0,  214,    0,   90,  179,    0,  463,    0,
+  381,  446,  446,    0,  -10,    0,  446, -229,18712,18712,
+    0,  390, -229,  477,    0, -229,    0,    0,    0, -103,
+    0,  462,  480,    0,    0,  397, -133, -229,    0,  400,
+    0,19458,16075,    0,    0,  462,15951,  271,15951,  462,
+ -229,15951,    0,  242, -229,    0,    0, -229,    0,    0,
+    0,    0,    0,    0,    0, -213,  446,  213,  271,  -64,
+    0,    0,  462,    0,  163,18836,18836,    0, -229,    0,
+    0,  197,16075,    0,  271,    0,    0,    0,    0,  230,
+    0,19210, -229,18712,18712,    0,    0,    0,    0,    0,
+    0, -111,15601,  -30,  271,  114,  271,    0,    0,  271,
+    0,  462,    0,    0,    0,    0,    0,  163,    0,  489,
+14168,15601,    0,    0,    0,  210,  210,    0,    0,  462,
+    0,  497,    0,    0,    0,    0,    0,  462,    0,
+};
+final static short yyrindex[] = {                      9616,
+    0,   81,    0,  645,    0, 8526,    0,    0,    0,    0,
+    0,    0,    0, 8650,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,  821,    0,
+   20,13686,    0, 8916,    0,    0,  969,    0,    0,    0,
+ 9219,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,  821,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,  821,  821,  821,13075,    0,    0,
+13686,   81,  540,    0,    0,   25,    0,    0,  779,    0,
+    0, 9416,    0, 9379, 8346, 7962, 7503, 7330,    0, 7291,
+ 6907,    0, 5168,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,17524,17152,    0,    0,    0, 8951,
+    0, 8984,  821,    0,    0,    0,    0,    0,    0,    0,
+  -35,    0,    0,   30,    0,  449,    0,  821,    0,  821,
+13686,    0,    0,    0,    0,    0,  821,    0,    0,    0,
+  -88,  -86,11183,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,18340,    0,    0,11529,13686,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,  661,   29,
+    0,    0,    0,   33,    0,    0,    0,    0,    0,    0,
+    0,    0,    0, 9773,    0, 1135,    0,    0,  791,  391,
+    0,  821,  821,    0,    0,    0,    0,    0,  821,    0,
+    0,    0,    0,    0,    0,    0,  821,  821,  821,  821,
+  821,  821,  821,   81,   81,  821,  821,  821,  821,  821,
+  821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
+  821,  821,  821,  821,  821,    0,13075,    0, 5589,    0,
+13204, 1522,    0, 2848, 5748,    0,    0,    0,    0,   81,
+   81,    0,    0,    0,    0,    0,    0,13557,    0,  -80,
+    0,    0,    0,    0,    0,    0,    0,  821,  821,    0,
+    0,    0,    0,   81, 9142,15477,    0, 9182,11654,    0,
+   -8,    0,    0,    0,    0,   81,    0,    0,13686,   81,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,  -94,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,  -60,    0,18960,  -37, -105,
+    0,    0,13686,    0,    0,13686,13686, 1681,    0,    0,
+10119,10243,  821,    0,   81,    0,  746, 9449,    0,    0,
+13686,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0, 8193, 8269,    0, 7809,    0, 7886,    0, 7367,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0, 3269, 6169,    0, 6328, 2102,    0,    0,    0,
+ 3428, 6749, 3849,    0,    0,    0,    0,  261,    0,    0,
+    0,    0,    0,    0,    0,    5,  423,    0,    0,  821,
+    0,    0,   81,    0,    0,17276,    0,    0,    0,   81,
+   81,   81,   81,    0,  -18,    0,    0,    0,    0,    0,
+  276,    0,    0,    0,    0,18464,    5,    0,    0, 2261,
+    0,13686,    0,    0,  511,    0,  426,18960,    0,    0,
+    0,    0,    0,    0,    0,10589,10713,    0,11059,    0,
+    0, 4008,    0, 4429,    0, 4588,    0,    0,  821, 5009,
+    0, 2682,    0,    0,    0,    0,    5,  821,    0,    0,
+    0,  429,    0,  280,    0,    0,    0,19582,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,  276,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+  270,    7,    7,    0,  517,    0, -105,  429,    0,    0,
+    0,    0,  429,    0,    0,13686,    0,    0,    0,    0,
+    0,  423,    0,    0,    0,    0,    0,  -80,  -69,    0,
+    0,    0,  -86,    0,    0,  423,   81,    0,   81,  423,
+13686,   81,    0,    0,  -65,    0,    0,19334,    0,    0,
+    0,    0,    0,    0,    0,  440, -105,    0,    0,    0,
+    0,    0,  423,    0,    0,    0,    0,    0,  429,    0,
+    0,  -94,  -88,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,  429,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    5,  423,    0,  423,    0,    0,    0,    0,
+    0,  423,    0,    0,    0,    0,    0,    0,    0,    0,
+  821,    5,    0,    0,    0,  276,  276,    0,    0,  423,
+    0,    0,    0,    0,    0,    0,    0,  423,    0,
+};
+final static short yygindex[] = {                         0,
+    1,    0,  243,   37,    0,  -98,   91,  302, -137,   -1,
+    0, -247,   -2,    0,  903,    0,    0,  295,  159,  188,
+  307,  293,  -49,  143,   45,   67,  -71,    0,   57,  275,
+  233,  457,  272,    0,    0,  -46,    0,    0,  -67, -146,
+  580,   48, -231,   19,    0,  -70,    0,  510,  322,   98,
+   51,  106,   36,    0,    0,  -17,    0,    0,  310,    0,
+ -331,  251,    0,    0,    0,  110, -207, -498,    0,    0,
+ -269, -343,  -83,  -34,    0,    0, -257,  407, -301,    0,
+    0,    0,    0,  234,    0, -118,    0,    0,  -76,  218,
+ -225,    0,  -62, -414, -488,   -4,    0,    0,  -21, -190,
+  211,    0,   59,    0,    0,    0,    0, -512,    0, -500,
+   88,    0,  -50,
+};
+final static int YYTABLESIZE=19967;
 
-    public final static short SUPPORTS = 368;
-
-    public final static short SUSPECT = 369;
-
-    public final static short SUSPECTS = 370;
-
-    public final static short SYNCHRONIZED = 371;
-
-    public final static short THIS = 372;
-
-    public final static short THROWS = 373;
-
-    public final static short TRANSIENT = 374;
-
-    public final static short TRUNCATABLE = 375;
-
-    public final static short UNSIGNED = 376;
-
-    public final static short UNUM = 377;
-
-    public final static short USES = 378;
-
-    public final static short USING = 379;
-
-    public final static short UTF8 = 380;
-
-    public final static short UTF16 = 381;
-
-    public final static short VALUETYPE = 382;
-
-    public final static short VIRTUAL = 383;
-
-    public final static short VOLATILE = 384;
-
-    public final static short WSTRING = 385;
-
-    public final static short EOL = 386;
-
-    public final static short OpLAnd = 387;
-
-    public final static short OpLOr = 388;
-
-    public final static short OpSame = 389;
-
-    public final static short OpNSame = 390;
-
-    public final static short OpButNot = 391;
-
-    public final static short OpLeq = 392;
-
-    public final static short OpABA = 393;
-
-    public final static short OpGeq = 394;
-
-    public final static short OpThru = 395;
-
-    public final static short OpTill = 396;
-
-    public final static short OpAsl = 397;
-
-    public final static short OpAsr = 398;
-
-    public final static short OpFlrDiv = 399;
-
-    public final static short OpMod = 400;
-
-    public final static short OpPow = 401;
-
-    public final static short OpAss = 402;
-
-    public final static short OpAssAdd = 403;
-
-    public final static short OpAssAnd = 404;
-
-    public final static short OpAssAprxDiv = 405;
-
-    public final static short OpAssFlrDiv = 406;
-
-    public final static short OpAssAsl = 407;
-
-    public final static short OpAssAsr = 408;
-
-    public final static short OpAssRemdr = 409;
-
-    public final static short OpAssMod = 410;
-
-    public final static short OpAssMul = 411;
-
-    public final static short OpAssOr = 412;
-
-    public final static short OpAssPow = 413;
-
-    public final static short OpAssSub = 414;
-
-    public final static short OpAssXor = 415;
-
-    public final static short Send = 416;
-
-    public final static short OpWhen = 417;
-
-    public final static short MapsTo = 418;
-
-    public final static short MatchBind = 419;
-
-    public final static short MisMatch = 420;
-
-    public final static short Audit = 421;
-
-    public final static short YYERRCODE = 256;
-
-    final static short yylhs[] = {                           -1,
-        0,    0,    0,    4,    4,    2,    6,    5,    5,    7,
-        7,    8,   10,   10,   11,   11,   11,   14,   14,   12,
-        12,   12,   12,   12,   12,   12,   12,   16,   16,   21,
-        21,   22,   22,   22,   22,   22,   22,   22,   22,   22,
-        24,   24,   23,   23,   23,   23,   23,   23,   25,   25,
-        25,   26,   26,   26,   28,   28,   27,   27,   27,   30,
-        30,   29,   29,   29,   29,   29,   29,   32,   32,   31,
-        31,   34,   34,   33,   33,   33,   33,   33,   35,   35,
-        35,   35,   35,   35,   35,   35,   35,   38,   38,   38,
-        38,   38,   38,   37,   37,   37,   36,   36,   36,   36,
-        36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
-        36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
-        36,   36,   36,   36,   36,   59,   59,   59,   59,   59,
-        59,   43,   46,   56,   56,   56,   54,   55,   57,   57,
-        69,   68,   68,   67,   67,   67,   44,   44,   44,   45,
-        45,   70,   70,   71,   71,   72,   72,   74,   74,   75,
-        76,   76,   64,   64,   77,   77,    3,    3,    3,   79,
-        79,   79,   79,   79,   80,   80,   81,   81,   82,   82,
-        83,   83,   84,   84,   85,   85,   78,   78,   78,   78,
-        78,   78,   78,   78,   78,   19,   19,   20,   20,   86,
-        86,   86,   86,   86,   86,   86,   88,   88,   88,   89,
-        89,   60,   60,   90,   90,   15,   15,   87,   87,   92,
-        92,   92,   92,   92,   93,   93,   93,   62,   62,   62,
-        63,   95,   96,   94,   94,   97,   65,   65,   98,   98,
-        99,    1,    1,    9,    9,  100,   73,   18,   18,   39,
-        39,   91,   91,   47,   47,  101,  101,   40,   13,   41,
-        41,   17,   17,   17,   17,   17,   17,   17,   17,   17,
-        17,   17,   17,   49,   49,   50,   61,   61,   61,  104,
-        104,  105,  105,  103,  103,   52,   52,   66,  106,   53,
-        53,   58,   58,  107,  107,  107,  107,  109,  109,  109,
-        109,  108,  108,  108,  111,  111,  112,  112,  113,  113,
-        110,  110,   42,   42,   48,   51,  102,  102,  102,  102,
-        102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-        102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-        102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-        102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-        102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-        102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-        102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-        102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
-    };
-
-    final static short yylen[] = {                            2,
-        1,    1,    2,    1,    1,    3,    3,    1,    3,    1,
-        3,    1,    1,    2,    1,    3,    2,    1,    1,    1,
-        3,    3,    3,    3,    4,    3,    3,    1,    3,    1,
-        3,    1,    3,    3,    3,    3,    3,    3,    3,    3,
-        1,    1,    1,    3,    3,    3,    3,    3,    1,    3,
-        3,    1,    3,    3,    1,    1,    1,    3,    3,    1,
-        1,    1,    3,    3,    3,    3,    3,    1,    1,    1,
-        3,    1,    1,    1,    2,    2,    2,    2,    1,    1,
-        4,    4,    3,    3,    2,    3,    4,    2,    3,    3,
-        4,    2,    3,    1,    2,    3,    1,    1,    1,    1,
-        1,    1,    1,    3,    2,    1,    3,    3,    2,    4,
-        4,    5,    5,    1,    1,    1,    1,    3,    2,    2,
-        3,    2,    3,    2,    1,    2,    4,    3,    3,    4,
-        3,    1,    3,    4,    6,    7,    8,    5,    5,    6,
-        0,    6,    6,    0,    1,    1,    0,    1,    3,    1,
-        2,    2,    3,    1,    3,    1,    2,    1,    4,    2,
-        1,    4,    1,    1,    3,    2,    1,    3,    4,    1,
-        3,    5,    3,    5,    1,    2,    1,    2,    1,    2,
-        2,    3,    1,    1,    1,    3,    3,    1,    2,    1,
-        3,    1,    1,    3,    3,    4,    2,    4,    2,    1,
-        1,    2,    2,    3,    3,    1,    2,    2,    2,    1,
-        3,    1,    3,    1,    4,    2,    5,    1,    1,    4,
-        6,    4,    6,    4,    4,    5,    2,    4,    5,    2,
-        6,    4,    3,    0,    2,    3,    8,    6,    1,    3,
-        3,    0,    1,    1,    2,    0,    1,    3,    2,    1,
-        1,    1,    3,    1,    3,    3,    2,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    4,    6,    4,    5,    1,    1,    1,
-        3,    1,    3,    1,    3,    1,    1,    2,    4,    0,
-        3,    5,    3,    1,    2,    2,    4,    2,    4,    2,
-        4,    2,    5,    4,    2,    3,    1,    4,    2,    2,
-        0,    2,    1,    1,    0,    0,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-    };
-
-    final static short yydefred[] = {                         0,
-        244,    0,    0,    0,    2,    0,  260,    0,    0,    0,
-        313,  314,    0,    0,  317,  318,  319,  320,  321,  322,
-        323,  324,  325,  326,  327,  328,  329,  330,  331,  332,
-        333,  334,  335,  336,  337,  338,  339,  340,  341,  342,
-        343,  344,  345,  346,  347,  348,  349,  350,  351,  352,
-        353,  354,  355,  356,  357,  358,  359,  360,  361,  362,
-        363,  364,  365,  366,  367,  368,  369,  370,  371,  372,
-        373,  374,  375,  376,  377,  378,  379,  380,  381,  382,
-        383,  384,  385,  386,  387,  388,  389,  390,  391,  392,
-        393,  394,  395,  396,  397,  398,  399,  400,    0,    0,
-        0,    0,    3,    0,  192,  193,    0,    0,    0,  177,
-        0,  170,  175,  261,   97,   98,   99,  100,  101,    0,
-        0,  103,    0,  315,  315,    0,    0,    4,    0,    0,
-        5,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    8,   12,    0,   15,  132,    0,    0,
-        0,    0,   30,    0,    0,    0,    0,    0,   62,    0,
-        0,   94,    0,   80,    0,  102,    0,  106,    0,  114,
-        115,  116,  117,  125,    0,    0,  245,    0,    0,    0,
-        259,    0,    0,    0,    0,    0,  176,  189,    0,  247,
-        0,    0,  156,    0,    0,    0,  161,    0,    0,    0,
-        0,    0,    0,  179,  178,    0,    0,    0,    0,    0,
-        0,    0,    0,  218,  219,    0,    0,    0,    0,  201,
-        200,    0,    0,  206,  315,    0,    0,    0,  315,    0,
-        0,  124,    0,   78,   77,   75,   76,    0,    0,    0,
-        0,    0,  250,    0,  254,  119,  120,  122,    0,    0,
-        0,    0,    0,    0,    0,    0,  207,    6,    0,    0,
-        0,    0,    0,  262,  263,  264,  265,  266,    0,  267,
-        268,  269,  270,  271,  272,  273,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  258,
-        0,    0,    0,    0,    0,    0,  150,  105,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  109,    0,
-        0,  126,  278,  279,    0,  194,  195,    0,    0,  191,
-        208,  209,  166,    0,    0,    0,  157,    0,    0,  160,
-        0,   10,  149,  187,    0,    0,  154,  185,    0,    0,
-        183,  181,  184,    0,  180,  168,  118,  121,  104,  146,
-        145,    0,    0,    0,    0,  202,  203,  129,    0,    0,
-        252,    0,  246,    0,    0,    0,  123,    0,    0,    0,
-        0,  257,    0,  107,  108,    0,    0,    0,    0,    0,
-        0,    0,    0,    9,    0,   16,    0,    0,   21,   23,
-        0,   18,   22,   19,   26,   27,   31,   33,   34,   42,
-        41,   38,   39,   40,   35,   36,   37,   45,   46,   47,
-        44,   48,    0,    0,   56,    0,   53,    0,   61,    0,
-        58,   59,   69,   68,   65,   67,   63,   64,   66,   73,
-        72,   71,    0,    0,    0,    0,    0,    0,    0,  249,
-        0,    0,    0,  152,    0,  151,    0,    0,    0,  164,
-        0,    0,  128,  246,    0,    0,    0,  131,    0,    0,
-        246,    0,    0,    0,  214,    0,  196,  198,  165,    0,
-        0,    0,    0,    7,    0,  133,  169,    0,    0,  182,
-        0,    0,  316,  204,  205,    0,    0,  236,  315,    0,
-        286,    0,  315,  246,    0,    0,    0,    0,    0,  302,
-        293,  256,    0,  255,  253,    0,    0,   25,    0,  216,
-        0,    0,   81,    0,  248,    0,  153,  110,    0,    0,
-        316,    0,  287,  111,  158,    0,    0,    0,  230,  130,
-        316,    0,  280,    0,  233,    0,  127,    0,  172,  159,
-        174,    0,  162,   11,  155,  186,  315,  139,    0,    0,
-        0,    0,  288,    0,  138,    0,    0,  239,    0,  284,
-        0,    0,    0,  305,    0,  307,    0,    0,    0,    0,
-        294,    0,    0,    0,  312,    0,  315,  315,  112,    0,
-        113,    0,    0,  235,  274,    0,    0,    0,    0,    0,
-        232,    0,    0,  315,  140,    0,    0,    0,    0,    0,
-        0,    0,  276,    0,    0,  310,  309,    0,  306,  304,
-        295,  298,  300,  292,  296,    0,    0,    0,    0,    0,
-        135,  228,    0,  316,    0,    0,    0,  281,    0,  277,
-        215,    0,    0,  231,    0,  291,  241,  238,  240,    0,
-        285,    0,    0,    0,    0,  303,  217,  316,  136,  229,
-        275,    0,    0,    0,    0,    0,    0,  283,  316,    0,
-        289,    0,  308,  297,  299,  301,  137,    0,  224,    0,
-        0,    0,  227,  220,  222,    0,    0,  237,  316,    0,
-        316,    0,  143,  142,  223,  225,  221,    0,  226,
-    };
-
-    final static short yydgoto[] = {                          3,
-        198,    5,  545,  186,  143,  381,  351,  144,    6,  352,
-        146,  147,  148,  413,  443,  149,  277,  312,  105,  106,
-        152,  153,  154,  422,  155,  156,  157,  437,  158,  441,
-        159,  445,  160,  452,  161,  162,  163,  164,  241,  390,
-        107,  165,  166,  167,  318,  168,  242,  169,  329,  387,
-        570,  509,  575,  170,  171,  172,  173,  232,  174,  175,
-        332,  479,  222,  469,  228,  510,  372,  568,  569,  319,
-        361,  192,  193,  194,  195,  196,  197,  110,  111,  112,
-        113,  205,  206,  362,  363,  223,  224,  176,  225,  486,
-        244,  608,  675,  693,  333,  334,  230,  577,  578,  511,
-        245,  114,  581,  554,  610,  573,  592,  391,  593,  520,
-        516,  585,  586,
-    };
-
-    final static short yysindex[] = {                      -310,
-        0,15951,    0,14168,    0, -280,    0, -127, -122,19458,
-        0,    0,19458,   87,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,16556,19458,
-        12002, -229,    0,  104,    0,    0,    0,  163,  -95,    0,
-        142,    0,    0,    0,    0,    0,    0,    0,    0,  -44,
-        6,    0,14521,    0,    0,19458,19086,    0,19458,16806,
-        0,  163,19086,19458,16556,16556,16556, -306,   -9,    8,
-        -229,15129, -229,    0,    0,  190,    0,    0,  735, -125,
-        -109, -107,    0,  -24,   76,   66,   52,    2,    0,  -84,
-        12592,    0,  265,    0,12252,    0,  -23,    0,  694,    0,
-        0,    0,    0,    0,  197,  -93,    0,  201,  216,  285,
-        0,  290,14521,19458,19458,19086,    0,    0,16680,    0,
-        -48,  260,    0,  -27,  284,  -26,    0,14168,  332,14521,
-        -229,  -40,  456,    0,    0,   46,14521,  255,  257,   49,
-        16075,16075,  285,    0,    0,  127,  131,19458,19458,    0,
-        0,  271,  -14,    0,    0,  290, -229,  271,    0,  -20,
-        289,    0,17870,    0,    0,    0,    0,19458,14168,   -5,
-        323,   17,    0,  373,    0,    0,    0,    0,  379,  164,
-        176,19458,19458,   87,   32,  104,    0,    0,12721,14168,
-        265,14521,14168,    0,    0,    0,    0,    0,14168,    0,
-        0,    0,    0,    0,    0,    0,14650,14168,14168,14521,
-        14521,14521,15003,15951,15951,15003,15003,15003,14521,14521,
-        14521,14521,14521,14521,14521,15003,14521,15003,15003,15003,
-        15003,15003,15003,15003,15003,18588, -229,19458,  265,    0,
-        -229,  147,18588,  147,  265, -152,    0,    0,   58,15951,
-        12127,  163,  163,  271,  271,  163,17994, -229,    0, -229,
-        17400,    0,    0,    0,19458,    0,    0,14521,14521,    0,
-        0,    0,    0,15951,  396, -229,    0,  325, -229,    0,
-        -229,    0,    0,    0,  409,15951,    0,    0, -229,15951,
-        0,    0,    0,  456,    0,    0,    0,    0,    0,    0,
-        0,  271,  197,  327,  333,    0,    0,    0,19458,  419,
-        0,   40,    0,  431,19086, -229,    0, -229, -229,   61,
-        86,    0, -229,    0,    0, -306, -229,    0,  348,  350,
-        285,  290,14168,    0,15129,    0,  147, -107,    0,    0,
-        -12,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  -96,  -96,    0,   52,    0,   52,    0,    2,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  147,  265,  383,  265,  147,  437, -126,    0,
-        147,  265,  147,    0, -152,    0,  271,  -48,  193,    0,
-        271,  289,    0,    0,  271,15601,   89,    0,  271,14039,
-        0,  271,15951,  271,    0,  436,    0,    0,    0,16423,
-        15951,16423,12127,    0,12721,    0,    0,  357,  358,    0,
-        210, -112,    0,    0,    0,  436,15601,    0,    0,    0,
-        0, -229,    0,    0,19210,  445, -184, -229,19458,    0,
-        0,    0,   -5,    0,    0,    0,    0,    0,  104,    0,
-        102,  147,    0,  147,    0,  147,    0,    0,14168,  206,
-        0,    0,    0,    0,    0,  451,15601,14521,    0,    0,
-        0, -229,    0,    0,    0,  271,    0, -229,    0,    0,
-        0,  -48,    0,    0,    0,    0,    0,    0,  220,  210,
-        455,  221,    0,  214,    0,   90,  179,    0,  463,    0,
-        381,  446,  446,    0,  -10,    0,  446, -229,18712,18712,
-        0,  390, -229,  477,    0, -229,    0,    0,    0, -103,
-        0,  462,  480,    0,    0,  397, -133, -229,    0,  400,
-        0,19458,16075,    0,    0,  462,15951,  271,15951,  462,
-        -229,15951,    0,  242, -229,    0,    0, -229,    0,    0,
-        0,    0,    0,    0,    0, -213,  446,  213,  271,  -64,
-        0,    0,  462,    0,  163,18836,18836,    0, -229,    0,
-        0,  197,16075,    0,  271,    0,    0,    0,    0,  230,
-        0,19210, -229,18712,18712,    0,    0,    0,    0,    0,
-        0, -111,15601,  -30,  271,  114,  271,    0,    0,  271,
-        0,  462,    0,    0,    0,    0,    0,  163,    0,  489,
-        14168,15601,    0,    0,    0,  210,  210,    0,    0,  462,
-        0,  497,    0,    0,    0,    0,    0,  462,    0,
-    };
-
-    final static short yyrindex[] = {                      9616,
-        0,   81,    0,  645,    0, 8526,    0,    0,    0,    0,
-        0,    0,    0, 8650,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  821,    0,
-        20,13686,    0, 8916,    0,    0,  969,    0,    0,    0,
-        9219,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  821,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  821,  821,  821,13075,    0,    0,
-        13686,   81,  540,    0,    0,   25,    0,    0,  779,    0,
-        0, 9416,    0, 9379, 8346, 7962, 7503, 7330,    0, 7291,
-        6907,    0, 5168,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,17524,17152,    0,    0,    0, 8951,
-        0, 8984,  821,    0,    0,    0,    0,    0,    0,    0,
-        -35,    0,    0,   30,    0,  449,    0,  821,    0,  821,
-        13686,    0,    0,    0,    0,    0,  821,    0,    0,    0,
-        -88,  -86,11183,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,18340,    0,    0,11529,13686,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  661,   29,
-        0,    0,    0,   33,    0,    0,    0,    0,    0,    0,
-        0,    0,    0, 9773,    0, 1135,    0,    0,  791,  391,
-        0,  821,  821,    0,    0,    0,    0,    0,  821,    0,
-        0,    0,    0,    0,    0,    0,  821,  821,  821,  821,
-        821,  821,  821,   81,   81,  821,  821,  821,  821,  821,
-        821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
-        821,  821,  821,  821,  821,    0,13075,    0, 5589,    0,
-        13204, 1522,    0, 2848, 5748,    0,    0,    0,    0,   81,
-        81,    0,    0,    0,    0,    0,    0,13557,    0,  -80,
-        0,    0,    0,    0,    0,    0,    0,  821,  821,    0,
-        0,    0,    0,   81, 9142,15477,    0, 9182,11654,    0,
-        -8,    0,    0,    0,    0,   81,    0,    0,13686,   81,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  -94,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  -60,    0,18960,  -37, -105,
-        0,    0,13686,    0,    0,13686,13686, 1681,    0,    0,
-        10119,10243,  821,    0,   81,    0,  746, 9449,    0,    0,
-        13686,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0, 8193, 8269,    0, 7809,    0, 7886,    0, 7367,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0, 3269, 6169,    0, 6328, 2102,    0,    0,    0,
-        3428, 6749, 3849,    0,    0,    0,    0,  261,    0,    0,
-        0,    0,    0,    0,    0,    5,  423,    0,    0,  821,
-        0,    0,   81,    0,    0,17276,    0,    0,    0,   81,
-        81,   81,   81,    0,  -18,    0,    0,    0,    0,    0,
-        276,    0,    0,    0,    0,18464,    5,    0,    0, 2261,
-        0,13686,    0,    0,  511,    0,  426,18960,    0,    0,
-        0,    0,    0,    0,    0,10589,10713,    0,11059,    0,
-        0, 4008,    0, 4429,    0, 4588,    0,    0,  821, 5009,
-        0, 2682,    0,    0,    0,    0,    5,  821,    0,    0,
-        0,  429,    0,  280,    0,    0,    0,19582,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  276,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        270,    7,    7,    0,  517,    0, -105,  429,    0,    0,
-        0,    0,  429,    0,    0,13686,    0,    0,    0,    0,
-        0,  423,    0,    0,    0,    0,    0,  -80,  -69,    0,
-        0,    0,  -86,    0,    0,  423,   81,    0,   81,  423,
-        13686,   81,    0,    0,  -65,    0,    0,19334,    0,    0,
-        0,    0,    0,    0,    0,  440, -105,    0,    0,    0,
-        0,    0,  423,    0,    0,    0,    0,    0,  429,    0,
-        0,  -94,  -88,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  429,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    5,  423,    0,  423,    0,    0,    0,    0,
-        0,  423,    0,    0,    0,    0,    0,    0,    0,    0,
-        821,    5,    0,    0,    0,  276,  276,    0,    0,  423,
-        0,    0,    0,    0,    0,    0,    0,  423,    0,
-    };
-
-    final static short yygindex[] = {                         0,
-        1,    0,  243,   37,    0,  -98,   91,  302, -137,   -1,
-        0, -247,   -2,    0,  903,    0,    0,  295,  159,  188,
-        307,  293,  -49,  143,   45,   67,  -71,    0,   57,  275,
-        233,  457,  272,    0,    0,  -46,    0,    0,  -67, -146,
-        580,   48, -231,   19,    0,  -70,    0,  510,  322,   98,
-        51,  106,   36,    0,    0,  -17,    0,    0,  310,    0,
-        -331,  251,    0,    0,    0,  110, -207, -498,    0,    0,
-        -269, -343,  -83,  -34,    0,    0, -257,  407, -301,    0,
-        0,    0,    0,  234,    0, -118,    0,    0,  -76,  218,
-        -225,    0,  -62, -414, -488,   -4,    0,    0,  -21, -190,
-        211,    0,   59,    0,    0,    0,    0, -512,    0, -500,
-        88,    0,  -50,
-    };
-
-    final static int YYTABLESIZE = 19967;
-
 //These two tables are not statically initialized, but rather
 //initialized on first use, so that a failure to initialize them
 //can successfully report the problem.
-    static private short[] yytable = null;
-
-    static private short[] yycheck = null;
-
-    /** Ensures that yytable and yycheck are initialized. */
-    static private void initTables() {
-        if (null != yycheck) {
-            return;
+static private short[] yytable = null;
+static private short[] yycheck = null;
+/** Ensures that yytable and yycheck are initialized. */
+static private void initTables() {
+    if (null != yycheck) {
+        return;
+    }
+    try {
+        String rName = "org/erights/e/elang/syntax/ParserTables.data";
+        InputStream inp = ClassLoader.getSystemResourceAsStream(rName);
+        if (null == inp) {
+            throw new RuntimeException(rName + " not found");
         }
-        try {
-            String rName = "org/erights/e/elang/syntax/ParserTables.data";
-            InputStream inp = ClassLoader.getSystemResourceAsStream(rName);
-            if (null == inp) {
-                throw new RuntimeException(rName + " not found");
-            }
-            ObjectInput obInp = new ObjectInputStream(inp);
-            yytable = (short[])obInp.readObject();
-            yycheck = (short[])obInp.readObject();
-            long hash = EYaccFixer.checkhash(yytable, yycheck);
-            if (hash != -4408874519322207609L) {
-                throw new RuntimeException(rName + " bad checkhash: " +
-                                           hash);
-            }
-        } catch (Exception ex) {
-            throw ThrowableSugar.backtrace(ex, "initializing parser");
+        ObjectInput obInp = new ObjectInputStream(inp);
+        yytable = (short[])obInp.readObject();
+        yycheck = (short[])obInp.readObject();
+        long hash = EYaccFixer.checkhash(yytable, yycheck);
+        if (hash != -4408874519322207609L) {
+            throw new RuntimeException(rName + " bad checkhash: " +
+                                       hash);
         }
+    } catch (Exception ex) {
+        throw ThrowableSugar.backtrace(ex, "initializing parser");
     }
-
-    final static short YYFINAL = 3;
-
-    final static short YYMAXTOKEN = 421;
+}
 
-    final static String yyname[] = {
-        "end-of-file",null,null,null,null,null,null,null,null,null,null,null,null,null,
-        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-        null,null,null,"'!'",null,null,"'$'","'%'","'&'",null,"'('","')'","'*'","'+'",
-        "','","'-'","'.'","'/'",null,null,null,null,null,null,null,null,null,null,"':'",
-        "';'","'<'",null,"'>'","'?'","'@'",null,null,null,null,null,null,null,null,null,
-        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-        null,"'['",null,"']'","'^'",null,null,null,null,null,null,null,null,null,null,
-        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-        null,null,"'{'","'|'","'}'","'~'",null,null,null,null,null,null,null,null,null,
-        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-        null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
-        null,null,null,null,null,null,null,null,null,"LiteralInteger","LiteralFloat64",
-        "LiteralChar","LiteralString","LiteralTwine","Identifier","VerbAssign",
-        "QuasiOpen","QuasiClose","DollarIdent","AtIdent","DollarOpen","AtOpen","URI",
-        "URIStart","BodyStartWord","BodyNextWord","VTableStartWord","VTableNextWord",
-        "BIND","CATCH","CLASS","DEF","DELEGATE","ELSE","ESCAPE","FINALLY","FOR","IF",
-        "IN","MATCH","META","PRAGMA","SWITCH","THUNK","TO","TRY","VAR","WHEN","WHILE",
-        "_","DEFINE","ON","SELECT","TYPEDEF","ABSTRACT","AN","AS","ATTRIBUTE","BE",
-        "BEGIN","BEHALF","BELIEF","BELIEVE","BELIEVES","CASE","CONST","CONSTRUCTOR",
-        "CONTEXT","DECLARE","DEFAULT","DEFMACRO","DEPRECATED","DISPATCH","DO",
-        "ENCAPSULATE","ENCAPSULATED","ENCAPSULATES","END","ENSURE","ENUM","EVENTUAL",
-        "EVENTUALLY","EXPORT","EXTENDS","FACET","FORALL","FUNCTION","GIVEN","HIDDEN",
-        "HIDES","IMPLEMENTS","INTERFACE","IS","KNOW","KNOWS","LAMBDA","LET","METHOD",
-        "METHODS","MODULE","NAMESPACE","NATIVE","OBEYS","OCTET","ONEWAY","PACKAGE",
-        "PRIVATE","PROTECTED","PUBLIC","RAISES","RELIANCE","RELIANT","RELIES","RELY",
-        "REVEAL","SAKE","SIGNED","STATIC","STRUCT","SUCHTHAT","SUPPORTS","SUSPECT",
-        "SUSPECTS","SYNCHRONIZED","THIS","THROWS","TRANSIENT","TRUNCATABLE","UNSIGNED",
-        "UNUM","USES","USING","UTF8","UTF16","VALUETYPE","VIRTUAL","VOLATILE","WSTRING",
-        "EOL","OpLAnd","OpLOr","OpSame","OpNSame","OpButNot","OpLeq","OpABA","OpGeq",
-        "OpThru","OpTill","OpAsl","OpAsr","OpFlrDiv","OpMod","OpPow","OpAss","OpAssAdd",
-        "OpAssAnd","OpAssAprxDiv","OpAssFlrDiv","OpAssAsl","OpAssAsr","OpAssRemdr",
-        "OpAssMod","OpAssMul","OpAssOr","OpAssPow","OpAssSub","OpAssXor","Send",
-        "OpWhen","MapsTo","MatchBind","MisMatch","Audit",
-    };
-
-    final static String yyrule[] = {
-        "$accept : start",
-        "start : br",
-        "start : topExpr",
-        "start : MatchBind pattern",
-        "define : DEF",
-        "define : DEFINE",
-        "topExpr : br topSeqs br",
-        "eExpr : br seqs br",
-        "topSeqs : topSeq",
-        "topSeqs : topSeqs EOLs topSeq",
-        "seqs : seq",
-        "seqs : seqs EOLs seq",
-        "topSeq : seq",
-        "seq : assigns",
-        "seq : assigns ';'",
-        "assigns : assign",
-        "assigns : assigns ';' assign",
-        "assigns : define noun",
-        "nAssign : assign",
-        "nAssign : plural",
-        "assign : cond",
-        "assign : cond OpAss assign",
-        "assign : cond assignop nAssign",
-        "assign : cond OpAssAsr assign",
-        "assign : cond VerbAssign parenArgs",
-        "assign : define pattern OpAss assign",
-        "assign : binder OpAss assign",
-        "assign : varNamer OpAss assign",
-        "cond : condAnd",
-        "cond : cond OpLOr condAnd",
-        "condAnd : comp",
-        "condAnd : condAnd OpLAnd comp",
-        "comp : order",
-        "comp : order OpSame order",
-        "comp : order OpNSame order",
-        "comp : order '&' nOrder",
-        "comp : order '|' nOrder",
-        "comp : order '^' nOrder",
-        "comp : order OpButNot nOrder",
-        "comp : order MatchBind pattern",
-        "comp : order MisMatch pattern",
-        "nOrder : order",
-        "nOrder : plural",
-        "order : interval",
-        "order : interval '<' interval",
-        "order : interval OpLeq interval",
-        "order : interval OpABA interval",
-        "order : interval OpGeq interval",
-        "order : interval '>' interval",
-        "interval : shift",
-        "interval : shift OpThru shift",
-        "interval : shift OpTill shift",
-        "shift : add",
-        "shift : shift OpAsl nAdd",
-        "shift : shift OpAsr add",
-        "nAdd : add",
-        "nAdd : plural",
-        "add : mult",
-        "add : add '+' nMult",
-        "add : add '-' nMult",
-        "nMult : mult",
-        "nMult : plural",
-        "mult : pow",
-        "mult : mult '*' nPow",
-        "mult : mult '/' nPow",
-        "mult : mult OpFlrDiv nPow",
-        "mult : mult '%' nPow",
-        "mult : mult OpMod nPow",
-        "nPow : pow",
-        "nPow : plural",
-        "pow : prefix",
-        "pow : prefix OpPow nPrefix",
-        "nPrefix : prefix",
-        "nPrefix : plural",
-        "prefix : postfix",
-        "prefix : '!' prim",
-        "prefix : '~' prim",
-        "prefix : '-' prim",
-        "prefix : '&' noun",
-        "postfix : call",
-        "postfix : metaExpr",
-        "postfix : postfix '[' argList ']'",
-        "postfix : postfix Send verb parenArgs",
-        "postfix : postfix Send parenArgs",
-        "postfix : postfix Send verb",
-        "postfix : postfix verb",
-        "postfix : postfix '.' ident",
-        "postfix : postfix '.' ident parenArgs",
-        "metaExpr : metaoid parenArgs",
-        "metaExpr : metaoid verb parenArgs",
-        "metaExpr : metaoid Send parenArgs",
-        "metaExpr : metaoid Send verb parenArgs",
-        "metaExpr : metaoid verb",
-        "metaExpr : metaoid Send verb",
-        "call : prim",
-        "call : call parenArgs",
-        "call : postfix verb parenArgs",
-        "prim : LiteralInteger",
-        "prim : LiteralFloat64",
-        "prim : LiteralChar",
-        "prim : LiteralString",
-        "prim : LiteralTwine",
-        "prim : nounExpr",
-        "prim : URI",
-        "prim : URIStart add '>'",
-        "prim : quasiParser quasiExpr",
-        "prim : parenExpr",
-        "prim : '[' argList ']'",
-        "prim : '[' maps ']'",
-        "prim : begin body",
-        "prim : begin ESCAPE pattern body",
-        "prim : begin WHILE parenExpr body",
-        "prim : begin SWITCH parenExpr caseList end",
-        "prim : begin TRY body catchList finallyClause",
-        "prim : forExpr",
-        "prim : whenExpr",
-        "prim : ifExpr",
-        "prim : macro",
-        "prim : DollarOpen LiteralInteger '}'",
-        "prim : '$' LiteralInteger",
-        "prim : '$' '$'",
-        "prim : AtOpen LiteralInteger '}'",
-        "prim : '@' LiteralInteger",
-        "prim : SELECT parenExpr caseList",
-        "prim : TYPEDEF oType",
-        "prim : object",
-        "object : defAudits vTable",
-        "object : defAudits begin funcHead body",
-        "object : begin THUNK body",
-        "object : CLASS classHead body",
-        "object : begin _ funcHead body",
-        "object : begin _ body",
-        "nounExpr : noun",
-        "parenExpr : '(' eExpr ')'",
-        "ifExpr : begin IF parenExpr body",
-        "ifExpr : begin IF parenExpr body ELSE ifExpr",
-        "ifExpr : begin IF parenExpr body ELSE begin body",
-        "forExpr : begin FOR iterPattern IN assign begin body end",
-        "whenExpr : WHEN whenHead body catches finallyClause",
-        "macro : BodyStartWord begin macroArg body restMacro",
-        "macro : VTableStartWord begin macroArg vTable end restMacro",
-        "$$1 :",
-        "restMacro : $$1 BodyNextWord begin macroArg body restMacro",
-        "restMacro : VTableNextWord begin macroArg vTable end restMacro",
-        "macroArg :",
-        "macroArg : parenExpr",
-        "macroArg : pattern",
-        "quasiParser :",
-        "quasiParser : ident",
-        "quasiParser : '(' eExpr ')'",
-        "quasiExpr : QuasiClose",
-        "quasiExpr : innerExprs QuasiClose",
-        "innerExprs : QuasiOpen innerExpr",
-        "innerExprs : innerExprs QuasiOpen innerExpr",
-        "innerExpr : DollarIdent",
-        "innerExpr : DollarOpen eExpr '}'",
-        "patternList : emptyBr",
-        "patternList : patterns br",
-        "patterns : pattern",
-        "patterns : patterns ',' br pattern",
-        "mapPatternList : mapPatterns br",
-        "mapPatterns : mapPattern",
-        "mapPatterns : mapPatterns ',' br mapPattern",
-        "iterPattern : pattern",
-        "iterPattern : mapPattern",
-        "mapPattern : pattern MapsTo pattern",
-        "mapPattern : MapsTo namer",
-        "pattern : listPatt",
-        "pattern : listPatt '?' order",
-        "pattern : metaoid parenExpr MapsTo pattern",
-        "listPatt : eqPatt",
-        "listPatt : '[' patternList ']'",
-        "listPatt : '[' patternList ']' '+' listPatt",
-        "listPatt : '[' mapPatternList ']'",
-        "listPatt : '[' mapPatternList ']' '|' listPatt",
-        "eqPatt : quasiPatt",
-        "eqPatt : OpSame prim",
-        "quasiPatt : namer",
-        "quasiPatt : quasiParser quasiPattern",
-        "quasiPattern : QuasiClose",
-        "quasiPattern : innerThings QuasiClose",
-        "innerThings : QuasiOpen innerThing",
-        "innerThings : innerThings QuasiOpen innerThing",
-        "innerThing : innerExpr",
-        "innerThing : innerPattern",
-        "innerPattern : AtIdent",
-        "innerPattern : AtOpen pattern '}'",
-        "namer : noun ':' order",
-        "namer : noun",
-        "namer : '&' noun",
-        "namer : _",
-        "namer : _ ':' order",
-        "namer : binder",
-        "namer : varNamer",
-        "namer : DollarOpen LiteralInteger '}'",
-        "namer : AtOpen LiteralInteger '}'",
-        "binder : BIND noun ':' order",
-        "binder : BIND noun",
-        "varNamer : VAR noun ':' order",
-        "varNamer : VAR noun",
-        "oName : noun",
-        "oName : _",
-        "oName : BIND noun",
-        "oName : VAR noun",
-        "oName : DollarOpen LiteralInteger '}'",
-        "oName : AtOpen LiteralInteger '}'",
-        "oName : litString",
-        "defName : define oName",
-        "defName : BIND noun",
-        "defName : VAR noun",
-        "audits : oName",
-        "audits : oName Audit nounExprs",
-        "defAudits : defName",
-        "defAudits : defName Audit nounExprs",
-        "nounExprs : nounExpr",
-        "nounExprs : nounExprs ',' br nounExpr",
-        "plural : '(' ')'",
-        "plural : '(' eExpr ',' args ')'",
-        "litString : LiteralString",
-        "litString : LiteralTwine",
-        "method : begin TO methHead body",
-        "method : begin TO verb OpAss assign end",
-        "method : begin ON methHead body",
-        "method : begin META parenExpr MapsTo parenExpr end",
-        "method : begin META parenExpr body",
-        "methHead : '(' patternList ')' resultGuard",
-        "methHead : verb '(' patternList ')' resultGuard",
-        "methHead : verb resultGuard",
-        "funcHead : '(' patternList ')' resultGuard",
-        "funcHead : verb '(' patternList ')' resultGuard",
-        "funcHead : verb resultGuard",
-        "classHead : audits begin '(' patternList ')' resultGuard",
-        "matcher : begin MATCH pattern body",
-        "delegator : begin DELEGATE body",
-        "resultGuard :",
-        "resultGuard : ':' order",
-        "whenArgs : '(' args ')'",
-        "whenHead : whenArgs OpWhen audits begin '(' patterns ')' resultGuard",
-        "whenHead : audits begin '(' whenClauses ')' resultGuard",
-        "whenClauses : whenClause",
-        "whenClauses : whenClauses ',' whenClause",
-        "whenClause : eExpr OpWhen pattern",
-        "br :",
-        "br : EOLs",
-        "EOLs : EOL",
-        "EOLs : EOLs EOL",
-        "emptyList :",
-        "emptyBr : br",
-        "parenArgs : '(' argList ')'",
-        "parenArgs : parenArgs object",
-        "argList : emptyBr",
-        "argList : args",
-        "args : eExpr",
-        "args : args ',' eExpr",
-        "maps : map",
-        "maps : maps ',' map",
-        "map : eExpr MapsTo eExpr",
-        "map : MapsTo nounExpr",
-        "verb : ident",
-        "noun : ident",
-        "ident : Identifier",
-        "ident : reserved",
-        "assignop : OpAssAdd",
-        "assignop : OpAssAnd",
-        "assignop : OpAssAprxDiv",
-        "assignop : OpAssFlrDiv",
-        "assignop : OpAssAsl",
-        "assignop : OpAssRemdr",
-        "assignop : OpAssMod",
-        "assignop : OpAssMul",
-        "assignop : OpAssOr",
-        "assignop : OpAssPow",
-        "assignop : OpAssSub",
-        "assignop : OpAssXor",
-        "body : '{' br '}' end",
-        "body : '{' br seqs br '}' end",
-        "caseList : '{' br matchList '}'",
-        "vTable : '{' br methodList vMatchList '}'",
-        "vTable : matcher",
-        "vTable : delegator",
-        "methodList : emptyList",
-        "methodList : methodList method br",
-        "vMatchList : matchList",
-        "vMatchList : matchList delegator br",
-        "matchList : emptyList",
-        "matchList : matchList matcher br",
-        "catchList : emptyList",
-        "catchList : catches",
-        "catches : catchList catchClause",
-        "catchClause : begin CATCH pattern body",
-        "finallyClause :",
-        "finallyClause : begin FINALLY body",
-        "oType : audits '{' br messageList '}'",
-        "oType : audits mType EOL",
-        "messageList : emptyList",
-        "messageList : DELEGATE br",
-        "messageList : messages br",
-        "messageList : messages EOLs DELEGATE br",
-        "messages : TO mType",
-        "messages : messages EOLs TO mType",
-        "messages : ON mType",
-        "messages : messages EOLs ON mType",
-        "mType : verb optType",
-        "mType : verb '(' pTypeList ')' optType",
-        "mType : '(' pTypeList ')' optType",
-        "pTypeList : br emptyList",
-        "pTypeList : br pTypes br",
-        "pTypes : pType",
-        "pTypes : pTypes ',' br pType",
-        "pType : noun optType",
-        "pType : _ optType",
-        "optType :",
-        "optType : ':' nounExpr",
-        "metaoid : META",
-        "metaoid : PRAGMA",
-        "begin :",
-        "end :",
-        "reserved : ABSTRACT",
-        "reserved : AN",
-        "reserved : AS",
-        "reserved : ATTRIBUTE",
-        "reserved : BE",
-        "reserved : BEGIN",
-        "reserved : BEHALF",
-        "reserved : BELIEF",
-        "reserved : BELIEVE",
-        "reserved : BELIEVES",
-        "reserved : CASE",
-        "reserved : CONST",
-        "reserved : CONSTRUCTOR",
-        "reserved : CONTEXT",
-        "reserved : DECLARE",
-        "reserved : DEFAULT",
-        "reserved : DEFMACRO",
-        "reserved : DEPRECATED",
-        "reserved : DISPATCH",
-        "reserved : DO",
-        "reserved : ENCAPSULATE",
-        "reserved : ENCAPSULATED",
-        "reserved : ENCAPSULATES",
-        "reserved : END",
-        "reserved : ENSURE",
-        "reserved : ENUM",
-        "reserved : EVENTUAL",
-        "reserved : EVENTUALLY",
-        "reserved : EXPORT",
-        "reserved : EXTENDS",
-        "reserved : FACET",
-        "reserved : FORALL",
-        "reserved : FUNCTION",
-        "reserved : GIVEN",
-        "reserved : HIDDEN",
-        "reserved : HIDES",
-        "reserved : IMPLEMENTS",
-        "reserved : INTERFACE",
-        "reserved : IS",
-        "reserved : KNOW",
-        "reserved : KNOWS",
-        "reserved : LAMBDA",
-        "reserved : LET",
-        "reserved : METHOD",
-        "reserved : METHODS",
-        "reserved : MODULE",
-        "reserved : NAMESPACE",
-        "reserved : NATIVE",
-        "reserved : OBEYS",
-        "reserved : OCTET",
-        "reserved : ONEWAY",
-        "reserved : PACKAGE",
-        "reserved : PRIVATE",
-        "reserved : PROTECTED",
-        "reserved : PUBLIC",
-        "reserved : RAISES",
-        "reserved : RELIANCE",
-        "reserved : RELIANT",
-        "reserved : RELIES",
-        "reserved : RELY",
-        "reserved : REVEAL",
-        "reserved : SAKE",
-        "reserved : SIGNED",
-        "reserved : STATIC",
-        "reserved : STRUCT",
-        "reserved : SUCHTHAT",
-        "reserved : SUPPORTS",
-        "reserved : SUSPECT",
-        "reserved : SUSPECTS",
-        "reserved : SYNCHRONIZED",
-        "reserved : THIS",
-        "reserved : THROWS",
-        "reserved : TRANSIENT",
-        "reserved : TRUNCATABLE",
-        "reserved : UNSIGNED",
-        "reserved : UNUM",
-        "reserved : USES",
-        "reserved : USING",
-        "reserved : UTF8",
-        "reserved : UTF16",
-        "reserved : VALUETYPE",
-        "reserved : VIRTUAL",
-        "reserved : VOLATILE",
-        "reserved : WSTRING",
-    };
+final static short YYFINAL=3;
+final static short YYMAXTOKEN=421;
+final static String yyname[] = {
+"end-of-file",null,null,null,null,null,null,null,null,null,null,null,null,null,
+null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+null,null,null,"'!'",null,null,"'$'","'%'","'&'",null,"'('","')'","'*'","'+'",
+"','","'-'","'.'","'/'",null,null,null,null,null,null,null,null,null,null,"':'",
+"';'","'<'",null,"'>'","'?'","'@'",null,null,null,null,null,null,null,null,null,
+null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+null,"'['",null,"']'","'^'",null,null,null,null,null,null,null,null,null,null,
+null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+null,null,"'{'","'|'","'}'","'~'",null,null,null,null,null,null,null,null,null,
+null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
+null,null,null,null,null,null,null,null,null,"LiteralInteger","LiteralFloat64",
+"LiteralChar","LiteralString","LiteralTwine","Identifier","VerbAssign",
+"QuasiOpen","QuasiClose","DollarIdent","AtIdent","DollarOpen","AtOpen","URI",
+"URIStart","BodyStartWord","BodyNextWord","VTableStartWord","VTableNextWord",
+"BIND","CATCH","CLASS","DEF","DELEGATE","ELSE","ESCAPE","FINALLY","FOR","IF",
+"IN","MATCH","META","PRAGMA","SWITCH","THUNK","TO","TRY","VAR","WHEN","WHILE",
+"_","DEFINE","ON","SELECT","TYPEDEF","ABSTRACT","AN","AS","ATTRIBUTE","BE",
+"BEGIN","BEHALF","BELIEF","BELIEVE","BELIEVES","CASE","CONST","CONSTRUCTOR",
+"CONTEXT","DECLARE","DEFAULT","DEFMACRO","DEPRECATED","DISPATCH","DO",
+"ENCAPSULATE","ENCAPSULATED","ENCAPSULATES","END","ENSURE","ENUM","EVENTUAL",
+"EVENTUALLY","EXPORT","EXTENDS","FACET","FORALL","FUNCTION","GIVEN","HIDDEN",
+"HIDES","IMPLEMENTS","INTERFACE","IS","KNOW","KNOWS","LAMBDA","LET","METHOD",
+"METHODS","MODULE","NAMESPACE","NATIVE","OBEYS","OCTET","ONEWAY","PACKAGE",
+"PRIVATE","PROTECTED","PUBLIC","RAISES","RELIANCE","RELIANT","RELIES","RELY",
+"REVEAL","SAKE","SIGNED","STATIC","STRUCT","SUCHTHAT","SUPPORTS","SUSPECT",
+"SUSPECTS","SYNCHRONIZED","THIS","THROWS","TRANSIENT","TRUNCATABLE","UNSIGNED",
+"UNUM","USES","USING","UTF8","UTF16","VALUETYPE","VIRTUAL","VOLATILE","WSTRING",
+"EOL","OpLAnd","OpLOr","OpSame","OpNSame","OpButNot","OpLeq","OpABA","OpGeq",
+"OpThru","OpTill","OpAsl","OpAsr","OpFlrDiv","OpMod","OpPow","OpAss","OpAssAdd",
+"OpAssAnd","OpAssAprxDiv","OpAssFlrDiv","OpAssAsl","OpAssAsr","OpAssRemdr",
+"OpAssMod","OpAssMul","OpAssOr","OpAssPow","OpAssSub","OpAssXor","Send",
+"OpWhen","MapsTo","MatchBind","MisMatch","Audit",
+};
+final static String yyrule[] = {
+"$accept : start",
+"start : br",
+"start : topExpr",
+"start : MatchBind pattern",
+"define : DEF",
+"define : DEFINE",
+"topExpr : br topSeqs br",
+"eExpr : br seqs br",
+"topSeqs : topSeq",
+"topSeqs : topSeqs EOLs topSeq",
+"seqs : seq",
+"seqs : seqs EOLs seq",
+"topSeq : seq",
+"seq : assigns",
+"seq : assigns ';'",
+"assigns : assign",
+"assigns : assigns ';' assign",
+"assigns : define noun",
+"nAssign : assign",
+"nAssign : plural",
+"assign : cond",
+"assign : cond OpAss assign",
+"assign : cond assignop nAssign",
+"assign : cond OpAssAsr assign",
+"assign : cond VerbAssign parenArgs",
+"assign : define pattern OpAss assign",
+"assign : binder OpAss assign",
+"assign : varNamer OpAss assign",
+"cond : condAnd",
+"cond : cond OpLOr condAnd",
+"condAnd : comp",
+"condAnd : condAnd OpLAnd comp",
+"comp : order",
+"comp : order OpSame order",
+"comp : order OpNSame order",
+"comp : order '&' nOrder",
+"comp : order '|' nOrder",
+"comp : order '^' nOrder",
+"comp : order OpButNot nOrder",
+"comp : order MatchBind pattern",
+"comp : order MisMatch pattern",
+"nOrder : order",
+"nOrder : plural",
+"order : interval",
+"order : interval '<' interval",
+"order : interval OpLeq interval",
+"order : interval OpABA interval",
+"order : interval OpGeq interval",
+"order : interval '>' interval",
+"interval : shift",
+"interval : shift OpThru shift",
+"interval : shift OpTill shift",
+"shift : add",
+"shift : shift OpAsl nAdd",
+"shift : shift OpAsr add",
+"nAdd : add",
+"nAdd : plural",
+"add : mult",
+"add : add '+' nMult",
+"add : add '-' nMult",
+"nMult : mult",
+"nMult : plural",
+"mult : pow",
+"mult : mult '*' nPow",
+"mult : mult '/' nPow",
+"mult : mult OpFlrDiv nPow",
+"mult : mult '%' nPow",
+"mult : mult OpMod nPow",
+"nPow : pow",
+"nPow : plural",
+"pow : prefix",
+"pow : prefix OpPow nPrefix",
+"nPrefix : prefix",
+"nPrefix : plural",
+"prefix : postfix",
+"prefix : '!' prim",
+"prefix : '~' prim",
+"prefix : '-' prim",
+"prefix : '&' noun",
+"postfix : call",
+"postfix : metaExpr",
+"postfix : postfix '[' argList ']'",
+"postfix : postfix Send verb parenArgs",
+"postfix : postfix Send parenArgs",
+"postfix : postfix Send verb",
+"postfix : postfix verb",
+"postfix : postfix '.' ident",
+"postfix : postfix '.' ident parenArgs",
+"metaExpr : metaoid parenArgs",
+"metaExpr : metaoid verb parenArgs",
+"metaExpr : metaoid Send parenArgs",
+"metaExpr : metaoid Send verb parenArgs",
+"metaExpr : metaoid verb",
+"metaExpr : metaoid Send verb",
+"call : prim",
+"call : call parenArgs",
+"call : postfix verb parenArgs",
+"prim : LiteralInteger",
+"prim : LiteralFloat64",
+"prim : LiteralChar",
+"prim : LiteralString",
+"prim : LiteralTwine",
+"prim : nounExpr",
+"prim : URI",
+"prim : URIStart add '>'",
+"prim : quasiParser quasiExpr",
+"prim : parenExpr",
+"prim : '[' argList ']'",
+"prim : '[' maps ']'",
+"prim : begin body",
+"prim : begin ESCAPE pattern body",
+"prim : begin WHILE parenExpr body",
+"prim : begin SWITCH parenExpr caseList end",
+"prim : begin TRY body catchList finallyClause",
+"prim : forExpr",
+"prim : whenExpr",
+"prim : ifExpr",
+"prim : macro",
+"prim : DollarOpen LiteralInteger '}'",
+"prim : '$' LiteralInteger",
+"prim : '$' '$'",
+"prim : AtOpen LiteralInteger '}'",
+"prim : '@' LiteralInteger",
+"prim : SELECT parenExpr caseList",
+"prim : TYPEDEF oType",
+"prim : object",
+"object : defAudits vTable",
+"object : defAudits begin funcHead body",
+"object : begin THUNK body",
+"object : CLASS classHead body",
+"object : begin _ funcHead body",
+"object : begin _ body",
+"nounExpr : noun",
+"parenExpr : '(' eExpr ')'",
+"ifExpr : begin IF parenExpr body",
+"ifExpr : begin IF parenExpr body ELSE ifExpr",
+"ifExpr : begin IF parenExpr body ELSE begin body",
+"forExpr : begin FOR iterPattern IN assign begin body end",
+"whenExpr : WHEN whenHead body catches finallyClause",
+"macro : BodyStartWord begin macroArg body restMacro",
+"macro : VTableStartWord begin macroArg vTable end restMacro",
+"$$1 :",
+"restMacro : $$1 BodyNextWord begin macroArg body restMacro",
+"restMacro : VTableNextWord begin macroArg vTable end restMacro",
+"macroArg :",
+"macroArg : parenExpr",
+"macroArg : pattern",
+"quasiParser :",
+"quasiParser : ident",
+"quasiParser : '(' eExpr ')'",
+"quasiExpr : QuasiClose",
+"quasiExpr : innerExprs QuasiClose",
+"innerExprs : QuasiOpen innerExpr",
+"innerExprs : innerExprs QuasiOpen innerExpr",
+"innerExpr : DollarIdent",
+"innerExpr : DollarOpen eExpr '}'",
+"patternList : emptyBr",
+"patternList : patterns br",
+"patterns : pattern",
+"patterns : patterns ',' br pattern",
+"mapPatternList : mapPatterns br",
+"mapPatterns : mapPattern",
+"mapPatterns : mapPatterns ',' br mapPattern",
+"iterPattern : pattern",
+"iterPattern : mapPattern",
+"mapPattern : pattern MapsTo pattern",
+"mapPattern : MapsTo namer",
+"pattern : listPatt",
+"pattern : listPatt '?' order",
+"pattern : metaoid parenExpr MapsTo pattern",
+"listPatt : eqPatt",
+"listPatt : '[' patternList ']'",
+"listPatt : '[' patternList ']' '+' listPatt",
+"listPatt : '[' mapPatternList ']'",
+"listPatt : '[' mapPatternList ']' '|' listPatt",
+"eqPatt : quasiPatt",
+"eqPatt : OpSame prim",
+"quasiPatt : namer",
+"quasiPatt : quasiParser quasiPattern",
+"quasiPattern : QuasiClose",
+"quasiPattern : innerThings QuasiClose",
+"innerThings : QuasiOpen innerThing",
+"innerThings : innerThings QuasiOpen innerThing",
+"innerThing : innerExpr",
+"innerThing : innerPattern",
+"innerPattern : AtIdent",
+"innerPattern : AtOpen pattern '}'",
+"namer : noun ':' order",
+"namer : noun",
+"namer : '&' noun",
+"namer : _",
+"namer : _ ':' order",
+"namer : binder",
+"namer : varNamer",
+"namer : DollarOpen LiteralInteger '}'",
+"namer : AtOpen LiteralInteger '}'",
+"binder : BIND noun ':' order",
+"binder : BIND noun",
+"varNamer : VAR noun ':' order",
+"varNamer : VAR noun",
+"oName : noun",
+"oName : _",
+"oName : BIND noun",
+"oName : VAR noun",
+"oName : DollarOpen LiteralInteger '}'",
+"oName : AtOpen LiteralInteger '}'",
+"oName : litString",
+"defName : define oName",
+"defName : BIND noun",
+"defName : VAR noun",
+"audits : oName",
+"audits : oName Audit nounExprs",
+"defAudits : defName",
+"defAudits : defName Audit nounExprs",
+"nounExprs : nounExpr",
+"nounExprs : nounExprs ',' br nounExpr",
+"plural : '(' ')'",
+"plural : '(' eExpr ',' args ')'",
+"litString : LiteralString",
+"litString : LiteralTwine",
+"method : begin TO methHead body",
+"method : begin TO verb OpAss assign end",
+"method : begin ON methHead body",
+"method : begin META parenExpr MapsTo parenExpr end",
+"method : begin META parenExpr body",
+"methHead : '(' patternList ')' resultGuard",
+"methHead : verb '(' patternList ')' resultGuard",
+"methHead : verb resultGuard",
+"funcHead : '(' patternList ')' resultGuard",
+"funcHead : verb '(' patternList ')' resultGuard",
+"funcHead : verb resultGuard",
+"classHead : audits begin '(' patternList ')' resultGuard",
+"matcher : begin MATCH pattern body",
+"delegator : begin DELEGATE body",
+"resultGuard :",
+"resultGuard : ':' order",
+"whenArgs : '(' args ')'",
+"whenHead : whenArgs OpWhen audits begin '(' patterns ')' resultGuard",
+"whenHead : audits begin '(' whenClauses ')' resultGuard",
+"whenClauses : whenClause",
+"whenClauses : whenClauses ',' whenClause",
+"whenClause : eExpr OpWhen pattern",
+"br :",
+"br : EOLs",
+"EOLs : EOL",
+"EOLs : EOLs EOL",
+"emptyList :",
+"emptyBr : br",
+"parenArgs : '(' argList ')'",
+"parenArgs : parenArgs object",
+"argList : emptyBr",
+"argList : args",
+"args : eExpr",
+"args : args ',' eExpr",
+"maps : map",
+"maps : maps ',' map",
+"map : eExpr MapsTo eExpr",
+"map : MapsTo nounExpr",
+"verb : ident",
+"noun : ident",
+"ident : Identifier",
+"ident : reserved",
+"assignop : OpAssAdd",
+"assignop : OpAssAnd",
+"assignop : OpAssAprxDiv",
+"assignop : OpAssFlrDiv",
+"assignop : OpAssAsl",
+"assignop : OpAssRemdr",
+"assignop : OpAssMod",
+"assignop : OpAssMul",
+"assignop : OpAssOr",
+"assignop : OpAssPow",
+"assignop : OpAssSub",
+"assignop : OpAssXor",
+"body : '{' br '}' end",
+"body : '{' br seqs br '}' end",
+"caseList : '{' br matchList '}'",
+"vTable : '{' br methodList vMatchList '}'",
+"vTable : matcher",
+"vTable : delegator",
+"methodList : emptyList",
+"methodList : methodList method br",
+"vMatchList : matchList",
+"vMatchList : matchList delegator br",
+"matchList : emptyList",
+"matchList : matchList matcher br",
+"catchList : emptyList",
+"catchList : catches",
+"catches : catchList catchClause",
+"catchClause : begin CATCH pattern body",
+"finallyClause :",
+"finallyClause : begin FINALLY body",
+"oType : audits '{' br messageList '}'",
+"oType : audits mType EOL",
+"messageList : emptyList",
+"messageList : DELEGATE br",
+"messageList : messages br",
+"messageList : messages EOLs DELEGATE br",
+"messages : TO mType",
+"messages : messages EOLs TO mType",
+"messages : ON mType",
+"messages : messages EOLs ON mType",
+"mType : verb optType",
+"mType : verb '(' pTypeList ')' optType",
+"mType : '(' pTypeList ')' optType",
+"pTypeList : br emptyList",
+"pTypeList : br pTypes br",
+"pTypes : pType",
+"pTypes : pTypes ',' br pType",
+"pType : noun optType",
+"pType : _ optType",
+"optType :",
+"optType : ':' nounExpr",
+"metaoid : META",
+"metaoid : PRAGMA",
+"begin :",
+"end :",
+"reserved : ABSTRACT",
+"reserved : AN",
+"reserved : AS",
+"reserved : ATTRIBUTE",
+"reserved : BE",
+"reserved : BEGIN",
+"reserved : BEHALF",
+"reserved : BELIEF",
+"reserved : BELIEVE",
+"reserved : BELIEVES",
+"reserved : CASE",
+"reserved : CONST",
+"reserved : CONSTRUCTOR",
+"reserved : CONTEXT",
+"reserved : DECLARE",
+"reserved : DEFAULT",
+"reserved : DEFMACRO",
+"reserved : DEPRECATED",
+"reserved : DISPATCH",
+"reserved : DO",
+"reserved : ENCAPSULATE",
+"reserved : ENCAPSULATED",
+"reserved : ENCAPSULATES",
+"reserved : END",
+"reserved : ENSURE",
+"reserved : ENUM",
+"reserved : EVENTUAL",
+"reserved : EVENTUALLY",
+"reserved : EXPORT",
+"reserved : EXTENDS",
+"reserved : FACET",
+"reserved : FORALL",
+"reserved : FUNCTION",
+"reserved : GIVEN",
+"reserved : HIDDEN",
+"reserved : HIDES",
+"reserved : IMPLEMENTS",
+"reserved : INTERFACE",
+"reserved : IS",
+"reserved : KNOW",
+"reserved : KNOWS",
+"reserved : LAMBDA",
+"reserved : LET",
+"reserved : METHOD",
+"reserved : METHODS",
+"reserved : MODULE",
+"reserved : NAMESPACE",
+"reserved : NATIVE",
+"reserved : OBEYS",
+"reserved : OCTET",
+"reserved : ONEWAY",
+"reserved : PACKAGE",
+"reserved : PRIVATE",
+"reserved : PROTECTED",
+"reserved : PUBLIC",
+"reserved : RAISES",
+"reserved : RELIANCE",
+"reserved : RELIANT",
+"reserved : RELIES",
+"reserved : RELY",
+"reserved : REVEAL",
+"reserved : SAKE",
+"reserved : SIGNED",
+"reserved : STATIC",
+"reserved : STRUCT",
+"reserved : SUCHTHAT",
+"reserved : SUPPORTS",
+"reserved : SUSPECT",
+"reserved : SUSPECTS",
+"reserved : SYNCHRONIZED",
+"reserved : THIS",
+"reserved : THROWS",
+"reserved : TRANSIENT",
+"reserved : TRUNCATABLE",
+"reserved : UNSIGNED",
+"reserved : UNUM",
+"reserved : USES",
+"reserved : USING",
+"reserved : UTF8",
+"reserved : UTF16",
+"reserved : VALUETYPE",
+"reserved : VIRTUAL",
+"reserved : VOLATILE",
+"reserved : WSTRING",
+};
 
 //#line 1183 "e.y"
 
-    /**
-     *
-     */
-    static public final StaticMaker EParserMaker =
-      StaticMaker.make(EParser.class);
-
-    /**
-     * caches previous simple parses (as is used for quasi-parsing)
-     */
-    static private IdentityCacheTable OurCache =
-      new IdentityCacheTable(ENode.class, 100);
-
-    /**
-     *
-     */
-    static private final ConstMap DefaultProps =
-      ConstMap.fromProperties(System.getProperties());
-
-
-    /** contains all the tokens after yylval */
-    private ELexer myLexer;
-
-    /**
-     * Do we escape after parsing only one expression, or do we parse the
-     * entire input?
-     */
-    private boolean myOnlyOneExprFlag;
-
-    /** how we exit yacc logic */
-    private Ejector myEscape;
-
-
-    /**
-     *
-     */
-    public EParser(ELexer lexer) {
-        this(DefaultProps, lexer, false, false);
-    }
+/**
+ *
+ */
+static public final StaticMaker EParserMaker =
+    StaticMaker.make(EParser.class);
+
+/** 
+ * caches previous simple parses (as is used for quasi-parsing)
+ */
+static private IdentityCacheTable OurCache =
+    new IdentityCacheTable(ENode.class, 100);
+
+/**
+ *
+ */
+static private final ConstMap DefaultProps = 
+  ConstMap.fromProperties(System.getProperties());
 
-    /**
-     *
-     */
-    public EParser(ConstMap props, ELexer lexer) {
-        this(props, lexer, false, false);
-    }
 
-    /**
-     *
-     */
-    public EParser(ConstMap props,
-                   ELexer lexer,
-                   boolean debugFlag,
-                   boolean onlyOneExprFlag) {
-        super(props); //XXX must really be props
-        initTables();
-        myLexer = lexer;
-        yydebug = debugFlag;
-        myOnlyOneExprFlag = onlyOneExprFlag;
-        myEscape = new Ejector();
-    }
 
-    /**
-     * For use as from E as a quasi-literal parser.
-     *
-     * @param sourceCode The source code itself, not the location of
-     * the source code
-     */
-    static public ENode valueMaker(Twine sourceCode) {
-        return run(sourceCode, true);
-    }
+/** contains all the tokens after yylval */
+private ELexer myLexer;
+
+/** 
+ * Do we escape after parsing only one expression, or do we parse the
+ * entire input?
+ */
+private boolean myOnlyOneExprFlag;
+
+/** how we exit yacc logic */
+private Ejector myEscape;
+
+
+/**
+ *
+ */
+public EParser(ELexer lexer) {
+    this(DefaultProps, lexer, false, false);
+}
 
-    /**
-     * For use from E as a quasi-pattern parser.
-     *
-     * @param sourceCode The source code itself, not the location of
-     * the source code
-     */
-    static public ENode matchMaker(Twine sourceCode) {
-        return run(sourceCode, true);
-    }
+/**
+ *
+ */
+public EParser(ConstMap props, ELexer lexer) {
+    this(props, lexer, false, false);
+}
 
+/**
+ *
+ */
+public EParser(ConstMap props,
+               ELexer lexer,
+               boolean debugFlag,
+               boolean onlyOneExprFlag)
+{
+    super(props); //XXX must really be props
+    initTables();
+    myLexer = lexer;
+    yydebug = debugFlag;
+    myOnlyOneExprFlag = onlyOneExprFlag;
+    myEscape = new Ejector();
+}
 
-    /**
-     * For simple string -> expression parsing, especially for use from E
-     *
-     * @param sourceCode The source code itself, not the location of
-     * the source code
-     */
-    static public ENode run(Twine sourceCode) {
-        return run(sourceCode, false);
-    }
+/**
+ * For use as from E as a quasi-literal parser.
+ *
+ * @param sourceCode The source code itself, not the location of
+ * the source code
+ */
+static public ENode valueMaker(Twine sourceCode) {
+    return run(sourceCode, true);
+}
 
-    /**
-     *
-     */
-    static public ENode run(Twine sourceCode, boolean quasiFlag) {
-        return run(sourceCode, quasiFlag, DefaultProps);
-    }
+/**
+ * For use from E as a quasi-pattern parser.
+ *
+ * @param sourceCode The source code itself, not the location of
+ * the source code
+ */
+static public ENode matchMaker(Twine sourceCode) {
+    return run(sourceCode, true);
+}
 
-    /**
-     *
-     */
-    static public ENode run(Twine sourceCode, boolean quasiFlag, ConstMap props) {
-        ENode result = (ENode)OurCache.get(sourceCode, null);
-        if (null == result) {
-            try {
-                ELexer lexer = ELexer.make(sourceCode,
-                                           quasiFlag,
-                                           Interp.testProp(props,
-                                                           "e.enable.notabs"));
-                EParser parser = new EParser(props, lexer, false, false);
-                result = parser.parse();
 
-            } catch (IOException iox) {
-                throw ThrowableSugar.backtrace(iox, "parsing a string?!");
-            }
-            OurCache.put(sourceCode, result);
-        }
-        return result;
-    }
+/**
+ * For simple string -> expression parsing, especially for use from E
+ *
+ * @param sourceCode The source code itself, not the location of
+ * the source code
+ */
+static public ENode run(Twine sourceCode) {
+    return run(sourceCode, false);
+}
 
-    /**
-     * If the input is empty, returns the null expression e`null`, rather
-     * than null.
-     */
-    public ENode parse() {
-        ENode result = optParse();
-        if (result == null) {
-            return NULL;
-        } else {
-            return result;
-        }
-    }
+/**
+ *
+ */
+static public ENode run(Twine sourceCode, boolean quasiFlag) {
+    return run(sourceCode, quasiFlag, DefaultProps);
+}
 
-    /**
-     *
-     */
-    public ENode optParse() {
+/**
+ *
+ */
+static public ENode run(Twine sourceCode, boolean quasiFlag, ConstMap props) {
+    ENode result = (ENode)OurCache.get(sourceCode, null);
+    if (null == result) {
         try {
-            if (yyparse() == 0) {
-                yyerror("internal: success should eject rather than return");
-            } else {
-                yyerror("couldn't parse expression");
-            }
-        } catch (Throwable t) {
-            return (ENode)myEscape.result(t);
-        } finally {
-            myEscape.disable();
-        }
-        return null; //keep the compiler happy
-    }
+            ELexer lexer = ELexer.make(sourceCode,
+                                       quasiFlag,
+                                       Interp.testProp(props,
+                                                       "e.enable.notabs"));
+            EParser parser = new EParser(props, lexer, false, false);
+            result = parser.parse();
 
-    /**
-     *
-     */
-    private Object oneExpr(Object expr) {
-        if (myOnlyOneExprFlag) {
-            myEscape.run(expr);
+        } catch (IOException iox) {
+            throw ThrowableSugar.backtrace(iox, "parsing a string?!");
         }
-        return expr;
+        OurCache.put(sourceCode, result);
     }
+    return result;
+}
 
-    /**
-     *
-     */
-    private int yylex() {
-        AstroToken token = null;
-        try {
-            token = myLexer.nextToken();
-        } catch (IOException ex) {
-            yyerror("io: " + ex);
-        }
-        yylval = token;
-        return token.getType();
+/**
+ * If the input is empty, returns the null expression e`null`, rather
+ * than null. 
+ */
+public ENode parse() {
+    ENode result = optParse();
+    if (result == null) {
+        return NULL;
+    } else {
+        return result;
     }
+}
 
-    /**
-     *
-     */
-    private void yyerror(String s) throws SyntaxException {
-        int ttype = ((AstroToken)yylval).getType();
-        if (EParser.EOFTOK == ttype && "syntax error".equals(s)) {
-            myLexer.needMore("Unexpected EOF");
+/**
+ *
+ */
+public ENode optParse() {
+    try {
+        if (yyparse() == 0) {
+            yyerror("internal: success should eject rather than return");
         } else {
-            syntaxError(s);
+            yyerror("couldn't parse expression");
         }
+    } catch (Throwable t) {
+        return (ENode)myEscape.result(t);
+    } finally {
+        myEscape.disable();
     }
+    return null; //keep the compiler happy
+}
 
-    /**
-     *
-     */
-    public void setSource(Twine newSource) {
-        myLexer.setSource(newSource);
+/**
+ *
+ */
+private Object oneExpr(Object expr) {
+    if (myOnlyOneExprFlag) {
+        myEscape.run(expr);
     }
+    return expr;
+}
+
+/**
+ *
+ */
+private int yylex() {
+    AstroToken token = null;
+    try {
+        token = myLexer.nextToken();
+    } catch (IOException ex) {
+        yyerror("io: " + ex);
+    }
+    yylval = token;
+    return token.getType();
+}
 
-    /**
-     *
-     */
-    public boolean isEndOfFile() {
-        return myLexer.isEndOfFile();
+/**
+ *
+ */
+private void yyerror(String s) throws SyntaxException {
+    int ttype = ((AstroToken)yylval).getType();
+    if (EParser.EOFTOK == ttype && "syntax error".equals(s)) {
+        myLexer.needMore("Unexpected EOF");
+    } else {
+        syntaxError(s);
     }
+}
+
+/**
+ *
+ */
+public void setSource(Twine newSource) {
+    myLexer.setSource(newSource);
+}
+
+/**
+ *
+ */
+public boolean isEndOfFile() {
+    return myLexer.isEndOfFile();
+}
 
-    /**
-     * Overrides syntaxError in EBuilder
-     */
+/**
+ * Overrides syntaxError in EBuilder
+ */
 /*package*/ void syntaxError(String msg) throws SyntaxException {
     myLexer.syntaxError(msg);
 }
 
 
-    /**
-     *
-     */
-    private boolean isTokenKind(Object tok, int[] members) {
-        if (!(tok instanceof AstroToken)) {
-            return false;
-        }
-        int ttype = ((AstroToken)tok).getType();
-        for (int i = 0; i < members.length; i++) {
-            if (ttype == members[i]) {
-                return true;
-            }
-        }
+/**
+ *
+ */
+private boolean isTokenKind(Object tok, int[] members) {
+    if (! (tok instanceof AstroToken)) {
         return false;
     }
+    int ttype = ((AstroToken)tok).getType();
+    for (int i = 0; i < members.length; i++) {
+        if (ttype == members[i]) {
+            return true;
+        }
+    }
+    return false;
+}
 
-    static private final int[] LiteralTypes = {
-        LiteralInteger,
-        LiteralFloat64,
-        LiteralChar,
-        LiteralString,
-        LiteralTwine
-    };
-
-    /**
-     *
-     */
+static private final int[] LiteralTypes = {
+    LiteralInteger,
+    LiteralFloat64,
+    LiteralChar,
+    LiteralString,
+    LiteralTwine
+};
+
+/**
+ *
+ */
 /*package*/ boolean isLiteralToken(Object tok) {
     return isTokenKind(tok, LiteralTypes);
 }
 
-    static private final int[] QuasiTypes = {
-        QuasiOpen,
-        QuasiClose
-    };
-
-    /**
-     *
-     */
+static private final int[] QuasiTypes = {
+    QuasiOpen,
+    QuasiClose
+};
+
+/**
+ *
+ */
 /*package*/ boolean isQuasiPart(Object tok) {
     return isTokenKind(tok, QuasiTypes);
 }
 
 
-    /*********************************/
+/*********************************/
 
 
-    /**
-     *
-     */
-    static private String[] TheTokens = new String[yyname.length];
-
-    /** Not provided for us */
-    static /*package*/ final short EOFTOK = 0;
-
-    /**
-     * For all the names below, if the name == name.toLowerCase(), then
-     * the name must be a keyword.  Else it must not be a keyword.  The
-     * names themselves must be legal Functor identifiers.
-     */
-    static {
-        System.arraycopy(yyname, 0, TheTokens, 0, yyname.length);
-
-        TheTokens[EOFTOK] = "EOFTOK";
-        /* The magical end-of-line token, not considered whitespace */
-        TheTokens[EOL] = "EOL";
-
-        TheTokens[LiteralInteger] = "LiteralInteger";
-        TheTokens[LiteralFloat64] = "LiteralFloat64";
-        TheTokens[LiteralChar] = "LiteralChar";
-        TheTokens[LiteralString] = "LiteralString";
-        TheTokens[LiteralTwine] = "LiteralTwine";
-
-        TheTokens[Identifier] = "Identifier";
-        TheTokens[VerbAssign] = "VerbAssign";
-        TheTokens[QuasiOpen] = "QuasiOpen";
-        TheTokens[QuasiClose] = "QuasiClose";
-        TheTokens[DollarIdent] = "DollarIdent";
-        TheTokens[AtIdent] = "AtIdent";
-        TheTokens[DollarOpen] = "DollarOpen";
-        TheTokens[AtOpen] = "AtOpen";
-        TheTokens[URI] = "URI";
-        TheTokens[URIStart] = "URIStart";
-        TheTokens[BodyStartWord] = "BodyStartWord";
-        TheTokens[BodyNextWord] = "BodyNextWord";
-        TheTokens[VTableStartWord] = "VTableStartWord";
-        TheTokens[VTableNextWord] = "VTableNextWord";
-
-        /* Keywords */
-        TheTokens[BIND] = "bind";
-        TheTokens[CATCH] = "catch";
-        TheTokens[CLASS] = "class";
-        TheTokens[DEF] = "def";
-        TheTokens[DELEGATE] = "delegate";
-        TheTokens[ELSE] = "else";
-        TheTokens[ESCAPE] = "escape";
-        TheTokens[FINALLY] = "finally";
-        TheTokens[FOR] = "for";
-        TheTokens[IF] = "if";
-        TheTokens[IN] = "in";
-        TheTokens[MATCH] = "match";
-        TheTokens[META] = "meta";
-        TheTokens[PRAGMA] = "pragma";
-        TheTokens[SWITCH] = "switch";
-        TheTokens[THUNK] = "thunk";
-        TheTokens[TO] = "to";
-        TheTokens[TRY] = "try";
-        TheTokens[VAR] = "var";
-        TheTokens[WHEN] = "when";
-        TheTokens[WHILE] = "while";
-        TheTokens[_] = "_";
-
-        /* pseudo-reserved keywords */
-        TheTokens[DEFINE] = "define";
-        TheTokens[ON] = "on";
-        TheTokens[SELECT] = "select";
-        TheTokens[TYPEDEF] = "typedef";
-
-        /* reserved keywords */
-        TheTokens[ABSTRACT] = "abstract";
-        TheTokens[AN] = "an";
-        TheTokens[AS] = "as";
-        TheTokens[ATTRIBUTE] = "attribute";
-        TheTokens[BE] = "be";
-        TheTokens[BEGIN] = "begin";
-        TheTokens[BEHALF] = "behalf";
-        TheTokens[BELIEF] = "belief";
-        TheTokens[BELIEVE] = "believe";
-        TheTokens[BELIEVES] = "believes";
-        TheTokens[CASE] = "case";
-        TheTokens[CONST] = "const";
-        TheTokens[CONSTRUCTOR] = "constructor";
-        TheTokens[CONTEXT] = "context";
-        TheTokens[DECLARE] = "declare";
-        TheTokens[DEFAULT] = "default";
-        TheTokens[DEFMACRO] = "defmacro";
-        TheTokens[DEPRECATED] = "deprecated";
-        TheTokens[DISPATCH] = "dispatch";
-        TheTokens[DO] = "do";
-        TheTokens[ENCAPSULATE] = "encapsulate";
-        TheTokens[ENCAPSULATED] = "encapsulated";
-        TheTokens[ENCAPSULATES] = "encapsulates";
-        TheTokens[END] = "end";
-        TheTokens[ENSURE] = "ensure";
-        TheTokens[ENUM] = "enum";
-        TheTokens[EVENTUAL] = "eventual";
-        TheTokens[EVENTUALLY] = "eventually";
-        TheTokens[EXPORT] = "export";
-        TheTokens[EXTENDS] = "extends";
-        TheTokens[FACET] = "facet";
-        TheTokens[FORALL] = "forall";
-        TheTokens[FUNCTION] = "function";
-        TheTokens[GIVEN] = "given";
-        TheTokens[HIDDEN] = "hidden";
-        TheTokens[HIDES] = "hides";
-        TheTokens[IMPLEMENTS] = "implements";
-        TheTokens[INTERFACE] = "interface";
-        TheTokens[IS] = "is";
-        TheTokens[KNOW] = "know";
-        TheTokens[KNOWS] = "knows";
-        TheTokens[LAMBDA] = "lambda";
-        TheTokens[LET] = "let";
-        TheTokens[METHOD] = "method";
-        TheTokens[METHODS] = "methods";
-        TheTokens[MODULE] = "module";
-        TheTokens[NAMESPACE] = "namespace";
-        TheTokens[NATIVE] = "native";
-        TheTokens[OBEYS] = "obeys";
-        TheTokens[OCTET] = "octet";
-        TheTokens[ONEWAY] = "oneway";
-        TheTokens[PACKAGE] = "package";
-        TheTokens[PRIVATE] = "private";
-        TheTokens[PROTECTED] = "protected";
-        TheTokens[PUBLIC] = "public";
-        TheTokens[RAISES] = "raises";
-        TheTokens[RELIANCE] = "reliance";
-        TheTokens[RELIANT] = "reliant";
-        TheTokens[RELIES] = "relies";
-        TheTokens[RELY] = "rely";
-        TheTokens[REVEAL] = "reveal";
-        TheTokens[SAKE] = "sake";
-        TheTokens[SIGNED] = "signed";
-        TheTokens[STATIC] = "static";
-        TheTokens[STRUCT] = "struct";
-        TheTokens[SUCHTHAT] = "suchthat";
-        TheTokens[SUPPORTS] = "supports";
-        TheTokens[SUSPECT] = "suspect";
-        TheTokens[SUSPECTS] = "suspects";
-        TheTokens[SYNCHRONIZED] = "synchronized";
-        TheTokens[THIS] = "this";
-        TheTokens[THROWS] = "throws";
-        TheTokens[TRANSIENT] = "transient";
-        TheTokens[TRUNCATABLE] = "truncatable";
-        TheTokens[UNSIGNED] = "unsigned";
-        TheTokens[UNUM] = "unum";
-        TheTokens[USES] = "uses";
-        TheTokens[USING] = "using";
-        TheTokens[UTF8] = "utf8";
-        TheTokens[UTF16] = "utf16";
-        TheTokens[VALUETYPE] = "valuetype";
-        TheTokens[VIRTUAL] = "virtual";
-        TheTokens[VOLATILE] = "volatile";
-        TheTokens[WSTRING] = "wstring";
-
-        /* Multi-Character Operators */
-        TheTokens[OpLAnd] = "OpLAnd";
-        TheTokens[OpLOr] = "OpLOr";
-        TheTokens[OpSame] = "OpSame";
-        TheTokens[OpNSame] = "OpNSame";
-        TheTokens[OpButNot] = "OpButNot";
-        TheTokens[OpLeq] = "OpLeq";
-        TheTokens[OpABA] = "OpABA";
-        TheTokens[OpGeq] = "OpGeq";
-        TheTokens[OpThru] = "OpThru";
-        TheTokens[OpTill] = "OpTill";
-        TheTokens[OpAsl] = "OpAsl";
-        TheTokens[OpAsr] = "OpAsr";
-        TheTokens[OpFlrDiv] = "OpFlrDiv";
-        TheTokens[OpMod] = "OpMod";
-        TheTokens[OpPow] = "OpPow";
-
-        TheTokens[OpAss] = "OpAss";
-        TheTokens[OpAssAdd] = "OpAssAdd";
-        TheTokens[OpAssAnd] = "OpAssAnd";
-        TheTokens[OpAssAprxDiv] = "OpAssAprxDiv";
-        TheTokens[OpAssFlrDiv] = "OpAssFlrDiv";
-        TheTokens[OpAssAsl] = "OpAssAsl";
-        TheTokens[OpAssAsr] = "OpAssAsr";
-        TheTokens[OpAssRemdr] = "OpAssRemdr";
-        TheTokens[OpAssMod] = "OpAssMod";
-        TheTokens[OpAssMul] = "OpAssMul";
-        TheTokens[OpAssOr] = "OpAssOr";
-        TheTokens[OpAssPow] = "OpAssPow";
-        TheTokens[OpAssSub] = "OpAssSub";
-        TheTokens[OpAssXor] = "OpAssXor";
-
-        /* Other funky tokens */
-        TheTokens[Send] = "Send";
-        TheTokens[MapsTo] = "MapsTo";
-        TheTokens[MatchBind] = "MatchBind";
-        TheTokens[MisMatch] = "MisMatch";
-        TheTokens[Audit] = "Audit";
-    }
+/**
+ *
+ */
+static private String[] TheTokens = new String[yyname.length];
+
+/** Not provided for us */
+static /*package*/ final short EOFTOK = 0;
+
+/**
+ * For all the names below, if the name == name.toLowerCase(), then
+ * the name must be a keyword.  Else it must not be a keyword.  The
+ * names themselves must be legal Functor identifiers.
+ */
+static {
+    System.arraycopy(yyname, 0, TheTokens, 0, yyname.length);
+
+    TheTokens[EOFTOK]           = "EOFTOK";
+    /* The magical end-of-line token, not considered whitespace */
+    TheTokens[EOL]              = "EOL";
+
+    TheTokens[LiteralInteger]   = "LiteralInteger";
+    TheTokens[LiteralFloat64]   = "LiteralFloat64";
+    TheTokens[LiteralChar]      = "LiteralChar";
+    TheTokens[LiteralString]    = "LiteralString";
+    TheTokens[LiteralTwine]     = "LiteralTwine";
+
+    TheTokens[Identifier]       = "Identifier";
+    TheTokens[VerbAssign]       = "VerbAssign";
+    TheTokens[QuasiOpen]        = "QuasiOpen";
+    TheTokens[QuasiClose]       = "QuasiClose";
+    TheTokens[DollarIdent]      = "DollarIdent";
+    TheTokens[AtIdent]          = "AtIdent";
+    TheTokens[DollarOpen]       = "DollarOpen";
+    TheTokens[AtOpen]           = "AtOpen";
+    TheTokens[URI]              = "URI";
+    TheTokens[URIStart]         = "URIStart";
+    TheTokens[BodyStartWord]    = "BodyStartWord";
+    TheTokens[BodyNextWord]     = "BodyNextWord";
+    TheTokens[VTableStartWord]  = "VTableStartWord";
+    TheTokens[VTableNextWord]   = "VTableNextWord";
+
+    /* Keywords */
+    TheTokens[BIND]             = "bind";
+    TheTokens[CATCH]            = "catch";
+    TheTokens[CLASS]            = "class";
+    TheTokens[DEF]              = "def";
+    TheTokens[DELEGATE]         = "delegate";
+    TheTokens[ELSE]             = "else";
+    TheTokens[ESCAPE]           = "escape";
+    TheTokens[FINALLY]          = "finally";
+    TheTokens[FOR]              = "for";
+    TheTokens[IF]               = "if";
+    TheTokens[IN]               = "in";
+    TheTokens[MATCH]            = "match";
+    TheTokens[META]             = "meta";
+    TheTokens[PRAGMA]           = "pragma";
+    TheTokens[SWITCH]           = "switch";
+    TheTokens[THUNK]            = "thunk";
+    TheTokens[TO]               = "to";
+    TheTokens[TRY]              = "try";
+    TheTokens[VAR]              = "var";
+    TheTokens[WHEN]             = "when";
+    TheTokens[WHILE]            = "while";
+    TheTokens[_]                = "_";
+
+    /* pseudo-reserved keywords */
+    TheTokens[DEFINE]           = "define";
+    TheTokens[ON]               = "on";
+    TheTokens[SELECT]           = "select";
+    TheTokens[TYPEDEF]          = "typedef";
+
+    /* reserved keywords */
+    TheTokens[ABSTRACT]         = "abstract";
+    TheTokens[AN]               = "an";
+    TheTokens[AS]               = "as";
+    TheTokens[ATTRIBUTE]        = "attribute";
+    TheTokens[BE]               = "be";
+    TheTokens[BEGIN]            = "begin";
+    TheTokens[BEHALF]           = "behalf";
+    TheTokens[BELIEF]           = "belief";
+    TheTokens[BELIEVE]          = "believe";
+    TheTokens[BELIEVES]         = "believes";
+    TheTokens[CASE]             = "case";
+    TheTokens[CONST]            = "const";
+    TheTokens[CONSTRUCTOR]      = "constructor";
+    TheTokens[CONTEXT]          = "context";
+    TheTokens[DECLARE]          = "declare";
+    TheTokens[DEFAULT]          = "default";
+    TheTokens[DEFMACRO]         = "defmacro";
+    TheTokens[DEPRECATED]       = "deprecated";
+    TheTokens[DISPATCH]         = "dispatch";
+    TheTokens[DO]               = "do";
+    TheTokens[ENCAPSULATE]      = "encapsulate";
+    TheTokens[ENCAPSULATED]     = "encapsulated";
+    TheTokens[ENCAPSULATES]     = "encapsulates";
+    TheTokens[END]              = "end";
+    TheTokens[ENSURE]           = "ensure";
+    TheTokens[ENUM]             = "enum";
+    TheTokens[EVENTUAL]         = "eventual";
+    TheTokens[EVENTUALLY]       = "eventually";
+    TheTokens[EXPORT]           = "export";
+    TheTokens[EXTENDS]          = "extends";
+    TheTokens[FACET]            = "facet";
+    TheTokens[FORALL]           = "forall";
+    TheTokens[FUNCTION]         = "function";
+    TheTokens[GIVEN]            = "given";
+    TheTokens[HIDDEN]           = "hidden";
+    TheTokens[HIDES]            = "hides";
+    TheTokens[IMPLEMENTS]       = "implements";
+    TheTokens[INTERFACE]        = "interface";
+    TheTokens[IS]               = "is";
+    TheTokens[KNOW]             = "know";
+    TheTokens[KNOWS]            = "knows";
+    TheTokens[LAMBDA]           = "lambda";
+    TheTokens[LET]              = "let";
+    TheTokens[METHOD]           = "method";
+    TheTokens[METHODS]          = "methods";
+    TheTokens[MODULE]           = "module";
+    TheTokens[NAMESPACE]        = "namespace";
+    TheTokens[NATIVE]           = "native";
+    TheTokens[OBEYS]            = "obeys";
+    TheTokens[OCTET]            = "octet";
+    TheTokens[ONEWAY]           = "oneway";
+    TheTokens[PACKAGE]          = "package";
+    TheTokens[PRIVATE]          = "private";
+    TheTokens[PROTECTED]        = "protected";
+    TheTokens[PUBLIC]           = "public";
+    TheTokens[RAISES]           = "raises";
+    TheTokens[RELIANCE]         = "reliance";
+    TheTokens[RELIANT]          = "reliant";
+    TheTokens[RELIES]           = "relies";
+    TheTokens[RELY]             = "rely";
+    TheTokens[REVEAL]           = "reveal";
+    TheTokens[SAKE]             = "sake";
+    TheTokens[SIGNED]           = "signed";
+    TheTokens[STATIC]           = "static";
+    TheTokens[STRUCT]           = "struct";
+    TheTokens[SUCHTHAT]         = "suchthat";
+    TheTokens[SUPPORTS]         = "supports";
+    TheTokens[SUSPECT]          = "suspect";
+    TheTokens[SUSPECTS]         = "suspects";
+    TheTokens[SYNCHRONIZED]     = "synchronized";
+    TheTokens[THIS]             = "this";
+    TheTokens[THROWS]           = "throws";
+    TheTokens[TRANSIENT]        = "transient";
+    TheTokens[TRUNCATABLE]      = "truncatable";
+    TheTokens[UNSIGNED]         = "unsigned";
+    TheTokens[UNUM]             = "unum";
+    TheTokens[USES]             = "uses";
+    TheTokens[USING]            = "using";
+    TheTokens[UTF8]             = "utf8";
+    TheTokens[UTF16]            = "utf16";
+    TheTokens[VALUETYPE]        = "valuetype";
+    TheTokens[VIRTUAL]          = "virtual";
+    TheTokens[VOLATILE]         = "volatile";
+    TheTokens[WSTRING]          = "wstring";
+
+    /* Multi-Character Operators */
+    TheTokens[OpLAnd]           = "OpLAnd";
+    TheTokens[OpLOr]            = "OpLOr";
+    TheTokens[OpSame]           = "OpSame";
+    TheTokens[OpNSame]          = "OpNSame";
+    TheTokens[OpButNot]         = "OpButNot";
+    TheTokens[OpLeq]            = "OpLeq";
+    TheTokens[OpABA]            = "OpABA";
+    TheTokens[OpGeq]            = "OpGeq";
+    TheTokens[OpThru]           = "OpThru";
+    TheTokens[OpTill]           = "OpTill";
+    TheTokens[OpAsl]            = "OpAsl";
+    TheTokens[OpAsr]            = "OpAsr";
+    TheTokens[OpFlrDiv]         = "OpFlrDiv";
+    TheTokens[OpMod]            = "OpMod";
+    TheTokens[OpPow]            = "OpPow";
+
+    TheTokens[OpAss]            = "OpAss";
+    TheTokens[OpAssAdd]         = "OpAssAdd";
+    TheTokens[OpAssAnd]         = "OpAssAnd";
+    TheTokens[OpAssAprxDiv]     = "OpAssAprxDiv";
+    TheTokens[OpAssFlrDiv]      = "OpAssFlrDiv";
+    TheTokens[OpAssAsl]         = "OpAssAsl";
+    TheTokens[OpAssAsr]         = "OpAssAsr";
+    TheTokens[OpAssRemdr]       = "OpAssRemdr";
+    TheTokens[OpAssMod]         = "OpAssMod";
+    TheTokens[OpAssMul]         = "OpAssMul";
+    TheTokens[OpAssOr]          = "OpAssOr";
+    TheTokens[OpAssPow]         = "OpAssPow";
+    TheTokens[OpAssSub]         = "OpAssSub";
+    TheTokens[OpAssXor]         = "OpAssXor";
+
+    /* Other funky tokens */
+    TheTokens[Send]             = "Send";
+    TheTokens[MapsTo]           = "MapsTo";
+    TheTokens[MatchBind]        = "MatchBind";
+    TheTokens[MisMatch]         = "MisMatch";
+    TheTokens[Audit]            = "Audit";
+}
 
-    /**
-     *
-     */
-    static public ConstList getTokenNames() {
-        return ConstList.fromArray(TheTokens);
-    }
+/**
+ *
+ */
+static public ConstList getTokenNames() {
+    return ConstList.fromArray(TheTokens);
+}
 
-    /**
-     *
-     */
-    static private IntTable TheTokenTable = null;
-
-    /**
-     *
-     */
-    static private IntTable getTokenTable() {
-        if (null == TheTokenTable) {
-            TheTokenTable = new IntTable(String.class);
-            for (int i = 0; i < TheTokens.length; i++) {
-                if (TheTokens[i] != null) {
-                    TheTokenTable.putInt(TheTokens[i], i, true);
-                }
+/**
+ *
+ */
+static private IntTable TheTokenTable = null;
+
+/**
+ *
+ */
+static private IntTable getTokenTable() {
+    if (null == TheTokenTable) {
+        TheTokenTable = new IntTable(String.class);
+        for (int i = 0; i < TheTokens.length; i++) {
+            if (TheTokens[i] != null) {
+                TheTokenTable.putInt(TheTokens[i], i, true);
             }
         }
-        return TheTokenTable;
     }
+    return TheTokenTable;
+}
 
-    /**
-     * If 'name' is a keyword, return it's token type code, else -1.
-     * <p>
-     * Note that E keywords are case insensitive, so 'name' is first
-     * toLowerCase()d.
-     */
-    static public int optKeywordType(String name) {
-        name = name.toLowerCase();
-        return getTokenTable().getInt(name, -1);
-    }
+/**
+ * If 'name' is a keyword, return it's token type code, else -1.
+ * <p>
+ * Note that E keywords are case insensitive, so 'name' is first
+ * toLowerCase()d. 
+ */
+static public int optKeywordType(String name) {
+    name = name.toLowerCase();
+    return getTokenTable().getInt(name, -1);
+}
 
-    /**
-     *
-     */
-    static public ConstMap getTokenMap() {
-        return getTokenTable().snapshot();
-    }
+/**
+ *
+ */
+static public ConstMap getTokenMap() {
+    return getTokenTable().snapshot();
+}
 
-    /**
-     * These are the tokens that may appear at the end of a line, in which
-     * case the next line is a (to be indented) continuation of the
-     * expression.
-     * <p>
-     * Note that &gt; isn't on the list because of its role in closing a
-     * calculated URI expression.
-     */
-    static private final int[] TheContinuerOps = {
-        '!',
-        '%',
-        '&',
-        '*',
-        '+',
-        '-',
-        '/',
-        ':',
-        '<',
-        '?',
-        '^',
-        '|',
-        '~',
-        Audit,              // ::
-        MapsTo,             // =>
-        MatchBind,          // =~
-        MisMatch,           // !~
-        OpABA,              // <=>
-        OpAsl,              // <<
-        OpAsr,              // >>
-        OpAss,              // :=
-        OpAssAdd,           // +=
-        OpAssAnd,           // &=
-        OpAssAprxDiv,       // /=
-        OpAssAsl,           // <<=
-        OpAssAsr,           // >>=
-        OpAssFlrDiv,        // _/=
-        OpAssMod,           // %%=
-        OpAssMul,           // *=
-        OpAssOr,            // |=
-        OpAssPow,           // **=
-        OpAssRemdr,         // %=
-        OpAssSub,           // -=
-        OpAssXor,           // ^=
-        OpButNot,           // &!
-        OpFlrDiv,           // _/
-        OpGeq,              // >=
-        OpLAnd,             // &&
-        OpLOr,              // ||
-        OpLeq,              // <=
-        OpMod,              // %%
-        OpNSame,            // !=
-        OpPow,              // **
-        OpSame,             // ==
-        OpThru,             // ..
-        OpTill,             // ..!
-        OpWhen,             // ->
-        Send                // <-
-    };
-
-    /**
-     * TheContinuers[tokenType] says whether this is a continuation
-     * operator.
-     */
-    static private boolean[] TheContinuers = new boolean[yyname.length];
-
-    static {
-        //this initialization counts on the initial allocation
-        //initializing the members to false
+/**
+ * These are the tokens that may appear at the end of a line, in which
+ * case the next line is a (to be indented) continuation of the
+ * expression. 
+ * <p>
+ * Note that &gt; isn't on the list because of its role in closing a
+ * calculated URI expression.
+ */
+static private final int[] TheContinuerOps = {
+    '!',
+    '%',
+    '&',
+    '*',
+    '+',
+    '-',
+    '/',
+    ':',
+    '<',
+    '?',
+    '^',
+    '|',
+    '~',
+    Audit,              // ::
+    MapsTo,             // =>
+    MatchBind,          // =~
+    MisMatch,           // !~
+    OpABA,              // <=>
+    OpAsl,              // <<
+    OpAsr,              // >>
+    OpAss,              // :=
+    OpAssAdd,           // +=
+    OpAssAnd,           // &=
+    OpAssAprxDiv,       // /=
+    OpAssAsl,           // <<=
+    OpAssAsr,           // >>=
+    OpAssFlrDiv,        // _/=
+    OpAssMod,           // %%=
+    OpAssMul,           // *=
+    OpAssOr,            // |=
+    OpAssPow,           // **=
+    OpAssRemdr,         // %=
+    OpAssSub,           // -=
+    OpAssXor,           // ^=
+    OpButNot,           // &!
+    OpFlrDiv,           // _/
+    OpGeq,              // >=
+    OpLAnd,             // &&
+    OpLOr,              // ||
+    OpLeq,              // <=
+    OpMod,              // %%
+    OpNSame,            // !=
+    OpPow,              // **
+    OpSame,             // ==
+    OpThru,             // ..
+    OpTill,             // ..!
+    OpWhen,             // ->
+    Send                // <-
+};
+
+/**
+ * TheContinuers[tokenType] says whether this is a continuation
+ * operator.
+ */
+static private boolean[] TheContinuers = new boolean[yyname.length];
+
+static {
+    //this initialization counts on the initial allocation
+    //initializing the members to false
 
-        for (int i = 0; i < TheContinuerOps.length; i++) {
-            TheContinuers[TheContinuerOps[i]] = true;
-        }
+    for (int i = 0; i < TheContinuerOps.length; i++) {
+        TheContinuers[TheContinuerOps[i]] = true;
     }
+}
 
-    /**
-     * If this token appears at the end of a line, does that make the next
-     * line a (to be indented) continuation line?
-     */
-    static public boolean isContinuer(int tokenType) {
-        return TheContinuers[tokenType];
-    }
+/**
+ * If this token appears at the end of a line, does that make the next
+ * line a (to be indented) continuation line?
+ */
+static public boolean isContinuer(int tokenType) {
+    return TheContinuers[tokenType];
+}
 //#line 5637 "EParser.java"
 //###############################################################
 // method: yylexdebug : check lexer state
 //###############################################################
-    void yylexdebug(int state, int ch) {
-        String s = null;
-        if (ch < 0) ch = 0;
-        if (ch <= YYMAXTOKEN) //check index bounds
-            s = yyname[ch];    //now get it
-        if (s == null)
-            s = "illegal-symbol";
-        debug("state " + state + ", reading " + ch + " (" + s + ")");
-    }
+void yylexdebug(int state,int ch)
+{
+String s=null;
+  if (ch < 0) ch=0;
+  if (ch <= YYMAXTOKEN) //check index bounds
+     s = yyname[ch];    //now get it
+  if (s==null)
+    s = "illegal-symbol";
+  debug("state "+state+", reading "+ch+" ("+s+")");
+}
 
 
 
 //###############################################################
 // method: yyparse : parse input and execute indicated items
 //###############################################################
-    int yyparse() {
-        int yyn;       //next next thing to do
-        int yym;       //
-        int yystate;   //current parsing state from state table
-        String yys;    //current token string
-        boolean doaction;
-        init_stacks();
-        yynerrs = 0;
-        yyerrflag = 0;
-        yychar = -1;          //impossible char forces a read
-        yystate = 0;            //initial state
-        state_push(yystate);  //save it
-        while (true) //until parsing is done, either correctly, or w/error
+int yyparse() 
+{
+int yyn;       //next next thing to do
+int yym;       //
+int yystate;   //current parsing state from state table
+String yys;    //current token string
+boolean doaction;
+  init_stacks();
+  yynerrs = 0;
+  yyerrflag = 0;
+  yychar = -1;          //impossible char forces a read
+  yystate=0;            //initial state
+  state_push(yystate);  //save it
+  while (true) //until parsing is done, either correctly, or w/error
+    {
+    doaction=true;
+    if (yydebug) debug("loop"); 
+    //#### NEXT ACTION (from reduction table)
+    for (yyn=yydefred[yystate];yyn==0;yyn=yydefred[yystate])
+      {
+      if (yydebug) debug("yyn:"+yyn+"  state:"+yystate+"  char:"+yychar);
+      if (yychar < 0)      //we want a char?
         {
-            doaction = true;
-            if (yydebug) debug("loop");
-            //#### NEXT ACTION (from reduction table)
-            for (yyn = yydefred[yystate]; yyn == 0; yyn = yydefred[yystate]) {
-                if (yydebug) debug("yyn:" + yyn + "  state:" + yystate + "  char:" + yychar);
-                if (yychar < 0)      //we want a char?
-                {
-                    yychar = yylex();  //get next token
-                    //#### ERROR CHECK ####
-                    if (yychar < 0)    //it it didn't work/error
-                    {
-                        yychar = 0;      //change it to default string (no -1!)
-                        if (yydebug)
-                            yylexdebug(yystate, yychar);
-                    }
-                }//yychar<0
-                yyn = yysindex[yystate];  //get amount to shift by (shift index)
-                if ((yyn != 0) && (yyn += yychar) >= 0 &&
-                  yyn <= YYTABLESIZE && yycheck[yyn] == yychar) {
-                    if (yydebug)
-                        debug("state " + yystate + ", shifting to state " + yytable[yyn] + "");
-                    //#### NEXT STATE ####
-                    yystate = yytable[yyn];//we are in a new state
-                    state_push(yystate);   //save it
-                    val_push(yylval);      //push our lval as the input for next rule
-                    yychar = -1;           //since we have 'eaten' a token, say we need another
-                    if (yyerrflag > 0)     //have we recovered an error?
-                        --yyerrflag;        //give ourselves credit
-                    doaction = false;        //but don't process yet
-                    break;   //quit the yyn=0 loop
-                }
-
-                yyn = yyrindex[yystate];  //reduce
-                if ((yyn != 0) && (yyn += yychar) >= 0 &&
-                  yyn <= YYTABLESIZE && yycheck[yyn] == yychar) {
-                    //we reduced!
-                    if (yydebug) debug("reduce");
-                    yyn = yytable[yyn];
-                    doaction = true; //get ready to execute
-                    break;         //drop down to actions
-                } else //ERROR RECOVERY
-                {
-                    if (yyerrflag == 0) {
-                        yyerror("syntax error");
-                        yynerrs++;
-                    }
-                    if (yyerrflag < 3) //low error count?
-                    {
-                        yyerrflag = 3;
-                        while (true)   //do until break
-                        {
-                            if (stateptr < 0)   //check for under & overflow here
-                            {
-                                yyerror("stack underflow. aborting...");  //note lower case 's'
-                                return 1;
-                            }
-                            yyn = yysindex[state_peek(0)];
-                            if ((yyn != 0) && (yyn += YYERRCODE) >= 0 &&
-                              yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) {
-                                if (yydebug)
-                                    debug("state " + state_peek(0) + ", error recovery shifting to state " + yytable[yyn] + " ");
-                                yystate = yytable[yyn];
-                                state_push(yystate);
-                                val_push(yylval);
-                                doaction = false;
-                                break;
-                            } else {
-                                if (yydebug)
-                                    debug("error recovery discarding state " + state_peek(0) + " ");
-                                if (stateptr < 0)   //check for under & overflow here
-                                {
-                                    yyerror("Stack underflow. aborting...");  //capital 'S'
-                                    return 1;
-                                }
-                                state_pop();
-                                val_pop();
-                            }
-                        }
-                    } else            //discard this token
-                    {
-                        if (yychar == 0)
-                            return 1; //yyabort
-                        if (yydebug) {
-                            yys = null;
-                            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-                            if (yys == null) yys = "illegal-symbol";
-                            debug("state " + yystate + ", error recovery discards token " + yychar + " (" + yys + ")");
-                        }
-                        yychar = -1;  //read another
-                    }
-                }//end error recovery
-            }//yyn=0 loop
-            if (!doaction)   //any reason not to proceed?
-                continue;      //skip action
-            yym = yylen[yyn];          //get count of terminals on rhs
+        yychar = yylex();  //get next token
+        //#### ERROR CHECK ####
+        if (yychar < 0)    //it it didn't work/error
+          {
+          yychar = 0;      //change it to default string (no -1!)
+          if (yydebug)
+            yylexdebug(yystate,yychar);
+          }
+        }//yychar<0
+      yyn = yysindex[yystate];  //get amount to shift by (shift index)
+      if ((yyn != 0) && (yyn += yychar) >= 0 &&
+          yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
+        {
+        if (yydebug)
+          debug("state "+yystate+", shifting to state "+yytable[yyn]+"");
+        //#### NEXT STATE ####
+        yystate = yytable[yyn];//we are in a new state
+        state_push(yystate);   //save it
+        val_push(yylval);      //push our lval as the input for next rule
+        yychar = -1;           //since we have 'eaten' a token, say we need another
+        if (yyerrflag > 0)     //have we recovered an error?
+           --yyerrflag;        //give ourselves credit
+        doaction=false;        //but don't process yet
+        break;   //quit the yyn=0 loop
+        }
+
+    yyn = yyrindex[yystate];  //reduce
+    if ((yyn !=0 ) && (yyn += yychar) >= 0 &&
+            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
+      {   //we reduced!
+      if (yydebug) debug("reduce");
+      yyn = yytable[yyn];
+      doaction=true; //get ready to execute
+      break;         //drop down to actions
+      }
+    else //ERROR RECOVERY
+      {
+      if (yyerrflag==0)
+        {
+        yyerror("syntax error");
+        yynerrs++;
+        }
+      if (yyerrflag < 3) //low error count?
+        {
+        yyerrflag = 3;
+        while (true)   //do until break
+          {
+          if (stateptr<0)   //check for under & overflow here
+            {
+            yyerror("stack underflow. aborting...");  //note lower case 's'
+            return 1;
+            }
+          yyn = yysindex[state_peek(0)];
+          if ((yyn != 0) && (yyn += YYERRCODE) >= 0 &&
+                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
+            {
+            if (yydebug)
+              debug("state "+state_peek(0)+", error recovery shifting to state "+yytable[yyn]+" ");
+            yystate = yytable[yyn];
+            state_push(yystate);
+            val_push(yylval);
+            doaction=false;
+            break;
+            }
+          else
+            {
             if (yydebug)
-                debug("state " + yystate + ", reducing " + yym + " by rule " + yyn + " (" + yyrule[yyn] + ")");
-            if (yym > 0)                 //if count of rhs not 'nil'
-                yyval = val_peek(yym - 1); //get current semantic value
-            switch (yyn) {
+              debug("error recovery discarding state "+state_peek(0)+" ");
+            if (stateptr<0)   //check for under & overflow here
+              {
+              yyerror("Stack underflow. aborting...");  //capital 'S'
+              return 1;
+              }
+            state_pop();
+            val_pop();
+            }
+          }
+        }
+      else            //discard this token
+        {
+        if (yychar == 0)
+          return 1; //yyabort
+        if (yydebug)
+          {
+          yys = null;
+          if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
+          if (yys == null) yys = "illegal-symbol";
+          debug("state "+yystate+", error recovery discards token "+yychar+" ("+yys+")");
+          }
+        yychar = -1;  //read another
+        }
+      }//end error recovery
+    }//yyn=0 loop
+    if (!doaction)   //any reason not to proceed?
+      continue;      //skip action
+    yym = yylen[yyn];          //get count of terminals on rhs
+    if (yydebug)
+      debug("state "+yystate+", reducing "+yym+" by rule "+yyn+" ("+yyrule[yyn]+")");
+    if (yym>0)                 //if count of rhs not 'nil'
+      yyval = val_peek(yym-1); //get current semantic value
+    switch(yyn)
+      {
 //########## USER-SUPPLIED ACTIONS ##########
-                case 1:
+case 1:
 //#line 155 "e.y"
-                    {
-                        myEscape.run(null);
-                    }
-                    break;
-                case 2:
+{ myEscape.run(null); }
+break;
+case 2:
 //#line 156 "e.y"
-                    {
-                        myEscape.run(val_peek(0));
-                    }
-                    break;
-                case 3:
+{ myEscape.run(val_peek(0)); }
+break;
+case 3:
 //#line 158 "e.y"
-                    {
-                        myEscape.run(val_peek(0));
-                    }
-                    break;
-                case 5:
+{ myEscape.run(val_peek(0)); }
+break;
+case 5:
 //#line 166 "e.y"
-                    {
-                        pocket("define");
-                    }
-                    break;
-                case 6:
+{ pocket("define"); }
+break;
+case 6:
 //#line 175 "e.y"
-                    {
-                        yyval = val_peek(1);
-                    }
-                    break;
-                case 7:
+{ yyval = val_peek(1); }
+break;
+case 7:
 //#line 179 "e.y"
-                    {
-                        yyval = val_peek(1);
-                    }
-                    break;
-                case 9:
+{ yyval = val_peek(1); }
+break;
+case 9:
 //#line 190 "e.y"
-                    {
-                        yyval = sequence(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 11:
+{ yyval = sequence(val_peek(2), val_peek(0)); }
+break;
+case 11:
 //#line 195 "e.y"
-                    {
-                        yyval = sequence(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 12:
+{ yyval = sequence(val_peek(2), val_peek(0)); }
+break;
+case 12:
 //#line 203 "e.y"
-                    {
-                        yyval = oneExpr(val_peek(0));
-                    }
-                    break;
-                case 16:
+{ yyval = oneExpr(val_peek(0)); }
+break;
+case 16:
 //#line 218 "e.y"
-                    {
-                        yyval = sequence(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 17:
+{ yyval = sequence(val_peek(2), val_peek(0)); }
+break;
+case 17:
 //#line 219 "e.y"
-                    {
-                        yyval = forward(val_peek(0));
-                    }
-                    break;
-                case 18:
+{ yyval = forward(val_peek(0)); }
+break;
+case 18:
 //#line 234 "e.y"
-                    {
-                        yyval = list(val_peek(0));
-                    }
-                    break;
-                case 21:
+{ yyval = list(val_peek(0)); }
+break;
+case 21:
 //#line 239 "e.y"
-                    {
-                        yyval = assign(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 22:
+{ yyval = assign(val_peek(2),     val_peek(0)); }
+break;
+case 22:
 //#line 240 "e.y"
-                    {
-                        yyval = update(val_peek(2), val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 23:
+{ yyval = update(val_peek(2), val_peek(1), val_peek(0)); }
+break;
+case 23:
 //#line 241 "e.y"
-                    {
-                        yyval = assAsr(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 24:
+{ yyval = assAsr(val_peek(2),     val_peek(0)); }
+break;
+case 24:
 //#line 242 "e.y"
-                    {
-                        yyval = update(val_peek(2), val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 25:
+{ yyval = update(val_peek(2), val_peek(1), val_peek(0)); }
+break;
+case 25:
 //#line 244 "e.y"
-                    {
-                        yyval = define(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 26:
+{ yyval = define(val_peek(2), val_peek(0)); }
+break;
+case 26:
 //#line 245 "e.y"
-                    {
-                        yyval = define(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 27:
+{ yyval = define(val_peek(2), val_peek(0)); }
+break;
+case 27:
 //#line 246 "e.y"
-                    {
-                        yyval = define(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 29:
+{ yyval = define(val_peek(2), val_peek(0)); }
+break;
+case 29:
 //#line 255 "e.y"
-                    {
-                        yyval = condOr(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 31:
+{ yyval = condOr(val_peek(2), val_peek(0)); }
+break;
+case 31:
 //#line 264 "e.y"
-                    {
-                        yyval = condAnd(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 33:
+{ yyval = condAnd(val_peek(2), val_peek(0)); }
+break;
+case 33:
 //#line 273 "e.y"
-                    {
-                        yyval = same(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 34:
+{ yyval = same(val_peek(2), val_peek(0)); }
+break;
+case 34:
 //#line 274 "e.y"
-                    {
-                        yyval = not(same(val_peek(2), val_peek(0)));
-                    }
-                    break;
-                case 35:
+{ yyval = not(same(val_peek(2), val_peek(0))); }
+break;
+case 35:
 //#line 275 "e.y"
-                    {
-                        yyval = call(val_peek(2), "and", val_peek(0));
-                    }
-                    break;
-                case 36:
+{ yyval = call(val_peek(2), "and", val_peek(0)); }
+break;
+case 36:
 //#line 276 "e.y"
-                    {
-                        yyval = call(val_peek(2), "or", val_peek(0));
-                    }
-                    break;
-                case 37:
+{ yyval = call(val_peek(2), "or", val_peek(0)); }
+break;
+case 37:
 //#line 277 "e.y"
-                    {
-                        yyval = call(val_peek(2), "xor", val_peek(0));
-                    }
-                    break;
-                case 38:
+{ yyval = call(val_peek(2), "xor", val_peek(0)); }
+break;
+case 38:
 //#line 278 "e.y"
-                    {
-                        yyval = call(val_peek(2), "butNot", val_peek(0));
-                    }
-                    break;
-                case 39:
+{ yyval = call(val_peek(2), "butNot", val_peek(0)); }
+break;
+case 39:
 //#line 280 "e.y"
-                    {
-                        yyval = matchBind(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 40:
+{ yyval = matchBind(val_peek(2), val_peek(0)); }
+break;
+case 40:
 //#line 281 "e.y"
-                    {
-                        yyval = not(matchBind(val_peek(2), val_peek(0)));
-                    }
-                    break;
-                case 41:
+{ yyval = not(matchBind(val_peek(2), val_peek(0))); }
+break;
+case 41:
 //#line 293 "e.y"
-                    {
-                        yyval = list(val_peek(0));
-                    }
-                    break;
-                case 44:
+{ yyval = list(val_peek(0)); }
+break;
+case 44:
 //#line 298 "e.y"
-                    {
-                        yyval = lessThan(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 45:
+{ yyval = lessThan(val_peek(2), val_peek(0)); }
+break;
+case 45:
 //#line 299 "e.y"
-                    {
-                        yyval = leq(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 46:
+{ yyval = leq(val_peek(2), val_peek(0)); }
+break;
+case 46:
 //#line 300 "e.y"
-                    {
-                        yyval = asBigAs(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 47:
+{ yyval = asBigAs(val_peek(2), val_peek(0)); }
+break;
+case 47:
 //#line 301 "e.y"
-                    {
-                        yyval = geq(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 48:
+{ yyval = geq(val_peek(2), val_peek(0)); }
+break;
+case 48:
 //#line 302 "e.y"
-                    {
-                        yyval = greaterThan(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 50:
+{ yyval = greaterThan(val_peek(2), val_peek(0)); }
+break;
+case 50:
 //#line 311 "e.y"
-                    {
-                        yyval = thru(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 51:
+{ yyval = thru(val_peek(2), val_peek(0)); }
+break;
+case 51:
 //#line 312 "e.y"
-                    {
-                        yyval = till(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 53:
+{ yyval = till(val_peek(2), val_peek(0)); }
+break;
+case 53:
 //#line 321 "e.y"
-                    {
-                        yyval = call(val_peek(2), "shiftLeft", val_peek(0));
-                    }
-                    break;
-                case 54:
+{ yyval = call(val_peek(2), "shiftLeft", val_peek(0)); }
+break;
+case 54:
 //#line 322 "e.y"
-                    {
-                        yyval = call(val_peek(2), "shiftLeft",
-                                     list(call(val_peek(0), "negate", list())));
-                    }
-                    break;
-                case 55:
+{ yyval = call(val_peek(2), "shiftLeft",
+                                            list(call(val_peek(0), "negate", list())));
+                                }
+break;
+case 55:
 //#line 332 "e.y"
-                    {
-                        yyval = list(val_peek(0));
-                    }
-                    break;
-                case 58:
+{ yyval = list(val_peek(0)); }
+break;
+case 58:
 //#line 337 "e.y"
-                    {
-                        yyval = call(val_peek(2), "add", val_peek(0));
-                    }
-                    break;
-                case 59:
+{ yyval = call(val_peek(2), "add", val_peek(0)); }
+break;
+case 59:
 //#line 338 "e.y"
-                    {
-                        yyval = call(val_peek(2), "subtract", val_peek(0));
-                    }
-                    break;
-                case 60:
+{ yyval = call(val_peek(2), "subtract", val_peek(0)); }
+break;
+case 60:
 //#line 346 "e.y"
-                    {
-                        yyval = list(val_peek(0));
-                    }
-                    break;
-                case 63:
+{ yyval = list(val_peek(0)); }
+break;
+case 63:
 //#line 351 "e.y"
-                    {
-                        yyval = call(val_peek(2), "multiply", val_peek(0));
-                    }
-                    break;
-                case 64:
+{ yyval = call(val_peek(2), "multiply", val_peek(0)); }
+break;
+case 64:
 //#line 352 "e.y"
-                    {
-                        yyval = call(val_peek(2), "approxDivide", val_peek(0));
-                    }
-                    break;
-                case 65:
+{ yyval = call(val_peek(2), "approxDivide", val_peek(0)); }
+break;
+case 65:
 //#line 353 "e.y"
-                    {
-                        yyval = call(val_peek(2), "floorDivide", val_peek(0));
-                    }
-                    break;
-                case 66:
+{ yyval = call(val_peek(2), "floorDivide", val_peek(0)); }
+break;
+case 66:
 //#line 354 "e.y"
-                    {
-                        yyval = call(val_peek(2), "remainder", val_peek(0));
-                    }
-                    break;
-                case 67:
+{ yyval = call(val_peek(2), "remainder", val_peek(0)); }
+break;
+case 67:
 //#line 355 "e.y"
-                    {
-                        yyval = mod(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 68:
+{ yyval = mod(val_peek(2), val_peek(0)); }
+break;
+case 68:
 //#line 363 "e.y"
-                    {
-                        yyval = list(val_peek(0));
-                    }
-                    break;
-                case 71:
+{ yyval = list(val_peek(0)); }
+break;
+case 71:
 //#line 368 "e.y"
-                    {
-                        yyval = call(val_peek(2), "pow", val_peek(0));
-                    }
-                    break;
-                case 72:
+{ yyval = call(val_peek(2), "pow", val_peek(0)); }
+break;
+case 72:
 //#line 377 "e.y"
-                    {
-                        yyval = list(val_peek(0));
-                    }
-                    break;
-                case 75:
+{ yyval = list(val_peek(0)); }
+break;
+case 75:
 //#line 382 "e.y"
-                    {
-                        yyval = call(val_peek(0), "not", list());
-                    }
-                    break;
-                case 76:
+{ yyval = call(val_peek(0), "not", list()); }
+break;
+case 76:
 //#line 383 "e.y"
-                    {
-                        yyval = call(val_peek(0), "complement", list());
-                    }
-                    break;
-                case 77:
+{ yyval = call(val_peek(0), "complement", list());}
+break;
+case 77:
 //#line 384 "e.y"
-                    {
-                        yyval = call(val_peek(0), "negate", list());
-                    }
-                    break;
-                case 78:
+{ yyval = call(val_peek(0), "negate", list()); }
+break;
+case 78:
 //#line 385 "e.y"
-                    {
-                        yyval = slotExpr(val_peek(0));
-                    }
-                    break;
-                case 81:
+{ yyval = slotExpr(val_peek(0)); }
+break;
+case 81:
 //#line 397 "e.y"
-                    {
-                        yyval = call(val_peek(3), "get", val_peek(1));
-                    }
-                    break;
-                case 82:
+{ yyval = call(val_peek(3), "get", val_peek(1)); }
+break;
+case 82:
 //#line 398 "e.y"
-                    {
-                        yyval = send(val_peek(3), val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 83:
+{ yyval = send(val_peek(3), val_peek(1), val_peek(0)); }
+break;
+case 83:
 //#line 399 "e.y"
-                    {
-                        yyval = send(val_peek(2), "run", val_peek(0));
-                    }
-                    break;
-                case 84:
+{ yyval = send(val_peek(2), "run", val_peek(0)); }
+break;
+case 84:
 //#line 401 "e.y"
-                    {
-                        pocket("no-paren-call");
-                        yyval = send(val_peek(2), val_peek(0), list());
-                    }
-                    break;
-                case 85:
+{ pocket("no-paren-call");
+                                          yyval = send(val_peek(2), val_peek(0), list()); }
+break;
+case 85:
 //#line 403 "e.y"
-                    {
-                        pocket("no-paren-call");
-                        yyval = call(val_peek(1), val_peek(0), list());
-                    }
-                    break;
-                case 86:
+{ pocket("no-paren-call");
+                                          yyval = call(val_peek(1), val_peek(0), list()); }
+break;
+case 86:
 //#line 405 "e.y"
-                    {
-                        pocket("dot-props");
-                        yyval = property(val_peek(2), val_peek(0), list());
-                    }
-                    break;
-                case 87:
+{ pocket("dot-props");
+                                          yyval = property(val_peek(2), val_peek(0), list()); }
+break;
+case 87:
 //#line 407 "e.y"
-                    {
-                        pocket("dot-props");
-                        yyval = property(val_peek(3), val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 88:
+{ pocket("dot-props");
+                                          yyval = property(val_peek(3), val_peek(1), val_peek(0)); }
+break;
+case 88:
 //#line 415 "e.y"
-                    {
-                        yyval = doMeta(val_peek(1), "run", val_peek(0));
-                    }
-                    break;
-                case 89:
+{ yyval = doMeta(val_peek(1), "run", val_peek(0)); }
+break;
+case 89:
 //#line 416 "e.y"
-                    {
-                        yyval = doMeta(val_peek(2), val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 90:
+{ yyval = doMeta(val_peek(2), val_peek(1), val_peek(0)); }
+break;
+case 90:
 //#line 417 "e.y"
-                    {
-                        yyval = doMetaSend(val_peek(2), "run", val_peek(0));
-                    }
-                    break;
-                case 91:
+{ yyval = doMetaSend(val_peek(2), "run", val_peek(0)); }
+break;
+case 91:
 //#line 418 "e.y"
-                    {
-                        yyval = doMetaSend(val_peek(3), val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 92:
+{ yyval = doMetaSend(val_peek(3), val_peek(1), val_peek(0)); }
+break;
+case 92:
 //#line 420 "e.y"
-                    {
-                        pocket("no-paren-call");
-                        yyval = doMeta(val_peek(1), val_peek(0), list());
-                    }
-                    break;
-                case 93:
+{ pocket("no-paren-call");
+                                          yyval = doMeta(val_peek(1), val_peek(0), list()); }
+break;
+case 93:
 //#line 422 "e.y"
-                    {
-                        pocket("no-paren-call");
-                        yyval = doMetaSend(val_peek(2), val_peek(0), list());
-                    }
-                    break;
-                case 95:
+{ pocket("no-paren-call");
+                                          yyval = doMetaSend(val_peek(2), val_peek(0), list()); }
+break;
+case 95:
 //#line 436 "e.y"
-                    {
-                        yyval = call(val_peek(1), "run", val_peek(0));
-                    }
-                    break;
-                case 96:
+{ yyval = call(val_peek(1), "run", val_peek(0)); }
+break;
+case 96:
 //#line 437 "e.y"
-                    {
-                        yyval = call(val_peek(2), val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 97:
+{ yyval = call(val_peek(2), val_peek(1), val_peek(0)); }
+break;
+case 97:
 //#line 445 "e.y"
-                    {
-                        yyval = literal(val_peek(0));
-                    }
-                    break;
-                case 98:
+{ yyval = literal(val_peek(0)); }
+break;
+case 98:
 //#line 446 "e.y"
-                    {
-                        yyval = literal(val_peek(0));
-                    }
-                    break;
-                case 99:
+{ yyval = literal(val_peek(0)); }
+break;
+case 99:
 //#line 447 "e.y"
-                    {
-                        yyval = literal(val_peek(0));
-                    }
-                    break;
-                case 100:
+{ yyval = literal(val_peek(0)); }
+break;
+case 100:
 //#line 448 "e.y"
-                    {
-                        yyval = literal(val_peek(0));
-                    }
-                    break;
-                case 101:
+{ yyval = literal(val_peek(0)); }
+break;
+case 101:
 //#line 449 "e.y"
-                    {
-                        yyval = literal(val_peek(0));
-                    }
-                    break;
-                case 103:
+{ yyval = literal(val_peek(0)); }
+break;
+case 103:
 //#line 453 "e.y"
-                    {
-                        yyval = uriExpr(val_peek(0));
-                    }
-                    break;
-                case 104:
+{ yyval = uriExpr(val_peek(0)); }
+break;
+case 104:
 //#line 454 "e.y"
-                    {
-                        yyval = uriExpr(val_peek(2), val_peek(1));
-                    }
-                    break;
-                case 105:
+{ yyval = uriExpr(val_peek(2),val_peek(1)); }
+break;
+case 105:
 //#line 456 "e.y"
-                    {
-                        yyval = quasiExpr(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 107:
+{ yyval = quasiExpr(val_peek(1),val_peek(0)); }
+break;
+case 107:
 //#line 459 "e.y"
-                    {
-                        yyval = tuple(val_peek(1));
-                    }
-                    break;
-                case 108:
+{ yyval = tuple(val_peek(1)); }
+break;
+case 108:
 //#line 460 "e.y"
-                    {
-                        yyval = map(val_peek(1));
-                    }
-                    break;
-                case 109:
+{ yyval = map(val_peek(1)); }
+break;
+case 109:
 //#line 462 "e.y"
-                    {
-                        yyval = hide(val_peek(0));
-                    }
-                    break;
-                case 110:
+{ yyval = hide(val_peek(0)); }
+break;
+case 110:
 //#line 464 "e.y"
-                    {
-                        yyval = escape(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 111:
+{ yyval = escape(val_peek(1),val_peek(0)); }
+break;
+case 111:
 //#line 466 "e.y"
-                    {
-                        yyval = whilex(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 112:
+{ yyval = whilex(val_peek(1),val_peek(0)); }
+break;
+case 112:
 //#line 468 "e.y"
-                    {
-                        yyval = switchx(val_peek(2), val_peek(1));
-                    }
-                    break;
-                case 113:
+{ yyval = switchx(val_peek(2),val_peek(1)); }
+break;
+case 113:
 //#line 470 "e.y"
-                    {
-                        yyval = tryx(val_peek(2), val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 118:
+{ yyval = tryx(val_peek(2),val_peek(1),val_peek(0)); }
+break;
+case 118:
 //#line 478 "e.y"
-                    {
-                        yyval = quasiLiteralExpr(val_peek(1));
-                    }
-                    break;
-                case 119:
+{ yyval = quasiLiteralExpr(val_peek(1)); }
+break;
+case 119:
 //#line 479 "e.y"
-                    {
-                        yyval = quasiLiteralExpr(val_peek(0));
-                    }
-                    break;
-                case 120:
+{ yyval = quasiLiteralExpr(val_peek(0)); }
+break;
+case 120:
 //#line 480 "e.y"
-                    {
-                        yyval = quasiLiteralExpr();
-                    }
-                    break;
-                case 121:
+{ yyval = quasiLiteralExpr(); }
+break;
+case 121:
 //#line 481 "e.y"
-                    {
-                        yyval = quasiPatternExpr(val_peek(1));
-                    }
-                    break;
-                case 122:
+{ yyval = quasiPatternExpr(val_peek(1)); }
+break;
+case 122:
 //#line 482 "e.y"
-                    {
-                        yyval = quasiPatternExpr(val_peek(0));
-                    }
-                    break;
-                case 123:
+{ yyval = quasiPatternExpr(val_peek(0)); }
+break;
+case 123:
 //#line 485 "e.y"
-                    {
-                        reserved("select");
-                    }
-                    break;
-                case 124:
+{ reserved("select"); }
+break;
+case 124:
 //#line 486 "e.y"
-                    {
-                        pocket("typedef");
-                        yyval = val_peek(0);
-                    }
-                    break;
-                case 126:
+{ pocket("typedef");
+                                                  yyval = val_peek(0); }
+break;
+case 126:
 //#line 495 "e.y"
-                    {
-                        yyval = object(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 127:
+{ yyval = object(val_peek(1), val_peek(0)); }
+break;
+case 127:
 //#line 496 "e.y"
-                    {
-                        yyval = methObject(val_peek(3), val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 128:
+{ yyval = methObject(val_peek(3),val_peek(1),val_peek(0)); }
+break;
+case 128:
 //#line 497 "e.y"
-                    {
-                        yyval = thunk(val_peek(0));
-                    }
-                    break;
-                case 129:
+{ yyval = thunk(val_peek(0)); }
+break;
+case 129:
 //#line 499 "e.y"
-                    {
-                        yyval = classExpr(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 130:
+{ yyval = classExpr(val_peek(1),val_peek(0)); }
+break;
+case 130:
 //#line 501 "e.y"
-                    {
-                        pocket("anon-lambda");
-                        yyval = methObject(audits(ignore(),
-                                                  list()),
-                                           val_peek(1),
-                                           val_peek(0));
-                    }
-                    break;
-                case 131:
+{ pocket("anon-lambda");
+                                          yyval = methObject(audits(ignore(),
+                                                                 list()),
+                                                          val_peek(1),
+                                                          val_peek(0)); }
+break;
+case 131:
 //#line 506 "e.y"
-                    {
-                        pocket("anon-lambda");
-                        yyval = thunk(val_peek(0));
-                    }
-                    break;
-                case 132:
+{ pocket("anon-lambda");
+                                          yyval = thunk(val_peek(0)); }
+break;
+case 132:
 //#line 514 "e.y"
-                    {
-                        yyval = noun(val_peek(0));
-                    }
-                    break;
-                case 133:
+{ yyval = noun(val_peek(0)); }
+break;
+case 133:
 //#line 523 "e.y"
-                    {
-                        yyval = val_peek(1);
-                    }
-                    break;
-                case 134:
+{ yyval = val_peek(1); }
+break;
+case 134:
 //#line 532 "e.y"
-                    {
-                        yyval = ifx(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 135:
+{ yyval = ifx(val_peek(1), val_peek(0)); }
+break;
+case 135:
 //#line 533 "e.y"
-                    {
-                        yyval = ifx(val_peek(3), val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 136:
+{ yyval = ifx(val_peek(3), val_peek(2), val_peek(0)); }
+break;
+case 136:
 //#line 534 "e.y"
-                    {
-                        yyval = ifx(val_peek(4), val_peek(3), val_peek(0));
-                    }
-                    break;
-                case 137:
+{ yyval = ifx(val_peek(4), val_peek(3), val_peek(0)); }
+break;
+case 137:
 //#line 542 "e.y"
-                    {
-                        yyval = forx(val_peek(5), val_peek(3), val_peek(1));
-                    }
-                    break;
-                case 138:
+{ yyval = forx(val_peek(5),val_peek(3),val_peek(1)); }
+break;
+case 138:
 //#line 550 "e.y"
-                    {
-                        yyval = when(val_peek(3), val_peek(2), val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 139:
+{ yyval = when(val_peek(3),val_peek(2),val_peek(1),val_peek(0)); }
+break;
+case 139:
 //#line 560 "e.y"
-                    {
-                        yyval = macro(val_peek(4), val_peek(2), val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 140:
+{ yyval = macro(val_peek(4), val_peek(2), val_peek(1), val_peek(0)); }
+break;
+case 140:
 //#line 562 "e.y"
-                    {
-                        yyval = macro(val_peek(5), val_peek(3), val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 141:
+{ yyval = macro(val_peek(5), val_peek(3), val_peek(2), val_peek(0)); }
+break;
+case 141:
 //#line 566 "e.y"
-                    {
-                        yyval = null;
-                    }
-                    break;
-                case 142:
+{ yyval = null; }
+break;
+case 142:
 //#line 568 "e.y"
-                    {
-                        yyval = macro(val_peek(5), val_peek(3), val_peek(2), val_peek(1));
-                    }
-                    break;
-                case 143:
+{ yyval = macro(val_peek(5), val_peek(3), val_peek(2), val_peek(1)); }
+break;
+case 143:
 //#line 570 "e.y"
-                    {
-                        yyval = macro(val_peek(5), val_peek(3), val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 144:
+{ yyval = macro(val_peek(5), val_peek(3), val_peek(2), val_peek(0)); }
+break;
+case 144:
 //#line 578 "e.y"
-                    {
-                        yyval = null;
-                    }
-                    break;
-                case 147:
+{ yyval = null; }
+break;
+case 147:
 //#line 585 "e.y"
-                    {
-                        yyval = noun("simple__quasiParser");
-                    }
-                    break;
-                case 148:
+{ yyval = noun("simple__quasiParser"); }
+break;
+case 148:
 //#line 586 "e.y"
-                    {
-                        yyval = noun(val_peek(0) + "__quasiParser");
-                    }
-                    break;
-                case 149:
+{ yyval = noun(val_peek(0) +  "__quasiParser"); }
+break;
+case 149:
 //#line 587 "e.y"
-                    {
-                        yyval = val_peek(1);
-                    }
-                    break;
-                case 150:
+{ yyval = val_peek(1); }
+break;
+case 150:
 //#line 591 "e.y"
-                    {
-                        yyval = list(val_peek(0));
-                    }
-                    break;
-                case 151:
+{ yyval = list(val_peek(0)); }
+break;
+case 151:
 //#line 592 "e.y"
-                    {
-                        yyval = with(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 152:
+{ yyval = with(val_peek(1), val_peek(0)); }
+break;
+case 152:
 //#line 596 "e.y"
-                    {
-                        yyval = list(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 153:
+{ yyval = list(val_peek(1), val_peek(0)); }
+break;
+case 153:
 //#line 597 "e.y"
-                    {
-                        yyval = with(with(val_peek(2), val_peek(1)), val_peek(0));
-                    }
-                    break;
-                case 154:
+{ yyval = with(with(val_peek(2), val_peek(1)), val_peek(0)); }
+break;
+case 154:
 //#line 601 "e.y"
-                    {
-                        yyval = dollarNoun(val_peek(0));
-                    }
-                    break;
-                case 155:
+{ yyval = dollarNoun(val_peek(0)); }
+break;
+case 155:
 //#line 602 "e.y"
-                    {
-                        yyval = val_peek(1);
-                    }
-                    break;
-                case 158:
+{ yyval = val_peek(1); }
+break;
+case 158:
 //#line 620 "e.y"
-                    {
-                        yyval = list(val_peek(0));
-                    }
-                    break;
-                case 159:
+{ yyval = list(val_peek(0)); }
+break;
+case 159:
 //#line 621 "e.y"
-                    {
-                        yyval = with(val_peek(3), val_peek(0));
-                    }
-                    break;
-                case 161:
+{ yyval = with(val_peek(3), val_peek(0)); }
+break;
+case 161:
 //#line 631 "e.y"
-                    {
-                        yyval = list(val_peek(0));
-                    }
-                    break;
-                case 162:
+{ yyval = list(val_peek(0)); }
+break;
+case 162:
 //#line 632 "e.y"
-                    {
-                        yyval = with(val_peek(3), val_peek(0));
-                    }
-                    break;
-                case 163:
+{ yyval = with(val_peek(3), val_peek(0)); }
+break;
+case 163:
 //#line 639 "e.y"
-                    {
-                        yyval = new Assoc(ignore(), val_peek(0));
-                    }
-                    break;
-                case 165:
+{ yyval = new Assoc(ignore(), val_peek(0)); }
+break;
+case 165:
 //#line 644 "e.y"
-                    {
-                        yyval = new Assoc(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 166:
+{ yyval = new Assoc(val_peek(2), val_peek(0)); }
+break;
+case 166:
 //#line 645 "e.y"
-                    {
-                        reserved("var-extract-pattern");
-                    }
-                    break;
-                case 168:
+{ reserved("var-extract-pattern"); }
+break;
+case 168:
 //#line 650 "e.y"
-                    {
-                        yyval = suchThat(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 169:
+{ yyval = suchThat(val_peek(2), val_peek(0)); }
+break;
+case 169:
 //#line 652 "e.y"
-                    {
-                        reserved("meta pattern");
-                    }
-                    break;
-                case 171:
+{ reserved("meta pattern"); }
+break;
+case 171:
 //#line 657 "e.y"
-                    {
-                        yyval = listPattern(val_peek(1));
-                    }
-                    break;
-                case 172:
+{ yyval = listPattern(val_peek(1)); }
+break;
+case 172:
 //#line 658 "e.y"
-                    {
-                        yyval = cdrPattern(val_peek(3), val_peek(0));
-                    }
-                    break;
-                case 173:
+{ yyval = cdrPattern(val_peek(3), val_peek(0)); }
+break;
+case 173:
 //#line 660 "e.y"
-                    {
-                        reserved("map pattern");
-                    }
-                    break;
-                case 174:
+{ reserved("map pattern"); }
+break;
+case 174:
 //#line 661 "e.y"
-                    {
-                        reserved("map pattern");
-                    }
-                    break;
-                case 176:
+{ reserved("map pattern"); }
+break;
+case 176:
 //#line 666 "e.y"
-                    {
-                        yyval = patternEquals(val_peek(0));
-                    }
-                    break;
-                case 178:
+{ yyval = patternEquals(val_peek(0)); }
+break;
+case 178:
 //#line 671 "e.y"
-                    {
-                        yyval = quasiPattern(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 179:
+{ yyval = quasiPattern(val_peek(1), val_peek(0)); }
+break;
+case 179:
 //#line 675 "e.y"
-                    {
-                        yyval = list(val_peek(0));
-                    }
-                    break;
-                case 180:
+{ yyval = list(val_peek(0)); }
+break;
+case 180:
 //#line 676 "e.y"
-                    {
-                        yyval = with(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 181:
+{ yyval = with(val_peek(1), val_peek(0)); }
+break;
+case 181:
 //#line 680 "e.y"
-                    {
-                        yyval = list(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 182:
+{ yyval = list(val_peek(1), val_peek(0)); }
+break;
+case 182:
 //#line 681 "e.y"
-                    {
-                        yyval = with(with(val_peek(2), val_peek(1)), val_peek(0));
-                    }
-                    break;
-                case 185:
+{ yyval = with(with(val_peek(2), val_peek(1)), val_peek(0));}
+break;
+case 185:
 //#line 690 "e.y"
-                    {
-                        yyval = atNoun(val_peek(0));
-                    }
-                    break;
-                case 186:
+{ yyval = atNoun(val_peek(0)); }
+break;
+case 186:
 //#line 691 "e.y"
-                    {
-                        yyval = val_peek(1);
-                    }
-                    break;
-                case 187:
+{ yyval = val_peek(1); }
+break;
+case 187:
 //#line 704 "e.y"
-                    {
-                        yyval = finalPattern(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 188:
+{ yyval = finalPattern(val_peek(2), val_peek(0)); }
+break;
+case 188:
 //#line 705 "e.y"
-                    {
-                        yyval = finalPattern(val_peek(0));
-                    }
-                    break;
-                case 189:
+{ yyval = finalPattern(val_peek(0)); }
+break;
+case 189:
 //#line 706 "e.y"
-                    {
-                        yyval = slotDefiner(val_peek(0));
-                    }
-                    break;
-                case 190:
+{ yyval = slotDefiner(val_peek(0)); }
+break;
+case 190:
 //#line 707 "e.y"
-                    {
-                        yyval = ignore();
-                    }
-                    break;
-                case 191:
+{ yyval = ignore(); }
+break;
+case 191:
 //#line 708 "e.y"
-                    {
-                        reserved("anon guard");
-                    }
-                    break;
-                case 194:
+{ reserved("anon guard"); }
+break;
+case 194:
 //#line 712 "e.y"
-                    {
-                        yyval = quasiLiteralPatt(val_peek(1));
-                    }
-                    break;
-                case 195:
+{ yyval = quasiLiteralPatt(val_peek(1)); }
+break;
+case 195:
 //#line 713 "e.y"
-                    {
-                        yyval = quasiPatternPatt(val_peek(1));
-                    }
-                    break;
-                case 196:
+{ yyval = quasiPatternPatt(val_peek(1)); }
+break;
+case 196:
 //#line 717 "e.y"
-                    {
-                        yyval = bindDefiner(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 197:
+{ yyval = bindDefiner(val_peek(2), val_peek(0)); }
+break;
+case 197:
 //#line 718 "e.y"
-                    {
-                        yyval = bindDefiner(val_peek(0));
-                    }
-                    break;
-                case 198:
+{ yyval = bindDefiner(val_peek(0)); }
+break;
+case 198:
 //#line 722 "e.y"
-                    {
-                        yyval = varPattern(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 199:
+{ yyval = varPattern(val_peek(2), val_peek(0)); }
+break;
+case 199:
 //#line 723 "e.y"
-                    {
-                        yyval = varPattern(val_peek(0));
-                    }
-                    break;
-                case 200:
+{ yyval = varPattern(val_peek(0)); }
+break;
+case 200:
 //#line 732 "e.y"
-                    {
-                        yyval = finalPattern(val_peek(0));
-                    }
-                    break;
-                case 201:
+{ yyval = finalPattern(val_peek(0)); }
+break;
+case 201:
 //#line 733 "e.y"
-                    {
-                        yyval = ignore();
-                    }
-                    break;
-                case 202:
+{ yyval = ignore(); }
+break;
+case 202:
 //#line 734 "e.y"
-                    {
-                        yyval = bindDefiner(val_peek(0));
-                    }
-                    break;
-                case 203:
+{ yyval = bindDefiner(val_peek(0)); }
+break;
+case 203:
 //#line 735 "e.y"
-                    {
-                        yyval = varPattern(val_peek(0));
-                    }
-                    break;
-                case 204:
+{ yyval = varPattern(val_peek(0)); }
+break;
+case 204:
 //#line 736 "e.y"
-                    {
-                        yyval = quasiLiteralPatt(val_peek(1));
-                    }
-                    break;
-                case 205:
+{ yyval = quasiLiteralPatt(val_peek(1)); }
+break;
+case 205:
 //#line 737 "e.y"
-                    {
-                        yyval = quasiPatternPatt(val_peek(1));
-                    }
-                    break;
-                case 207:
+{ yyval = quasiPatternPatt(val_peek(1)); }
+break;
+case 207:
 //#line 754 "e.y"
-                    {
-                        yyval = val_peek(0);
-                    }
-                    break;
-                case 208:
+{ yyval = val_peek(0); }
+break;
+case 208:
 //#line 755 "e.y"
-                    {
-                        yyval = bindDefiner(val_peek(0));
-                    }
-                    break;
-                case 209:
+{ yyval = bindDefiner(val_peek(0)); }
+break;
+case 209:
 //#line 756 "e.y"
-                    {
-                        yyval = varPattern(val_peek(0));
-                    }
-                    break;
-                case 210:
+{ yyval = varPattern(val_peek(0)); }
+break;
+case 210:
 //#line 763 "e.y"
-                    {
-                        yyval = audits(val_peek(0), list());
-                    }
-                    break;
-                case 211:
+{ yyval = audits(val_peek(0), list()); }
+break;
+case 211:
 //#line 764 "e.y"
-                    {
-                        pocket("auditors");
-                        yyval = audits(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 212:
+{ pocket("auditors");
+                                                  yyval = audits(val_peek(2), val_peek(0)); }
+break;
+case 212:
 //#line 772 "e.y"
-                    {
-                        yyval = audits(val_peek(0), list());
-                    }
-                    break;
-                case 213:
+{ yyval = audits(val_peek(0), list()); }
+break;
+case 213:
 //#line 773 "e.y"
-                    {
-                        pocket("auditors");
-                        yyval = audits(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 214:
+{ pocket("auditors");
+                                                  yyval = audits(val_peek(2), val_peek(0)); }
+break;
+case 214:
 //#line 778 "e.y"
-                    {
-                        yyval = list(val_peek(0));
-                    }
-                    break;
-                case 215:
+{ yyval = list(val_peek(0)); }
+break;
+case 215:
 //#line 779 "e.y"
-                    {
-                        yyval = with(val_peek(3), val_peek(0));
-                    }
-                    break;
-                case 216:
+{ yyval = with(val_peek(3), val_peek(0)); }
+break;
+case 216:
 //#line 791 "e.y"
-                    {
-                        yyval = list();
-                    }
-                    break;
-                case 217:
+{ yyval = list(); }
+break;
+case 217:
 //#line 792 "e.y"
-                    {
-                        yyval = append(list(val_peek(3)), val_peek(1));
-                    }
-                    break;
-                case 220:
+{ yyval = append(list(val_peek(3)),val_peek(1)); }
+break;
+case 220:
 //#line 806 "e.y"
-                    {
-                        yyval = method(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 221:
+{ yyval = method(val_peek(1), val_peek(0)); }
+break;
+case 221:
 //#line 808 "e.y"
-                    {
-                        reserved("fields");
-                    }
-                    break;
-                case 222:
+{ reserved("fields"); }
+break;
+case 222:
 //#line 809 "e.y"
-                    {
-                        reserved("on event");
-                    }
-                    break;
-                case 223:
+{ reserved("on event"); }
+break;
+case 223:
 //#line 810 "e.y"
-                    {
-                        reserved("sealed meta");
-                    }
-                    break;
-                case 224:
+{ reserved("sealed meta"); }
+break;
+case 224:
 //#line 811 "e.y"
-                    {
-                        reserved("sealed meta");
-                    }
-                    break;
-                case 225:
+{ reserved("sealed meta"); }
+break;
+case 225:
 //#line 819 "e.y"
-                    {
-                        yyval = methHead("run", val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 226:
+{ yyval = methHead("run", val_peek(2), val_peek(0)); }
+break;
+case 226:
 //#line 820 "e.y"
-                    {
-                        yyval = methHead(val_peek(4), val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 227:
+{ yyval = methHead(val_peek(4), val_peek(2), val_peek(0)); }
+break;
+case 227:
 //#line 822 "e.y"
-                    {
-                        pocket("no-paren-method");
-                        yyval = methHead(val_peek(1), list(), val_peek(0));
-                    }
-                    break;
-                case 228:
+{ pocket("no-paren-method");
+                                               yyval = methHead(val_peek(1), list(), val_peek(0)); }
+break;
+case 228:
 //#line 831 "e.y"
-                    {
-                        yyval = methHead("run", val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 229:
+{ yyval = methHead("run", val_peek(2), val_peek(0)); }
+break;
+case 229:
 //#line 833 "e.y"
-                    {
-                        pocket("one-method-object");
-                        yyval = methHead(val_peek(4), val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 230:
+{ pocket("one-method-object");
+                                               yyval = methHead(val_peek(4), val_peek(2), val_peek(0)); }
+break;
+case 230:
 //#line 835 "e.y"
-                    {
-                        pocket("no-paren-method");
-                        yyval = methHead(val_peek(1), list(), val_peek(0));
-                    }
-                    break;
-                case 231:
+{ pocket("no-paren-method");
+                                               yyval = methHead(val_peek(1), list(), val_peek(0)); }
+break;
+case 231:
 //#line 844 "e.y"
-                    {
-                        yyval = list(val_peek(5), val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 232:
+{ yyval = list(val_peek(5), val_peek(2), val_peek(0)); }
+break;
+case 232:
 //#line 854 "e.y"
-                    {
-                        yyval = matcher(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 233:
+{ yyval = matcher(val_peek(1), val_peek(0)); }
+break;
+case 233:
 //#line 863 "e.y"
-                    {
-                        yyval = delegatex(val_peek(0));
-                    }
-                    break;
-                case 234:
+{ yyval = delegatex(val_peek(0)); }
+break;
+case 234:
 //#line 870 "e.y"
-                    {
-                        yyval = VOID;
-                    }
-                    break;
-                case 235:
+{ yyval = VOID; }
+break;
+case 235:
 //#line 871 "e.y"
-                    {
-                        yyval = val_peek(0);
-                    }
-                    break;
-                case 236:
+{ yyval = val_peek(0); }
+break;
+case 236:
 //#line 875 "e.y"
-                    {
-                        yyval = val_peek(1);
-                    }
-                    break;
-                case 237:
+{ yyval = val_peek(1); }
+break;
+case 237:
 //#line 884 "e.y"
-                    {
-                        yyval = list(val_peek(7), val_peek(5), val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 238:
+{ yyval = list(val_peek(7), val_peek(5), val_peek(2), val_peek(0)); }
+break;
+case 238:
 //#line 887 "e.y"
-                    {
-                        pocket("when-clauses");
-                        yyval = list(val_peek(5), val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 239:
+{ pocket("when-clauses");
+                                                  yyval = list(val_peek(5), val_peek(2), val_peek(0)); }
+break;
+case 239:
 //#line 892 "e.y"
-                    {
-                        yyval = list(val_peek(0));
-                    }
-                    break;
-                case 240:
+{ yyval = list(val_peek(0)); }
+break;
+case 240:
 //#line 893 "e.y"
-                    {
-                        yyval = with(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 241:
+{ yyval = with(val_peek(2), val_peek(0)); }
+break;
+case 241:
 //#line 897 "e.y"
-                    {
-                        list(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 246:
+{ list(val_peek(2), val_peek(0)); }
+break;
+case 246:
 //#line 915 "e.y"
-                    {
-                        yyval = list();
-                    }
-                    break;
-                case 247:
+{ yyval = list(); }
+break;
+case 247:
 //#line 919 "e.y"
-                    {
-                        yyval = list();
-                    }
-                    break;
-                case 248:
+{ yyval = list(); }
+break;
+case 248:
 //#line 924 "e.y"
-                    {
-                        yyval = val_peek(1);
-                    }
-                    break;
-                case 249:
+{ yyval = val_peek(1); }
+break;
+case 249:
 //#line 929 "e.y"
-                    {
-                        pocket("lambda-args");
-                        yyval = with(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 252:
+{ pocket("lambda-args");
+                                          yyval = with(val_peek(1), val_peek(0)); }
+break;
+case 252:
 //#line 939 "e.y"
-                    {
-                        yyval = list(val_peek(0));
-                    }
-                    break;
-                case 253:
+{ yyval = list(val_peek(0)); }
+break;
+case 253:
 //#line 940 "e.y"
-                    {
-                        yyval = with(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 254:
+{ yyval = with(val_peek(2), val_peek(0)); }
+break;
+case 254:
 //#line 945 "e.y"
-                    {
-                        yyval = list(val_peek(0));
-                    }
-                    break;
-                case 255:
+{ yyval = list(val_peek(0)); }
+break;
+case 255:
 //#line 946 "e.y"
-                    {
-                        yyval = with(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 256:
+{ yyval = with(val_peek(2), val_peek(0)); }
+break;
+case 256:
 //#line 950 "e.y"
-                    {
-                        yyval = new Assoc(val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 257:
+{ yyval = new Assoc(val_peek(2), val_peek(0)); }
+break;
+case 257:
 //#line 951 "e.y"
-                    {
-                        reserved("export binding");
-                    }
-                    break;
-                case 259:
+{ reserved("export binding"); }
+break;
+case 259:
 //#line 966 "e.y"
-                    {
-                        yyval = hilbert(val_peek(0));
-                    }
-                    break;
-                case 260:
+{ yyval = hilbert(val_peek(0)); }
+break;
+case 260:
 //#line 973 "e.y"
-                    {
-                        yyval = ((AstroToken)val_peek(0)).getValue();
-                    }
-                    break;
-                case 261:
+{ yyval = ((AstroToken)val_peek(0)).getValue(); }
+break;
+case 261:
 //#line 974 "e.y"
-                    {
-                        reserved("keyword \"" +
-                                 ((AstroToken)val_peek(0)).getText() +
-                                 "\"");
-                    }
-                    break;
-                case 262:
+{ reserved("keyword \"" +
+                                           ((AstroToken)val_peek(0)).getText() +
+                                           "\""); }
+break;
+case 262:
 //#line 990 "e.y"
-                    {
-                        yyval = "add";
-                    }
-                    break;
-                case 263:
+{ yyval = "add"; }
+break;
+case 263:
 //#line 991 "e.y"
-                    {
-                        yyval = "and";
-                    }
-                    break;
-                case 264:
+{ yyval = "and"; }
+break;
+case 264:
 //#line 992 "e.y"
-                    {
-                        yyval = "approxDivide";
-                    }
-                    break;
-                case 265:
+{ yyval = "approxDivide"; }
+break;
+case 265:
 //#line 993 "e.y"
-                    {
-                        yyval = "floorDivide";
-                    }
-                    break;
-                case 266:
+{ yyval = "floorDivide"; }
+break;
+case 266:
 //#line 994 "e.y"
-                    {
-                        yyval = "shiftLeft";
-                    }
-                    break;
-                case 267:
+{ yyval = "shiftLeft"; }
+break;
+case 267:
 //#line 995 "e.y"
-                    {
-                        yyval = "remainder";
-                    }
-                    break;
-                case 268:
+{ yyval = "remainder"; }
+break;
+case 268:
 //#line 996 "e.y"
-                    {
-                        yyval = "mod";
-                    }
-                    break;
-                case 269:
+{ yyval = "mod"; }
+break;
+case 269:
 //#line 997 "e.y"
-                    {
-                        yyval = "multiply";
-                    }
-                    break;
-                case 270:
+{ yyval = "multiply"; }
+break;
+case 270:
 //#line 998 "e.y"
-                    {
-                        yyval = "or";
-                    }
-                    break;
-                case 271:
+{ yyval = "or"; }
+break;
+case 271:
 //#line 999 "e.y"
-                    {
-                        yyval = "pow";
-                    }
-                    break;
-                case 272:
+{ yyval = "pow"; }
+break;
+case 272:
 //#line 1000 "e.y"
-                    {
-                        yyval = "subtract";
-                    }
-                    break;
-                case 273:
+{ yyval = "subtract"; }
+break;
+case 273:
 //#line 1001 "e.y"
-                    {
-                        yyval = "xor";
-                    }
-                    break;
-                case 274:
+{ yyval = "xor"; }
+break;
+case 274:
 //#line 1010 "e.y"
-                    {
-                        yyval = NULL;
-                    }
-                    break;
-                case 275:
+{ yyval = NULL; }
+break;
+case 275:
 //#line 1011 "e.y"
-                    {
-                        yyval = val_peek(3);
-                    }
-                    break;
-                case 276:
+{ yyval = val_peek(3); }
+break;
+case 276:
 //#line 1015 "e.y"
-                    {
-                        yyval = val_peek(1);
-                    }
-                    break;
-                case 277:
+{ yyval = val_peek(1); }
+break;
+case 277:
 //#line 1020 "e.y"
-                    {
-                        yyval = eScript(val_peek(2), optMatcher(val_peek(1)));
-                    }
-                    break;
-                case 278:
+{ yyval = eScript(val_peek(2), optMatcher(val_peek(1))); }
+break;
+case 278:
 //#line 1022 "e.y"
-                    {
-                        pocket("plumbing");
-                        yyval = eScript(null, val_peek(0));
-                    }
-                    break;
-                case 279:
+{ pocket("plumbing");
+                                  yyval = eScript(null, val_peek(0)); }
+break;
+case 279:
 //#line 1024 "e.y"
-                    {
-                        pocket("plumbing");
-                        yyval = eScript(null, val_peek(0));
-                    }
-                    break;
-                case 281:
+{ pocket("plumbing");
+                                  yyval = eScript(null, val_peek(0)); }
+break;
+case 281:
 //#line 1034 "e.y"
-                    {
-                        yyval = with(val_peek(2), val_peek(1));
-                    }
-                    break;
-                case 283:
+{ yyval = with(val_peek(2), val_peek(1)); }
+break;
+case 283:
 //#line 1039 "e.y"
-                    {
-                        yyval = with(val_peek(2), val_peek(1));
-                    }
-                    break;
-                case 285:
+{ yyval = with(val_peek(2), val_peek(1)); }
+break;
+case 285:
 //#line 1044 "e.y"
-                    {
-                        yyval = with(val_peek(2), val_peek(1));
-                    }
-                    break;
-                case 288:
+{ yyval = with(val_peek(2), val_peek(1)); }
+break;
+case 288:
 //#line 1061 "e.y"
-                    {
-                        yyval = with(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 289:
+{ yyval = with(val_peek(1), val_peek(0)); }
+break;
+case 289:
 //#line 1065 "e.y"
-                    {
-                        yyval = matcher(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 290:
+{ yyval = matcher(val_peek(1), val_peek(0)); }
+break;
+case 290:
 //#line 1072 "e.y"
-                    {
-                        yyval = null;
-                    }
-                    break;
-                case 291:
+{ yyval = null; }
+break;
+case 291:
 //#line 1073 "e.y"
-                    {
-                        yyval = val_peek(0);
-                    }
-                    break;
-                case 292:
+{ yyval = val_peek(0); }
+break;
+case 292:
 //#line 1084 "e.y"
-                    {
-                        yyval = oType(val_peek(4), val_peek(1));
-                    }
-                    break;
-                case 293:
+{ yyval = oType(val_peek(4), val_peek(1)); }
+break;
+case 293:
 //#line 1085 "e.y"
-                    {
-                        yyval = oType(val_peek(2), list(val_peek(1)));
-                    }
-                    break;
-                case 297:
+{ yyval = oType(val_peek(2), list(val_peek(1))); }
+break;
+case 297:
 //#line 1092 "e.y"
-                    {
-                        yyval = with(val_peek(3), val_peek(1));
-                    }
-                    break;
-                case 298:
+{ yyval = with(val_peek(3),val_peek(1)); }
+break;
+case 298:
 //#line 1096 "e.y"
-                    {
-                        yyval = list(val_peek(0));
-                    }
-                    break;
-                case 299:
+{ yyval = list(val_peek(0)); }
+break;
+case 299:
 //#line 1097 "e.y"
-                    {
-                        yyval = with(val_peek(3), val_peek(0));
-                    }
-                    break;
-                case 300:
+{ yyval = with(val_peek(3),val_peek(0)); }
+break;
+case 300:
 //#line 1099 "e.y"
-                    {
-                        reserved("on event");
-                    }
-                    break;
-                case 301:
+{ reserved("on event"); }
+break;
+case 301:
 //#line 1100 "e.y"
-                    {
-                        reserved("on event");
-                    }
-                    break;
-                case 302:
+{ reserved("on event"); }
+break;
+case 302:
 //#line 1107 "e.y"
-                    {
-                        yyval = mType(val_peek(1), list(), val_peek(0));
-                    }
-                    break;
-                case 303:
+{ yyval = mType(val_peek(1),list(),val_peek(0)); }
+break;
+case 303:
 //#line 1108 "e.y"
-                    {
-                        yyval = mType(val_peek(4), val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 304:
+{ yyval = mType(val_peek(4),val_peek(2),val_peek(0)); }
+break;
+case 304:
 //#line 1109 "e.y"
-                    {
-                        yyval = mType("run", val_peek(2), val_peek(0));
-                    }
-                    break;
-                case 305:
+{ yyval = mType("run",val_peek(2),val_peek(0)); }
+break;
+case 305:
 //#line 1113 "e.y"
-                    {
-                        yyval = val_peek(0);
-                    }
-                    break;
-                case 306:
+{ yyval = val_peek(0); }
+break;
+case 306:
 //#line 1114 "e.y"
-                    {
-                        yyval = val_peek(1);
-                    }
-                    break;
-                case 307:
+{ yyval = val_peek(1); }
+break;
+case 307:
 //#line 1118 "e.y"
-                    {
-                        yyval = list(val_peek(0));
-                    }
-                    break;
-                case 308:
+{ yyval = list(val_peek(0)); }
+break;
+case 308:
 //#line 1119 "e.y"
-                    {
-                        yyval = with(val_peek(3), val_peek(0));
-                    }
-                    break;
-                case 309:
+{ yyval = with(val_peek(3),val_peek(0)); }
+break;
+case 309:
 //#line 1126 "e.y"
-                    {
-                        yyval = pType(val_peek(1), val_peek(0));
-                    }
-                    break;
-                case 310:
+{ yyval = pType(val_peek(1),val_peek(0)); }
+break;
+case 310:
 //#line 1127 "e.y"
-                    {
-                        yyval = pType(null, val_peek(0));
-                    }
-                    break;
-                case 311:
+{ yyval = pType(null,val_peek(0)); }
+break;
+case 311:
 //#line 1131 "e.y"
-                    {
-                        yyval = null;
-                    }
-                    break;
-                case 312:
+{ yyval = null; }
+break;
+case 312:
 //#line 1132 "e.y"
-                    {
-                        yyval = val_peek(0);
-                    }
-                    break;
-                case 315:
+{ yyval = val_peek(0); }
+break;
+case 315:
 //#line 1148 "e.y"
-                    {
-                        begin();
-                    }
-                    break;
-                case 316:
+{ begin(); }
+break;
+case 316:
 //#line 1155 "e.y"
-                    {
-                        end();
-                    }
-                    break;
+{ end(); }
+break;
 //#line 6801 "EParser.java"
 //########## END OF USER-SUPPLIED ACTIONS ##########
-            }//switch
-            //#### Now let's reduce... ####
-            if (yydebug) debug("reduce");
-            state_drop(yym);             //we just reduced yylen states
-            yystate = state_peek(0);     //get new state
-            val_drop(yym);               //corresponding value drop
-            yym = yylhs[yyn];            //select next TERMINAL(on lhs)
-            if (yystate == 0 && yym == 0)//done? 'rest' state and at first TERMINAL
-            {
-                debug("After reduction, shifting from state 0 to state " + YYFINAL + "");
-                yystate = YYFINAL;         //explicitly say we're done
-                state_push(YYFINAL);       //and save it
-                val_push(yyval);           //also save the semantic value of parsing
-                if (yychar < 0)            //we want another character?
-                {
-                    yychar = yylex();        //get next character
-                    if (yychar < 0) yychar = 0;  //clean, if necessary
-                    if (yydebug)
-                        yylexdebug(yystate, yychar);
-                }
-                if (yychar == 0)          //Good exit (if lex returns 0 ;-)
-                    break;                 //quit the loop--all DONE
-            }//if yystate
-            else                        //else not done yet
-            {
-                //get next state and push, for next yydefred[]
-                yyn = yygindex[yym];      //find out where to go
-                if ((yyn != 0) && (yyn += yystate) >= 0 &&
-                  yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
-                    yystate = yytable[yyn]; //get new state
-                else
-                    yystate = yydgoto[yym]; //else go to new defred
-                debug("after reduction, shifting from state " + state_peek(0) + " to state " + yystate + "");
-                state_push(yystate);     //going again, so push state & val...
-                val_push(yyval);         //for next action
-            }
-        }//main loop
-        return 0;//yyaccept!!
-    }
+    }//switch
+    //#### Now let's reduce... ####
+    if (yydebug) debug("reduce");
+    state_drop(yym);             //we just reduced yylen states
+    yystate = state_peek(0);     //get new state
+    val_drop(yym);               //corresponding value drop
+    yym = yylhs[yyn];            //select next TERMINAL(on lhs)
+    if (yystate == 0 && yym == 0)//done? 'rest' state and at first TERMINAL
+      {
+      debug("After reduction, shifting from state 0 to state "+YYFINAL+"");
+      yystate = YYFINAL;         //explicitly say we're done
+      state_push(YYFINAL);       //and save it
+      val_push(yyval);           //also save the semantic value of parsing
+      if (yychar < 0)            //we want another character?
+        {
+        yychar = yylex();        //get next character
+        if (yychar<0) yychar=0;  //clean, if necessary
+        if (yydebug)
+          yylexdebug(yystate,yychar);
+        }
+      if (yychar == 0)          //Good exit (if lex returns 0 ;-)
+         break;                 //quit the loop--all DONE
+      }//if yystate
+    else                        //else not done yet
+      {                         //get next state and push, for next yydefred[]
+      yyn = yygindex[yym];      //find out where to go
+      if ((yyn != 0) && (yyn += yystate) >= 0 &&
+            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
+        yystate = yytable[yyn]; //get new state
+      else
+        yystate = yydgoto[yym]; //else go to new defred
+      debug("after reduction, shifting from state "+state_peek(0)+" to state "+yystate+"");
+      state_push(yystate);     //going again, so push state & val...
+      val_push(yyval);         //for next action
+      }
+    }//main loop
+  return 0;//yyaccept!!
+}
 //## end of method parse() ######################################
+
 
 
 }



1.42      +0 -32     e/src/jsrc/org/erights/e/elib/prim/MirandaMethods.java

Index: MirandaMethods.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/prim/MirandaMethods.java,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- MirandaMethods.java	2001/11/10 19:40:45	1.41
+++ MirandaMethods.java	2001/11/11 17:51:14	1.42
@@ -117,38 +117,6 @@
     }
 
     /**
-     * With this order message, if the first message throws a
-     * non-Ejection, then the successor messages are not delivered.  Instead
-     * of being forwarded, the 'after' Resolver is smashed with the first
-     * message's problem.
-     *
-     * @deprecated Use {@link order(Object, String, Object[])} instead, as it
-     *             properly pipelines and smashes the after channel
-     */
-    static public Object order(Object self,
-                               String nestedVerb,
-                               Object[] nestedArgs,
-                               Resolver after) {
-        Object result = null;
-        try {
-            result = E.callAll(self, nestedVerb, nestedArgs);
-
-        } catch (Throwable t) {
-            Throwable leaf = ThrowableSugar.leaf(t);
-            if (leaf instanceof Ejection) {
-                //an escaped Ejection should never happen, but does not stop
-                //successor messages
-                after.resolve(self);
-            } else {
-                after.smash(t);
-            }
-            throw ExceptionMgr.asSafe(t);
-        }
-        after.resolve(self);
-        return result;
-    }
-
-    /**
      * Generic object-level rights amplification protocol. <p>
      *
      * Dispatch on the brand much as one would dispatch on a message name.



1.30      +3 -2      e/src/jsrc/org/erights/e/elib/tables/Equalizer.java

Index: Equalizer.java
===================================================================
RCS file: /cvs/e/src/jsrc/org/erights/e/elib/tables/Equalizer.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- Equalizer.java	2001/11/11 05:54:37	1.29
+++ Equalizer.java	2001/11/11 17:51:14	1.30
@@ -2,7 +2,7 @@
 
 import org.erights.e.develop.exception.ThrowableSugar;
 import org.erights.e.elib.prim.E;
-import org.erights.e.elib.prim.Queue;
+import org.erights.e.elib.prim.SynchQueue;
 import org.erights.e.elib.ref.Ref;
 import org.erights.e.elib.util.ClassCache;
 
@@ -85,7 +85,8 @@
 
     static private final int INITIAL_SIZE = 30;
 
-    static private Queue TheCachedEqualizers = new Queue(Equalizer.class);
+    static private SynchQueue TheCachedEqualizers =
+      new SynchQueue(Equalizer.class);
 
     private Object[] myLefts;