libSBML C# API  5.18.0
libsbmlcs.L3ParserSettings Class Reference
Inheritance diagram for libsbmlcs.L3ParserSettings:
[legend]

Detailed Description

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(), along with its variants SBML_parseL3Formula() and SBML_parseL3FormulaWithModel(), are the interfaces to a parser for mathematical formulas written as text strings. The inverse function is SBML_formulaToL3String() and its variants such as SBML_formulaToL3StringWithSettings(). The parsers and the formula writers convert between a text-string representation of mathematical formulas and Abstract Syntax Trees (ASTs), represented in libSBML using ASTNode objects. Compared to the parser and writer implemented by the functions SBML_parseFormula() and SBML_formulaToString(), which were designed primarily for converting the mathematical formula strings in SBML Level 1, the SBML Level 3 or 'L3' variants of the parser and writer use an extended formula syntax. They also have a number of configurable behaviors. This class (L3ParserSettings) is an object used to communicate the configuration settings with callers.

The following aspects of the parser are configurable using L3ParserSettings objects. (For the formula writer, only a subset of these settings is relevant; please see the documentation for SBML_formulaToL3StringWithSettings() for more information about which ones).

  • A Model object may optionally be provided to use identifiers (values of type SId) from the model in preference to pre-defined MathML symbols 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 by the parser will contain the construct <ci> pi </ci> instead of the construct <pi/>. Another 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/>.
  • The function log with a single argument ("log(x)") can be parsed as log10(x), ln(x), or treated as an error, as desired.
  • Unary minus signs can be either collapsed or preserved; that is, the parser can either (1) remove sequential pairs of unary minuses (e.g., "- -3") from the input and incorporate single unary minuses into the number node, or (2) preserve all minuses in the AST node structure, turning them into ASTNode objects of type AST_MINUS.
  • The character sequence "number id" can be interpreted as a numerical value number followed by units of measurement indicated by id, or it can be treated as a syntax error. (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.)
  • The symbol avogadro can be parsed either as a MathML csymbol or as a identifier. More specifically, "avogadro" can be treated as an ASTNode of type AST_NAME_AVOGADRO or of type AST_NAME.
  • Strings that match built-in functions and constants can either be parsed as a match regardless of capitalization, or may be required to be all-lower-case to be considered a match.
  • LibSBML plug-ins implementing support for SBML Level 3 packages may introduce extensions to the syntax understood by the parser. The precise nature of the extensions will be documented by the individual package plug-ins. An example of a possible extension is a notation for vectors and arrays, introduced by the SBML Level 3 Arrays package.

To obtain the default configuration values, callers can use the function SBML_getDefaultL3ParserSettings(). To change the configuration, callers can create an L3ParserSettings object, set the desired characteristics using the methods provided, and pass that object to SBML_parseL3FormulaWithSettings().

See also
SBML_parseL3Formula()
SBML_parseL3FormulaWithSettings()
SBML_parseL3FormulaWithModel()
SBML_parseFormula()
SBML_formulaToL3StringWithSettings()
SBML_formulaToL3String()
SBML_formulaToString()
SBML_getDefaultL3ParserSettings()

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...
 
bool getParseL3v2Functions ()
 Indicates the current behavior set for handling whether to parse the functions added in L3v2 as that MathML or not. More...
 
int getParseLog ()
 Indicates the current behavior set for handling the function log with one argument. More...
 
bool getParseModuloL3v2 ()
 Indicates the current behavior set for handling the '' sumbol in mathematical formulas. More...
 
bool getParsePackageMath (int package)
 Indicates the current behavior set for handling whether to parse the functions added in the given package as that MathML or not. 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, bool moduloL3v2, bool l3v2functions)
 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, SBMLNamespaces sbmlns, bool moduloL3v2)
 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, 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 setParseL3v2Functions (bool l3v2functions)
 Sets the behavior for handling functions added in SBML L3v2. More...
 
void setParseLog (int type)
 Sets the behavior for handling log in mathematical formulas. More...
 
void setParseModuloL3v2 (bool modulol3v2)
 Sets the behavior for handling the '' sumbol in mathematical formulas. More...
 
void setParsePackageMath (int package, bool parsepackage)
 Sets the behavior for handling functions added in SBML packages. More...
 
