private VariableReferenceTuple GetOrCreateVariableReference(ExpressionSyntax expressionSyntax, string name, Func <bool> createParentCondition = null) { VariableReferenceTuple tuple; if (!dic_Expression_Variable.TryGetValue(expressionSyntax, out tuple)) { var variableReference = new VariableReference { Name = name }; tuple = new VariableReferenceTuple { Bottom = variableReference, Top = variableReference }; } else { dic_Expression_Variable.Remove(expressionSyntax); if (createParentCondition == null || createParentCondition()) { tuple.Top.Parent = new VariableReference { Name = name }; tuple.Top = tuple.Top.Parent; } } return(tuple); }
private void HandleInvocationExpressionSyntax(VariableReferenceTuple tuple, InvocationExpressionSyntax invocationExpressionSyntax) { tuple.Top.Type = VariableTypes.Invocation; tuple.Top.Parameters = HandleParameters(invocationExpressionSyntax.ArgumentList); }