diff --git a/Goslin.g4 b/Goslin.g4 index 50fe560..f842f40 100644 --- a/Goslin.g4 +++ b/Goslin.g4 @@ -182,7 +182,7 @@ mediator_functions : mediator_mono_functions | mediator_di_functions | mediator_ mediator_mono_functions: 'H' | 'Oxo' | 'oxo' | 'OXO' | 'keto' | 'Hp' | 'HP' | 'NO2' | 'K' | 'k' | 'hydroxy' | 'd' | 'deoxy' | 'beta' | 'iso'; mediator_di_functions: 'E' | 'Ep' | 'EP' | 'DH' | 'DiH' | 'diH' | 'dihydro' | 'dh'; mediator_tri_functions : 'TriH' | 'triH' | 'trihydroxy'; -mediator_full_function : mediator_position_group mediator_func_group_separator mediator_mono_functions | mediator_di_pos mediator_func_group_separator mediator_di_functions | mediator_tri_pos mediator_func_group_separator mediator_tri_functions | mediator_position_group mediator_mono_functions; +mediator_full_function : mediator_position_group mediator_func_group_separator mediator_mono_functions | mediator_di_pos mediator_func_group_separator mediator_di_functions | mediator_tri_pos mediator_func_group_separator mediator_tri_functions | mediator_position_group mediator_mono_functions | mediator_position_group mediator_mono_functions | mediator_di_pos mediator_di_functions | mediator_tri_pos mediator_tri_functions | mediator_position_group mediator_mono_functions; mediator_db_function : mediator_double_bond_positions mediator_func_group_separator mediator_mono_functions; mediator_double_bond_positions_full : '(' mediator_double_bond_positions ')'; mediator_double_bond_positions : mediator_double_bond_position | mediator_double_bond_positions ',' mediator_double_bond_position; diff --git a/LipidMaps.g4 b/LipidMaps.g4 index b6bc79d..6318765 100644 --- a/LipidMaps.g4 +++ b/LipidMaps.g4 @@ -122,8 +122,8 @@ hg_threepl: 'SLBPA' | 'PS-NAc' | 'NAPE'; /* sphingolipid rules */ sl: lsl | dsl; -lsl: hg_lslc round_open_bracket lcb round_close_bracket | hg_lslc lcb | sphinga; -dsl: hg_dslc dsl_species | hg_dslc dsl_subspecies; +lsl: hg_lslc round_open_bracket lcb round_close_bracket | hg_lslc lcb | sphinga | hg_lsl_pure; +dsl: hg_dslc dsl_species | hg_dslc dsl_subspecies | hg_dslc c_type; dsl_species: round_open_bracket lcb round_close_bracket | lcb; dsl_subspecies: round_open_bracket lcb_fa_sorted round_close_bracket | lcb_fa_sorted; @@ -140,6 +140,7 @@ sphinga_C_lcb : 'C' sphinga_lcb_len; sphinga_lcb_len : number; sphinga_bracket_lcb : round_open_bracket lcb round_close_bracket | lcb; +c_type : 'C' carbon | 'C' carbon carbon_db_separator db; hg_dslc: hg_dsl_global | hg_dsl_global headgroup_separator; @@ -167,9 +168,8 @@ greek : 'alpha' | 'beta' | 'α' | 'β'; hg_lslc: hg_lsl | hg_lsl headgroup_separator; -hg_lsl: 'SPH' | 'Sph' | 'S1P' | 'HexSph' | 'SPC' | 'SPH-P' | 'LysoSM' | 'SIP'; - - +hg_lsl_pure : hg_lsl; +hg_lsl: 'SPH' | 'Sph' | 'S1P' | 'HexSph' | 'SPC' | 'SPH-P' | 'LysoSM' | 'SIP' | 'GlcSph' | 'GalSph'; /* polyketides */ pk : pk_hg pk_fa;