bool AntimonyEvent::SetPriority(const Formula& priority) { string prioritystring = priority.ToSBMLString(); #ifndef NSBML if (prioritystring.size() > 0) { ASTNode* ASTpriority = parseStringToASTNode(prioritystring); if (ASTpriority == NULL) { g_registry.SetError("The priority \"" + priority.ToDelimitedStringWithEllipses(".") + "\" seems to be incorrect, and cannot be parsed into an Abstract Syntax Tree (AST)."); return true; } else if (ASTpriority->isBoolean()) { g_registry.SetError("The priority \"" + priority.ToDelimitedStringWithEllipses(".") + "\" is boolean, and it is therefore illegal to use it as the priority for an event. Perhaps this was meant as the trigger? If the line is being misparsed, try adding parentheses."); delete ASTpriority; return true; } else { delete ASTpriority; } } #endif m_priority = priority; return false; }
bool AntimonyEvent::SetTrigger(const Formula& form) { string formstring = form.ToSBMLString(); #ifndef NSBML if (formstring.size() > 0) { ASTNode* ASTform = parseStringToASTNode(formstring); if (ASTform == NULL) { g_registry.SetError("The formula \"" + form.ToDelimitedStringWithEllipses(".") + "\" seems to be incorrect, and cannot be parsed into an Abstract Syntax Tree (AST)."); return true; } else if (!ASTform->isBoolean()) { g_registry.SetError("The formula \"" + form.ToDelimitedStringWithEllipses(".") + "\" cannot be parsed in a boolean context, and it is therefore illegal to use it as the trigger for an event. (Perhaps try adding parentheses?)"); delete ASTform; return true; } else { delete ASTform; } } #endif m_trigger = form; return false; }