libSBML C API  libSBML 5.20.4 C API
Loading...
Searching...
No Matches
L3FormulaFormatter.cpp File Reference

Formats an AST formula tree as an SBML L3 formula string. More...

Include dependency graph for L3FormulaFormatter.cpp:

Functions

int equals (const ASTNode_t *a, const ASTNode_t *b)
 @_tendcond_t
 
int getL3Precedence (const ASTNode_t *node)
 
int isTranslatedModulo (const ASTNode_t *node)
 
int isUnaryMinus (const ASTNode_t *node)
 
int isUnaryNot (const ASTNode_t *node)
 
void L3FormulaFormatter_format (StringBuffer_t *sb, const ASTNode_t *node, const L3ParserSettings_t *settings)
 _tFormats_t _tthe_t _tgiven_t _tASTNode_t _tas_t _tan_t _tSBML_t _tL3_t _ttoken_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t.
 
void L3FormulaFormatter_formatFunction (StringBuffer_t *sb, const ASTNode_t *node, const L3ParserSettings_t *settings)
 _tFormats_t _tthe_t _tgiven_t _tASTNode_t _tas_t _tan_t _tSBML_t _tL3_t _tfunction_t _tname_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t.
 
void L3FormulaFormatter_formatLogicalRelational (StringBuffer_t *sb, const ASTNode_t *node)
 _tFormats_t _tthe_t _tgiven_t _tASTNode_t _tas_t _tan_t _tSBML_t _tL1_t _toperator_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t.
 
void L3FormulaFormatter_formatOperator (StringBuffer_t *sb, const ASTNode_t *node)
 _tFormats_t _tthe_t _tgiven_t _tASTNode_t _tas_t _tan_t _tSBML_t _tL1_t _toperator_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t.
 
void L3FormulaFormatter_formatRational (StringBuffer_t *sb, const ASTNode_t *node, const L3ParserSettings_t *settings)
 _tFormats_t _tthe_t _tgiven_t _tASTNode_t _tas_t _ta_t _trational_t _tnumber_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t.
 
void L3FormulaFormatter_formatReal (StringBuffer_t *sb, const ASTNode_t *node, const L3ParserSettings_t *settings)
 _tFormats_t _tthe_t _tgiven_t _tASTNode_t _tas_t _ta_t _treal_t _tnumber_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t.
 
const ASTNode_tL3FormulaFormatter_getRightChild (const ASTNode_t *parent)
 
int L3FormulaFormatter_hasUnambiguousGrammar (const ASTNode_t *node, const ASTNode_t *child, const L3ParserSettings_t *settings)
 
int L3FormulaFormatter_isFunction (const ASTNode_t *node, const L3ParserSettings_t *settings)
 @_tcond_t _tdoxygenLibsbmlInternal_t
 
int L3FormulaFormatter_isGrouped (const ASTNode_t *parent, const ASTNode_t *child, const L3ParserSettings_t *settings)
 @_treturn_t _ttrue_t (_tnonzero_t) _tif_t _tthe_t _tgiven_t _tchild_t _tASTNode_t _tshould_t _tbe_t _tgrouped_t (_twith_t _tparenthesis_t), _tfalse_t (_t0_t) _totherwise_t.
 
void L3FormulaFormatter_visit (const ASTNode_t *parent, const ASTNode_t *node, StringBuffer_t *sb, const L3ParserSettings_t *settings)
 _tVisits_t _tthe_t _tgiven_t _tASTNode_t _tnode_t.
 
void L3FormulaFormatter_visitFunction (const ASTNode_t *parent, const ASTNode_t *node, StringBuffer_t *sb, const L3ParserSettings_t *settings)
 _tVisits_t _tthe_t _tgiven_t _tASTNode_t _tas_t _ta_t _tfunction_t.
 
