/** * Visits the given ASTNode node. This function is really just a * dispatcher to either FormulaGraphvizFormatter_visitFunction() or * FormulaGraphvizFormatter_visitOther(). */ void FormulaGraphvizFormatter_visit (const ASTNode_t *parent, const ASTNode_t *node, StringBuffer_t *sb ) { if (ASTNode_isLog10(node)) { FormulaGraphvizFormatter_visitLog10(parent, node, sb); } else if (ASTNode_isSqrt(node)) { FormulaGraphvizFormatter_visitSqrt(parent, node, sb); } else if (FormulaGraphvizFormatter_isFunction(node)) { FormulaGraphvizFormatter_visitFunction(parent, node, sb); } else if (ASTNode_isUMinus(node)) { FormulaGraphvizFormatter_visitUMinus(parent, node, sb); } else { FormulaGraphvizFormatter_visitOther(parent, node, sb); } }
/** * Visits the given ASTNode node. This function is really just a * dispatcher to either SBML_formulaToL3String_visitFunction() or * SBML_formulaToL3String_visitOther(). */ void L3FormulaFormatter_visit ( const ASTNode_t *parent, const ASTNode_t *node, StringBuffer_t *sb, const L3ParserSettings_t *settings ) { if (ASTNode_isLog10(node)) { L3FormulaFormatter_visitLog10(parent, node, sb, settings); } else if (ASTNode_isSqrt(node)) { L3FormulaFormatter_visitSqrt(parent, node, sb, settings); } else if (isTranslatedModulo(node)) { L3FormulaFormatter_visitModulo(parent, node, sb, settings); } else if (L3FormulaFormatter_isFunction(node, settings)) { L3FormulaFormatter_visitFunction(parent, node, sb, settings); } else if (ASTNode_isUMinus(node)) { L3FormulaFormatter_visitUMinus(parent, node, sb, settings); } else if (ASTNode_hasTypeAndNumChildren(node, AST_LOGICAL_NOT, 1)) { L3FormulaFormatter_visitUNot(parent, node, sb, settings); } else if (ASTNode_hasTypeAndNumChildren(node, AST_QUALIFIER_LOGBASE, 1)) { L3FormulaFormatter_visit(node, ASTNode_getChild(node, 0), sb, settings); } else if (ASTNode_hasTypeAndNumChildren(node, AST_QUALIFIER_DEGREE, 1)) { L3FormulaFormatter_visit(node, ASTNode_getChild(node, 0), sb, settings); } else if (ASTNode_hasTypeAndNumChildren(node, AST_SEMANTICS, 1)) { L3FormulaFormatter_visit(node, ASTNode_getChild(node, 0), sb, settings); } else { L3FormulaFormatter_visitOther(parent, node, sb, settings); } }
/** * Visits the given ASTNode node. This function is really just a * dispatcher to either SBML_formulaToString_visitFunction() or * SBML_formulaToString_visitOther(). */ void FormulaFormatter_visit ( const ASTNode_t *parent, const ASTNode_t *node, StringBuffer_t *sb ) { if (ASTNode_isLog10(node)) { FormulaFormatter_visitLog10(parent, node, sb); } else if (ASTNode_isSqrt(node)) { FormulaFormatter_visitSqrt(parent, node, sb); } else if (FormulaFormatter_isFunction(node)) { FormulaFormatter_visitFunction(parent, node, sb); } else if (ASTNode_hasTypeAndNumChildren(node, AST_MINUS, 1)) { FormulaFormatter_visitUMinus(parent, node, sb); } else if (ASTNode_hasTypeAndNumChildren(node, AST_PLUS, 1) || ASTNode_hasTypeAndNumChildren(node, AST_TIMES, 1)) { FormulaFormatter_visit(node, ASTNode_getChild(node, 0), sb); } else if (ASTNode_hasTypeAndNumChildren(node, AST_PLUS, 0)) { StringBuffer_appendInt(sb, 0); } else if (ASTNode_hasTypeAndNumChildren(node, AST_TIMES, 0)) { StringBuffer_appendInt(sb, 1); } else { FormulaFormatter_visitOther(parent, node, sb); } }