/// <summary> /// Handles the AST node visit. /// </summary> /// <param name="astNode">AST node.</param> public override void Visit(FunctionTermAstNode astNode) { NumericFunction function = new NumericFunction(astNode.Name); astNode.Terms.ForEach(term => function.Terms.Add(MasterExporter.ToTerm(term))); ExpressionData = function; }
/// <summary> /// Handles the AST node visit. /// </summary> /// <param name="astNode">AST node.</param> public override void Visit(FunctionTermAstNode astNode) { ObjectFunctionTerm functionTerm = new ObjectFunctionTerm(astNode.Name); astNode.Terms.ForEach(argTerm => functionTerm.Terms.Add(MasterExporter.ToTerm(argTerm))); TermData = functionTerm; }
/// <summary> /// Handles the AST node visit. /// </summary> /// <param name="astNode">AST node.</param> public override void Visit(FunctionTermAstNode astNode) { if (astNode.Name.Equals("total-time")) { ExpressionData = new MetricTotalTime(); } else { MetricNumericFunction function = new MetricNumericFunction(astNode.Name); astNode.Terms.ForEach(term => function.Terms.Add(MasterExporter.ToConstantTerm(term))); ExpressionData = function; } }
public virtual void Visit(FunctionTermAstNode node) { }
/// <summary> /// Checks whether the given function term is a object function. /// </summary> /// <param name="functionTermAstNode">AST node.</param> /// <returns>True if the function term is a object function. False otherwise.</returns> public static bool IsObjectFunction(FunctionTermAstNode functionTermAstNode) { return(DomainContext.Functions.ContainsFunction(functionTermAstNode.Name, functionTermAstNode.Terms.Count, false)); }
/// <summary> /// Checks whether the given function term is a numeric function. /// </summary> /// <param name="functionTermAstNode">AST node.</param> /// <returns>True if the function term is a numeric function. False otherwise.</returns> public static bool IsNumericFunction(FunctionTermAstNode functionTermAstNode) { return(DomainContext.Functions.ContainsFunction(functionTermAstNode.Name, functionTermAstNode.Terms.Count, true)); }