bool AntimonyEvent::SetPersistent(const Formula& form) { if (!form.IsBoolean()) { g_registry.SetError("Unable to use '" + form.ToDelimitedStringWithEllipses(".") + "': only 'true' or 'false' may be used to set the value of 'persistent' on an event."); return true; } m_persistent = form.GetBoolean(); return false; }
bool AntimonyEvent::SetUseValuesFromTriggerTime(const Formula& form) { if (!form.IsBoolean()) { g_registry.SetError("Unable to use '" + form.ToDelimitedStringWithEllipses(".") + "': only 'true' or 'false' may be used to set the value of 'fromTrigger' on an event."); return true; } m_useValuesFromTriggerTime = form.GetBoolean(); return false; }
bool AntimonyEvent::SetInitialValue(const Formula& form) { if (!form.IsBoolean()) { g_registry.SetError("Unable to use '" + form.ToDelimitedStringWithEllipses(".") + "': only 'true' or 'false' may be used to set the value of 't0' (the initial value) of an event."); return true; } m_initialValue = form.GetBoolean(); return false; }
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; }