public Statement GetStatement() { var lamdaStatement = new LamdaStatement(); var parameters = anonymousMethodExpressionSyntax.ParameterList?.Parameters .Select(x => statementInterpreterHandler.GetStatement(x)); lamdaStatement.Parameters = parameters?.Cast <Parameter>()?.ToArray() ?? new Parameter[0]; lamdaStatement.Body = statementInterpreterHandler.GetStatement(anonymousMethodExpressionSyntax.Body); var typeInfo = semanticModel.GetTypeInfo(anonymousMethodExpressionSyntax); lamdaStatement.Type = typeInfo.ConvertedType.GetClassType(); return(lamdaStatement); }
public Statement GetStatement() { var lamdaStatement = new LamdaStatement(); var parameters = parenthesizedLambdaExpressionSyntax.ParameterList.Parameters .Select(x => statementInterpreterHandler.GetStatement(x)); lamdaStatement.Parameters = parameters.Cast <Parameter>().ToArray(); lamdaStatement.Body = statementInterpreterHandler.GetStatement(parenthesizedLambdaExpressionSyntax.Body); var typeInfo = semanticModel.GetTypeInfo(parenthesizedLambdaExpressionSyntax); lamdaStatement.Type = typeInfo.ConvertedType.GetClassType(); lamdaStatement.IsAsync = parenthesizedLambdaExpressionSyntax.AsyncKeyword.IsKind(Microsoft.CodeAnalysis.CSharp.SyntaxKind.AsyncKeyword); return(lamdaStatement); }
public LamdaExpressionInterpreter(ExpressionInterpreterHandler expressionInterpreterHandler, LamdaStatement lamdaStatement, System.Collections.Generic.List <ParameterExpression> parameterExpressions) { this.expressionInterpreterHandler = expressionInterpreterHandler; this.lamdaStatement = lamdaStatement; this.parameterExpressions = parameterExpressions; }