void L3FormulaFormatter_visitLog10 (const ASTNode_t *parent, const ASTNode_t *node, StringBuffer_t *sb, const L3ParserSettings_t *settings)
 _tVisits_t _tthe_t _tgiven_t _tASTNode_t _tas_t _tthe_t _tfunction_t "_tlog_t(_t10_t, _tx_t)" _tand_t _tin_t _tdoing_t _tso_t, _tformats_t _tit_t _tas_t "_tlog10_t(_tx_t)" (_twhere_t _tx_t _tis_t _tany_t _tsubexpression_t).
 
void L3FormulaFormatter_visitModulo (const ASTNode_t *parent, const ASTNode_t *node, StringBuffer_t *sb, const L3ParserSettings_t *settings)
 _tVisits_t _tthe_t _tgiven_t _tASTNode_t, _ttranslating_t _tthe_t _tpiecewise_t _tfunction_t _tto_t _tthe_t _tmuch_t _tsimpler_t '_tx_t % _ty_t' _tformat_t.
 
void L3FormulaFormatter_visitOther (const ASTNode_t *parent, const ASTNode_t *node, StringBuffer_t *sb, const L3ParserSettings_t *settings)
 _tVisits_t _tthe_t _tgiven_t _tASTNode_t _tand_t _tcontinues_t _tthe_t _tinorder_t _ttraversal_t.
 
void L3FormulaFormatter_visitSqrt (const ASTNode_t *parent, const ASTNode_t *node, StringBuffer_t *sb, const L3ParserSettings_t *settings)
 _tVisits_t _tthe_t _tgiven_t _tASTNode_t _tas_t _tthe_t _tfunction_t "_troot_t(_t2_t, _tx_t)" _tand_t _tin_t _tdoing_t _tso_t, _tformats_t _tit_t _tas_t "_tsqrt_t(_tx_t)" (_twhere_t _tx_t _tis_t _tany_t _tsubexpression_t).
 
void L3FormulaFormatter_visitUMinus (const ASTNode_t *parent, const ASTNode_t *node, StringBuffer_t *sb, const L3ParserSettings_t *settings)
 _tVisits_t _tthe_t _tgiven_t _tASTNode_t _tas_t _ta_t _tunary_t _tminus_t.
 
void L3FormulaFormatter_visitUNot (const ASTNode_t *parent, const ASTNode_t *node, StringBuffer_t *sb, const L3ParserSettings_t *settings)
 _tVisits_t _tthe_t _tgiven_t _tASTNode_t _tas_t _ta_t _tunary_t _tnot_t.
 
char * SBML_formulaToL3String (const ASTNode_t *tree)
 @_tcond_t _tdoxygenIgnored_t
 
char * SBML_formulaToL3StringWithSettings (const ASTNode_t *tree, const L3ParserSettings_t *settings)
 _tConverts_t _tan_t _tAST_t _tto_t _ta_t _ttext_t _tstring_t _trepresentation_t _tof_t _ta_t _tformula_t, _tusing_t _tspecific_t _tformatter_t _tsettings_t.
 

Detailed Description

Formats an AST formula tree as an SBML L3 formula string.

Author
Lucian Smith (from FormulaFormatter, by Ben Bornstein)

This file contains the SBML_formulaToL3String() and SBML_formulaToL3StringWithSettings() functions, both associated with the ASTNode_t structure.

Function Documentation

◆ equals()

int equals ( const ASTNode_t a,
const ASTNode_t b 
)

@_tendcond_t

@_tcond_t _tdoxygenLibsbmlInternal_t _tThe_t _trest_t _tof_t _tthis_t _tfile_t _tis_t _tinternal_t _tcode_t.

◆ getL3Precedence()

int getL3Precedence ( const ASTNode_t node)

◆ isTranslatedModulo()

int isTranslatedModulo ( const ASTNode_t node)

◆ isUnaryMinus()

int isUnaryMinus ( const ASTNode_t node)

◆ isUnaryNot()

int isUnaryNot ( const ASTNode_t node)

◆ L3FormulaFormatter_format()

void L3FormulaFormatter_format ( StringBuffer_t *  sb,
const ASTNode_t node,
const L3ParserSettings_t settings 
)

