/// <summary> /// Adds an expression as a parameter /// </summary> /// <param name="designator">the name of the actual parameter</param> /// <param name="expression">the actual parameter value</param> public void AddActualParameter(Designator designator, Expression expression) { if (designator == null) { ActualParameters.Add(expression); } else { bool found = false; foreach (KeyValuePair <Designator, Expression> pair in NamedActualParameters) { if (pair.Key.Image == designator.Image) { found = true; break; } } if (!found) { NamedActualParameters[designator] = expression; } else { AddError("Actual parameter " + designator.Image + " is bound twice", RuleChecksEnum.ExecutionFailed); } } expression.Enclosing = this; }
public static FuncCallStatement Find(string str) { var match = Is.MatchesAll(str); if (match == null) { return(null); } var operandValue = Value.Find(match.Groups["FuncCallStatement_OperandValue"].ToString().Trim()); var funcValue = Value.Find(match.Groups["FuncCallStatement_FuncValue"].ToString().Trim()); var parameters = ActualParameters.Find(match.Groups["FuncCallStatement_ActualParameters"].ToString()); if ((operandValue == null && funcValue == null) || parameters == null) { return(null); } return(new FuncCallStatement() { str = str, operandValue = operandValue, funcName = new LocalVaribleName(match.Groups["FuncCallStatement_FuncName"].ToString()), funcValue = funcValue, parameters = parameters }); }
/// <summary> /// Adds an expression as a parameter /// </summary> /// <param name="name">the name of the actual parameter</param> /// <param name="expression">the actual parameter value</param> public void AddActualParameter(string name, Expression expression) { if (name == null) { ActualParameters.Add(expression); } else { if (!NamedActualParameters.ContainsKey(name)) { NamedActualParameters[name] = expression; } else { AddError("Actual parameter " + name + " is bound twice"); } } expression.Enclosing = this; }
public ASTFunctionCall(Token token, string functionName, IEnumerable <ASTNode> actualParameters) { FunctionName = functionName; Token = token; ActualParameters.AddRange(actualParameters); }
public ProcedureCall() { ActualParameters = new ActualParameters(); }
public FunctionCallExpression() { ActualParameters = new ActualParameters(); }