void setParseUnits (bool units)
 Sets the parser's behavior in handling units associated with numbers in a mathematical formula. 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
 

Constructor & Destructor Documentation

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:

  • sbmlns ('SBML namespaces') is set to 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,
bool  moduloL3v2,
bool  l3v2functions 
)

Creates a new L3ParserSettings object with specific values for all possible settings.

Parameters
modela Model object to be used for disambiguating identifiers encountered by SBML_parseL3FormulaWithSettings() in mathematical formulas.
parselog('parse log') a flag that controls how the parser will handle the symbol 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, as desired, by using the parameter values L3P_PARSE_LOG_AS_LOG10, L3P_PARSE_LOG_AS_LN, or L3P_PARSE_LOG_AS_ERROR, respectively.
collapseminus('collapse minus') a flag that controls how the parser will handle minus signs in formulas. Unary minus signs can be collapsed or preserved; that is, sequential pairs of unary minuses (e.g., "- -3") can be removed from the input entirely and single unary minuses can be incorporated into the number node, or all minuses can be preserved in the AST node structure. The possible values of this field are L3P_COLLAPSE_UNARY_MINUS (to collapse unary minuses) and L3P_EXPAND_UNARY_MINUS (to expand unary minuses).
parseunits('parse units') a flag that controls how the parser will handle apparent references to units of measurement associated with raw numbers in a formula. If set to the value L3P_PARSE_UNITS, units are parsed; if set to the value L3P_NO_UNITS, units are not parsed.
avocsymbol('Avogadro csymbol') a flag that controls how the parser will handle the appearance of the symbol avogadro in a formula. If set to the value L3P_AVOGADRO_IS_CSYMBOL, the symbol is interpreted as the SBML/MathML csymbol avogadro; if set to the value L3P_AVOGADRO_IS_NAME, the symbol is interpreted as a plain symbol name.
caseSensitive('case sensitive') a flag that controls how the cases of alphabetical characters are treated when symbols are compared. If the flag is set to the value L3P_COMPARE_BUILTINS_CASE_INSENSITIVE, symbols are compared in a case-insensitive manner, which means that mathematical functions such as 'sin' will be matched no matter what their case is: 'Sin', 'SIN', etc. If the flag is set to the value L3P_COMPARE_BUILTINS_CASE_SENSITIVE, symbols are interpreted in a case-sensitive manner.
moduloL3v2('modulo l3v2') a flag that controls how the parser will handle the '' ('modulo') symbol in formulas. By default, the parser will convert 'a % b' to a piecewise function that properly calculates the remainder of a with respect to be, but the parser can also be set to produce the MathML rem function, should the target of the produced ASTNode be an SBML Level 3 Version 2 document, where the rem function is legal. The possible values of this field are L3P_MODULO_IS_PIECEWISE (to parse '' as a piecewise function) and L3P_MODULO_IS_REM (to parse '' as rem).
sbmlns('SBML namespaces') an SBML namespaces object. The namespaces identify the SBML Level 3 packages that can extend the syntax understood by the formula parser. When non-null, the parser will interpret additional syntax defined by the packages; for example, it may understand vector/array extensions introduced by the SBML Level 3 Arrays package.
l3v2functionsa Boolean
Documentation note:
The native C++ implementation of this method defines a default argument value. In the documentation generated for different libSBML language bindings, you may or may not see corresponding arguments in the method declarations. For example, in Java and C#, a default argument is handled by declaring two separate methods, with one of them having the argument and the other one lacking the argument. However, the libSBML documentation will be identical for both methods. Consequently, if you are reading this and do not see an argument even though one is described, please look for descriptions of other variants of this method near where this one appears in the documentation.
See also
getModel()
setModel()
unsetModel()
getParseLog()
setParseLog()
getParseUnits()
setParseUnits()
getParseCollapseMinus()
setParseCollapseMinus()
getParseAvogadroCsymbol()
setParseAvogadroCsymbol()
getParseModuloL3v2()
setParseModuloL3v2()
getParseL3v2Functions()
setParseL3v2Functions()
libsbmlcs.L3ParserSettings.L3ParserSettings ( Model  model,
int  parselog,
bool  collapseminus,
bool  parseunits,
bool  avocsymbol,
bool  caseSensitive,
SBMLNamespaces  sbmlns,
bool  moduloL3v2 
)