_tFormats_t _tthe_t _tgiven_t _tASTNode_t _tas_t _tan_t _tSBML_t _tL3_t _ttoken_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t.

_tFormats_t _tthe_t _tgiven_t _tASTNode_t_t _tas_t _tan_t _tSBML_t _tL1_t _ttoken_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t_t.

◆ L3FormulaFormatter_formatFunction()

void L3FormulaFormatter_formatFunction ( StringBuffer_t *  sb,
const ASTNode_t node,
const L3ParserSettings_t settings 
)

_tFormats_t _tthe_t _tgiven_t _tASTNode_t _tas_t _tan_t _tSBML_t _tL3_t _tfunction_t _tname_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t.

_tFormats_t _tthe_t _tgiven_t _tASTNode_t_t _tas_t _tan_t _tSBML_t _tL1_t _tfunction_t _tname_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t_t.

◆ L3FormulaFormatter_formatLogicalRelational()

void L3FormulaFormatter_formatLogicalRelational ( StringBuffer_t *  sb,
const ASTNode_t node 
)

_tFormats_t _tthe_t _tgiven_t _tASTNode_t _tas_t _tan_t _tSBML_t _tL1_t _toperator_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t.

_tFormats_t _tthe_t _tgiven_t _tlogical_t _tor_t _trelational_t _tASTNode_t_t _tas_t _tan_t _tinfix_t _tinternal_t _toperator_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t_t.

◆ L3FormulaFormatter_formatOperator()

void L3FormulaFormatter_formatOperator ( StringBuffer_t *  sb,
const ASTNode_t node 
)

_tFormats_t _tthe_t _tgiven_t _tASTNode_t _tas_t _tan_t _tSBML_t _tL1_t _toperator_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t.

_tFormats_t _tthe_t _tgiven_t _tASTNode_t_t _tas_t _tan_t _tSBML_t _tL3_t _toperator_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t_t.

◆ L3FormulaFormatter_formatRational()

void L3FormulaFormatter_formatRational ( StringBuffer_t *  sb,
const ASTNode_t node,
const L3ParserSettings_t settings 
)

_tFormats_t _tthe_t _tgiven_t _tASTNode_t _tas_t _ta_t _trational_t _tnumber_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t.

_tFormats_t _tthe_t _tgiven_t _tASTNode_t_t _tas_t _ta_t _trational_t _tnumber_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t_t.

_tFor_t _tSBML_t _tL1_t _tthis_t _tamounts_t _tto_t:

"(_tnumerator_t/_tdenominator_t)"

◆ L3FormulaFormatter_formatReal()

void L3FormulaFormatter_formatReal ( StringBuffer_t *  sb,
const ASTNode_t node,
const L3ParserSettings_t settings 
)

_tFormats_t _tthe_t _tgiven_t _tASTNode_t _tas_t _ta_t _treal_t _tnumber_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t.

_tFormats_t _tthe_t _tgiven_t _tASTNode_t_t _tas_t _ta_t _treal_t _tnumber_t _tand_t _tappends_t _tthe_t _tresult_t _tto_t _tthe_t _tgiven_t _tStringBuffer_t_t.

◆ L3FormulaFormatter_getRightChild()

const ASTNode_t * L3FormulaFormatter_getRightChild ( const ASTNode_t parent)

◆ L3FormulaFormatter_hasUnambiguousGrammar()

int L3FormulaFormatter_hasUnambiguousGrammar ( const ASTNode_t node,
const ASTNode_t child,
const L3ParserSettings_t settings 
)

◆ L3FormulaFormatter_isFunction()

int L3FormulaFormatter_isFunction ( const ASTNode_t node,
const L3ParserSettings_t settings 
)

@_tcond_t _tdoxygenLibsbmlInternal_t

@_treturn_t @_tc_t _t1_t (_ttrue_t) _tif_t _tthe_t _tgiven_t _tASTNode_t_t _tis_t _tto_t _tbe_t _tformatted_t _tas_t _ta_t _tfunction_t.

