示例#1
0
        /// <summary>
        /// Converts the given general term into a basic object function term.
        /// </summary>
        /// <param name="termAstNode">AST node.</param>
        /// <returns>Converted basic object function term. Null if cannot be converted.</returns>
        public static BasicObjectFunctionTerm ToBasicObjectFunctionTerm(TermOrNumericAstNode termAstNode)
        {
            var function = termAstNode as FunctionTermAstNode;

            if (function != null && IsObjectFunction(function))
            {
                var objectFunction = new BasicObjectFunctionTerm(function.Name);
                function.Terms.ForEach(term => objectFunction.Terms.Add(ToConstantTerm(term)));
                return(objectFunction);
            }

            var identifier = termAstNode as IdentifierTermAstNode;

            if (identifier != null && IsIdentifierTermObjectFunction(identifier))
            {
                return(new BasicObjectFunctionTerm(identifier.Name));
            }

            return(null);
        }
示例#2
0
 public virtual void PostVisit(BasicObjectFunctionTerm data)
 {
 }