public override IBELObject Expose(ExecutionContext ctx) { try { ctx.PushLocation(Location); return new BELString(Value); } finally { ctx.PopLocation(); } }
public override IBELObject Expose(ExecutionContext ctx) { ArrayList parameters = null; if (Parameters != null) { parameters = new ArrayList(); foreach (BlockParameterPTN p in Parameters.Parameters) { parameters.Add(new BlockParameter(p.Type, p.Identifier)); } } try { ctx.PushLocation(ParseTree.Location); return new Block(ParseTree, parameters, ctx.CurrentScope); } finally { ctx.PopLocation(); } }
public override IBELObject Expose(ExecutionContext ctx) { IBELObject answer = null; ArrayList args = new ArrayList(); foreach (object x in AllArgs) args.Add(x); try { ctx.PushLocation(Location); answer = ctx.FindAndInvoke(FullMethodName, args); if (answer == null) throw NoSuchMemberException.ForMember(Location, FullMethodName); } finally { ctx.PopLocation(); } return answer; }