Creates a new L3ParserSettings object with specific values for all possible settings.

Parameters
modela Model object to be used for disambiguating identifiers encountered by SBML_parseL3FormulaWithSettings() in mathematical formulas.
parselog('parse log') a flag that controls how the parser will handle the symbol 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, as desired, by using the parameter values L3P_PARSE_LOG_AS_LOG10, L3P_PARSE_LOG_AS_LN, or L3P_PARSE_LOG_AS_ERROR, respectively.
collapseminus('collapse minus') a flag that controls how the parser will handle minus signs in formulas. Unary minus signs can be collapsed or preserved; that is, sequential pairs of unary minuses (e.g., "- -3") can be removed from the input entirely and single unary minuses can be incorporated into the number node, or all minuses can be preserved in the AST node structure. The possible values of this field are L3P_COLLAPSE_UNARY_MINUS (to collapse unary minuses) and L3P_EXPAND_UNARY_MINUS (to expand unary minuses).
parseunits('parse units') a flag that controls how the parser will handle apparent references to units of measurement associated with raw numbers in a formula. If set to the value L3P_PARSE_UNITS, units are parsed; if set to the value L3P_NO_UNITS, units are not parsed.
avocsymbol('Avogadro csymbol') a flag that controls how the parser will handle the appearance of the symbol avogadro in a formula. If set to the value L3P_AVOGADRO_IS_CSYMBOL, the symbol is interpreted as the SBML/MathML csymbol avogadro; if set to the value L3P_AVOGADRO_IS_NAME, the symbol is interpreted as a plain symbol name.
caseSensitive('case sensitive') a flag that controls how the cases of alphabetical characters are treated when symbols are compared. If the flag is set to the value L3P_COMPARE_BUILTINS_CASE_INSENSITIVE, symbols are compared in a case-insensitive manner, which means that mathematical functions such as 'sin' will be matched no matter what their case is: 'Sin', 'SIN', etc. If the flag is set to the value L3P_COMPARE_BUILTINS_CASE_SENSITIVE, symbols are interpreted in a case-sensitive manner.
moduloL3v2('modulo l3v2') a flag that controls how the parser will handle the '' ('modulo') symbol in formulas. By default, the parser will convert 'a % b' to a piecewise function that properly calculates the remainder of a with respect to be, but the parser can also be set to produce the MathML rem function, should the target of the produced ASTNode be an SBML Level 3 Version 2 document, where the rem function is legal. The possible values of this field are L3P_MODULO_IS_PIECEWISE (to parse '' as a piecewise function) and L3P_MODULO_IS_REM (to parse '' as rem).
sbmlns('SBML namespaces') an SBML namespaces object. The namespaces identify the SBML Level 3 packages that can extend the syntax understood by the formula parser. When non-null, the parser will interpret additional syntax defined by the packages; for example, it may understand vector/array extensions introduced by the SBML Level 3 Arrays package.
l3v2functionsa Boolean
Documentation note:
The native C++ implementation of this method defines a default argument value. In the documentation generated for different libSBML language bindings, you may or may not see corresponding arguments in the method declarations. For example, in Java and C#, a default argument is handled by declaring two separate methods, with one of them having the argument and the other one lacking the argument. However, the libSBML documentation will be identical for both methods. Consequently, if you are reading this and do not see an argument even though one is described, please look for descriptions of other variants of this method near where this one appears in the documentation.
See also
getModel()
setModel()
unsetModel()
getParseLog()
setParseLog()
getParseUnits()
setParseUnits()
getParseCollapseMinus()
setParseCollapseMinus()
getParseAvogadroCsymbol()
setParseAvogadroCsymbol()
getParseModuloL3v2()
setParseModuloL3v2()
getParseL3v2Functions()
setParseL3v2Functions()
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.