◆ L3FormulaFormatter_isGrouped()

int L3FormulaFormatter_isGrouped ( const ASTNode_t parent,
const ASTNode_t child,
const L3ParserSettings_t settings 
)

@_treturn_t _ttrue_t (_tnonzero_t) _tif_t _tthe_t _tgiven_t _tchild_t _tASTNode_t _tshould_t _tbe_t _tgrouped_t (_twith_t _tparenthesis_t), _tfalse_t (_t0_t) _totherwise_t.

@_treturn_t @_tc_t _t1_t (_ttrue_t) _tif_t _tthe_t _tgiven_t _tchild_t _tASTNode_t_t _tshould_t _tbe_t _tgrouped_t (_twith_t _tparenthesis_t), @_tc_t _t0_t (_tfalse_t) _totherwise_t.

_tA_t _tnode_t _tshould_t _tbe_t _tgroup_t _tif_t _tit_t _tis_t _tnot_t _tan_t _targument_t _tto_t _ta_t _tfunction_t _tand_t _teither_t:

  • _tThe_t _tparent_t _tnode_t _thas_t _thigher_t _tprecedence_t _tthan_t _tthe_t _tchild_t, _tor_t
  • _tIf_t _tparent_t _tnode_t _thas_t _tequal_t _tprecedence_t _twith_t _tthe_t _tchild_t _tand_t _tthe_t _tchild_t _tis_t _tto_t _tthe_t _tright_t. _tIn_t _tthis_t _tcase_t, _toperator_t _tassociativity_t _tand_t _tright_t-_tmost_t _tAST_t _tderivation_t _tenforce_t _tthe_t _tgrouping_t.

◆ L3FormulaFormatter_visit()

void L3FormulaFormatter_visit ( const ASTNode_t parent,
const ASTNode_t node,
StringBuffer_t *  sb,
const L3ParserSettings_t settings 
)

_tVisits_t _tthe_t _tgiven_t _tASTNode_t _tnode_t.

_tVisits_t _tthe_t _tgiven_t _tASTNode_t_t _tnode_t.

_tThis_t _tfunction_t _tis_t _treally_t _tjust_t _ta_t _tdispatcher_t _tto_t _teither_t _tSBML_formulaToL3String_visitFunction_t() _tor_t _tSBML_formulaToL3String_visitOther_t().

◆ L3FormulaFormatter_visitFunction()

void L3FormulaFormatter_visitFunction ( const ASTNode_t parent,
const ASTNode_t node,
StringBuffer_t *  sb,
const L3ParserSettings_t settings 
)

_tVisits_t _tthe_t _tgiven_t _tASTNode_t _tas_t _ta_t _tfunction_t.

_tVisits_t _tthe_t _tgiven_t _tASTNode_t_t _tas_t _ta_t _tfunction_t.

_tFor_t _tthis_t _tnode_t _tonly_t _tthe_t _ttraversal_t _tis_t _tpreorder_t.

◆ L3FormulaFormatter_visitLog10()

void L3FormulaFormatter_visitLog10 ( const ASTNode_t parent,
const ASTNode_t node,
StringBuffer_t *  sb,
const L3ParserSettings_t settings 
)

_tVisits_t _tthe_t _tgiven_t _tASTNode_t _tas_t _tthe_t _tfunction_t "_tlog_t(_t10_t, _tx_t)" _tand_t _tin_t _tdoing_t _tso_t, _tformats_t _tit_t _tas_t "_tlog10_t(_tx_t)" (_twhere_t _tx_t _tis_t _tany_t _tsubexpression_t).

_tVisits_t _tthe_t _tgiven_t _tASTNode_t_t _tas_t _tthe_t _tfunction_t "_tlog_t(_t10_t, _tx_t)" _tand_t _tin_t _tdoing_t _tso_t, _tformats_t _tit_t _tas_t "_tlog10_t(_tx_t)" (_twhere_t _tx_t _tis_t _tany_t _tsubexpression_t).

