public override object GetValue(ExecutionContext ctx) { object lStart = _left.GetValue(ctx); object rStart = _right.GetValue(ctx); object lFinal; object rFinal; TypeChecker.GreatestCommonType gct = TypeChecker.GCT(lStart, rStart); switch (gct) { case TypeChecker.GreatestCommonType.StringType: lFinal = Convert.ToString(lStart); rFinal = Convert.ToString(rStart); break; case TypeChecker.GreatestCommonType.BooleanType: lFinal = Convert.ToBoolean(lStart); rFinal = Convert.ToBoolean(rStart); break; case TypeChecker.GreatestCommonType.NumericType: lFinal = Convert.ToDecimal(lStart); rFinal = Convert.ToDecimal(rStart); break; default: throw new ArgumentOutOfRangeException(); } // execute on the converted values return(_op.Evaluate(lFinal, rFinal)); }
public override object GetValue(ExecutionContext ctx) { string res = ""; if (element != null) { res += Convert.ToString(element.GetValue(ctx)); } if (concatenation != null) { res += Convert.ToString(concatenation.GetValue(ctx)); } return(res); }
public override object GetValue(ExecutionContext ctx) { string functionName = function.GetValue(ctx).ToString(); Functor f = ctx.GetFunction(functionName); ArrayList arguments = new ArrayList(); if (!emptyArgsList) { if (args.GetType() == typeof(Sequence <Expression>)) { Sequence <Expression> seq = (Sequence <Expression>)args; foreach (Expression ex in (Sequence <Expression>)args) { arguments.Add(ex.GetValue(ctx)); } } else { arguments.Add(((Expression)args).GetValue(ctx)); } } return(f.Execute(arguments.ToArray(), ctx)); }
public override object GetValue(ExecutionContext ctx) { ctx[_receiver._idName] = (_expr != null) ? _expr.GetValue(ctx) : ""; return(string.Format("{0}={1}", _receiver._idName, ctx[_receiver._idName])); }
public override object GetValue(ExecutionContext ctx) { return(-(Convert.ToDecimal(computable.GetValue(ctx)))); }