public void VisitFunctionCall(FunctionCallParseNode node) { node.LHS = _processor.ProcessReplacement(node.LHS); for (int i = 0, ilen = node.Arguments.Count; i < ilen; ++i) { node.Arguments[i] = _processor.ProcessReplacement(node); } }
public void VisitFunctionCall(FunctionCallParseNode node) { Print("Function Call (Parse Tree Node)"); VisitSubnode(node.LHS); for (int i = 0, ilen = node.Arguments.Count; i < ilen; ++i) { VisitSubnode(node.Arguments[i]); } }
public void VisitFunctionCall(FunctionCallParseNode node) { VisitPreOrder(node); node.LHS.AcceptSyntaxTreeVisitor(_childVisitor); foreach (IExpressionNode argument in node.Arguments) { argument.AcceptSyntaxTreeVisitor(_childVisitor); } VisitPostOrder(node); }
public void Visit(FunctionCallParseNode node) { IdentifierParseNode?identifier = node.LHS as IdentifierParseNode; if (identifier == null) { _errors.AddError("LHS of function call operator is not an identifier.", node); return; } ShouldReplace = true; FunctionCallNode?resultNode = null; if (!_semanticModule.Functions.TryGetValue(identifier.Name, out FunctionDefinitionNode function)) { _errors.AddError("Undefined function " + identifier.Name, node); } else if (function.Parameters.Length != node.Arguments.Count) { _errors.AddError($"Expected {function.Parameters.Length} argument(s), got {node.Arguments.Count}", node); return; } else { resultNode = new FunctionCallNode(function, node.Arguments); } if (resultNode == null) { resultNode = MakeFakeFunctionCall(identifier); } UpdateSymbolMap(resultNode, node); NewNode = resultNode; }
public void VisitFunctionCall(FunctionCallParseNode node) { }
public void VisitFunctionCall(FunctionCallParseNode node) { FunctionCallVisitor?.Visit(node); }