Parameters
modela Model object to be used for disambiguating identifiers encountered by SBML_parseL3FormulaWithSettings() in mathematical formulas.
parselog('parse log') a flag that controls how the parser will handle the symbol 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, as desired, by using the parameter values L3P_PARSE_LOG_AS_LOG10, L3P_PARSE_LOG_AS_LN, or L3P_PARSE_LOG_AS_ERROR, respectively.
collapseminus('collapse minus') a flag that controls how the parser will handle minus signs in formulas. Unary minus signs can be collapsed or preserved; that is, sequential pairs of unary minuses (e.g., "- -3") can be removed from the input entirely and single unary minuses can be incorporated into the number node, or all minuses can be preserved in the AST node structure. The possible values of this field are L3P_COLLAPSE_UNARY_MINUS (to collapse unary minuses) and L3P_EXPAND_UNARY_MINUS (to expand unary minuses).
parseunits('parse units') a flag that controls how the parser will handle apparent references to units of measurement associated with raw numbers in a formula. If set to the value L3P_PARSE_UNITS, units are parsed; if set to the value L3P_NO_UNITS, units are not parsed.
avocsymbol('Avogadro csymbol') a flag that controls how the parser will handle the appearance of the symbol avogadro in a formula. If set to the value L3P_AVOGADRO_IS_CSYMBOL, the symbol is interpreted as the SBML/MathML csymbol avogadro; if set to the value L3P_AVOGADRO_IS_NAME, the symbol is interpreted as a plain symbol name.
caseSensitive('case sensitive') a flag that controls how the cases of alphabetical characters are treated when symbols are compared. If the flag is set to the value L3P_COMPARE_BUILTINS_CASE_INSENSITIVE, symbols are compared in a case-insensitive manner, which means that mathematical functions such as 'sin' will be matched no matter what their case is: 'Sin', 'SIN', etc. If the flag is set to the value L3P_COMPARE_BUILTINS_CASE_SENSITIVE, symbols are interpreted in a case-sensitive manner.
moduloL3v2('modulo l3v2') a flag that controls how the parser will handle the '' ('modulo') symbol in formulas. By default, the parser will convert 'a % b' to a piecewise function that properly calculates the remainder of a with respect to be, but the parser can also be set to produce the MathML rem function, should the target of the produced ASTNode be an SBML Level 3 Version 2 document, where the rem function is legal. The possible values of this field are L3P_MODULO_IS_PIECEWISE (to parse '' as a piecewise function) and L3P_MODULO_IS_REM (to parse '' as rem).
sbmlns('SBML namespaces') an SBML namespaces object. The namespaces identify the SBML Level 3 packages that can extend the syntax understood by the formula parser. When non-null, the parser will interpret additional syntax defined by the packages; for example, it may understand vector/array extensions introduced by the SBML Level 3 Arrays package.
l3v2functionsa Boolean
Documentation note:
The native C++ implementation of this method defines a default argument value. In the documentation generated for different libSBML language bindings, you may or may not see corresponding arguments in the method declarations. For example, in Java and C#, a default argument is handled by declaring two separate methods, with one of them having the argument and the other one lacking the argument. However, the libSBML documentation will be identical for both methods. Consequently, if you are reading this and do not see an argument even though one is described, please look for descriptions of other variants of this method near where this one appears in the documentation.
See also
getModel()
setModel()
unsetModel()
getParseLog()
setParseLog()
getParseUnits()
setParseUnits()
getParseCollapseMinus()
setParseCollapseMinus()
getParseAvogadroCsymbol()
setParseAvogadroCsymbol()
getParseModuloL3v2()
setParseModuloL3v2()
getParseL3v2Functions()
setParseL3v2Functions()
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.

