KarrLab/obj_tables

View on GitHub
obj_tables/chem/reaction_equation.lark

Summary

Maintainability
Test Coverage
start: gbl | lcl

// global compartment
gbl: / *\[ */ SPECIES_STOICHIOMETRY__SPECIES__COMPARTMENT__ID / *\] *: */ gbl_reactants? / *<=> */ gbl_products? WS*
gbl_reactants: gbl_parts
gbl_products: gbl_parts
gbl_parts: gbl_part (/ *\+ */ gbl_part)*
gbl_part: (/\( */ SPECIES_STOICHIOMETRY__STOICHIOMETRY / *\) */)? SPECIES_STOICHIOMETRY__SPECIES__SPECIES_TYPE__ID

// local compartments
lcl: lcl_reactants? / *<=> */ lcl_products? WS*
lcl_reactants: lcl_parts
lcl_products: lcl_parts
lcl_parts: lcl_part (/ *\+ */ lcl_part)*
lcl_part: (/\( */ SPECIES_STOICHIOMETRY__STOICHIOMETRY / *\) */)? SPECIES_STOICHIOMETRY__SPECIES__SPECIES_TYPE__ID / *\[ */ SPECIES_STOICHIOMETRY__SPECIES__COMPARTMENT__ID / *\] */

// tokens
SPECIES_STOICHIOMETRY__SPECIES__SPECIES_TYPE__ID: SLUG
SPECIES_STOICHIOMETRY__SPECIES__COMPARTMENT__ID: SLUG
SPECIES_STOICHIOMETRY__STOICHIOMETRY: FLOAT

SLUG: /(?!(^|\b)(\d+(\.\d*)?(\b|$))|(\.\d+$)|(0[xX][0-9a-fA-F]+(\b|$))|([0-9]+[eE][0-9]+(\b|$)))[a-zA-Z0-9_\-]+/
FLOAT: /([0-9]+(\.[0-9]*)?|\.[0-9]+)([eE][-+]?[0-9]+)?/
WS: " "