public MethodCallExpressionCompiler(ICompiler compiler, MethodCallExpression methodCallExpression, IList<InnerExpressionProcessingListItem> list) { var itemIndex = list == null ? 0 : list.IndexOf(list.First(x => x.AstNode == methodCallExpression)); _compiler = compiler; _methodCallExpression = methodCallExpression; if (itemIndex > 0) { _previousExpression = list[itemIndex - 1].AstNode; } }
public MethodCallExpression ParseExpressionMethodCall() { var methodCallExpression = new MethodCallExpression(); methodCallExpression.MethodIdentifier = CurrentInputElement; MoveToNextToken(); Debug.Assert(CurrentInputElement.Data == "("); MoveToNextToken(); while (CurrentInputElement.Data != ")") { methodCallExpression.Parameters.Add(ParseExpressionParameter()); } Debug.Assert(CurrentInputElement.Data == ")"); MoveToNextToken(); return methodCallExpression; }