Parameters
modela Model object to be used for disambiguating identifiers encountered by SBML_parseL3FormulaWithSettings() in mathematical formulas.
parselog('parse log') a flag that controls how the parser will handle the symbol 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, as desired, by using the parameter values L3P_PARSE_LOG_AS_LOG10, L3P_PARSE_LOG_AS_LN, or L3P_PARSE_LOG_AS_ERROR, respectively.
collapseminus('collapse minus') a flag that controls how the parser will handle minus signs in formulas. Unary minus signs can be collapsed or preserved; that is, sequential pairs of unary minuses (e.g., "- -3") can be removed from the input entirely and single unary minuses can be incorporated into the number node, or all minuses can be preserved in the AST node structure. The possible values of this field are L3P_COLLAPSE_UNARY_MINUS (to collapse unary minuses) and L3P_EXPAND_UNARY_MINUS (to expand unary minuses).
parseunits('parse units') a flag that controls how the parser will handle apparent references to units of measurement associated with raw numbers in a formula. If set to the value L3P_PARSE_UNITS, units are parsed; if set to the value L3P_NO_UNITS, units are not parsed.
avocsymbol('Avogadro csymbol') a flag that controls how the parser will handle the appearance of the symbol avogadro in a formula. If set to the value L3P_AVOGADRO_IS_CSYMBOL, the symbol is interpreted as the SBML/MathML csymbol avogadro; if set to the value L3P_AVOGADRO_IS_NAME, the symbol is interpreted as a plain symbol name.
caseSensitive('case sensitive') a flag that controls how the cases of alphabetical characters are treated when symbols are compared. If the flag is set to the value L3P_COMPARE_BUILTINS_CASE_INSENSITIVE, symbols are compared in a case-insensitive manner, which means that mathematical functions such as 'sin' will be matched no matter what their case is: 'Sin', 'SIN', etc. If the flag is set to the value L3P_COMPARE_BUILTINS_CASE_SENSITIVE, symbols are interpreted in a case-sensitive manner.
moduloL3v2('modulo l3v2') a flag that controls how the parser will handle the '' ('modulo') symbol in formulas. By default, the parser will convert 'a % b' to a piecewise function that properly calculates the remainder of a with respect to be, but the parser can also be set to produce the MathML rem function, should the target of the produced ASTNode be an SBML Level 3 Version 2 document, where the rem function is legal. The possible values of this field are L3P_MODULO_IS_PIECEWISE (to parse '' as a piecewise function) and L3P_MODULO_IS_REM (to parse '' as rem).
sbmlns('SBML namespaces') an SBML namespaces object. The namespaces identify the SBML Level 3 packages that can extend the syntax understood by the formula parser. When non-null, the parser will interpret additional syntax defined by the packages; for example, it may understand vector/array extensions introduced by the SBML Level 3 Arrays package.
l3v2functionsa Boolean
Documentation note:
The native C++ implementation of this method defines a default argument value. In the documentation generated for different libSBML language bindings, you may or may not see corresponding arguments in the method declarations. For example, in Java and C#, a default argument is handled by declaring two separate methods, with one of them having the argument and the other one lacking the argument. However, the libSBML documentation will be identical for both methods. Consequently, if you are reading this and do not see an argument even though one is described, please look for descriptions of other variants of this method near where this one appears in the documentation.
See also
getModel()
setModel()
unsetModel()
getParseLog()
setParseLog()
getParseUnits()
setParseUnits()
getParseCollapseMinus()
setParseCollapseMinus()
getParseAvogadroCsymbol()
setParseAvogadroCsymbol()
getParseModuloL3v2()
setParseModuloL3v2()
getParseL3v2Functions()
setParseL3v2Functions()
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.

