public static RuntimeExpression CreateCompiled(ExpressionNode expressionNode) { string expressionSource = expressionNode.GenerateSource(); ILEmitContext ilEmitContext = new ILEmitContext(expressionSource); ILParameterRegisterer ilParameterRegisterer = new ILParameterRegisterer(ilEmitContext); ilParameterRegisterer.Visit(expressionNode); ILTranslator ilTranslator = new ILTranslator(ilEmitContext); ilTranslator.Visit(expressionNode); CompiledExpressionDelegate compiledExpressionDelegate = ilEmitContext.CreateDelegate(); object[] arguments = ilEmitContext.GetArguments(); return new CompiledRuntimeExpression(expressionSource, expressionNode.ExpressionType, compiledExpressionDelegate, arguments); }
public static RuntimeExpression CreateCompiled(ExpressionNode expressionNode) { string expressionSource = expressionNode.GenerateSource(); ILEmitContext ilEmitContext = new ILEmitContext(expressionSource); ILParameterRegisterer ilParameterRegisterer = new ILParameterRegisterer(ilEmitContext); ilParameterRegisterer.Visit(expressionNode); ILTranslator ilTranslator = new ILTranslator(ilEmitContext); ilTranslator.Visit(expressionNode); CompiledExpressionDelegate compiledExpressionDelegate = ilEmitContext.CreateDelegate(); object[] arguments = ilEmitContext.GetArguments(); return(new CompiledRuntimeExpression(expressionSource, expressionNode.ExpressionType, compiledExpressionDelegate, arguments)); }
void IErrorReporter.WhenMustEvaluateToBoolIfCaseInputIsOmitted(ExpressionNode whenExpression) { string message = String.Format(CultureInfo.CurrentCulture, Resources.WhenMustEvaluateToBoolIfCaseInputIsOmitted, whenExpression.GenerateSource(), FormattingHelpers.FormatType(typeof(bool))); HandleError(ErrorId.WhenMustEvaluateToBoolIfCaseInputIsOmitted, message); }
void IErrorReporter.AggregateContainsColumnsFromDifferentQueries(ExpressionNode aggregateArgument) { string message = String.Format(CultureInfo.CurrentCulture, Resources.AggregateContainsColumnsFromDifferentQueries, aggregateArgument.GenerateSource()); HandleError(ErrorId.AggregateContainsColumnsFromDifferentQueries, message); }
void IErrorReporter.CannotCast(ExpressionNode expression, Type targetType) { string message = String.Format(CultureInfo.CurrentCulture, Resources.CannotCast, expression.GenerateSource(), FormattingHelpers.FormatType(expression.ExpressionType), FormattingHelpers.FormatType(targetType)); HandleError(ErrorId.CannotCast, message); }
void IErrorReporter.AsteriskModifierNotAllowed(SourceRange sourceRange, ExpressionNode functionInvocation) { string message = String.Format(CultureInfo.CurrentCulture, Resources.AsteriskModifierNotAllowed, functionInvocation.GenerateSource()); HandleError(sourceRange, ErrorId.AsteriskModifierNotAllowed, message); }