◆ L3FormulaFormatter_visitModulo()

void L3FormulaFormatter_visitModulo ( const ASTNode_t parent,
const ASTNode_t node,
StringBuffer_t *  sb,
const L3ParserSettings_t settings 
)

_tVisits_t _tthe_t _tgiven_t _tASTNode_t, _ttranslating_t _tthe_t _tpiecewise_t _tfunction_t _tto_t _tthe_t _tmuch_t _tsimpler_t '_tx_t % _ty_t' _tformat_t.

_tVisits_t _tthe_t _tgiven_t _tASTNode_t_t, _ttranslating_t _tit_t _tfrom_t _tthe_t _tcomplicated_t _tpiecewise_t _tfunction_t _tto_t _tthe_t _tmuch_t _tsimpler_t '_tx_t % _ty_t' _tform_t.

◆ L3FormulaFormatter_visitOther()

void L3FormulaFormatter_visitOther ( const ASTNode_t parent,
const ASTNode_t node,
StringBuffer_t *  sb,
const L3ParserSettings_t settings 
)

_tVisits_t _tthe_t _tgiven_t _tASTNode_t _tand_t _tcontinues_t _tthe_t _tinorder_t _ttraversal_t.

_tVisits_t _tthe_t _tgiven_t _tASTNode_t_t _tand_t _tcontinues_t _tthe_t _tinorder_t _ttraversal_t.

◆ L3FormulaFormatter_visitSqrt()

void L3FormulaFormatter_visitSqrt ( const ASTNode_t parent,
const ASTNode_t node,
StringBuffer_t *  sb,
const L3ParserSettings_t settings 
)

_tVisits_t _tthe_t _tgiven_t _tASTNode_t _tas_t _tthe_t _tfunction_t "_troot_t(_t2_t, _tx_t)" _tand_t _tin_t _tdoing_t _tso_t, _tformats_t _tit_t _tas_t "_tsqrt_t(_tx_t)" (_twhere_t _tx_t _tis_t _tany_t _tsubexpression_t).

_tVisits_t _tthe_t _tgiven_t _tASTNode_t_t _tas_t _tthe_t _tfunction_t "_troot_t(_t2_t, _tx_t)" _tand_t _tin_t _tdoing_t _tso_t, _tformats_t _tit_t _tas_t "_tsqrt_t(_tx_t)" (_twhere_t _tx_t _tis_t _tany_t _tsubexpression_t).

◆ L3FormulaFormatter_visitUMinus()

void L3FormulaFormatter_visitUMinus ( const ASTNode_t parent,
const ASTNode_t node,
StringBuffer_t *  sb,
const L3ParserSettings_t settings 
)

_tVisits_t _tthe_t _tgiven_t _tASTNode_t _tas_t _ta_t _tunary_t _tminus_t.

_tVisits_t _tthe_t _tgiven_t _tASTNode_t_t _tas_t _ta_t _tunary_t _tminus_t.

_tFor_t _tthis_t _tnode_t _tonly_t _tthe_t _ttraversal_t _tis_t _tpreorder_t.

◆ L3FormulaFormatter_visitUNot()

void L3FormulaFormatter_visitUNot ( const ASTNode_t parent,
const ASTNode_t node,
StringBuffer_t *  sb,
const L3ParserSettings_t settings 
)

_tVisits_t _tthe_t _tgiven_t _tASTNode_t _tas_t _ta_t _tunary_t _tnot_t.

_tVisits_t _tthe_t _tgiven_t _tASTNode_t_t _tas_t _ta_t _tunary_t _tnot_t.

◆ SBML_formulaToL3String()

char * SBML_formulaToL3String ( const ASTNode_t tree)

@_tcond_t _tdoxygenIgnored_t