Parameters
modela Model object to be used for disambiguating identifiers encountered by SBML_parseL3FormulaWithSettings() in mathematical formulas.
parselog('parse log') a flag that controls how the parser will handle the symbol 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, as desired, by using the parameter values L3P_PARSE_LOG_AS_LOG10, L3P_PARSE_LOG_AS_LN, or L3P_PARSE_LOG_AS_ERROR, respectively.
collapseminus('collapse minus') a flag that controls how the parser will handle minus signs in formulas. Unary minus signs can be collapsed or preserved; that is, sequential pairs of unary minuses (e.g., "- -3") can be removed from the input entirely and single unary minuses can be incorporated into the number node, or all minuses can be preserved in the AST node structure. The possible values of this field are L3P_COLLAPSE_UNARY_MINUS (to collapse unary minuses) and L3P_EXPAND_UNARY_MINUS (to expand unary minuses).
parseunits('parse units') a flag that controls how the parser will handle apparent references to units of measurement associated with raw numbers in a formula. If set to the value L3P_PARSE_UNITS, units are parsed; if set to the value L3P_NO_UNITS, units are not parsed.
avocsymbol('Avogadro csymbol') a flag that controls how the parser will handle the appearance of the symbol avogadro in a formula. If set to the value L3P_AVOGADRO_IS_CSYMBOL, the symbol is interpreted as the SBML/MathML csymbol avogadro; if set to the value L3P_AVOGADRO_IS_NAME, the symbol is interpreted as a plain symbol name.
caseSensitive('case sensitive') a flag that controls how the cases of alphabetical characters are treated when symbols are compared. If the flag is set to the value L3P_COMPARE_BUILTINS_CASE_INSENSITIVE, symbols are compared in a case-insensitive manner, which means that mathematical functions such as 'sin' will be matched no matter what their case is: 'Sin', 'SIN', etc. If the flag is set to the value L3P_COMPARE_BUILTINS_CASE_SENSITIVE, symbols are interpreted in a case-sensitive manner.
moduloL3v2('modulo l3v2') a flag that controls how the parser will handle the '' ('modulo') symbol in formulas. By default, the parser will convert 'a % b' to a piecewise function that properly calculates the remainder of a with respect to be, but the parser can also be set to produce the MathML rem function, should the target of the produced ASTNode be an SBML Level 3 Version 2 document, where the rem function is legal. The possible values of this field are L3P_MODULO_IS_PIECEWISE (to parse '' as a piecewise function) and L3P_MODULO_IS_REM (to parse '' as rem).
sbmlns('SBML namespaces') an SBML namespaces object. The namespaces identify the SBML Level 3 packages that can extend the syntax understood by the formula parser. When non-null, the parser will interpret additional syntax defined by the packages; for example, it may understand vector/array extensions introduced by the SBML Level 3 Arrays package.
l3v2functionsa Boolean
Documentation note:
The native C++ implementation of this method defines a default argument value. In the documentation generated for different libSBML language bindings, you may or may not see corresponding arguments in the method declarations. For example, in Java and C#, a default argument is handled by declaring two separate methods, with one of them having the argument and the other one lacking the argument. However, the libSBML documentation will be identical for both methods. Consequently, if you are reading this and do not see an argument even though one is described, please look for descriptions of other variants of this method near where this one appears in the documentation.
See also
getModel()
setModel()
unsetModel()
getParseLog()
setParseLog()
getParseUnits()
setParseUnits()
getParseCollapseMinus()
setParseCollapseMinus()
getParseAvogadroCsymbol()
setParseAvogadroCsymbol()
getParseModuloL3v2()
setParseModuloL3v2()
getParseL3v2Functions()
setParseL3v2Functions()
libsbmlcs.L3ParserSettings.L3ParserSettings ( L3ParserSettings  source)

Copy constructor.

Parameters
sourcethe instance to copy.

Member Function Documentation

virtual void libsbmlcs.L3ParserSettings.Dispose ( )
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.

Returns
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,.
See also
setComparisonCaseSensitivity()
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/>.

See also
setModel()
unsetModel()
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:

Returns
A boolean indicating which mode is currently set; one of L3P_AVOGADRO_IS_CSYMBOL or L3P_AVOGADRO_IS_NAME.
See also
setParseAvogadroCsymbol()
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.

Returns
A boolean indicating the behavior currently set. The possible values are as follows:
See also
setParseCollapseMinus()
bool libsbmlcs.L3ParserSettings.getParseL3v2Functions ( )

Indicates the current behavior set for handling whether to parse the functions added in L3v2 as that MathML or not.

This setting affects whether the names of functions added in SBML Level 3 Version 2 are parsed as those added MathML functions, or whether they are added as generic functions with those names (to be used in SBML as function definitions).

Returns
A boolean indicating the behavior currently set. The possible values are as follows:
See also
setParsePackageMath()
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.

Returns
One of following three constants:
See also
setParseLog()
bool libsbmlcs.L3ParserSettings.getParseModuloL3v2 ( )

Indicates the current behavior set for handling the '' sumbol in mathematical formulas.

This setting affects whether the '' symbol (modulo) is parsed as a piecewise equation that returns the modulo value of the entries on either side of the symbol, or whether it is parsed as the MathML 'rem' function, which was allowed in SBML Level 3 Version 2, but not in previous level/versions. The latter is more succinct, but might not be legal SBML for the desired target SBML document.

Returns
A boolean indicating the behavior currently set. The possible values are as follows:
See also
setParseModuloL3v2()
bool libsbmlcs.L3ParserSettings.getParsePackageMath ( int  package)

Indicates the current behavior set for handling whether to parse the functions added in the given package as that MathML or not.

