[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 > 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 > 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;