_tConverts_t _tan_t _tAST_t _tto_t _ta_t _tstring_t _trepresentation_t _tof_t _ta_t _tformula_t _tusing_t _ta_t _tsyntax_t _tderived_t _tfrom_t _tSBML_t _tLevel_t&_tnbsp_t;_t1_t, _tbut_t _textended_t _tto_t _tinclude_t _telements_t _tfrom_t _tSBML_t _tLevel_t&_tnbsp_t;_t2_t _tand_t _tSBML_t _tLevel_t&_tnbsp_t;_t3_t.

◆ SBML_formulaToL3StringWithSettings()

char * SBML_formulaToL3StringWithSettings ( const ASTNode_t tree,
const L3ParserSettings_t settings 
)

_tConverts_t _tan_t _tAST_t _tto_t _ta_t _ttext_t _tstring_t _trepresentation_t _tof_t _ta_t _tformula_t, _tusing_t _tspecific_t _tformatter_t _tsettings_t.

_tThis_t _tfunction_t _tbehaves_t _tidentically_t _tto_t @_tsbmlfunction_t{_tformulaToL3String_t, _tASTNode_t} _tbut_t _tits_t _tbehavior_t _tis_t _tcontrolled_t _tby_t _ttwo_t _tfields_t _tin_t _tthe_t @_tp_t _tsettings_t _tobject_t, _tnamely_t:

@_tli_t <_tem_t>_tparseunits_t</_tem_t> ("_tparse_t _tunits_t"): _tIf_t _tthis_t _tfield_t _tin_t _tthe_t @_tp_t _tsettings_t _tobject_t _tis_t _tset_t _tto_t <_tcode_t>_ttrue_t</_tcode_t> (_tthe_t _tdefault_t), _tthe_t _tfunction_t _twill_t _twrite_t _tout_t _tthe_t _tunits_t _tof_t _tany_t _tnumerical_t _tASTNodes_t _tthat_t _thave_t _tthem_t, _tproducing_t (_tfor_t _texample_t) &_tquot_t;<_tcode_t>_t3_t _tmL_t</_tcode_t>&_tquot_t;, &_tquot_t;<_tcode_t>(_t3_t/_t4_t) _tm_t</_tcode_t>&_tquot_t;, _tor_t &_tquot_t;<_tcode_t>_t5_t._t5e_t-_t10_t _tM_t</_tcode_t>&_tquot_t;. _tIf_t _tthis_t _tis_t _tset_t _tto_t <_tcode_t>_tfalse_t</_tcode_t>, _tthis_t _tfunction_t _twill_t _tonly_t _twrite_t _tout_t _tthe_t _tnumber_t _titself_t (&_tquot_t;<_tcode_t>_t3_t</_tcode_t>&_tquot_t;, &_tquot_t;<_tcode_t>(_t3_t/_t4_t)</_tcode_t>&_tquot_t;, _tand_t &_tquot_t;<_tcode_t>_t5_t._t5e_t-_t10_t</_tcode_t>&_tquot_t;, _tin_t _tthe_t _tprevious_t _texamples_t). @_tli_t <_tem_t>_tcollapseminus_t</_tem_t> ("_tcollapse_t _tminus_t"): _tIf_t _tthis_t _tfield_t _tin_t _tthe_t @_tp_t _tsettings_t _tobject_t _tis_t _tset_t _tto_t <_tcode_t>_tfalse_t</_tcode_t> (_tthe_t _tdefault_t), _tthe_t _tfunction_t _twill_t _twrite_t _tout_t _texplicitly_t _tany_t _tdoubly_t-_tnested_t _tunary_t _tminus_t _tASTNodes_t, _tproducing_t (_tfor_t _texample_t) &_tquot_t;<_tcode_t>- -_tx_t</_tcode_t>&_tquot_t; _tor_t _teven_t &_tquot_t;<_tcode_t>- - - - -_t3_t._t1_t</_tcode_t>&_tquot_t;. _tIf_t _tthis_t _tis_t _tset_t _tto_t <_tcode_t>_ttrue_t</_tcode_t>, _tthe_t _tfunction_t _twill_t _tcollapse_t _tthe_t _tnodes_t _tbefore_t _tproducing_t _tthe_t _tinfix_t _tform_t, _tproducing_t &_tquot_t;<_tcode_t>_tx_t</_tcode_t>&_tquot_t; _tand_t &_tquot_t;<_tcode_t>-_t3_t._t1_t</_tcode_t>&_tquot_t; _tin_t _tthe_t _tprevious_t _texamples_t.