This setting affects whether the math added in a given SBML Level 3 package are parsed as those added MathML elements, or whether they are added as generic functions or variables with those names.

Returns
A boolean indicating the behavior currently set. The possible values are as follows:
See also
setParsePackageMath()
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.

Returns
A boolean indicating whether to parse units. The possible values are as follows:
  • L3P_PARSE_UNITS (value = true): parse units in the text-string formula.
  • L3P_NO_UNITS (value = false): treat units in the text-string formula as errors.
See also
setParseUnits()
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.

Parameters
strcmpa boolean indicating whether to be case sensitive (if true) or be case insensitive (if false).
See also
getComparisonCaseSensitivity()
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/>.

Parameters
modela Model object to be used for disambiguating identifiers.
Warning
This does not copy the Model object. This means that modifications made to the Model after invoking this method may affect parsing behavior, because the parser will query the current contents of the model.
See also
getModel()
unsetModel()
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:

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.

Parameters
l2onlya 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.
See also
getParseAvogadroCsymbol()
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:

Parameters
collapseminusa 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.
See also
getParseCollapseMinus()
void libsbmlcs.L3ParserSettings.setParseL3v2Functions ( bool  l3v2functions)

Sets the behavior for handling functions added in SBML L3v2.

This setting affects whether the names of functions added in SBML Level 3 Version 2 are parsed as those added MathML functions, or whether they are added as generic functions with those names (to be used in SBML as function definitions).

This method lets you tell the parser which behavior to use—either to parse the functions added in L3v2 as their built-in counterparts, or as generic functions with that name (to be defined by SBML as function definitions). The two possibilities are represented using the following constants:

Parameters
l3v2functionsa boolean value (one of the constants L3P_PARSE_L3V2_FUNCTIONS_DIRECTLY or L3P_PARSE_L3V2_FUNCTIONS_AS_GENERIC) indicating how to interpret those function names.
See also
getParseL3v2Functions()
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.

Parameters
typea constant, one of following three possibilities:
See also
getParseLog()
void libsbmlcs.L3ParserSettings.setParseModuloL3v2 ( bool  modulol3v2)

Sets the behavior for handling the '' sumbol in mathematical formulas.

This setting affects whether the '' symbol (modulo) is parsed as a piecewise equation that returns the modulo value of the entries on either side of the symbol, or whether it is parsed as the MathML 'rem' function, which was allowed in SBML Level 3 Version 2, but not in previous level/versions. The latter is more succinct, but might not be legal SBML for the desired target SBML document.

This method lets you tell the parser which behavior to use—either parse '' as the 'rem' function or as a piecewise function with the same interpretation. The two possibilities are represented using the following constants:

Parameters
modulol3v2a boolean value (one of the constants L3P_MODULO_IS_PIECEWISE or L3P_MODULO_IS_REM) indicating how the '' symbol in the input should be handled.
See also
getParseModuloL3v2()
void libsbmlcs.L3ParserSettings.setParsePackageMath ( int  package,
bool  parsepackage 
)

Sets the behavior for handling functions added in SBML packages.

This setting affects whether the math added in a given SBML Level 3 package are parsed as those added MathML elements, or whether they are added as generic functions or variables with those names.

This method lets you tell the parser which behavior to use—either to parse the functions added in a given package as their built-in counterparts, or as generic functions with that name (to be defined by SBML as function definitions). The two possibilities are represented using the following constants:

Parameters
packagea boolean value (one of the constants L3P_PARSE_L3V2_FUNCTIONS_DIRECTLY or L3P_PARSE_L3V2_FUNCTIONS_AS_GENERIC) indicating how to interpret those function names.
parsepackagea boolean
See also
getParsePackageMath()
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.

Parameters
unitsa boolean indicating whether to parse units. The possible values are as follows:
  • L3P_PARSE_UNITS (value = true): parse units in the text-string formula.
  • L3P_NO_UNITS (value = false): treat units in the text-string formula as errors.
See also
getParseUnits()
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.

See also
setModel()
getModel()
void libsbmlcs.L3ParserSettings.visitPackageInfixSyntax ( ASTNode  parent,
ASTNode  node,
SWIGTYPE_p_StringBuffer_t  sb 
)

Member Data Documentation

bool libsbmlcs.L3ParserSettings.swigCMemOwn
protected