public override object Eval() { try { object[] argvals = new object[_args.Count]; for (int i = 0; i < _args.Count; i++) { argvals[i] = _args[i].ArgExpr.Eval(); } if (_method != null) { return(Reflector.InvokeMethod(_method, null, argvals)); } return(Reflector.CallStaticMethod(_methodName, _typeArgs, _type, argvals)); } catch (Compiler.CompilerException) { throw; } catch (Exception e) { throw new Compiler.CompilerException(_source, Compiler.GetLineFromSpanMap(_spanMap), Compiler.GetColumnFromSpanMap(_spanMap), null, Compiler.CompilerException.PhaseExecutionKeyword, e); } }