/** * Checks the MathML of the ASTnode * is appropriate for the function being performed * * If an inconsistency is found, an error message is logged. */ void ValidCnUnitsValue::checkMath (const Model& m, const ASTNode& node, const SBase & sb) { /* should not be here but why not catch it rather than crash*/ if (&(node) == NULL) { return; } if (node.isNumber()) { checkValidUnits(m, node, sb); } else { ASTNodeType_t type = node.getType(); switch (type) { case AST_FUNCTION: checkFunction(m, node, sb); break; default: checkChildren(m, node, sb); break; } } //switch (type) //{ // case AST_LOGICAL_AND: // case AST_LOGICAL_NOT: // case AST_LOGICAL_OR: // case AST_LOGICAL_XOR: // checkMathFromLogical(m, node, sb); // break; // case AST_FUNCTION: // checkFunction(m, node, sb); // break; // default: // checkChildren(m, node, sb); // break; //} }
/** * Checks the MathML of the ASTnode * is appropriate for the function being performed * * If an inconsistency is found, an error message is logged. */ void ValidCnUnitsValue::checkMath (const Model& m, const ASTNode& node, const SBase & sb) { if (node.isNumber()) { checkValidUnits(m, node, sb); } else { ASTNodeType_t type = node.getType(); switch (type) { case AST_FUNCTION: checkFunction(m, node, sb); break; default: checkChildren(m, node, sb); break; } } //switch (type) //{ // case AST_LOGICAL_AND: // case AST_LOGICAL_NOT: // case AST_LOGICAL_OR: // case AST_LOGICAL_XOR: // checkMathFromLogical(m, node, sb); // break; // case AST_FUNCTION: // checkFunction(m, node, sb); // break; // default: // checkChildren(m, node, sb); // break; //} }