_tAll_t _tthe_t _tother_t _tsettings_t _tof_t _tthe_t _tL3ParserSettings_t _tobject_t _tpassed_t _tin_t _tas_t @_tp_t _tsettings_t _twill_t _tbe_t _tignored_t _tfor_t _tthe_t _tpurposes_t _tof_t _tthis_t _tfunction_t: _tthe_t <_tem_t>_tparselog_t</_tem_t> ("_tparse_t _tlog_t") _tsetting_t _tis_t _tignored_t _tso_t _tthat_t &_tquot_t;<_tcode_t>_tlog10_t(_tx_t)</_tcode_t>&_tquot_t;, &_tquot_t;<_tcode_t>_tln_t(_tx_t)</_tcode_t>&_tquot_t;, _tand_t &_tquot_t;<_tcode_t>_tlog_t(_tx_t, _ty_t)</_tcode_t>&_tquot_t; _tare_t _talways_t _tproduced_t; _tthe_t <_tem_t>_tavocsymbol_t</_tem_t> ("_tAvogadro_t _tcsymbol_t") _tis_t _tirrelevant_t _tto_t _tthe_t _tbehavior_t _tof_t _tthis_t _tfunction_t; _tand_t _tnothing_t _tin_t _tthe_t _tModel_t _tobject_t _tset_t _tvia_t _tthe_t <_tem_t>_tmodel_t</_tem_t> _tsetting_t _tis_t _tused_t.

@_tparam_t _ttree_t _tthe_t _tAST_t _tto_t _tbe_t _tconverted_t.

@_tparam_t _tsettings_t _tthe_t _tL3ParserSettings_t _tobject_t _tused_t _tto_t _tmodify_t _tthe_t _tbehavior_t _tof_t _tthis_t _tfunction_t.

@_treturn_t _tthe_t _tformula_t _tfrom_t _tthe_t _tgiven_t _tAST_t _tas_t _ttext_t _tstring_t, _twith_t _ta_t _tsyntax_t _toriented_t _ttowards_t _tthe_t _tcapabilities_t _tdefined_t _tin_t _tSBML_t _tLevel_t&_tnbsp_t;_t3_t. _tThe_t _tcaller_t _towns_t _tthe_t _treturned_t _tstring_t _tand_t _tis_t _tresponsible_t _tfor_t _tfreeing_t _tit_t _twhen_t _tit_t _tis_t _tno_t _tlonger_t _tneeded_t. _tIf_t @_tp_t _ttree_t _tis_t _ta_t _tnull_t _tpointer_t, _tthen_t _ta_t _tnull_t _tpointer_t _tis_t _treturned_t.

@_tsee_t @_tsbmlfunction_t{_tformulaToL3String_t, _tASTNode_t} @_tsee_t @_tsbmlfunction_t{_tformulaToString_t, _tASTNode_t} @_tsee_t @_tsbmlfunction_t{_tparseL3FormulaWithSettings_t, _tString_t\, _tL3ParserSettings_t} @_tsee_t @_tsbmlfunction_t{_tparseL3FormulaWithModel_t, _tString_t\, _tModel_t} @_tsee_t @_tsbmlfunction_t{_tparseFormula_t, _tString_t} @_tsee_t _tL3ParserSettings_t @_tsee_t @_tsbmlfunction_t{_tgetDefaultL3ParserSettings_t,} @_tsee_t @_tsbmlfunction_t{_tgetLastParseL3Error_t,}

@_tif_t _tconly_t @_tmemberof_t _tASTNode_t_t @_tendif_t