{
if (gid > ushort.MaxValue)
throw new NotSupportedException ();
- int offset = 0;
- if (ignore)
- offset += 1;
- if (reverse)
- offset += 2;
- Emit ((RxOp)((int)RxOp.Reference + offset));
+ EmitOpIgnoreReverse (RxOp.Reference, ignore, reverse);
Emit ((ushort)gid);
}
EmitLink (next);
}
+ public void EmitJumpTest (LinkRef target,LinkRef ElseTarget)
+ {
+ //for evaluating ALTERNATIVES ("or" or "|")
+ EmitJump (target);//not implemented for RxCompiler
+ // see compiler.cs for implementation guideline
+ }
+
public void EmitJump (LinkRef target)
{
BeginLink (target);
}
}
+ public int Gap {
+ get { return gap; }
+ set { gap = value; }
+ }
+
public IDictionary Mapping {
get { return mapping; }
set { mapping = value; }
private byte[] program;
private EvalDelegate eval_del;
private string[] namesMapping;
+ private int gap;
}
}