libSBML C# API
libSBML 5.13.0 C# API
|
{core}
Controls the behavior of the Level 3 formula parser.This class of objects is defined by libSBML only and has no direct equivalent in terms of SBML components. This class is not prescribed by the SBML specifications, although it is used to implement features defined in SBML.
The function SBML_parseL3FormulaWithSettings()
Public Member Functions | |
virtual void | Dispose () |
bool | getComparisonCaseSensitivity () |
Returns true if the parser is configured to match built-in symbols in a case-insensitive way. More... | |
Model | getModel () |
Returns the Model object referenced by this L3ParserSettings object. More... | |
bool | getParseAvogadroCsymbol () |
Indicates the current behavior set for handling avogadro for SBML Level 3. More... | |
bool | getParseCollapseMinus () |
Indicates the current behavior set for handling multiple unary minuses in formulas. More... | |
int | getParseLog () |
Indicates the current behavior set for handling the function log with one argument. More... | |
bool | getParseUnits () |
Indicates the current behavior set for handling units in text-string mathematical formulas. More... | |
L3ParserSettings () | |
Creates a new L3ParserSettings object with default values. More... | |
L3ParserSettings (Model model, int parselog, bool collapseminus, bool parseunits, bool avocsymbol, bool caseSensitive, SBMLNamespaces sbmlns) | |
Creates a new L3ParserSettings object with specific values for all possible settings. More... | |
L3ParserSettings (Model model, int parselog, bool collapseminus, bool parseunits, bool avocsymbol, bool caseSensitive) | |
Creates a new L3ParserSettings object with specific values for all possible settings. More... | |
L3ParserSettings (Model model, int parselog, bool collapseminus, bool parseunits, bool avocsymbol) | |
Creates a new L3ParserSettings object with specific values for all possible settings. More... | |
L3ParserSettings (L3ParserSettings source) | |
Copy constructor. More... | |
void | setComparisonCaseSensitivity (bool strcmp) |
Sets the parser's behavior with respect to case sensitivity for recognizing predefined symbols. More... | |
void | setModel (Model model) |
Sets the model reference in this L3ParserSettings object. More... | |
void | setParseAvogadroCsymbol (bool l2only) |
Sets the parser's behavior in handling the symbol avogadro in mathematical formulas. More... | |
void | setParseCollapseMinus (bool collapseminus) |
Sets the behavior for handling unary minuses appearing in mathematical formulas. More... | |
void | setParseLog (int type) |
Sets the behavior for handling log in mathematical formulas. More... | |
void | setParseUnits (bool units) |
Sets the parser's behavior in handling units associated with numbers in a mathematical formula. More... | |
void | setPlugins (SBMLNamespaces sbmlns) |
Set up the plugins for this L3ParserSettings, based on the SBMLNamespaces object. More... | |
void | unsetModel () |
Unsets the Model reference in this L3ParserSettings object. More... | |
void | visitPackageInfixSyntax (ASTNode parent, ASTNode node, SWIGTYPE_p_StringBuffer_t sb) |
Protected Attributes | |
bool | swigCMemOwn |
libsbmlcs.L3ParserSettings.L3ParserSettings | ( | ) |
Creates a new L3ParserSettings object with default values.
This is the default constructor for the L3ParserSettings object. It sets the stored Model object to null
and sets the following field values in the L3ParserSettings object:
null
(which indicates that no syntax extensions due to SBML Level 3 packages will be assumed—the formula parser will only understand the core syntax described in the documentation for SBML_parseL3Formula() libsbmlcs.L3ParserSettings.L3ParserSettings | ( | Model | model, |
int | parselog, | ||
bool | collapseminus, | ||
bool | parseunits, | ||
bool | avocsymbol, | ||
bool | caseSensitive, | ||
SBMLNamespaces | sbmlns | ||
) |
Creates a new L3ParserSettings object with specific values for all possible settings.
model | a Model object to be used for disambiguating identifiers encountered by SBML_parseL3FormulaWithSettings() |
libsbmlcs.L3ParserSettings.L3ParserSettings | ( | Model | model, |
int | parselog, | ||
bool | collapseminus, | ||
bool | parseunits, | ||
bool | avocsymbol, | ||
bool | caseSensitive | ||
) |
Creates a new L3ParserSettings object with specific values for all possible settings.
model | a Model object to be used for disambiguating identifiers encountered by SBML_parseL3FormulaWithSettings() |
libsbmlcs.L3ParserSettings.L3ParserSettings | ( | Model | model, |
int | parselog, | ||
bool | collapseminus, | ||
bool | parseunits, | ||
bool | avocsymbol | ||
) |
Creates a new L3ParserSettings object with specific values for all possible settings.
model | a Model object to be used for disambiguating identifiers encountered by SBML_parseL3FormulaWithSettings() |
libsbmlcs.L3ParserSettings.L3ParserSettings | ( | L3ParserSettings | source | ) |
Copy constructor.
|
virtual |
bool libsbmlcs.L3ParserSettings.getComparisonCaseSensitivity | ( | ) |
Returns true
if the parser is configured to match built-in symbols in a case-insensitive way.
By default (which is the value L3P_COMPARE_BUILTINS_CASE_INSENSITIVE), the parser compares symbols in a case insensitive manner for built-in functions such as 'sin'
and 'piecewise'
, and for constants such as 'true'
and 'avogadro'
. Setting this option to L3P_COMPARE_BUILTINS_CASE_SENSITIVE causes the parser to become case sensitive. In that mode, for example, the symbols 'sin'
and 'true'
will match the built-in values, but the symbols 'SIN'
, 'Sin'
, 'True'
, 'TRUE'
, and so on, will not.
true
if matches are done in a case-sensitive manner, and false
if the parser will recognize built-in functions and constants regardless of case,.Model libsbmlcs.L3ParserSettings.getModel | ( | ) |
Returns the Model object referenced by this L3ParserSettings object.
When a Model object is provided, identifiers (values of type SId
) from that model are used in preference to pre-defined MathML symbol definitions. More precisely, the Model entities whose identifiers will shadow identical symbols in the mathematical formula are: Species, Compartment, Parameter, Reaction, and SpeciesReference. For instance, if the parser is given a Model containing a Species with the identifier "pi
", and the formula to be parsed is "3*pi
", the MathML produced will contain the construct <ci> pi </ci>
instead of the construct <pi/>
. Similarly, when a Model object is provided, SId
values of user-defined functions present in the Model will be used preferentially over pre-defined MathML functions. For example, if the passed-in Model contains a FunctionDefinition with the identifier "sin
", that function will be used instead of the predefined MathML function <sin/>
.
bool libsbmlcs.L3ParserSettings.getParseAvogadroCsymbol | ( | ) |
Indicates the current behavior set for handling avogadro
for SBML Level 3.
SBML Level 3 defines a symbol for representing the value of Avogadro's constant, but it is not defined in SBML Level 2. As a result, the text-string formula parser must behave differently depending on which SBML Level is being targeted. For Level 3 documents, it can interpret instances of avogadro
in the input as a reference to the MathML csymbol for Avogadro's constant defined in the SBML Level 3 specification. For Level 2, it must treat avogadro
as just another plain symbol.
This method returns the current setting of the avogadro
-handling behavior in this L3ParserSettings object. The possible values are as follows:
true
): tells the parser to translate the string avogadro
(in any capitalization) into an AST node of type AST_NAME_AVOGADRO. false
): tells the parser to translate the string avogadro
into an AST of type AST_NAME. bool libsbmlcs.L3ParserSettings.getParseCollapseMinus | ( | ) |
Indicates the current behavior set for handling multiple unary minuses in formulas.
This setting affects two behaviors. First, pairs of multiple unary minuses in a row (e.g., "- -3
") can be collapsed and ignored in the input, or the multiple minuses can be preserved in the AST node tree that is generated by the parser. Second, minus signs in front of numbers can be collapsed into the number node itself; for example, a "- 4.1
" can be turned into a single ASTNode of type AST_REAL with a value of -4.1
, or it can be turned into a node of type AST_MINUS having a child node of type AST_REAL.
true
): collapse unary minuses where possible. false
): do not collapse unary minuses, and instead translate each one into an AST node of type AST_MINUS. int libsbmlcs.L3ParserSettings.getParseLog | ( | ) |
Indicates the current behavior set for handling the function log
with one argument.
The function log
with a single argument ("log(x)
") can be parsed as log10(x)
, ln(x)
, or treated as an error, as desired. These three possible behaviors are indicated, respectively, by the values L3P_PARSE_LOG_AS_LOG10, L3P_PARSE_LOG_AS_LN, and L3P_PARSE_LOG_AS_ERROR.
bool libsbmlcs.L3ParserSettings.getParseUnits | ( | ) |
Indicates the current behavior set for handling units in text-string mathematical formulas.
In SBML Level 2, there is no means of associating a unit of measurement with a pure number in a formula, while SBML Level 3 does define a syntax for this. In Level 3, MathML <cn>
elements can have an attribute named units
placed in the SBML namespace, which can be used to indicate the units to be associated with the number. The text-string infix formula parser allows units to be placed after raw numbers; they are interpreted as unit identifiers for units defined by the SBML specification or in the containing Model object. Some examples include: "4 mL
", "2.01 Hz
", "3.1e-6 M
", and "(5/8) inches
". To produce a valid SBML model, there must either exist a UnitDefinition corresponding to the identifier of the unit, or the unit must be defined in Table 2 of the SBML Level 3 specification.
Since SBML Level 2 does not have the ability to associate units with pure numbers, the value should be expected to be false
(L3P_NO_UNITS) when parsing text-string formulas intended for use in SBML Level 2 documents.
true
): parse units in the text-string formula. false
): treat units in the text-string formula as errors. void libsbmlcs.L3ParserSettings.setComparisonCaseSensitivity | ( | bool | strcmp | ) |
Sets the parser's behavior with respect to case sensitivity for recognizing predefined symbols.
By default (which is the value L3P_COMPARE_BUILTINS_CASE_INSENSITIVE), the parser compares symbols in a case insensitive manner for built-in functions such as 'sin'
and 'piecewise'
, and for constants such as 'true'
and 'avogadro'
. Setting this option to L3P_COMPARE_BUILTINS_CASE_SENSITIVE causes the parser to become case sensitive. In that mode, for example, the symbols 'sin'
and 'true'
will match the built-in values, but the symbols 'SIN'
, 'Sin'
, 'True'
, 'TRUE'
, and so on, will not.
strcmp | a boolean indicating whether to be case sensitive (if true ) or be case insensitive (if false ). |
void libsbmlcs.L3ParserSettings.setModel | ( | Model | model | ) |
Sets the model reference in this L3ParserSettings object.
When a Model object is provided, identifiers (values of type SId
) from that model are used in preference to pre-defined MathML symbol definitions. More precisely, the Model entities whose identifiers will shadow identical symbols in the mathematical formula are: Species, Compartment, Parameter, Reaction, and SpeciesReference. For instance, if the parser is given a Model containing a Species with the identifier "pi
", and the formula to be parsed is "3*pi
", the MathML produced will contain the construct <ci> pi </ci>
instead of the construct <pi/>
. Similarly, when a Model object is provided, SId
values of user-defined functions present in the Model will be used preferentially over pre-defined MathML functions. For example, if the passed-in Model contains a FunctionDefinition with the identifier "sin
", that function will be used instead of the predefined MathML function <sin/>
.
model | a Model object to be used for disambiguating identifiers. |
void libsbmlcs.L3ParserSettings.setParseAvogadroCsymbol | ( | bool | l2only | ) |
Sets the parser's behavior in handling the symbol avogadro
in mathematical formulas.
SBML Level 3 defines a symbol for representing the value of Avogadro's constant, but it is not defined in SBML Level 2. As a result, the text-string formula parser must behave differently depending on which SBML Level is being targeted. For Level 3 documents, it can interpret instances of avogadro
in the input as a reference to the MathML csymbol for Avogadro's constant defined in the SBML Level 3 specification. For Level 2, it must treat avogadro
as just another plain symbol.
This method allows callers to set the avogadro
-handling behavior in this L3ParserSettings object. The possible values of l2only
are as follows:
true
): tells the parser to translate the string avogadro
(in any capitalization) into an AST node of type AST_NAME_AVOGADRO. false
): tells the parser to translate the string avogadro
into an AST of type AST_NAME. Since SBML Level 2 does not define a symbol for Avogadro's constant, the value should be set to L3P_AVOGADRO_IS_NAME when parsing text-string formulas intended for use in SBML Level 2 documents.
l2only | a boolean value indicating how the string avogadro should be treated when encountered in a formula. This will be one of the values L3P_AVOGADRO_IS_CSYMBOL or L3P_AVOGADRO_IS_NAME. |
void libsbmlcs.L3ParserSettings.setParseCollapseMinus | ( | bool | collapseminus | ) |
Sets the behavior for handling unary minuses appearing in mathematical formulas.
This setting affects two behaviors. First, pairs of multiple unary minuses in a row (e.g., "- -3
") can be collapsed and ignored in the input, or the multiple minuses can be preserved in the AST node tree that is generated by the parser. Second, minus signs in front of numbers can be collapsed into the number node itself; for example, a "- 4.1
" can be turned into a single ASTNode of type AST_REAL with a value of -4.1
, or it can be turned into a node of type AST_MINUS having a child node of type AST_REAL.
This method lets you tell the parser which behavior to use—either collapse minuses or always preserve them. The two possibilities are represented using the following constants:
true
): collapse unary minuses where possible. false
): do not collapse unary minuses, and instead translate each one into an AST node of type AST_MINUS. collapseminus | a boolean value (one of the constants L3P_COLLAPSE_UNARY_MINUS or L3P_EXPAND_UNARY_MINUS) indicating how unary minus signs in the input should be handled. |
void libsbmlcs.L3ParserSettings.setParseLog | ( | int | type | ) |
Sets the behavior for handling log
in mathematical formulas.
The function log
with a single argument ("log(x)
") can be parsed as log10(x)
, ln(x)
, or treated as an error. These three behaviors are set, respectively, by using the value L3P_PARSE_LOG_AS_LOG10, L3P_PARSE_LOG_AS_LN, or L3P_PARSE_LOG_AS_ERROR for the type
parameter.
type | a constant, one of following three possibilities: |
void libsbmlcs.L3ParserSettings.setParseUnits | ( | bool | units | ) |
Sets the parser's behavior in handling units associated with numbers in a mathematical formula.
In SBML Level 2, there is no means of associating a unit of measurement with a pure number in a formula, while SBML Level 3 does define a syntax for this. In Level 3, MathML <cn>
elements can have an attribute named units
placed in the SBML namespace, which can be used to indicate the units to be associated with the number. The text-string infix formula parser allows units to be placed after raw numbers; they are interpreted as unit identifiers for units defined by the SBML specification or in the containing Model object. Some examples include: "4 mL
", "2.01 Hz
", "3.1e-6 M
", and "(5/8) inches
". To produce a valid SBML model, there must either exist a UnitDefinition corresponding to the identifier of the unit, or the unit must be defined in Table 2 of the SBML Level 3 specification.
This method sets the formula parser's behavior with respect to units.
units | A boolean indicating whether to parse units. The possible values are as follows: |
true
): parse units in the text-string formula. false
): treat units in the text-string formula as errors. void libsbmlcs.L3ParserSettings.setPlugins | ( | SBMLNamespaces | sbmlns | ) |
Set up the plugins for this L3ParserSettings, based on the SBMLNamespaces object.
When a SBMLNamespaces object is provided, the parser will only interpret infix syntax understood by the core libSBML plus the packages indicated by the SBMLNamespaces objects provided. ASTNode objects returned by the L3Parser will contain those SBMLNamespaces objects, and will be used to parse certain constructs that may only be understood by packages (e.g., vectors for the SBML Level 3 'arrays' package). Note that by default, all packages that were compiled with this version of libSBML are included, so this function is most useful as a way to turn off certain namespaces, such as might be desired if your tool does not support vectors, for example.
sbmlns | a SBMLNamespaces object to be used. If null is given as the value, all plugins will be loaded. |
void libsbmlcs.L3ParserSettings.unsetModel | ( | ) |
Unsets the Model reference in this L3ParserSettings object.
The effect of calling this method is to set the stored model value to null
.
void libsbmlcs.L3ParserSettings.visitPackageInfixSyntax | ( | ASTNode | parent, |
ASTNode | node, | ||
SWIGTYPE_p_StringBuffer_t | sb | ||
) |
|
protected |