public override void VisitFunctionDeclaration(FunctionDeclarationSyntaxNode node) { _insideFunction = true; _variableAssignments = new VariableAssignments(); var parameterList = node.InputDescription.ParameterList; foreach (var parameter in parameterList) { if (parameter.IsNode) { var parameterAsNode = parameter.AsNode(); Console.WriteLine($"Parameter node: {parameterAsNode}"); if (parameterAsNode.Kind == TokenKind.IdentifierNameExpression) { Console.WriteLine($"Adding variable assignment for {parameterAsNode.Text}"); _variableAssignments.Add(parameterAsNode.Text, new Variable()); } else { Console.WriteLine($"Don't know how to add assignment for {parameterAsNode.Text}"); } } else { Console.WriteLine($"Parameter token: {parameter.AsToken()}"); } } base.VisitFunctionDeclaration(node); _variableAssignments = null; _insideFunction = false; }
public void AddVariableAssignment(string memberName, object memberValue) { VariableAssignments.Add(memberName, memberValue); }