From 5054739fe11521bc605b919a194f5e041fdb15d9 Mon Sep 17 00:00:00 2001 From: Kyle Ferriter Date: Wed, 20 Sep 2023 09:27:09 -0700 Subject: [PATCH 01/25] Support indefinite and definite uncertain ranges, and unbalanced uncertain ranges, for g. expressions --- src/hgvs/_data/hgvs.pymeta | 7 +- src/hgvs/generated/hgvs_grammar.py | 4385 +++++++++++++--------------- tests/data/grammar_test.tsv | 8 + tests/test_hgvs_location.py | 25 + tests/test_hgvs_sequencevariant.py | 24 + 5 files changed, 2116 insertions(+), 2333 deletions(-) diff --git a/src/hgvs/_data/hgvs.pymeta b/src/hgvs/_data/hgvs.pymeta index fb75e710..0c84c3e6 100644 --- a/src/hgvs/_data/hgvs.pymeta +++ b/src/hgvs/_data/hgvs.pymeta @@ -122,7 +122,7 @@ pro_ident = '=' -> hgvs.edit.AARefAlt(ref='',alt='' # potentially indefinite/uncertain intervals c_interval = def_c_interval | '(' def_c_interval:iv ')' -> iv._set_uncertain() -g_interval = def_g_interval | '(' def_g_interval:iv ')' -> iv._set_uncertain() +g_interval = def_g_uncertain_interval:iv | ('(' def_g_interval:iv ')' -> iv._set_uncertain()) | def_g_interval m_interval = def_m_interval | '(' def_m_interval:iv ')' -> iv._set_uncertain() n_interval = def_n_interval | '(' def_n_interval:iv ')' -> iv._set_uncertain() p_interval = def_p_interval | '(' def_p_interval:iv ')' -> iv._set_uncertain() @@ -136,6 +136,11 @@ def_r_interval = (r_pos:start '_' r_pos:end -> hgvs.location.Interval(start,end) def_c_interval = (c_pos:start '_' c_pos:end -> hgvs.location.BaseOffsetInterval(start,end)) | (c_pos:start -> hgvs.location.BaseOffsetInterval(start,copy.deepcopy(start))) def_n_interval = (n_pos:start '_' n_pos:end -> hgvs.location.BaseOffsetInterval(start,end)) | (n_pos:start -> hgvs.location.BaseOffsetInterval(start,copy.deepcopy(start))) +# indefinite ranges +def_g_uncertain_interval = '(' def_g_interval:ivl_start ')' '_' '(' def_g_interval:ivl_end ')' -> hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end._set_uncertain()) + | def_g_interval:ivl_start '_' '(' def_g_interval:ivl_end ')' -> hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end._set_uncertain()) + | '(' def_g_interval:ivl_start ')' '_' def_g_interval:ivl_end -> hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end._set_uncertain()) + # positions c_pos = def_c_pos #| '(' def_c_pos:pos ')' -> pos._set_uncertain() g_pos = def_g_pos #| '(' def_g_pos:pos ')' -> pos._set_uncertain() diff --git a/src/hgvs/generated/hgvs_grammar.py b/src/hgvs/generated/hgvs_grammar.py index 38f407b0..26bfc64e 100644 --- a/src/hgvs/generated/hgvs_grammar.py +++ b/src/hgvs/generated/hgvs_grammar.py @@ -3,3456 +3,3177 @@ # Changes will be overwritten by the generation script. # Generated by: sbin/generate_parser.py # Grammar file: src/hgvs/_data/hgvs.pymeta -# Grammar hash: 3a6ac8d6d2dda7f4a178efe0081659e0 +# Grammar hash: 7ea128c4af760e7e198a272b1bc182cb # Parsley version: 1.3 -# Python version: 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] +# Python version: 3.11.4 (main, Jul 25 2023, 17:07:07) [Clang 14.0.3 (clang-1403.0.22.14.1)] # -------------------------------------------------- - def createParserClass(GrammarBase, ruleGlobals): if ruleGlobals is None: ruleGlobals = {} - class Grammar(GrammarBase): def rule_hgvs_variant(self): - _locals = {"self": self} - self.locals["hgvs_variant"] = _locals - + _locals = {'self': self} + self.locals['hgvs_variant'] = _locals def _G_or_1(): - self._trace("", (697, 707), self.input.position) + self._trace('', (697, 707), self.input.position) _G_apply_2, lastError = self._apply(self.rule_g_variant, "g_variant", []) self.considerError(lastError, None) return (_G_apply_2, self.currentError) - def _G_or_3(): - self._trace("", (709, 719), self.input.position) + self._trace('', (709, 719), self.input.position) _G_apply_4, lastError = self._apply(self.rule_m_variant, "m_variant", []) self.considerError(lastError, None) return (_G_apply_4, self.currentError) - def _G_or_5(): - self._trace("", (721, 731), self.input.position) + self._trace('', (721, 731), self.input.position) _G_apply_6, lastError = self._apply(self.rule_c_variant, "c_variant", []) self.considerError(lastError, None) return (_G_apply_6, self.currentError) - def _G_or_7(): - self._trace("", (733, 743), self.input.position) + self._trace('', (733, 743), self.input.position) _G_apply_8, lastError = self._apply(self.rule_n_variant, "n_variant", []) self.considerError(lastError, None) return (_G_apply_8, self.currentError) - def _G_or_9(): - self._trace("", (746, 756), self.input.position) + self._trace('', (746, 756), self.input.position) _G_apply_10, lastError = self._apply(self.rule_r_variant, "r_variant", []) self.considerError(lastError, None) return (_G_apply_10, self.currentError) - def _G_or_11(): - self._trace("", (758, 768), self.input.position) + self._trace('', (758, 768), self.input.position) _G_apply_12, lastError = self._apply(self.rule_p_variant, "p_variant", []) self.considerError(lastError, None) return (_G_apply_12, self.currentError) - _G_or_13, lastError = self._or([_G_or_1, _G_or_3, _G_or_5, _G_or_7, _G_or_9, _G_or_11]) - self.considerError(lastError, "hgvs_variant") + self.considerError(lastError, 'hgvs_variant') return (_G_or_13, self.currentError) + def rule_c_variant(self): - _locals = {"self": self} - self.locals["c_variant"] = _locals - self._trace("", (781, 786), self.input.position) + _locals = {'self': self} + self.locals['c_variant'] = _locals + self._trace('', (781, 786), self.input.position) _G_apply_14, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, "c_variant") - _locals["ac"] = _G_apply_14 - self._trace("", (789, 803), self.input.position) + self.considerError(lastError, 'c_variant') + _locals['ac'] = _G_apply_14 + self._trace('', (789, 803), self.input.position) _G_apply_15, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, "c_variant") - _locals["gene"] = _G_apply_15 - self._trace("", (808, 812), self.input.position) - _G_exactly_16, lastError = self.exactly(":") - self.considerError(lastError, "c_variant") - self._trace("", (812, 816), self.input.position) - _G_exactly_17, lastError = self.exactly("c") - self.considerError(lastError, "c_variant") - _locals["type"] = _G_exactly_17 - self._trace("", (821, 825), self.input.position) - _G_exactly_18, lastError = self.exactly(".") - self.considerError(lastError, "c_variant") - self._trace("", (825, 835), self.input.position) + self.considerError(lastError, 'c_variant') + _locals['gene'] = _G_apply_15 + self._trace('', (808, 812), self.input.position) + _G_exactly_16, lastError = self.exactly(':') + self.considerError(lastError, 'c_variant') + self._trace('', (812, 816), self.input.position) + _G_exactly_17, lastError = self.exactly('c') + self.considerError(lastError, 'c_variant') + _locals['type'] = _G_exactly_17 + self._trace('', (821, 825), self.input.position) + _G_exactly_18, lastError = self.exactly('.') + self.considerError(lastError, 'c_variant') + self._trace('', (825, 835), self.input.position) _G_apply_19, lastError = self._apply(self.rule_c_posedit, "c_posedit", []) - self.considerError(lastError, "c_variant") - _locals["posedit"] = _G_apply_19 + self.considerError(lastError, 'c_variant') + _locals['posedit'] = _G_apply_19 _G_python_21, lastError = eval(self._G_expr_20, self.globals, _locals), None - self.considerError(lastError, "c_variant") + self.considerError(lastError, 'c_variant') return (_G_python_21, self.currentError) + def rule_g_variant(self): - _locals = {"self": self} - self.locals["g_variant"] = _locals - self._trace("", (941, 946), self.input.position) + _locals = {'self': self} + self.locals['g_variant'] = _locals + self._trace('', (941, 946), self.input.position) _G_apply_22, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, "g_variant") - _locals["ac"] = _G_apply_22 - self._trace("", (949, 963), self.input.position) + self.considerError(lastError, 'g_variant') + _locals['ac'] = _G_apply_22 + self._trace('', (949, 963), self.input.position) _G_apply_23, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, "g_variant") - _locals["gene"] = _G_apply_23 - self._trace("", (968, 972), self.input.position) - _G_exactly_24, lastError = self.exactly(":") - self.considerError(lastError, "g_variant") - self._trace("", (972, 976), self.input.position) - _G_exactly_25, lastError = self.exactly("g") - self.considerError(lastError, "g_variant") - _locals["type"] = _G_exactly_25 - self._trace("", (981, 985), self.input.position) - _G_exactly_26, lastError = self.exactly(".") - self.considerError(lastError, "g_variant") - self._trace("", (985, 995), self.input.position) + self.considerError(lastError, 'g_variant') + _locals['gene'] = _G_apply_23 + self._trace('', (968, 972), self.input.position) + _G_exactly_24, lastError = self.exactly(':') + self.considerError(lastError, 'g_variant') + self._trace('', (972, 976), self.input.position) + _G_exactly_25, lastError = self.exactly('g') + self.considerError(lastError, 'g_variant') + _locals['type'] = _G_exactly_25 + self._trace('', (981, 985), self.input.position) + _G_exactly_26, lastError = self.exactly('.') + self.considerError(lastError, 'g_variant') + self._trace('', (985, 995), self.input.position) _G_apply_27, lastError = self._apply(self.rule_g_posedit, "g_posedit", []) - self.considerError(lastError, "g_variant") - _locals["posedit"] = _G_apply_27 + self.considerError(lastError, 'g_variant') + _locals['posedit'] = _G_apply_27 _G_python_28, lastError = eval(self._G_expr_20, self.globals, _locals), None - self.considerError(lastError, "g_variant") + self.considerError(lastError, 'g_variant') return (_G_python_28, self.currentError) + def rule_m_variant(self): - _locals = {"self": self} - self.locals["m_variant"] = _locals - self._trace("", (1101, 1106), self.input.position) + _locals = {'self': self} + self.locals['m_variant'] = _locals + self._trace('', (1101, 1106), self.input.position) _G_apply_29, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, "m_variant") - _locals["ac"] = _G_apply_29 - self._trace("", (1109, 1123), self.input.position) + self.considerError(lastError, 'm_variant') + _locals['ac'] = _G_apply_29 + self._trace('', (1109, 1123), self.input.position) _G_apply_30, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, "m_variant") - _locals["gene"] = _G_apply_30 - self._trace("", (1128, 1132), self.input.position) - _G_exactly_31, lastError = self.exactly(":") - self.considerError(lastError, "m_variant") - self._trace("", (1132, 1136), self.input.position) - _G_exactly_32, lastError = self.exactly("m") - self.considerError(lastError, "m_variant") - _locals["type"] = _G_exactly_32 - self._trace("", (1141, 1145), self.input.position) - _G_exactly_33, lastError = self.exactly(".") - self.considerError(lastError, "m_variant") - self._trace("", (1145, 1155), self.input.position) + self.considerError(lastError, 'm_variant') + _locals['gene'] = _G_apply_30 + self._trace('', (1128, 1132), self.input.position) + _G_exactly_31, lastError = self.exactly(':') + self.considerError(lastError, 'm_variant') + self._trace('', (1132, 1136), self.input.position) + _G_exactly_32, lastError = self.exactly('m') + self.considerError(lastError, 'm_variant') + _locals['type'] = _G_exactly_32 + self._trace('', (1141, 1145), self.input.position) + _G_exactly_33, lastError = self.exactly('.') + self.considerError(lastError, 'm_variant') + self._trace('', (1145, 1155), self.input.position) _G_apply_34, lastError = self._apply(self.rule_m_posedit, "m_posedit", []) - self.considerError(lastError, "m_variant") - _locals["posedit"] = _G_apply_34 + self.considerError(lastError, 'm_variant') + _locals['posedit'] = _G_apply_34 _G_python_35, lastError = eval(self._G_expr_20, self.globals, _locals), None - self.considerError(lastError, "m_variant") + self.considerError(lastError, 'm_variant') return (_G_python_35, self.currentError) + def rule_n_variant(self): - _locals = {"self": self} - self.locals["n_variant"] = _locals - self._trace("", (1261, 1266), self.input.position) + _locals = {'self': self} + self.locals['n_variant'] = _locals + self._trace('', (1261, 1266), self.input.position) _G_apply_36, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, "n_variant") - _locals["ac"] = _G_apply_36 - self._trace("", (1269, 1283), self.input.position) + self.considerError(lastError, 'n_variant') + _locals['ac'] = _G_apply_36 + self._trace('', (1269, 1283), self.input.position) _G_apply_37, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, "n_variant") - _locals["gene"] = _G_apply_37 - self._trace("", (1288, 1292), self.input.position) - _G_exactly_38, lastError = self.exactly(":") - self.considerError(lastError, "n_variant") - self._trace("", (1292, 1296), self.input.position) - _G_exactly_39, lastError = self.exactly("n") - self.considerError(lastError, "n_variant") - _locals["type"] = _G_exactly_39 - self._trace("", (1301, 1305), self.input.position) - _G_exactly_40, lastError = self.exactly(".") - self.considerError(lastError, "n_variant") - self._trace("", (1305, 1315), self.input.position) + self.considerError(lastError, 'n_variant') + _locals['gene'] = _G_apply_37 + self._trace('', (1288, 1292), self.input.position) + _G_exactly_38, lastError = self.exactly(':') + self.considerError(lastError, 'n_variant') + self._trace('', (1292, 1296), self.input.position) + _G_exactly_39, lastError = self.exactly('n') + self.considerError(lastError, 'n_variant') + _locals['type'] = _G_exactly_39 + self._trace('', (1301, 1305), self.input.position) + _G_exactly_40, lastError = self.exactly('.') + self.considerError(lastError, 'n_variant') + self._trace('', (1305, 1315), self.input.position) _G_apply_41, lastError = self._apply(self.rule_n_posedit, "n_posedit", []) - self.considerError(lastError, "n_variant") - _locals["posedit"] = _G_apply_41 + self.considerError(lastError, 'n_variant') + _locals['posedit'] = _G_apply_41 _G_python_42, lastError = eval(self._G_expr_20, self.globals, _locals), None - self.considerError(lastError, "n_variant") + self.considerError(lastError, 'n_variant') return (_G_python_42, self.currentError) + def rule_p_variant(self): - _locals = {"self": self} - self.locals["p_variant"] = _locals - self._trace("", (1421, 1426), self.input.position) + _locals = {'self': self} + self.locals['p_variant'] = _locals + self._trace('', (1421, 1426), self.input.position) _G_apply_43, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, "p_variant") - _locals["ac"] = _G_apply_43 - self._trace("", (1429, 1443), self.input.position) + self.considerError(lastError, 'p_variant') + _locals['ac'] = _G_apply_43 + self._trace('', (1429, 1443), self.input.position) _G_apply_44, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, "p_variant") - _locals["gene"] = _G_apply_44 - self._trace("", (1448, 1452), self.input.position) - _G_exactly_45, lastError = self.exactly(":") - self.considerError(lastError, "p_variant") - self._trace("", (1452, 1456), self.input.position) - _G_exactly_46, lastError = self.exactly("p") - self.considerError(lastError, "p_variant") - _locals["type"] = _G_exactly_46 - self._trace("", (1461, 1465), self.input.position) - _G_exactly_47, lastError = self.exactly(".") - self.considerError(lastError, "p_variant") - self._trace("", (1465, 1475), self.input.position) + self.considerError(lastError, 'p_variant') + _locals['gene'] = _G_apply_44 + self._trace('', (1448, 1452), self.input.position) + _G_exactly_45, lastError = self.exactly(':') + self.considerError(lastError, 'p_variant') + self._trace('', (1452, 1456), self.input.position) + _G_exactly_46, lastError = self.exactly('p') + self.considerError(lastError, 'p_variant') + _locals['type'] = _G_exactly_46 + self._trace('', (1461, 1465), self.input.position) + _G_exactly_47, lastError = self.exactly('.') + self.considerError(lastError, 'p_variant') + self._trace('', (1465, 1475), self.input.position) _G_apply_48, lastError = self._apply(self.rule_p_posedit, "p_posedit", []) - self.considerError(lastError, "p_variant") - _locals["posedit"] = _G_apply_48 + self.considerError(lastError, 'p_variant') + _locals['posedit'] = _G_apply_48 _G_python_49, lastError = eval(self._G_expr_20, self.globals, _locals), None - self.considerError(lastError, "p_variant") + self.considerError(lastError, 'p_variant') return (_G_python_49, self.currentError) + def rule_r_variant(self): - _locals = {"self": self} - self.locals["r_variant"] = _locals - self._trace("", (1581, 1586), self.input.position) + _locals = {'self': self} + self.locals['r_variant'] = _locals + self._trace('', (1581, 1586), self.input.position) _G_apply_50, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, "r_variant") - _locals["ac"] = _G_apply_50 - self._trace("", (1589, 1603), self.input.position) + self.considerError(lastError, 'r_variant') + _locals['ac'] = _G_apply_50 + self._trace('', (1589, 1603), self.input.position) _G_apply_51, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, "r_variant") - _locals["gene"] = _G_apply_51 - self._trace("", (1608, 1612), self.input.position) - _G_exactly_52, lastError = self.exactly(":") - self.considerError(lastError, "r_variant") - self._trace("", (1612, 1616), self.input.position) - _G_exactly_53, lastError = self.exactly("r") - self.considerError(lastError, "r_variant") - _locals["type"] = _G_exactly_53 - self._trace("", (1621, 1625), self.input.position) - _G_exactly_54, lastError = self.exactly(".") - self.considerError(lastError, "r_variant") - self._trace("", (1625, 1635), self.input.position) + self.considerError(lastError, 'r_variant') + _locals['gene'] = _G_apply_51 + self._trace('', (1608, 1612), self.input.position) + _G_exactly_52, lastError = self.exactly(':') + self.considerError(lastError, 'r_variant') + self._trace('', (1612, 1616), self.input.position) + _G_exactly_53, lastError = self.exactly('r') + self.considerError(lastError, 'r_variant') + _locals['type'] = _G_exactly_53 + self._trace('', (1621, 1625), self.input.position) + _G_exactly_54, lastError = self.exactly('.') + self.considerError(lastError, 'r_variant') + self._trace('', (1625, 1635), self.input.position) _G_apply_55, lastError = self._apply(self.rule_r_posedit, "r_posedit", []) - self.considerError(lastError, "r_variant") - _locals["posedit"] = _G_apply_55 + self.considerError(lastError, 'r_variant') + _locals['posedit'] = _G_apply_55 _G_python_56, lastError = eval(self._G_expr_20, self.globals, _locals), None - self.considerError(lastError, "r_variant") + self.considerError(lastError, 'r_variant') return (_G_python_56, self.currentError) - def rule_hgvs_position(self): - _locals = {"self": self} - self.locals["hgvs_position"] = _locals + def rule_hgvs_position(self): + _locals = {'self': self} + self.locals['hgvs_position'] = _locals def _G_or_57(): - self._trace("", (1920, 1936), self.input.position) - _G_apply_58, lastError = self._apply( - self.rule_g_hgvs_position, "g_hgvs_position", [] - ) + self._trace('', (1919, 1935), self.input.position) + _G_apply_58, lastError = self._apply(self.rule_g_hgvs_position, "g_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_58, self.currentError) - def _G_or_59(): - self._trace("", (1938, 1954), self.input.position) - _G_apply_60, lastError = self._apply( - self.rule_m_hgvs_position, "m_hgvs_position", [] - ) + self._trace('', (1937, 1953), self.input.position) + _G_apply_60, lastError = self._apply(self.rule_m_hgvs_position, "m_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_60, self.currentError) - def _G_or_61(): - self._trace("", (1956, 1972), self.input.position) - _G_apply_62, lastError = self._apply( - self.rule_c_hgvs_position, "c_hgvs_position", [] - ) + self._trace('', (1955, 1971), self.input.position) + _G_apply_62, lastError = self._apply(self.rule_c_hgvs_position, "c_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_62, self.currentError) - def _G_or_63(): - self._trace("", (1974, 1990), self.input.position) - _G_apply_64, lastError = self._apply( - self.rule_n_hgvs_position, "n_hgvs_position", [] - ) + self._trace('', (1973, 1989), self.input.position) + _G_apply_64, lastError = self._apply(self.rule_n_hgvs_position, "n_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_64, self.currentError) - def _G_or_65(): - self._trace("", (1992, 2008), self.input.position) - _G_apply_66, lastError = self._apply( - self.rule_r_hgvs_position, "r_hgvs_position", [] - ) + self._trace('', (1991, 2007), self.input.position) + _G_apply_66, lastError = self._apply(self.rule_r_hgvs_position, "r_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_66, self.currentError) - def _G_or_67(): - self._trace("", (2010, 2026), self.input.position) - _G_apply_68, lastError = self._apply( - self.rule_p_hgvs_position, "p_hgvs_position", [] - ) + self._trace('', (2009, 2025), self.input.position) + _G_apply_68, lastError = self._apply(self.rule_p_hgvs_position, "p_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_68, self.currentError) - - _G_or_69, lastError = self._or( - [_G_or_57, _G_or_59, _G_or_61, _G_or_63, _G_or_65, _G_or_67] - ) - self.considerError(lastError, "hgvs_position") + _G_or_69, lastError = self._or([_G_or_57, _G_or_59, _G_or_61, _G_or_63, _G_or_65, _G_or_67]) + self.considerError(lastError, 'hgvs_position') return (_G_or_69, self.currentError) + def rule_c_hgvs_position(self): - _locals = {"self": self} - self.locals["c_hgvs_position"] = _locals - self._trace("", (2045, 2050), self.input.position) + _locals = {'self': self} + self.locals['c_hgvs_position'] = _locals + self._trace('', (2044, 2049), self.input.position) _G_apply_70, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, "c_hgvs_position") - _locals["ac"] = _G_apply_70 - self._trace("", (2053, 2067), self.input.position) + self.considerError(lastError, 'c_hgvs_position') + _locals['ac'] = _G_apply_70 + self._trace('', (2052, 2066), self.input.position) _G_apply_71, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, "c_hgvs_position") - _locals["gene"] = _G_apply_71 - self._trace("", (2072, 2076), self.input.position) - _G_exactly_72, lastError = self.exactly(":") - self.considerError(lastError, "c_hgvs_position") - self._trace("", (2076, 2080), self.input.position) - _G_exactly_73, lastError = self.exactly("c") - self.considerError(lastError, "c_hgvs_position") - _locals["type"] = _G_exactly_73 - self._trace("", (2085, 2089), self.input.position) - _G_exactly_74, lastError = self.exactly(".") - self.considerError(lastError, "c_hgvs_position") - self._trace("", (2089, 2100), self.input.position) + self.considerError(lastError, 'c_hgvs_position') + _locals['gene'] = _G_apply_71 + self._trace('', (2071, 2075), self.input.position) + _G_exactly_72, lastError = self.exactly(':') + self.considerError(lastError, 'c_hgvs_position') + self._trace('', (2075, 2079), self.input.position) + _G_exactly_73, lastError = self.exactly('c') + self.considerError(lastError, 'c_hgvs_position') + _locals['type'] = _G_exactly_73 + self._trace('', (2084, 2088), self.input.position) + _G_exactly_74, lastError = self.exactly('.') + self.considerError(lastError, 'c_hgvs_position') + self._trace('', (2088, 2099), self.input.position) _G_apply_75, lastError = self._apply(self.rule_c_interval, "c_interval", []) - self.considerError(lastError, "c_hgvs_position") - _locals["pos"] = _G_apply_75 + self.considerError(lastError, 'c_hgvs_position') + _locals['pos'] = _G_apply_75 _G_python_77, lastError = eval(self._G_expr_76, self.globals, _locals), None - self.considerError(lastError, "c_hgvs_position") + self.considerError(lastError, 'c_hgvs_position') return (_G_python_77, self.currentError) + def rule_g_hgvs_position(self): - _locals = {"self": self} - self.locals["g_hgvs_position"] = _locals - self._trace("", (2194, 2199), self.input.position) + _locals = {'self': self} + self.locals['g_hgvs_position'] = _locals + self._trace('', (2193, 2198), self.input.position) _G_apply_78, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, "g_hgvs_position") - _locals["ac"] = _G_apply_78 - self._trace("", (2202, 2216), self.input.position) + self.considerError(lastError, 'g_hgvs_position') + _locals['ac'] = _G_apply_78 + self._trace('', (2201, 2215), self.input.position) _G_apply_79, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, "g_hgvs_position") - _locals["gene"] = _G_apply_79 - self._trace("", (2221, 2225), self.input.position) - _G_exactly_80, lastError = self.exactly(":") - self.considerError(lastError, "g_hgvs_position") - self._trace("", (2225, 2229), self.input.position) - _G_exactly_81, lastError = self.exactly("g") - self.considerError(lastError, "g_hgvs_position") - _locals["type"] = _G_exactly_81 - self._trace("", (2234, 2238), self.input.position) - _G_exactly_82, lastError = self.exactly(".") - self.considerError(lastError, "g_hgvs_position") - self._trace("", (2238, 2249), self.input.position) + self.considerError(lastError, 'g_hgvs_position') + _locals['gene'] = _G_apply_79 + self._trace('', (2220, 2224), self.input.position) + _G_exactly_80, lastError = self.exactly(':') + self.considerError(lastError, 'g_hgvs_position') + self._trace('', (2224, 2228), self.input.position) + _G_exactly_81, lastError = self.exactly('g') + self.considerError(lastError, 'g_hgvs_position') + _locals['type'] = _G_exactly_81 + self._trace('', (2233, 2237), self.input.position) + _G_exactly_82, lastError = self.exactly('.') + self.considerError(lastError, 'g_hgvs_position') + self._trace('', (2237, 2248), self.input.position) _G_apply_83, lastError = self._apply(self.rule_g_interval, "g_interval", []) - self.considerError(lastError, "g_hgvs_position") - _locals["pos"] = _G_apply_83 + self.considerError(lastError, 'g_hgvs_position') + _locals['pos'] = _G_apply_83 _G_python_84, lastError = eval(self._G_expr_76, self.globals, _locals), None - self.considerError(lastError, "g_hgvs_position") + self.considerError(lastError, 'g_hgvs_position') return (_G_python_84, self.currentError) + def rule_m_hgvs_position(self): - _locals = {"self": self} - self.locals["m_hgvs_position"] = _locals - self._trace("", (2343, 2348), self.input.position) + _locals = {'self': self} + self.locals['m_hgvs_position'] = _locals + self._trace('', (2342, 2347), self.input.position) _G_apply_85, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, "m_hgvs_position") - _locals["ac"] = _G_apply_85 - self._trace("", (2351, 2365), self.input.position) + self.considerError(lastError, 'm_hgvs_position') + _locals['ac'] = _G_apply_85 + self._trace('', (2350, 2364), self.input.position) _G_apply_86, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, "m_hgvs_position") - _locals["gene"] = _G_apply_86 - self._trace("", (2370, 2374), self.input.position) - _G_exactly_87, lastError = self.exactly(":") - self.considerError(lastError, "m_hgvs_position") - self._trace("", (2374, 2378), self.input.position) - _G_exactly_88, lastError = self.exactly("m") - self.considerError(lastError, "m_hgvs_position") - _locals["type"] = _G_exactly_88 - self._trace("", (2383, 2387), self.input.position) - _G_exactly_89, lastError = self.exactly(".") - self.considerError(lastError, "m_hgvs_position") - self._trace("", (2387, 2398), self.input.position) + self.considerError(lastError, 'm_hgvs_position') + _locals['gene'] = _G_apply_86 + self._trace('', (2369, 2373), self.input.position) + _G_exactly_87, lastError = self.exactly(':') + self.considerError(lastError, 'm_hgvs_position') + self._trace('', (2373, 2377), self.input.position) + _G_exactly_88, lastError = self.exactly('m') + self.considerError(lastError, 'm_hgvs_position') + _locals['type'] = _G_exactly_88 + self._trace('', (2382, 2386), self.input.position) + _G_exactly_89, lastError = self.exactly('.') + self.considerError(lastError, 'm_hgvs_position') + self._trace('', (2386, 2397), self.input.position) _G_apply_90, lastError = self._apply(self.rule_m_interval, "m_interval", []) - self.considerError(lastError, "m_hgvs_position") - _locals["pos"] = _G_apply_90 + self.considerError(lastError, 'm_hgvs_position') + _locals['pos'] = _G_apply_90 _G_python_91, lastError = eval(self._G_expr_76, self.globals, _locals), None - self.considerError(lastError, "m_hgvs_position") + self.considerError(lastError, 'm_hgvs_position') return (_G_python_91, self.currentError) + def rule_n_hgvs_position(self): - _locals = {"self": self} - self.locals["n_hgvs_position"] = _locals - self._trace("", (2492, 2497), self.input.position) + _locals = {'self': self} + self.locals['n_hgvs_position'] = _locals + self._trace('', (2491, 2496), self.input.position) _G_apply_92, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, "n_hgvs_position") - _locals["ac"] = _G_apply_92 - self._trace("", (2500, 2514), self.input.position) + self.considerError(lastError, 'n_hgvs_position') + _locals['ac'] = _G_apply_92 + self._trace('', (2499, 2513), self.input.position) _G_apply_93, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, "n_hgvs_position") - _locals["gene"] = _G_apply_93 - self._trace("", (2519, 2523), self.input.position) - _G_exactly_94, lastError = self.exactly(":") - self.considerError(lastError, "n_hgvs_position") - self._trace("", (2523, 2527), self.input.position) - _G_exactly_95, lastError = self.exactly("n") - self.considerError(lastError, "n_hgvs_position") - _locals["type"] = _G_exactly_95 - self._trace("", (2532, 2536), self.input.position) - _G_exactly_96, lastError = self.exactly(".") - self.considerError(lastError, "n_hgvs_position") - self._trace("", (2536, 2547), self.input.position) + self.considerError(lastError, 'n_hgvs_position') + _locals['gene'] = _G_apply_93 + self._trace('', (2518, 2522), self.input.position) + _G_exactly_94, lastError = self.exactly(':') + self.considerError(lastError, 'n_hgvs_position') + self._trace('', (2522, 2526), self.input.position) + _G_exactly_95, lastError = self.exactly('n') + self.considerError(lastError, 'n_hgvs_position') + _locals['type'] = _G_exactly_95 + self._trace('', (2531, 2535), self.input.position) + _G_exactly_96, lastError = self.exactly('.') + self.considerError(lastError, 'n_hgvs_position') + self._trace('', (2535, 2546), self.input.position) _G_apply_97, lastError = self._apply(self.rule_n_interval, "n_interval", []) - self.considerError(lastError, "n_hgvs_position") - _locals["pos"] = _G_apply_97 + self.considerError(lastError, 'n_hgvs_position') + _locals['pos'] = _G_apply_97 _G_python_98, lastError = eval(self._G_expr_76, self.globals, _locals), None - self.considerError(lastError, "n_hgvs_position") + self.considerError(lastError, 'n_hgvs_position') return (_G_python_98, self.currentError) + def rule_p_hgvs_position(self): - _locals = {"self": self} - self.locals["p_hgvs_position"] = _locals - self._trace("", (2641, 2646), self.input.position) + _locals = {'self': self} + self.locals['p_hgvs_position'] = _locals + self._trace('', (2640, 2645), self.input.position) _G_apply_99, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, "p_hgvs_position") - _locals["ac"] = _G_apply_99 - self._trace("", (2649, 2663), self.input.position) + self.considerError(lastError, 'p_hgvs_position') + _locals['ac'] = _G_apply_99 + self._trace('', (2648, 2662), self.input.position) _G_apply_100, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, "p_hgvs_position") - _locals["gene"] = _G_apply_100 - self._trace("", (2668, 2672), self.input.position) - _G_exactly_101, lastError = self.exactly(":") - self.considerError(lastError, "p_hgvs_position") - self._trace("", (2672, 2676), self.input.position) - _G_exactly_102, lastError = self.exactly("p") - self.considerError(lastError, "p_hgvs_position") - _locals["type"] = _G_exactly_102 - self._trace("", (2681, 2685), self.input.position) - _G_exactly_103, lastError = self.exactly(".") - self.considerError(lastError, "p_hgvs_position") - self._trace("", (2685, 2696), self.input.position) + self.considerError(lastError, 'p_hgvs_position') + _locals['gene'] = _G_apply_100 + self._trace('', (2667, 2671), self.input.position) + _G_exactly_101, lastError = self.exactly(':') + self.considerError(lastError, 'p_hgvs_position') + self._trace('', (2671, 2675), self.input.position) + _G_exactly_102, lastError = self.exactly('p') + self.considerError(lastError, 'p_hgvs_position') + _locals['type'] = _G_exactly_102 + self._trace('', (2680, 2684), self.input.position) + _G_exactly_103, lastError = self.exactly('.') + self.considerError(lastError, 'p_hgvs_position') + self._trace('', (2684, 2695), self.input.position) _G_apply_104, lastError = self._apply(self.rule_p_interval, "p_interval", []) - self.considerError(lastError, "p_hgvs_position") - _locals["pos"] = _G_apply_104 + self.considerError(lastError, 'p_hgvs_position') + _locals['pos'] = _G_apply_104 _G_python_105, lastError = eval(self._G_expr_76, self.globals, _locals), None - self.considerError(lastError, "p_hgvs_position") + self.considerError(lastError, 'p_hgvs_position') return (_G_python_105, self.currentError) + def rule_r_hgvs_position(self): - _locals = {"self": self} - self.locals["r_hgvs_position"] = _locals - self._trace("", (2790, 2795), self.input.position) + _locals = {'self': self} + self.locals['r_hgvs_position'] = _locals + self._trace('', (2789, 2794), self.input.position) _G_apply_106, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, "r_hgvs_position") - _locals["ac"] = _G_apply_106 - self._trace("", (2798, 2812), self.input.position) + self.considerError(lastError, 'r_hgvs_position') + _locals['ac'] = _G_apply_106 + self._trace('', (2797, 2811), self.input.position) _G_apply_107, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, "r_hgvs_position") - _locals["gene"] = _G_apply_107 - self._trace("", (2817, 2821), self.input.position) - _G_exactly_108, lastError = self.exactly(":") - self.considerError(lastError, "r_hgvs_position") - self._trace("", (2821, 2825), self.input.position) - _G_exactly_109, lastError = self.exactly("r") - self.considerError(lastError, "r_hgvs_position") - _locals["type"] = _G_exactly_109 - self._trace("", (2830, 2834), self.input.position) - _G_exactly_110, lastError = self.exactly(".") - self.considerError(lastError, "r_hgvs_position") - self._trace("", (2834, 2845), self.input.position) + self.considerError(lastError, 'r_hgvs_position') + _locals['gene'] = _G_apply_107 + self._trace('', (2816, 2820), self.input.position) + _G_exactly_108, lastError = self.exactly(':') + self.considerError(lastError, 'r_hgvs_position') + self._trace('', (2820, 2824), self.input.position) + _G_exactly_109, lastError = self.exactly('r') + self.considerError(lastError, 'r_hgvs_position') + _locals['type'] = _G_exactly_109 + self._trace('', (2829, 2833), self.input.position) + _G_exactly_110, lastError = self.exactly('.') + self.considerError(lastError, 'r_hgvs_position') + self._trace('', (2833, 2844), self.input.position) _G_apply_111, lastError = self._apply(self.rule_r_interval, "r_interval", []) - self.considerError(lastError, "r_hgvs_position") - _locals["pos"] = _G_apply_111 + self.considerError(lastError, 'r_hgvs_position') + _locals['pos'] = _G_apply_111 _G_python_112, lastError = eval(self._G_expr_76, self.globals, _locals), None - self.considerError(lastError, "r_hgvs_position") + self.considerError(lastError, 'r_hgvs_position') return (_G_python_112, self.currentError) + def rule_c_typed_posedit(self): - _locals = {"self": self} - self.locals["c_typed_posedit"] = _locals - self._trace("", (3249, 3253), self.input.position) - _G_exactly_113, lastError = self.exactly("c") - self.considerError(lastError, "c_typed_posedit") - _locals["type"] = _G_exactly_113 - self._trace("", (3258, 3262), self.input.position) - _G_exactly_114, lastError = self.exactly(".") - self.considerError(lastError, "c_typed_posedit") - self._trace("", (3262, 3272), self.input.position) + _locals = {'self': self} + self.locals['c_typed_posedit'] = _locals + self._trace('', (3248, 3252), self.input.position) + _G_exactly_113, lastError = self.exactly('c') + self.considerError(lastError, 'c_typed_posedit') + _locals['type'] = _G_exactly_113 + self._trace('', (3257, 3261), self.input.position) + _G_exactly_114, lastError = self.exactly('.') + self.considerError(lastError, 'c_typed_posedit') + self._trace('', (3261, 3271), self.input.position) _G_apply_115, lastError = self._apply(self.rule_c_posedit, "c_posedit", []) - self.considerError(lastError, "c_typed_posedit") - _locals["posedit"] = _G_apply_115 + self.considerError(lastError, 'c_typed_posedit') + _locals['posedit'] = _G_apply_115 _G_python_117, lastError = eval(self._G_expr_116, self.globals, _locals), None - self.considerError(lastError, "c_typed_posedit") + self.considerError(lastError, 'c_typed_posedit') return (_G_python_117, self.currentError) + def rule_g_typed_posedit(self): - _locals = {"self": self} - self.locals["g_typed_posedit"] = _locals - self._trace("", (3357, 3361), self.input.position) - _G_exactly_118, lastError = self.exactly("g") - self.considerError(lastError, "g_typed_posedit") - _locals["type"] = _G_exactly_118 - self._trace("", (3366, 3370), self.input.position) - _G_exactly_119, lastError = self.exactly(".") - self.considerError(lastError, "g_typed_posedit") - self._trace("", (3370, 3380), self.input.position) + _locals = {'self': self} + self.locals['g_typed_posedit'] = _locals + self._trace('', (3356, 3360), self.input.position) + _G_exactly_118, lastError = self.exactly('g') + self.considerError(lastError, 'g_typed_posedit') + _locals['type'] = _G_exactly_118 + self._trace('', (3365, 3369), self.input.position) + _G_exactly_119, lastError = self.exactly('.') + self.considerError(lastError, 'g_typed_posedit') + self._trace('', (3369, 3379), self.input.position) _G_apply_120, lastError = self._apply(self.rule_g_posedit, "g_posedit", []) - self.considerError(lastError, "g_typed_posedit") - _locals["posedit"] = _G_apply_120 + self.considerError(lastError, 'g_typed_posedit') + _locals['posedit'] = _G_apply_120 _G_python_121, lastError = eval(self._G_expr_116, self.globals, _locals), None - self.considerError(lastError, "g_typed_posedit") + self.considerError(lastError, 'g_typed_posedit') return (_G_python_121, self.currentError) + def rule_m_typed_posedit(self): - _locals = {"self": self} - self.locals["m_typed_posedit"] = _locals - self._trace("", (3465, 3469), self.input.position) - _G_exactly_122, lastError = self.exactly("m") - self.considerError(lastError, "m_typed_posedit") - _locals["type"] = _G_exactly_122 - self._trace("", (3474, 3478), self.input.position) - _G_exactly_123, lastError = self.exactly(".") - self.considerError(lastError, "m_typed_posedit") - self._trace("", (3478, 3488), self.input.position) + _locals = {'self': self} + self.locals['m_typed_posedit'] = _locals + self._trace('', (3464, 3468), self.input.position) + _G_exactly_122, lastError = self.exactly('m') + self.considerError(lastError, 'm_typed_posedit') + _locals['type'] = _G_exactly_122 + self._trace('', (3473, 3477), self.input.position) + _G_exactly_123, lastError = self.exactly('.') + self.considerError(lastError, 'm_typed_posedit') + self._trace('', (3477, 3487), self.input.position) _G_apply_124, lastError = self._apply(self.rule_m_posedit, "m_posedit", []) - self.considerError(lastError, "m_typed_posedit") - _locals["posedit"] = _G_apply_124 + self.considerError(lastError, 'm_typed_posedit') + _locals['posedit'] = _G_apply_124 _G_python_125, lastError = eval(self._G_expr_116, self.globals, _locals), None - self.considerError(lastError, "m_typed_posedit") + self.considerError(lastError, 'm_typed_posedit') return (_G_python_125, self.currentError) + def rule_n_typed_posedit(self): - _locals = {"self": self} - self.locals["n_typed_posedit"] = _locals - self._trace("", (3573, 3577), self.input.position) - _G_exactly_126, lastError = self.exactly("n") - self.considerError(lastError, "n_typed_posedit") - _locals["type"] = _G_exactly_126 - self._trace("", (3582, 3586), self.input.position) - _G_exactly_127, lastError = self.exactly(".") - self.considerError(lastError, "n_typed_posedit") - self._trace("", (3586, 3596), self.input.position) + _locals = {'self': self} + self.locals['n_typed_posedit'] = _locals + self._trace('', (3572, 3576), self.input.position) + _G_exactly_126, lastError = self.exactly('n') + self.considerError(lastError, 'n_typed_posedit') + _locals['type'] = _G_exactly_126 + self._trace('', (3581, 3585), self.input.position) + _G_exactly_127, lastError = self.exactly('.') + self.considerError(lastError, 'n_typed_posedit') + self._trace('', (3585, 3595), self.input.position) _G_apply_128, lastError = self._apply(self.rule_n_posedit, "n_posedit", []) - self.considerError(lastError, "n_typed_posedit") - _locals["posedit"] = _G_apply_128 + self.considerError(lastError, 'n_typed_posedit') + _locals['posedit'] = _G_apply_128 _G_python_129, lastError = eval(self._G_expr_116, self.globals, _locals), None - self.considerError(lastError, "n_typed_posedit") + self.considerError(lastError, 'n_typed_posedit') return (_G_python_129, self.currentError) + def rule_p_typed_posedit(self): - _locals = {"self": self} - self.locals["p_typed_posedit"] = _locals - self._trace("", (3681, 3685), self.input.position) - _G_exactly_130, lastError = self.exactly("p") - self.considerError(lastError, "p_typed_posedit") - _locals["type"] = _G_exactly_130 - self._trace("", (3690, 3694), self.input.position) - _G_exactly_131, lastError = self.exactly(".") - self.considerError(lastError, "p_typed_posedit") - self._trace("", (3694, 3704), self.input.position) + _locals = {'self': self} + self.locals['p_typed_posedit'] = _locals + self._trace('', (3680, 3684), self.input.position) + _G_exactly_130, lastError = self.exactly('p') + self.considerError(lastError, 'p_typed_posedit') + _locals['type'] = _G_exactly_130 + self._trace('', (3689, 3693), self.input.position) + _G_exactly_131, lastError = self.exactly('.') + self.considerError(lastError, 'p_typed_posedit') + self._trace('', (3693, 3703), self.input.position) _G_apply_132, lastError = self._apply(self.rule_p_posedit, "p_posedit", []) - self.considerError(lastError, "p_typed_posedit") - _locals["posedit"] = _G_apply_132 + self.considerError(lastError, 'p_typed_posedit') + _locals['posedit'] = _G_apply_132 _G_python_133, lastError = eval(self._G_expr_116, self.globals, _locals), None - self.considerError(lastError, "p_typed_posedit") + self.considerError(lastError, 'p_typed_posedit') return (_G_python_133, self.currentError) + def rule_r_typed_posedit(self): - _locals = {"self": self} - self.locals["r_typed_posedit"] = _locals - self._trace("", (3789, 3793), self.input.position) - _G_exactly_134, lastError = self.exactly("r") - self.considerError(lastError, "r_typed_posedit") - _locals["type"] = _G_exactly_134 - self._trace("", (3798, 3802), self.input.position) - _G_exactly_135, lastError = self.exactly(".") - self.considerError(lastError, "r_typed_posedit") - self._trace("", (3802, 3812), self.input.position) + _locals = {'self': self} + self.locals['r_typed_posedit'] = _locals + self._trace('', (3788, 3792), self.input.position) + _G_exactly_134, lastError = self.exactly('r') + self.considerError(lastError, 'r_typed_posedit') + _locals['type'] = _G_exactly_134 + self._trace('', (3797, 3801), self.input.position) + _G_exactly_135, lastError = self.exactly('.') + self.considerError(lastError, 'r_typed_posedit') + self._trace('', (3801, 3811), self.input.position) _G_apply_136, lastError = self._apply(self.rule_r_posedit, "r_posedit", []) - self.considerError(lastError, "r_typed_posedit") - _locals["posedit"] = _G_apply_136 + self.considerError(lastError, 'r_typed_posedit') + _locals['posedit'] = _G_apply_136 _G_python_137, lastError = eval(self._G_expr_116, self.globals, _locals), None - self.considerError(lastError, "r_typed_posedit") + self.considerError(lastError, 'r_typed_posedit') return (_G_python_137, self.currentError) + def rule_c_posedit(self): - _locals = {"self": self} - self.locals["c_posedit"] = _locals - self._trace("", (4010, 4021), self.input.position) + _locals = {'self': self} + self.locals['c_posedit'] = _locals + self._trace('', (4009, 4020), self.input.position) _G_apply_138, lastError = self._apply(self.rule_c_interval, "c_interval", []) - self.considerError(lastError, "c_posedit") - _locals["pos"] = _G_apply_138 - self._trace("", (4025, 4034), self.input.position) + self.considerError(lastError, 'c_posedit') + _locals['pos'] = _G_apply_138 + self._trace('', (4024, 4033), self.input.position) _G_apply_139, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) - self.considerError(lastError, "c_posedit") - _locals["edit"] = _G_apply_139 + self.considerError(lastError, 'c_posedit') + _locals['edit'] = _G_apply_139 _G_python_141, lastError = eval(self._G_expr_140, self.globals, _locals), None - self.considerError(lastError, "c_posedit") + self.considerError(lastError, 'c_posedit') return (_G_python_141, self.currentError) + def rule_g_posedit(self): - _locals = {"self": self} - self.locals["g_posedit"] = _locals - self._trace("", (4094, 4105), self.input.position) + _locals = {'self': self} + self.locals['g_posedit'] = _locals + self._trace('', (4093, 4104), self.input.position) _G_apply_142, lastError = self._apply(self.rule_g_interval, "g_interval", []) - self.considerError(lastError, "g_posedit") - _locals["pos"] = _G_apply_142 - self._trace("", (4109, 4118), self.input.position) + self.considerError(lastError, 'g_posedit') + _locals['pos'] = _G_apply_142 + self._trace('', (4108, 4117), self.input.position) _G_apply_143, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) - self.considerError(lastError, "g_posedit") - _locals["edit"] = _G_apply_143 + self.considerError(lastError, 'g_posedit') + _locals['edit'] = _G_apply_143 _G_python_144, lastError = eval(self._G_expr_140, self.globals, _locals), None - self.considerError(lastError, "g_posedit") + self.considerError(lastError, 'g_posedit') return (_G_python_144, self.currentError) + def rule_m_posedit(self): - _locals = {"self": self} - self.locals["m_posedit"] = _locals - self._trace("", (4178, 4189), self.input.position) + _locals = {'self': self} + self.locals['m_posedit'] = _locals + self._trace('', (4177, 4188), self.input.position) _G_apply_145, lastError = self._apply(self.rule_m_interval, "m_interval", []) - self.considerError(lastError, "m_posedit") - _locals["pos"] = _G_apply_145 - self._trace("", (4193, 4202), self.input.position) + self.considerError(lastError, 'm_posedit') + _locals['pos'] = _G_apply_145 + self._trace('', (4192, 4201), self.input.position) _G_apply_146, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) - self.considerError(lastError, "m_posedit") - _locals["edit"] = _G_apply_146 + self.considerError(lastError, 'm_posedit') + _locals['edit'] = _G_apply_146 _G_python_147, lastError = eval(self._G_expr_140, self.globals, _locals), None - self.considerError(lastError, "m_posedit") + self.considerError(lastError, 'm_posedit') return (_G_python_147, self.currentError) + def rule_n_posedit(self): - _locals = {"self": self} - self.locals["n_posedit"] = _locals - self._trace("", (4262, 4273), self.input.position) + _locals = {'self': self} + self.locals['n_posedit'] = _locals + self._trace('', (4261, 4272), self.input.position) _G_apply_148, lastError = self._apply(self.rule_n_interval, "n_interval", []) - self.considerError(lastError, "n_posedit") - _locals["pos"] = _G_apply_148 - self._trace("", (4277, 4286), self.input.position) + self.considerError(lastError, 'n_posedit') + _locals['pos'] = _G_apply_148 + self._trace('', (4276, 4285), self.input.position) _G_apply_149, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) - self.considerError(lastError, "n_posedit") - _locals["edit"] = _G_apply_149 + self.considerError(lastError, 'n_posedit') + _locals['edit'] = _G_apply_149 _G_python_150, lastError = eval(self._G_expr_140, self.globals, _locals), None - self.considerError(lastError, "n_posedit") + self.considerError(lastError, 'n_posedit') return (_G_python_150, self.currentError) - def rule_r_posedit(self): - _locals = {"self": self} - self.locals["r_posedit"] = _locals + def rule_r_posedit(self): + _locals = {'self': self} + self.locals['r_posedit'] = _locals def _G_or_151(): - self._trace("", (4348, 4358), self.input.position) + self._trace('', (4347, 4357), self.input.position) _G_apply_152, lastError = self._apply(self.rule_r_interval, "r_interval", []) self.considerError(lastError, None) - _locals["pos"] = _G_apply_152 - self._trace("", (4362, 4371), self.input.position) + _locals['pos'] = _G_apply_152 + self._trace('', (4361, 4370), self.input.position) _G_apply_153, lastError = self._apply(self.rule_rna_edit, "rna_edit", []) self.considerError(lastError, None) - _locals["edit"] = _G_apply_153 + _locals['edit'] = _G_apply_153 _G_python_154, lastError = eval(self._G_expr_140, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_154, self.currentError) - def _G_or_155(): - self._trace("", (4427, 4430), self.input.position) - _G_exactly_156, lastError = self.exactly("(") + self._trace('', (4426, 4429), self.input.position) + _G_exactly_156, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace("", (4430, 4441), self.input.position) + self._trace('', (4429, 4440), self.input.position) _G_apply_157, lastError = self._apply(self.rule_r_interval, "r_interval", []) self.considerError(lastError, None) - _locals["pos"] = _G_apply_157 - self._trace("", (4445, 4454), self.input.position) + _locals['pos'] = _G_apply_157 + self._trace('', (4444, 4453), self.input.position) _G_apply_158, lastError = self._apply(self.rule_rna_edit, "rna_edit", []) self.considerError(lastError, None) - _locals["edit"] = _G_apply_158 - self._trace("", (4459, 4463), self.input.position) - _G_exactly_159, lastError = self.exactly(")") + _locals['edit'] = _G_apply_158 + self._trace('', (4458, 4462), self.input.position) + _G_exactly_159, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_161, lastError = eval(self._G_expr_160, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_161, self.currentError) - _G_or_162, lastError = self._or([_G_or_151, _G_or_155]) - self.considerError(lastError, "r_posedit") + self.considerError(lastError, 'r_posedit') return (_G_or_162, self.currentError) - def rule_p_posedit(self): - _locals = {"self": self} - self.locals["p_posedit"] = _locals + def rule_p_posedit(self): + _locals = {'self': self} + self.locals['p_posedit'] = _locals def _G_or_163(): - self._trace("", (4540, 4550), self.input.position) + self._trace('', (4539, 4549), self.input.position) _G_apply_164, lastError = self._apply(self.rule_p_interval, "p_interval", []) self.considerError(lastError, None) - _locals["pos"] = _G_apply_164 - self._trace("", (4554, 4563), self.input.position) + _locals['pos'] = _G_apply_164 + self._trace('', (4553, 4562), self.input.position) _G_apply_165, lastError = self._apply(self.rule_pro_edit, "pro_edit", []) self.considerError(lastError, None) - _locals["edit"] = _G_apply_165 + _locals['edit'] = _G_apply_165 _G_python_166, lastError = eval(self._G_expr_140, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_166, self.currentError) - def _G_or_167(): - self._trace("", (4619, 4622), self.input.position) - _G_exactly_168, lastError = self.exactly("(") + self._trace('', (4618, 4621), self.input.position) + _G_exactly_168, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace("", (4622, 4633), self.input.position) + self._trace('', (4621, 4632), self.input.position) _G_apply_169, lastError = self._apply(self.rule_p_interval, "p_interval", []) self.considerError(lastError, None) - _locals["pos"] = _G_apply_169 - self._trace("", (4637, 4646), self.input.position) + _locals['pos'] = _G_apply_169 + self._trace('', (4636, 4645), self.input.position) _G_apply_170, lastError = self._apply(self.rule_pro_edit, "pro_edit", []) self.considerError(lastError, None) - _locals["edit"] = _G_apply_170 - self._trace("", (4651, 4655), self.input.position) - _G_exactly_171, lastError = self.exactly(")") + _locals['edit'] = _G_apply_170 + self._trace('', (4650, 4654), self.input.position) + _G_exactly_171, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_172, lastError = eval(self._G_expr_160, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_172, self.currentError) - def _G_or_173(): - self._trace("", (4720, 4738), self.input.position) - _G_apply_174, lastError = self._apply( - self.rule_p_posedit_special, "p_posedit_special", [] - ) + self._trace('', (4719, 4737), self.input.position) + _G_apply_174, lastError = self._apply(self.rule_p_posedit_special, "p_posedit_special", []) self.considerError(lastError, None) return (_G_apply_174, self.currentError) - _G_or_175, lastError = self._or([_G_or_163, _G_or_167, _G_or_173]) - self.considerError(lastError, "p_posedit") + self.considerError(lastError, 'p_posedit') return (_G_or_175, self.currentError) - def rule_p_posedit_special(self): - _locals = {"self": self} - self.locals["p_posedit_special"] = _locals + def rule_p_posedit_special(self): + _locals = {'self': self} + self.locals['p_posedit_special'] = _locals def _G_or_176(): - self._trace("", (4758, 4769), self.input.position) - _G_exactly_177, lastError = self.exactly("=") + self._trace('', (4757, 4767), self.input.position) + _G_exactly_177, lastError = self.exactly('=') self.considerError(lastError, None) - _locals["x"] = _G_exactly_177 + _locals['x'] = _G_exactly_177 _G_python_179, lastError = eval(self._G_expr_178, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_179, self.currentError) - def _G_or_180(): - self._trace("", (4831, 4835), self.input.position) - _G_exactly_181, lastError = self.exactly("(") + self._trace('', (4829, 4833), self.input.position) + _G_exactly_181, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace("", (4835, 4839), self.input.position) - _G_exactly_182, lastError = self.exactly("=") + self._trace('', (4833, 4837), self.input.position) + _G_exactly_182, lastError = self.exactly('=') self.considerError(lastError, None) - _locals["x"] = _G_exactly_182 - self._trace("", (4841, 4845), self.input.position) - _G_exactly_183, lastError = self.exactly(")") + _locals['x'] = _G_exactly_182 + self._trace('', (4839, 4843), self.input.position) + _G_exactly_183, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_185, lastError = eval(self._G_expr_184, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_185, self.currentError) - def _G_or_186(): - self._trace("", (4904, 4908), self.input.position) - _G_exactly_187, lastError = self.exactly("0") + self._trace('', (4902, 4906), self.input.position) + _G_exactly_187, lastError = self.exactly('0') self.considerError(lastError, None) - _locals["x"] = _G_exactly_187 - self._trace("", (4910, 4914), self.input.position) - _G_exactly_188, lastError = self.exactly("?") + _locals['x'] = _G_exactly_187 + self._trace('', (4908, 4912), self.input.position) + _G_exactly_188, lastError = self.exactly('?') self.considerError(lastError, None) _G_python_189, lastError = eval(self._G_expr_184, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_189, self.currentError) - def _G_or_190(): - self._trace("", (4973, 4977), self.input.position) - _G_exactly_191, lastError = self.exactly("0") + self._trace('', (4971, 4975), self.input.position) + _G_exactly_191, lastError = self.exactly('0') self.considerError(lastError, None) - _locals["x"] = _G_exactly_191 + _locals['x'] = _G_exactly_191 _G_python_192, lastError = eval(self._G_expr_178, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_192, self.currentError) - def _G_or_193(): - self._trace("", (5039, 5043), self.input.position) - _G_exactly_194, lastError = self.exactly("?") + self._trace('', (5037, 5041), self.input.position) + _G_exactly_194, lastError = self.exactly('?') self.considerError(lastError, None) - _locals["x"] = _G_exactly_194 + _locals['x'] = _G_exactly_194 _G_python_195, lastError = (None), None self.considerError(lastError, None) return (_G_python_195, self.currentError) - _G_or_196, lastError = self._or([_G_or_176, _G_or_180, _G_or_186, _G_or_190, _G_or_193]) - self.considerError(lastError, "p_posedit_special") + self.considerError(lastError, 'p_posedit_special') return (_G_or_196, self.currentError) - def rule_dna_edit_mu(self): - _locals = {"self": self} - self.locals["dna_edit_mu"] = _locals + def rule_dna_edit_mu(self): + _locals = {'self': self} + self.locals['dna_edit_mu'] = _locals def _G_or_197(): - self._trace("", (5394, 5403), self.input.position) + self._trace('', (5392, 5401), self.input.position) _G_apply_198, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) self.considerError(lastError, None) return (_G_apply_198, self.currentError) - def _G_or_199(): - self._trace("", (5405, 5409), self.input.position) - _G_exactly_200, lastError = self.exactly("(") + self._trace('', (5403, 5407), self.input.position) + _G_exactly_200, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace("", (5409, 5418), self.input.position) + self._trace('', (5407, 5416), self.input.position) _G_apply_201, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) self.considerError(lastError, None) - _locals["edit"] = _G_apply_201 - self._trace("", (5423, 5427), self.input.position) - _G_exactly_202, lastError = self.exactly(")") + _locals['edit'] = _G_apply_201 + self._trace('', (5421, 5425), self.input.position) + _G_exactly_202, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_204, lastError = eval(self._G_expr_203, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_204, self.currentError) - _G_or_205, lastError = self._or([_G_or_197, _G_or_199]) - self.considerError(lastError, "dna_edit_mu") + self.considerError(lastError, 'dna_edit_mu') return (_G_or_205, self.currentError) - def rule_dna_edit(self): - _locals = {"self": self} - self.locals["dna_edit"] = _locals + def rule_dna_edit(self): + _locals = {'self': self} + self.locals['dna_edit'] = _locals def _G_or_206(): - self._trace("", (5465, 5475), self.input.position) + self._trace('', (5463, 5473), self.input.position) _G_apply_207, lastError = self._apply(self.rule_dna_ident, "dna_ident", []) self.considerError(lastError, None) return (_G_apply_207, self.currentError) - def _G_or_208(): - self._trace("", (5477, 5487), self.input.position) + self._trace('', (5475, 5485), self.input.position) _G_apply_209, lastError = self._apply(self.rule_dna_subst, "dna_subst", []) self.considerError(lastError, None) return (_G_apply_209, self.currentError) - def _G_or_210(): - self._trace("", (5489, 5500), self.input.position) + self._trace('', (5487, 5498), self.input.position) _G_apply_211, lastError = self._apply(self.rule_dna_delins, "dna_delins", []) self.considerError(lastError, None) return (_G_apply_211, self.currentError) - def _G_or_212(): - self._trace("", (5502, 5510), self.input.position) + self._trace('', (5500, 5508), self.input.position) _G_apply_213, lastError = self._apply(self.rule_dna_ins, "dna_ins", []) self.considerError(lastError, None) return (_G_apply_213, self.currentError) - def _G_or_214(): - self._trace("", (5512, 5520), self.input.position) + self._trace('', (5510, 5518), self.input.position) _G_apply_215, lastError = self._apply(self.rule_dna_del, "dna_del", []) self.considerError(lastError, None) return (_G_apply_215, self.currentError) - def _G_or_216(): - self._trace("", (5522, 5530), self.input.position) + self._trace('', (5520, 5528), self.input.position) _G_apply_217, lastError = self._apply(self.rule_dna_dup, "dna_dup", []) self.considerError(lastError, None) return (_G_apply_217, self.currentError) - def _G_or_218(): - self._trace("", (5532, 5540), self.input.position) + self._trace('', (5530, 5538), self.input.position) _G_apply_219, lastError = self._apply(self.rule_dna_inv, "dna_inv", []) self.considerError(lastError, None) return (_G_apply_219, self.currentError) - def _G_or_220(): - self._trace("", (5542, 5550), self.input.position) + self._trace('', (5540, 5548), self.input.position) _G_apply_221, lastError = self._apply(self.rule_dna_con, "dna_con", []) self.considerError(lastError, None) return (_G_apply_221, self.currentError) - def _G_or_222(): - self._trace("", (5552, 5561), self.input.position) + self._trace('', (5550, 5559), self.input.position) _G_apply_223, lastError = self._apply(self.rule_dna_copy, "dna_copy", []) self.considerError(lastError, None) return (_G_apply_223, self.currentError) - - _G_or_224, lastError = self._or( - [ - _G_or_206, - _G_or_208, - _G_or_210, - _G_or_212, - _G_or_214, - _G_or_216, - _G_or_218, - _G_or_220, - _G_or_222, - ] - ) - self.considerError(lastError, "dna_edit") + _G_or_224, lastError = self._or([_G_or_206, _G_or_208, _G_or_210, _G_or_212, _G_or_214, _G_or_216, _G_or_218, _G_or_220, _G_or_222]) + self.considerError(lastError, 'dna_edit') return (_G_or_224, self.currentError) - def rule_dna_ident(self): - _locals = {"self": self} - self.locals["dna_ident"] = _locals + def rule_dna_ident(self): + _locals = {'self': self} + self.locals['dna_ident'] = _locals def _G_consumedby_225(): def _G_many_226(): - self._trace("", (5576, 5579), self.input.position) + self._trace('', (5574, 5577), self.input.position) _G_apply_227, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_227, self.currentError) - _G_many_228, lastError = self.many(_G_many_226) self.considerError(lastError, None) return (_G_many_228, self.currentError) - _G_consumedby_229, lastError = self.consumedby(_G_consumedby_225) - self.considerError(lastError, "dna_ident") - _locals["ref"] = _G_consumedby_229 - self._trace("", (5585, 5589), self.input.position) - _G_exactly_230, lastError = self.exactly("=") - self.considerError(lastError, "dna_ident") + self.considerError(lastError, 'dna_ident') + _locals['ref'] = _G_consumedby_229 + self._trace('', (5583, 5587), self.input.position) + _G_exactly_230, lastError = self.exactly('=') + self.considerError(lastError, 'dna_ident') _G_python_232, lastError = eval(self._G_expr_231, self.globals, _locals), None - self.considerError(lastError, "dna_ident") + self.considerError(lastError, 'dna_ident') return (_G_python_232, self.currentError) + def rule_dna_subst(self): - _locals = {"self": self} - self.locals["dna_subst"] = _locals - self._trace("", (5651, 5655), self.input.position) + _locals = {'self': self} + self.locals['dna_subst'] = _locals + self._trace('', (5649, 5653), self.input.position) _G_apply_233, lastError = self._apply(self.rule_dna, "dna", []) - self.considerError(lastError, "dna_subst") - _locals["ref"] = _G_apply_233 - self._trace("", (5659, 5663), self.input.position) - _G_exactly_234, lastError = self.exactly(">") - self.considerError(lastError, "dna_subst") - self._trace("", (5663, 5667), self.input.position) + self.considerError(lastError, 'dna_subst') + _locals['ref'] = _G_apply_233 + self._trace('', (5657, 5661), self.input.position) + _G_exactly_234, lastError = self.exactly('>') + self.considerError(lastError, 'dna_subst') + self._trace('', (5661, 5665), self.input.position) _G_apply_235, lastError = self._apply(self.rule_dna, "dna", []) - self.considerError(lastError, "dna_subst") - _locals["alt"] = _G_apply_235 + self.considerError(lastError, 'dna_subst') + _locals['alt'] = _G_apply_235 _G_python_237, lastError = eval(self._G_expr_236, self.globals, _locals), None - self.considerError(lastError, "dna_subst") + self.considerError(lastError, 'dna_subst') return (_G_python_237, self.currentError) - def rule_dna_delins(self): - _locals = {"self": self} - self.locals["dna_delins"] = _locals - self._trace("", (5728, 5734), self.input.position) - _G_exactly_238, lastError = self.exactly("del") - self.considerError(lastError, "dna_delins") + def rule_dna_delins(self): + _locals = {'self': self} + self.locals['dna_delins'] = _locals + self._trace('', (5726, 5732), self.input.position) + _G_exactly_238, lastError = self.exactly('del') + self.considerError(lastError, 'dna_delins') def _G_or_239(): def _G_consumedby_240(): - self._trace("", (5737, 5740), self.input.position) + self._trace('', (5735, 5738), self.input.position) _G_apply_241, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_241, self.currentError) - _G_consumedby_242, lastError = self.consumedby(_G_consumedby_240) self.considerError(lastError, None) return (_G_consumedby_242, self.currentError) - def _G_or_243(): def _G_consumedby_244(): def _G_many_245(): - self._trace("", (5743, 5746), self.input.position) + self._trace('', (5741, 5744), self.input.position) _G_apply_246, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_246, self.currentError) - _G_many_247, lastError = self.many(_G_many_245) self.considerError(lastError, None) return (_G_many_247, self.currentError) - _G_consumedby_248, lastError = self.consumedby(_G_consumedby_244) self.considerError(lastError, None) return (_G_consumedby_248, self.currentError) - _G_or_249, lastError = self._or([_G_or_239, _G_or_243]) - self.considerError(lastError, "dna_delins") - _locals["ref"] = _G_or_249 - self._trace("", (5753, 5759), self.input.position) - _G_exactly_250, lastError = self.exactly("ins") - self.considerError(lastError, "dna_delins") - + self.considerError(lastError, 'dna_delins') + _locals['ref'] = _G_or_249 + self._trace('', (5751, 5757), self.input.position) + _G_exactly_250, lastError = self.exactly('ins') + self.considerError(lastError, 'dna_delins') def _G_consumedby_251(): def _G_many1_252(): - self._trace("", (5761, 5764), self.input.position) + self._trace('', (5759, 5762), self.input.position) _G_apply_253, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_253, self.currentError) - _G_many1_254, lastError = self.many(_G_many1_252, _G_many1_252()) self.considerError(lastError, None) return (_G_many1_254, self.currentError) - _G_consumedby_255, lastError = self.consumedby(_G_consumedby_251) - self.considerError(lastError, "dna_delins") - _locals["alt"] = _G_consumedby_255 + self.considerError(lastError, 'dna_delins') + _locals['alt'] = _G_consumedby_255 _G_python_256, lastError = eval(self._G_expr_236, self.globals, _locals), None - self.considerError(lastError, "dna_delins") + self.considerError(lastError, 'dna_delins') return (_G_python_256, self.currentError) - def rule_dna_del(self): - _locals = {"self": self} - self.locals["dna_del"] = _locals - self._trace("", (5823, 5829), self.input.position) - _G_exactly_257, lastError = self.exactly("del") - self.considerError(lastError, "dna_del") + def rule_dna_del(self): + _locals = {'self': self} + self.locals['dna_del'] = _locals + self._trace('', (5821, 5827), self.input.position) + _G_exactly_257, lastError = self.exactly('del') + self.considerError(lastError, 'dna_del') def _G_or_258(): def _G_consumedby_259(): - self._trace("", (5832, 5835), self.input.position) + self._trace('', (5830, 5833), self.input.position) _G_apply_260, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_260, self.currentError) - _G_consumedby_261, lastError = self.consumedby(_G_consumedby_259) self.considerError(lastError, None) return (_G_consumedby_261, self.currentError) - def _G_or_262(): def _G_consumedby_263(): def _G_many_264(): - self._trace("", (5838, 5841), self.input.position) + self._trace('', (5836, 5839), self.input.position) _G_apply_265, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_265, self.currentError) - _G_many_266, lastError = self.many(_G_many_264) self.considerError(lastError, None) return (_G_many_266, self.currentError) - _G_consumedby_267, lastError = self.consumedby(_G_consumedby_263) self.considerError(lastError, None) return (_G_consumedby_267, self.currentError) - _G_or_268, lastError = self._or([_G_or_258, _G_or_262]) - self.considerError(lastError, "dna_del") - _locals["ref"] = _G_or_268 + self.considerError(lastError, 'dna_del') + _locals['ref'] = _G_or_268 _G_python_270, lastError = eval(self._G_expr_269, self.globals, _locals), None - self.considerError(lastError, "dna_del") + self.considerError(lastError, 'dna_del') return (_G_python_270, self.currentError) - def rule_dna_ins(self): - _locals = {"self": self} - self.locals["dna_ins"] = _locals - self._trace("", (5901, 5907), self.input.position) - _G_exactly_271, lastError = self.exactly("ins") - self.considerError(lastError, "dna_ins") + def rule_dna_ins(self): + _locals = {'self': self} + self.locals['dna_ins'] = _locals + self._trace('', (5899, 5905), self.input.position) + _G_exactly_271, lastError = self.exactly('ins') + self.considerError(lastError, 'dna_ins') def _G_consumedby_272(): def _G_many1_273(): - self._trace("", (5909, 5912), self.input.position) + self._trace('', (5907, 5910), self.input.position) _G_apply_274, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_274, self.currentError) - _G_many1_275, lastError = self.many(_G_many1_273, _G_many1_273()) self.considerError(lastError, None) return (_G_many1_275, self.currentError) - _G_consumedby_276, lastError = self.consumedby(_G_consumedby_272) - self.considerError(lastError, "dna_ins") - _locals["alt"] = _G_consumedby_276 + self.considerError(lastError, 'dna_ins') + _locals['alt'] = _G_consumedby_276 _G_python_278, lastError = eval(self._G_expr_277, self.globals, _locals), None - self.considerError(lastError, "dna_ins") + self.considerError(lastError, 'dna_ins') return (_G_python_278, self.currentError) - def rule_dna_dup(self): - _locals = {"self": self} - self.locals["dna_dup"] = _locals - self._trace("", (5979, 5985), self.input.position) - _G_exactly_279, lastError = self.exactly("dup") - self.considerError(lastError, "dna_dup") + def rule_dna_dup(self): + _locals = {'self': self} + self.locals['dna_dup'] = _locals + self._trace('', (5977, 5983), self.input.position) + _G_exactly_279, lastError = self.exactly('dup') + self.considerError(lastError, 'dna_dup') def _G_consumedby_280(): def _G_many_281(): - self._trace("", (5987, 5990), self.input.position) + self._trace('', (5985, 5988), self.input.position) _G_apply_282, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_282, self.currentError) - _G_many_283, lastError = self.many(_G_many_281) self.considerError(lastError, None) return (_G_many_283, self.currentError) - _G_consumedby_284, lastError = self.consumedby(_G_consumedby_280) - self.considerError(lastError, "dna_dup") - _locals["ref"] = _G_consumedby_284 + self.considerError(lastError, 'dna_dup') + _locals['ref'] = _G_consumedby_284 _G_python_286, lastError = eval(self._G_expr_285, self.globals, _locals), None - self.considerError(lastError, "dna_dup") + self.considerError(lastError, 'dna_dup') return (_G_python_286, self.currentError) - def rule_dna_inv(self): - _locals = {"self": self} - self.locals["dna_inv"] = _locals - self._trace("", (6043, 6049), self.input.position) - _G_exactly_287, lastError = self.exactly("inv") - self.considerError(lastError, "dna_inv") + def rule_dna_inv(self): + _locals = {'self': self} + self.locals['dna_inv'] = _locals + self._trace('', (6041, 6047), self.input.position) + _G_exactly_287, lastError = self.exactly('inv') + self.considerError(lastError, 'dna_inv') def _G_or_288(): def _G_consumedby_289(): - self._trace("", (6052, 6055), self.input.position) + self._trace('', (6050, 6053), self.input.position) _G_apply_290, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_290, self.currentError) - _G_consumedby_291, lastError = self.consumedby(_G_consumedby_289) self.considerError(lastError, None) return (_G_consumedby_291, self.currentError) - def _G_or_292(): def _G_consumedby_293(): def _G_many_294(): - self._trace("", (6058, 6061), self.input.position) + self._trace('', (6056, 6059), self.input.position) _G_apply_295, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_295, self.currentError) - _G_many_296, lastError = self.many(_G_many_294) self.considerError(lastError, None) return (_G_many_296, self.currentError) - _G_consumedby_297, lastError = self.consumedby(_G_consumedby_293) self.considerError(lastError, None) return (_G_consumedby_297, self.currentError) - _G_or_298, lastError = self._or([_G_or_288, _G_or_292]) - self.considerError(lastError, "dna_inv") - _locals["ref"] = _G_or_298 + self.considerError(lastError, 'dna_inv') + _locals['ref'] = _G_or_298 _G_python_300, lastError = eval(self._G_expr_299, self.globals, _locals), None - self.considerError(lastError, "dna_inv") + self.considerError(lastError, 'dna_inv') return (_G_python_300, self.currentError) + def rule_dna_con(self): - _locals = {"self": self} - self.locals["dna_con"] = _locals - self._trace("", (6108, 6114), self.input.position) - _G_exactly_301, lastError = self.exactly("con") - self.considerError(lastError, "dna_con") - self._trace("", (6114, 6128), self.input.position) + _locals = {'self': self} + self.locals['dna_con'] = _locals + self._trace('', (6106, 6112), self.input.position) + _G_exactly_301, lastError = self.exactly('con') + self.considerError(lastError, 'dna_con') + self._trace('', (6112, 6126), self.input.position) _G_apply_302, lastError = self._apply(self.rule_hgvs_position, "hgvs_position", []) - self.considerError(lastError, "dna_con") - _locals["pos"] = _G_apply_302 + self.considerError(lastError, 'dna_con') + _locals['pos'] = _G_apply_302 _G_python_304, lastError = eval(self._G_expr_303, self.globals, _locals), None - self.considerError(lastError, "dna_con") + self.considerError(lastError, 'dna_con') return (_G_python_304, self.currentError) + def rule_dna_copy(self): - _locals = {"self": self} - self.locals["dna_copy"] = _locals - self._trace("", (6218, 6225), self.input.position) - _G_exactly_305, lastError = self.exactly("copy") - self.considerError(lastError, "dna_copy") - self._trace("", (6225, 6229), self.input.position) + _locals = {'self': self} + self.locals['dna_copy'] = _locals + self._trace('', (6216, 6223), self.input.position) + _G_exactly_305, lastError = self.exactly('copy') + self.considerError(lastError, 'dna_copy') + self._trace('', (6223, 6227), self.input.position) _G_apply_306, lastError = self._apply(self.rule_num, "num", []) - self.considerError(lastError, "dna_copy") - _locals["n"] = _G_apply_306 + self.considerError(lastError, 'dna_copy') + _locals['n'] = _G_apply_306 _G_python_308, lastError = eval(self._G_expr_307, self.globals, _locals), None - self.considerError(lastError, "dna_copy") + self.considerError(lastError, 'dna_copy') return (_G_python_308, self.currentError) - def rule_rna_edit_mu(self): - _locals = {"self": self} - self.locals["rna_edit_mu"] = _locals + def rule_rna_edit_mu(self): + _locals = {'self': self} + self.locals['rna_edit_mu'] = _locals def _G_or_309(): - self._trace("", (6274, 6283), self.input.position) + self._trace('', (6272, 6281), self.input.position) _G_apply_310, lastError = self._apply(self.rule_rna_edit, "rna_edit", []) self.considerError(lastError, None) return (_G_apply_310, self.currentError) - def _G_or_311(): - self._trace("", (6285, 6289), self.input.position) - _G_exactly_312, lastError = self.exactly("(") + self._trace('', (6283, 6287), self.input.position) + _G_exactly_312, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace("", (6289, 6298), self.input.position) + self._trace('', (6287, 6296), self.input.position) _G_apply_313, lastError = self._apply(self.rule_rna_edit, "rna_edit", []) self.considerError(lastError, None) - _locals["edit"] = _G_apply_313 - self._trace("", (6303, 6307), self.input.position) - _G_exactly_314, lastError = self.exactly(")") + _locals['edit'] = _G_apply_313 + self._trace('', (6301, 6305), self.input.position) + _G_exactly_314, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_315, lastError = eval(self._G_expr_203, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_315, self.currentError) - _G_or_316, lastError = self._or([_G_or_309, _G_or_311]) - self.considerError(lastError, "rna_edit_mu") + self.considerError(lastError, 'rna_edit_mu') return (_G_or_316, self.currentError) - def rule_rna_edit(self): - _locals = {"self": self} - self.locals["rna_edit"] = _locals + def rule_rna_edit(self): + _locals = {'self': self} + self.locals['rna_edit'] = _locals def _G_or_317(): - self._trace("", (6345, 6355), self.input.position) + self._trace('', (6343, 6353), self.input.position) _G_apply_318, lastError = self._apply(self.rule_rna_ident, "rna_ident", []) self.considerError(lastError, None) return (_G_apply_318, self.currentError) - def _G_or_319(): - self._trace("", (6357, 6367), self.input.position) + self._trace('', (6355, 6365), self.input.position) _G_apply_320, lastError = self._apply(self.rule_rna_subst, "rna_subst", []) self.considerError(lastError, None) return (_G_apply_320, self.currentError) - def _G_or_321(): - self._trace("", (6369, 6380), self.input.position) + self._trace('', (6367, 6378), self.input.position) _G_apply_322, lastError = self._apply(self.rule_rna_delins, "rna_delins", []) self.considerError(lastError, None) return (_G_apply_322, self.currentError) - def _G_or_323(): - self._trace("", (6382, 6390), self.input.position) + self._trace('', (6380, 6388), self.input.position) _G_apply_324, lastError = self._apply(self.rule_rna_ins, "rna_ins", []) self.considerError(lastError, None) return (_G_apply_324, self.currentError) - def _G_or_325(): - self._trace("", (6392, 6400), self.input.position) + self._trace('', (6390, 6398), self.input.position) _G_apply_326, lastError = self._apply(self.rule_rna_del, "rna_del", []) self.considerError(lastError, None) return (_G_apply_326, self.currentError) - def _G_or_327(): - self._trace("", (6402, 6410), self.input.position) + self._trace('', (6400, 6408), self.input.position) _G_apply_328, lastError = self._apply(self.rule_rna_dup, "rna_dup", []) self.considerError(lastError, None) return (_G_apply_328, self.currentError) - def _G_or_329(): - self._trace("", (6412, 6420), self.input.position) + self._trace('', (6410, 6418), self.input.position) _G_apply_330, lastError = self._apply(self.rule_rna_inv, "rna_inv", []) self.considerError(lastError, None) return (_G_apply_330, self.currentError) - def _G_or_331(): - self._trace("", (6422, 6430), self.input.position) + self._trace('', (6420, 6428), self.input.position) _G_apply_332, lastError = self._apply(self.rule_rna_con, "rna_con", []) self.considerError(lastError, None) return (_G_apply_332, self.currentError) - - _G_or_333, lastError = self._or( - [ - _G_or_317, - _G_or_319, - _G_or_321, - _G_or_323, - _G_or_325, - _G_or_327, - _G_or_329, - _G_or_331, - ] - ) - self.considerError(lastError, "rna_edit") + _G_or_333, lastError = self._or([_G_or_317, _G_or_319, _G_or_321, _G_or_323, _G_or_325, _G_or_327, _G_or_329, _G_or_331]) + self.considerError(lastError, 'rna_edit') return (_G_or_333, self.currentError) - def rule_rna_ident(self): - _locals = {"self": self} - self.locals["rna_ident"] = _locals + def rule_rna_ident(self): + _locals = {'self': self} + self.locals['rna_ident'] = _locals def _G_consumedby_334(): def _G_many_335(): - self._trace("", (6445, 6448), self.input.position) + self._trace('', (6443, 6446), self.input.position) _G_apply_336, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_336, self.currentError) - _G_many_337, lastError = self.many(_G_many_335) self.considerError(lastError, None) return (_G_many_337, self.currentError) - _G_consumedby_338, lastError = self.consumedby(_G_consumedby_334) - self.considerError(lastError, "rna_ident") - _locals["ref"] = _G_consumedby_338 - self._trace("", (6454, 6458), self.input.position) - _G_exactly_339, lastError = self.exactly("=") - self.considerError(lastError, "rna_ident") + self.considerError(lastError, 'rna_ident') + _locals['ref'] = _G_consumedby_338 + self._trace('', (6452, 6456), self.input.position) + _G_exactly_339, lastError = self.exactly('=') + self.considerError(lastError, 'rna_ident') _G_python_340, lastError = eval(self._G_expr_231, self.globals, _locals), None - self.considerError(lastError, "rna_ident") + self.considerError(lastError, 'rna_ident') return (_G_python_340, self.currentError) + def rule_rna_subst(self): - _locals = {"self": self} - self.locals["rna_subst"] = _locals - self._trace("", (6527, 6531), self.input.position) + _locals = {'self': self} + self.locals['rna_subst'] = _locals + self._trace('', (6525, 6529), self.input.position) _G_apply_341, lastError = self._apply(self.rule_rna, "rna", []) - self.considerError(lastError, "rna_subst") - _locals["ref"] = _G_apply_341 - self._trace("", (6535, 6539), self.input.position) - _G_exactly_342, lastError = self.exactly(">") - self.considerError(lastError, "rna_subst") - self._trace("", (6539, 6543), self.input.position) + self.considerError(lastError, 'rna_subst') + _locals['ref'] = _G_apply_341 + self._trace('', (6533, 6537), self.input.position) + _G_exactly_342, lastError = self.exactly('>') + self.considerError(lastError, 'rna_subst') + self._trace('', (6537, 6541), self.input.position) _G_apply_343, lastError = self._apply(self.rule_rna, "rna", []) - self.considerError(lastError, "rna_subst") - _locals["alt"] = _G_apply_343 + self.considerError(lastError, 'rna_subst') + _locals['alt'] = _G_apply_343 _G_python_344, lastError = eval(self._G_expr_236, self.globals, _locals), None - self.considerError(lastError, "rna_subst") + self.considerError(lastError, 'rna_subst') return (_G_python_344, self.currentError) - def rule_rna_delins(self): - _locals = {"self": self} - self.locals["rna_delins"] = _locals - self._trace("", (6611, 6617), self.input.position) - _G_exactly_345, lastError = self.exactly("del") - self.considerError(lastError, "rna_delins") + def rule_rna_delins(self): + _locals = {'self': self} + self.locals['rna_delins'] = _locals + self._trace('', (6609, 6615), self.input.position) + _G_exactly_345, lastError = self.exactly('del') + self.considerError(lastError, 'rna_delins') def _G_or_346(): def _G_consumedby_347(): - self._trace("", (6620, 6623), self.input.position) + self._trace('', (6618, 6621), self.input.position) _G_apply_348, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_348, self.currentError) - _G_consumedby_349, lastError = self.consumedby(_G_consumedby_347) self.considerError(lastError, None) return (_G_consumedby_349, self.currentError) - def _G_or_350(): def _G_consumedby_351(): def _G_many_352(): - self._trace("", (6626, 6629), self.input.position) + self._trace('', (6624, 6627), self.input.position) _G_apply_353, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_353, self.currentError) - _G_many_354, lastError = self.many(_G_many_352) self.considerError(lastError, None) return (_G_many_354, self.currentError) - _G_consumedby_355, lastError = self.consumedby(_G_consumedby_351) self.considerError(lastError, None) return (_G_consumedby_355, self.currentError) - _G_or_356, lastError = self._or([_G_or_346, _G_or_350]) - self.considerError(lastError, "rna_delins") - _locals["ref"] = _G_or_356 - self._trace("", (6636, 6642), self.input.position) - _G_exactly_357, lastError = self.exactly("ins") - self.considerError(lastError, "rna_delins") - + self.considerError(lastError, 'rna_delins') + _locals['ref'] = _G_or_356 + self._trace('', (6634, 6640), self.input.position) + _G_exactly_357, lastError = self.exactly('ins') + self.considerError(lastError, 'rna_delins') def _G_consumedby_358(): def _G_many1_359(): - self._trace("", (6644, 6647), self.input.position) + self._trace('', (6642, 6645), self.input.position) _G_apply_360, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_360, self.currentError) - _G_many1_361, lastError = self.many(_G_many1_359, _G_many1_359()) self.considerError(lastError, None) return (_G_many1_361, self.currentError) - _G_consumedby_362, lastError = self.consumedby(_G_consumedby_358) - self.considerError(lastError, "rna_delins") - _locals["alt"] = _G_consumedby_362 + self.considerError(lastError, 'rna_delins') + _locals['alt'] = _G_consumedby_362 _G_python_363, lastError = eval(self._G_expr_236, self.globals, _locals), None - self.considerError(lastError, "rna_delins") + self.considerError(lastError, 'rna_delins') return (_G_python_363, self.currentError) - def rule_rna_del(self): - _locals = {"self": self} - self.locals["rna_del"] = _locals - self._trace("", (6706, 6712), self.input.position) - _G_exactly_364, lastError = self.exactly("del") - self.considerError(lastError, "rna_del") + def rule_rna_del(self): + _locals = {'self': self} + self.locals['rna_del'] = _locals + self._trace('', (6704, 6710), self.input.position) + _G_exactly_364, lastError = self.exactly('del') + self.considerError(lastError, 'rna_del') def _G_or_365(): def _G_consumedby_366(): - self._trace("", (6715, 6718), self.input.position) + self._trace('', (6713, 6716), self.input.position) _G_apply_367, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_367, self.currentError) - _G_consumedby_368, lastError = self.consumedby(_G_consumedby_366) self.considerError(lastError, None) return (_G_consumedby_368, self.currentError) - def _G_or_369(): def _G_consumedby_370(): def _G_many_371(): - self._trace("", (6721, 6724), self.input.position) + self._trace('', (6719, 6722), self.input.position) _G_apply_372, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_372, self.currentError) - _G_many_373, lastError = self.many(_G_many_371) self.considerError(lastError, None) return (_G_many_373, self.currentError) - _G_consumedby_374, lastError = self.consumedby(_G_consumedby_370) self.considerError(lastError, None) return (_G_consumedby_374, self.currentError) - _G_or_375, lastError = self._or([_G_or_365, _G_or_369]) - self.considerError(lastError, "rna_del") - _locals["ref"] = _G_or_375 + self.considerError(lastError, 'rna_del') + _locals['ref'] = _G_or_375 _G_python_376, lastError = eval(self._G_expr_269, self.globals, _locals), None - self.considerError(lastError, "rna_del") + self.considerError(lastError, 'rna_del') return (_G_python_376, self.currentError) - def rule_rna_ins(self): - _locals = {"self": self} - self.locals["rna_ins"] = _locals - self._trace("", (6791, 6797), self.input.position) - _G_exactly_377, lastError = self.exactly("ins") - self.considerError(lastError, "rna_ins") + def rule_rna_ins(self): + _locals = {'self': self} + self.locals['rna_ins'] = _locals + self._trace('', (6789, 6795), self.input.position) + _G_exactly_377, lastError = self.exactly('ins') + self.considerError(lastError, 'rna_ins') def _G_consumedby_378(): def _G_many1_379(): - self._trace("", (6799, 6802), self.input.position) + self._trace('', (6797, 6800), self.input.position) _G_apply_380, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_380, self.currentError) - _G_many1_381, lastError = self.many(_G_many1_379, _G_many1_379()) self.considerError(lastError, None) return (_G_many1_381, self.currentError) - _G_consumedby_382, lastError = self.consumedby(_G_consumedby_378) - self.considerError(lastError, "rna_ins") - _locals["alt"] = _G_consumedby_382 + self.considerError(lastError, 'rna_ins') + _locals['alt'] = _G_consumedby_382 _G_python_383, lastError = eval(self._G_expr_277, self.globals, _locals), None - self.considerError(lastError, "rna_ins") + self.considerError(lastError, 'rna_ins') return (_G_python_383, self.currentError) - def rule_rna_dup(self): - _locals = {"self": self} - self.locals["rna_dup"] = _locals - self._trace("", (6876, 6882), self.input.position) - _G_exactly_384, lastError = self.exactly("dup") - self.considerError(lastError, "rna_dup") + def rule_rna_dup(self): + _locals = {'self': self} + self.locals['rna_dup'] = _locals + self._trace('', (6874, 6880), self.input.position) + _G_exactly_384, lastError = self.exactly('dup') + self.considerError(lastError, 'rna_dup') def _G_consumedby_385(): def _G_many_386(): - self._trace("", (6884, 6887), self.input.position) + self._trace('', (6882, 6885), self.input.position) _G_apply_387, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_387, self.currentError) - _G_many_388, lastError = self.many(_G_many_386) self.considerError(lastError, None) return (_G_many_388, self.currentError) - _G_consumedby_389, lastError = self.consumedby(_G_consumedby_385) - self.considerError(lastError, "rna_dup") - _locals["ref"] = _G_consumedby_389 + self.considerError(lastError, 'rna_dup') + _locals['ref'] = _G_consumedby_389 _G_python_390, lastError = eval(self._G_expr_285, self.globals, _locals), None - self.considerError(lastError, "rna_dup") + self.considerError(lastError, 'rna_dup') return (_G_python_390, self.currentError) - def rule_rna_inv(self): - _locals = {"self": self} - self.locals["rna_inv"] = _locals - self._trace("", (6947, 6953), self.input.position) - _G_exactly_391, lastError = self.exactly("inv") - self.considerError(lastError, "rna_inv") + def rule_rna_inv(self): + _locals = {'self': self} + self.locals['rna_inv'] = _locals + self._trace('', (6945, 6951), self.input.position) + _G_exactly_391, lastError = self.exactly('inv') + self.considerError(lastError, 'rna_inv') def _G_or_392(): def _G_consumedby_393(): - self._trace("", (6956, 6959), self.input.position) + self._trace('', (6954, 6957), self.input.position) _G_apply_394, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_394, self.currentError) - _G_consumedby_395, lastError = self.consumedby(_G_consumedby_393) self.considerError(lastError, None) return (_G_consumedby_395, self.currentError) - def _G_or_396(): def _G_consumedby_397(): def _G_many_398(): - self._trace("", (6962, 6965), self.input.position) + self._trace('', (6960, 6963), self.input.position) _G_apply_399, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_399, self.currentError) - _G_many_400, lastError = self.many(_G_many_398) self.considerError(lastError, None) return (_G_many_400, self.currentError) - _G_consumedby_401, lastError = self.consumedby(_G_consumedby_397) self.considerError(lastError, None) return (_G_consumedby_401, self.currentError) - _G_or_402, lastError = self._or([_G_or_392, _G_or_396]) - self.considerError(lastError, "rna_inv") - _locals["ref"] = _G_or_402 + self.considerError(lastError, 'rna_inv') + _locals['ref'] = _G_or_402 _G_python_403, lastError = eval(self._G_expr_299, self.globals, _locals), None - self.considerError(lastError, "rna_inv") + self.considerError(lastError, 'rna_inv') return (_G_python_403, self.currentError) + def rule_rna_con(self): - _locals = {"self": self} - self.locals["rna_con"] = _locals - self._trace("", (7019, 7025), self.input.position) - _G_exactly_404, lastError = self.exactly("con") - self.considerError(lastError, "rna_con") - self._trace("", (7025, 7039), self.input.position) + _locals = {'self': self} + self.locals['rna_con'] = _locals + self._trace('', (7017, 7023), self.input.position) + _G_exactly_404, lastError = self.exactly('con') + self.considerError(lastError, 'rna_con') + self._trace('', (7023, 7037), self.input.position) _G_apply_405, lastError = self._apply(self.rule_hgvs_position, "hgvs_position", []) - self.considerError(lastError, "rna_con") - _locals["pos"] = _G_apply_405 + self.considerError(lastError, 'rna_con') + _locals['pos'] = _G_apply_405 _G_python_406, lastError = eval(self._G_expr_303, self.globals, _locals), None - self.considerError(lastError, "rna_con") + self.considerError(lastError, 'rna_con') return (_G_python_406, self.currentError) - def rule_pro_edit_mu(self): - _locals = {"self": self} - self.locals["pro_edit_mu"] = _locals + def rule_pro_edit_mu(self): + _locals = {'self': self} + self.locals['pro_edit_mu'] = _locals def _G_or_407(): - self._trace("", (7138, 7147), self.input.position) + self._trace('', (7136, 7145), self.input.position) _G_apply_408, lastError = self._apply(self.rule_pro_edit, "pro_edit", []) self.considerError(lastError, None) return (_G_apply_408, self.currentError) - def _G_or_409(): - self._trace("", (7149, 7153), self.input.position) - _G_exactly_410, lastError = self.exactly("(") + self._trace('', (7147, 7151), self.input.position) + _G_exactly_410, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace("", (7153, 7162), self.input.position) + self._trace('', (7151, 7160), self.input.position) _G_apply_411, lastError = self._apply(self.rule_pro_edit, "pro_edit", []) self.considerError(lastError, None) - _locals["edit"] = _G_apply_411 - self._trace("", (7167, 7171), self.input.position) - _G_exactly_412, lastError = self.exactly(")") + _locals['edit'] = _G_apply_411 + self._trace('', (7165, 7169), self.input.position) + _G_exactly_412, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_413, lastError = eval(self._G_expr_203, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_413, self.currentError) - _G_or_414, lastError = self._or([_G_or_407, _G_or_409]) - self.considerError(lastError, "pro_edit_mu") + self.considerError(lastError, 'pro_edit_mu') return (_G_or_414, self.currentError) - def rule_pro_edit(self): - _locals = {"self": self} - self.locals["pro_edit"] = _locals + def rule_pro_edit(self): + _locals = {'self': self} + self.locals['pro_edit'] = _locals def _G_or_415(): - self._trace("", (7209, 7216), self.input.position) + self._trace('', (7207, 7214), self.input.position) _G_apply_416, lastError = self._apply(self.rule_pro_fs, "pro_fs", []) self.considerError(lastError, None) return (_G_apply_416, self.currentError) - def _G_or_417(): - self._trace("", (7218, 7226), self.input.position) + self._trace('', (7216, 7224), self.input.position) _G_apply_418, lastError = self._apply(self.rule_pro_ext, "pro_ext", []) self.considerError(lastError, None) return (_G_apply_418, self.currentError) - def _G_or_419(): - self._trace("", (7228, 7238), self.input.position) + self._trace('', (7226, 7236), self.input.position) _G_apply_420, lastError = self._apply(self.rule_pro_subst, "pro_subst", []) self.considerError(lastError, None) return (_G_apply_420, self.currentError) - def _G_or_421(): - self._trace("", (7240, 7251), self.input.position) + self._trace('', (7238, 7249), self.input.position) _G_apply_422, lastError = self._apply(self.rule_pro_delins, "pro_delins", []) self.considerError(lastError, None) return (_G_apply_422, self.currentError) - def _G_or_423(): - self._trace("", (7253, 7261), self.input.position) + self._trace('', (7251, 7259), self.input.position) _G_apply_424, lastError = self._apply(self.rule_pro_ins, "pro_ins", []) self.considerError(lastError, None) return (_G_apply_424, self.currentError) - def _G_or_425(): - self._trace("", (7263, 7271), self.input.position) + self._trace('', (7261, 7269), self.input.position) _G_apply_426, lastError = self._apply(self.rule_pro_del, "pro_del", []) self.considerError(lastError, None) return (_G_apply_426, self.currentError) - def _G_or_427(): - self._trace("", (7273, 7281), self.input.position) + self._trace('', (7271, 7279), self.input.position) _G_apply_428, lastError = self._apply(self.rule_pro_dup, "pro_dup", []) self.considerError(lastError, None) return (_G_apply_428, self.currentError) - def _G_or_429(): - self._trace("", (7283, 7293), self.input.position) + self._trace('', (7281, 7291), self.input.position) _G_apply_430, lastError = self._apply(self.rule_pro_ident, "pro_ident", []) self.considerError(lastError, None) return (_G_apply_430, self.currentError) - - _G_or_431, lastError = self._or( - [ - _G_or_415, - _G_or_417, - _G_or_419, - _G_or_421, - _G_or_423, - _G_or_425, - _G_or_427, - _G_or_429, - ] - ) - self.considerError(lastError, "pro_edit") + _G_or_431, lastError = self._or([_G_or_415, _G_or_417, _G_or_419, _G_or_421, _G_or_423, _G_or_425, _G_or_427, _G_or_429]) + self.considerError(lastError, 'pro_edit') return (_G_or_431, self.currentError) - def rule_pro_subst(self): - _locals = {"self": self} - self.locals["pro_subst"] = _locals + def rule_pro_subst(self): + _locals = {'self': self} + self.locals['pro_subst'] = _locals def _G_or_432(): - self._trace("", (7308, 7313), self.input.position) + self._trace('', (7306, 7311), self.input.position) _G_apply_433, lastError = self._apply(self.rule_aat13, "aat13", []) self.considerError(lastError, None) return (_G_apply_433, self.currentError) - def _G_or_434(): - self._trace("", (7314, 7317), self.input.position) - _G_exactly_435, lastError = self.exactly("?") + self._trace('', (7312, 7315), self.input.position) + _G_exactly_435, lastError = self.exactly('?') self.considerError(lastError, None) return (_G_exactly_435, self.currentError) - _G_or_436, lastError = self._or([_G_or_432, _G_or_434]) - self.considerError(lastError, "pro_subst") - _locals["alt"] = _G_or_436 + self.considerError(lastError, 'pro_subst') + _locals['alt'] = _G_or_436 _G_python_438, lastError = eval(self._G_expr_437, self.globals, _locals), None - self.considerError(lastError, "pro_subst") + self.considerError(lastError, 'pro_subst') return (_G_python_438, self.currentError) + def rule_pro_delins(self): - _locals = {"self": self} - self.locals["pro_delins"] = _locals - self._trace("", (7386, 7395), self.input.position) - _G_exactly_439, lastError = self.exactly("delins") - self.considerError(lastError, "pro_delins") - self._trace("", (7395, 7405), self.input.position) + _locals = {'self': self} + self.locals['pro_delins'] = _locals + self._trace('', (7384, 7393), self.input.position) + _G_exactly_439, lastError = self.exactly('delins') + self.considerError(lastError, 'pro_delins') + self._trace('', (7393, 7403), self.input.position) _G_apply_440, lastError = self._apply(self.rule_aat13_seq, "aat13_seq", []) - self.considerError(lastError, "pro_delins") - _locals["alt"] = _G_apply_440 + self.considerError(lastError, 'pro_delins') + _locals['alt'] = _G_apply_440 _G_python_442, lastError = eval(self._G_expr_441, self.globals, _locals), None - self.considerError(lastError, "pro_delins") + self.considerError(lastError, 'pro_delins') return (_G_python_442, self.currentError) + def rule_pro_del(self): - _locals = {"self": self} - self.locals["pro_del"] = _locals - self._trace("", (7469, 7475), self.input.position) - _G_exactly_443, lastError = self.exactly("del") - self.considerError(lastError, "pro_del") + _locals = {'self': self} + self.locals['pro_del'] = _locals + self._trace('', (7467, 7473), self.input.position) + _G_exactly_443, lastError = self.exactly('del') + self.considerError(lastError, 'pro_del') _G_python_445, lastError = eval(self._G_expr_444, self.globals, _locals), None - self.considerError(lastError, "pro_del") + self.considerError(lastError, 'pro_del') return (_G_python_445, self.currentError) + def rule_pro_ins(self): - _locals = {"self": self} - self.locals["pro_ins"] = _locals - self._trace("", (7553, 7559), self.input.position) - _G_exactly_446, lastError = self.exactly("ins") - self.considerError(lastError, "pro_ins") - self._trace("", (7559, 7569), self.input.position) + _locals = {'self': self} + self.locals['pro_ins'] = _locals + self._trace('', (7551, 7557), self.input.position) + _G_exactly_446, lastError = self.exactly('ins') + self.considerError(lastError, 'pro_ins') + self._trace('', (7557, 7567), self.input.position) _G_apply_447, lastError = self._apply(self.rule_aat13_seq, "aat13_seq", []) - self.considerError(lastError, "pro_ins") - _locals["alt"] = _G_apply_447 + self.considerError(lastError, 'pro_ins') + _locals['alt'] = _G_apply_447 _G_python_449, lastError = eval(self._G_expr_448, self.globals, _locals), None - self.considerError(lastError, "pro_ins") + self.considerError(lastError, 'pro_ins') return (_G_python_449, self.currentError) + def rule_pro_dup(self): - _locals = {"self": self} - self.locals["pro_dup"] = _locals - self._trace("", (7638, 7644), self.input.position) - _G_exactly_450, lastError = self.exactly("dup") - self.considerError(lastError, "pro_dup") + _locals = {'self': self} + self.locals['pro_dup'] = _locals + self._trace('', (7636, 7642), self.input.position) + _G_exactly_450, lastError = self.exactly('dup') + self.considerError(lastError, 'pro_dup') _G_python_452, lastError = eval(self._G_expr_451, self.globals, _locals), None - self.considerError(lastError, "pro_dup") + self.considerError(lastError, 'pro_dup') return (_G_python_452, self.currentError) - def rule_pro_fs(self): - _locals = {"self": self} - self.locals["pro_fs"] = _locals + def rule_pro_fs(self): + _locals = {'self': self} + self.locals['pro_fs'] = _locals def _G_or_453(): - self._trace("", (7710, 7715), self.input.position) + self._trace('', (7708, 7713), self.input.position) _G_apply_454, lastError = self._apply(self.rule_aat13, "aat13", []) self.considerError(lastError, None) return (_G_apply_454, self.currentError) - def _G_or_455(): - _G_python_456, lastError = (""), None + _G_python_456, lastError = (''), None self.considerError(lastError, None) return (_G_python_456, self.currentError) - _G_or_457, lastError = self._or([_G_or_453, _G_or_455]) - self.considerError(lastError, "pro_fs") - _locals["alt"] = _G_or_457 - self._trace("", (7730, 7733), self.input.position) + self.considerError(lastError, 'pro_fs') + _locals['alt'] = _G_or_457 + self._trace('', (7728, 7731), self.input.position) _G_apply_458, lastError = self._apply(self.rule_fs, "fs", []) - self.considerError(lastError, "pro_fs") - _locals["length"] = _G_apply_458 + self.considerError(lastError, 'pro_fs') + _locals['length'] = _G_apply_458 _G_python_460, lastError = eval(self._G_expr_459, self.globals, _locals), None - self.considerError(lastError, "pro_fs") + self.considerError(lastError, 'pro_fs') return (_G_python_460, self.currentError) - def rule_pro_ext(self): - _locals = {"self": self} - self.locals["pro_ext"] = _locals + def rule_pro_ext(self): + _locals = {'self': self} + self.locals['pro_ext'] = _locals def _G_optional_461(): - self._trace("", (7803, 7809), self.input.position) + self._trace('', (7801, 7807), self.input.position) _G_apply_462, lastError = self._apply(self.rule_aat13, "aat13", []) self.considerError(lastError, None) return (_G_apply_462, self.currentError) - def _G_optional_463(): return (None, self.input.nullError()) - _G_or_464, lastError = self._or([_G_optional_461, _G_optional_463]) - self.considerError(lastError, "pro_ext") - _locals["alt"] = _G_or_464 - self._trace("", (7814, 7818), self.input.position) + self.considerError(lastError, 'pro_ext') + _locals['alt'] = _G_or_464 + self._trace('', (7812, 7816), self.input.position) _G_apply_465, lastError = self._apply(self.rule_ext, "ext", []) - self.considerError(lastError, "pro_ext") - _locals["aaterm"] = _G_apply_465[0] - _locals["length"] = _G_apply_465[1] + self.considerError(lastError, 'pro_ext') + _locals['aaterm'] = _G_apply_465[0] + _locals['length'] = _G_apply_465[1] _G_python_467, lastError = eval(self._G_expr_466, self.globals, _locals), None - self.considerError(lastError, "pro_ext") + self.considerError(lastError, 'pro_ext') return (_G_python_467, self.currentError) + def rule_pro_ident(self): - _locals = {"self": self} - self.locals["pro_ident"] = _locals - self._trace("", (7914, 7918), self.input.position) - _G_exactly_468, lastError = self.exactly("=") - self.considerError(lastError, "pro_ident") + _locals = {'self': self} + self.locals['pro_ident'] = _locals + self._trace('', (7912, 7916), self.input.position) + _G_exactly_468, lastError = self.exactly('=') + self.considerError(lastError, 'pro_ident') _G_python_470, lastError = eval(self._G_expr_469, self.globals, _locals), None - self.considerError(lastError, "pro_ident") + self.considerError(lastError, 'pro_ident') return (_G_python_470, self.currentError) - def rule_c_interval(self): - _locals = {"self": self} - self.locals["c_interval"] = _locals + def rule_c_interval(self): + _locals = {'self': self} + self.locals['c_interval'] = _locals def _G_or_471(): - self._trace("", (8240, 8255), self.input.position) - _G_apply_472, lastError = self._apply( - self.rule_def_c_interval, "def_c_interval", [] - ) + self._trace('', (8238, 8253), self.input.position) + _G_apply_472, lastError = self._apply(self.rule_def_c_interval, "def_c_interval", []) self.considerError(lastError, None) return (_G_apply_472, self.currentError) - def _G_or_473(): - self._trace("", (8257, 8261), self.input.position) - _G_exactly_474, lastError = self.exactly("(") + self._trace('', (8255, 8259), self.input.position) + _G_exactly_474, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace("", (8261, 8276), self.input.position) - _G_apply_475, lastError = self._apply( - self.rule_def_c_interval, "def_c_interval", [] - ) + self._trace('', (8259, 8274), self.input.position) + _G_apply_475, lastError = self._apply(self.rule_def_c_interval, "def_c_interval", []) self.considerError(lastError, None) - _locals["iv"] = _G_apply_475 - self._trace("", (8279, 8283), self.input.position) - _G_exactly_476, lastError = self.exactly(")") + _locals['iv'] = _G_apply_475 + self._trace('', (8277, 8281), self.input.position) + _G_exactly_476, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_478, lastError = eval(self._G_expr_477, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_478, self.currentError) - _G_or_479, lastError = self._or([_G_or_471, _G_or_473]) - self.considerError(lastError, "c_interval") + self.considerError(lastError, 'c_interval') return (_G_or_479, self.currentError) - def rule_g_interval(self): - _locals = {"self": self} - self.locals["g_interval"] = _locals + def rule_g_interval(self): + _locals = {'self': self} + self.locals['g_interval'] = _locals def _G_or_480(): - self._trace("", (8319, 8334), self.input.position) - _G_apply_481, lastError = self._apply( - self.rule_def_g_interval, "def_g_interval", [] - ) + self._trace('', (8317, 8342), self.input.position) + _G_apply_481, lastError = self._apply(self.rule_def_g_uncertain_interval, "def_g_uncertain_interval", []) self.considerError(lastError, None) + _locals['iv'] = _G_apply_481 return (_G_apply_481, self.currentError) - def _G_or_482(): - self._trace("", (8336, 8340), self.input.position) - _G_exactly_483, lastError = self.exactly("(") + self._trace('', (8349, 8352), self.input.position) + _G_exactly_483, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace("", (8340, 8355), self.input.position) - _G_apply_484, lastError = self._apply( - self.rule_def_g_interval, "def_g_interval", [] - ) + self._trace('', (8352, 8367), self.input.position) + _G_apply_484, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) - _locals["iv"] = _G_apply_484 - self._trace("", (8358, 8362), self.input.position) - _G_exactly_485, lastError = self.exactly(")") + _locals['iv'] = _G_apply_484 + self._trace('', (8370, 8374), self.input.position) + _G_exactly_485, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_486, lastError = eval(self._G_expr_477, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_486, self.currentError) + def _G_or_487(): + self._trace('', (8400, 8415), self.input.position) + _G_apply_488, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) + self.considerError(lastError, None) + return (_G_apply_488, self.currentError) + _G_or_489, lastError = self._or([_G_or_480, _G_or_482, _G_or_487]) + self.considerError(lastError, 'g_interval') + return (_G_or_489, self.currentError) - _G_or_487, lastError = self._or([_G_or_480, _G_or_482]) - self.considerError(lastError, "g_interval") - return (_G_or_487, self.currentError) def rule_m_interval(self): - _locals = {"self": self} - self.locals["m_interval"] = _locals - - def _G_or_488(): - self._trace("", (8398, 8413), self.input.position) - _G_apply_489, lastError = self._apply( - self.rule_def_m_interval, "def_m_interval", [] - ) - self.considerError(lastError, None) - return (_G_apply_489, self.currentError) - + _locals = {'self': self} + self.locals['m_interval'] = _locals def _G_or_490(): - self._trace("", (8415, 8419), self.input.position) - _G_exactly_491, lastError = self.exactly("(") + self._trace('', (8428, 8443), self.input.position) + _G_apply_491, lastError = self._apply(self.rule_def_m_interval, "def_m_interval", []) + self.considerError(lastError, None) + return (_G_apply_491, self.currentError) + def _G_or_492(): + self._trace('', (8445, 8449), self.input.position) + _G_exactly_493, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace("", (8419, 8434), self.input.position) - _G_apply_492, lastError = self._apply( - self.rule_def_m_interval, "def_m_interval", [] - ) + self._trace('', (8449, 8464), self.input.position) + _G_apply_494, lastError = self._apply(self.rule_def_m_interval, "def_m_interval", []) self.considerError(lastError, None) - _locals["iv"] = _G_apply_492 - self._trace("", (8437, 8441), self.input.position) - _G_exactly_493, lastError = self.exactly(")") + _locals['iv'] = _G_apply_494 + self._trace('', (8467, 8471), self.input.position) + _G_exactly_495, lastError = self.exactly(')') self.considerError(lastError, None) - _G_python_494, lastError = eval(self._G_expr_477, self.globals, _locals), None + _G_python_496, lastError = eval(self._G_expr_477, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_494, self.currentError) + return (_G_python_496, self.currentError) + _G_or_497, lastError = self._or([_G_or_490, _G_or_492]) + self.considerError(lastError, 'm_interval') + return (_G_or_497, self.currentError) - _G_or_495, lastError = self._or([_G_or_488, _G_or_490]) - self.considerError(lastError, "m_interval") - return (_G_or_495, self.currentError) def rule_n_interval(self): - _locals = {"self": self} - self.locals["n_interval"] = _locals - - def _G_or_496(): - self._trace("", (8477, 8492), self.input.position) - _G_apply_497, lastError = self._apply( - self.rule_def_n_interval, "def_n_interval", [] - ) - self.considerError(lastError, None) - return (_G_apply_497, self.currentError) - + _locals = {'self': self} + self.locals['n_interval'] = _locals def _G_or_498(): - self._trace("", (8494, 8498), self.input.position) - _G_exactly_499, lastError = self.exactly("(") + self._trace('', (8507, 8522), self.input.position) + _G_apply_499, lastError = self._apply(self.rule_def_n_interval, "def_n_interval", []) + self.considerError(lastError, None) + return (_G_apply_499, self.currentError) + def _G_or_500(): + self._trace('', (8524, 8528), self.input.position) + _G_exactly_501, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace("", (8498, 8513), self.input.position) - _G_apply_500, lastError = self._apply( - self.rule_def_n_interval, "def_n_interval", [] - ) + self._trace('', (8528, 8543), self.input.position) + _G_apply_502, lastError = self._apply(self.rule_def_n_interval, "def_n_interval", []) self.considerError(lastError, None) - _locals["iv"] = _G_apply_500 - self._trace("", (8516, 8520), self.input.position) - _G_exactly_501, lastError = self.exactly(")") + _locals['iv'] = _G_apply_502 + self._trace('', (8546, 8550), self.input.position) + _G_exactly_503, lastError = self.exactly(')') self.considerError(lastError, None) - _G_python_502, lastError = eval(self._G_expr_477, self.globals, _locals), None + _G_python_504, lastError = eval(self._G_expr_477, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_502, self.currentError) + return (_G_python_504, self.currentError) + _G_or_505, lastError = self._or([_G_or_498, _G_or_500]) + self.considerError(lastError, 'n_interval') + return (_G_or_505, self.currentError) - _G_or_503, lastError = self._or([_G_or_496, _G_or_498]) - self.considerError(lastError, "n_interval") - return (_G_or_503, self.currentError) def rule_p_interval(self): - _locals = {"self": self} - self.locals["p_interval"] = _locals - - def _G_or_504(): - self._trace("", (8556, 8571), self.input.position) - _G_apply_505, lastError = self._apply( - self.rule_def_p_interval, "def_p_interval", [] - ) - self.considerError(lastError, None) - return (_G_apply_505, self.currentError) - + _locals = {'self': self} + self.locals['p_interval'] = _locals def _G_or_506(): - self._trace("", (8573, 8577), self.input.position) - _G_exactly_507, lastError = self.exactly("(") + self._trace('', (8586, 8601), self.input.position) + _G_apply_507, lastError = self._apply(self.rule_def_p_interval, "def_p_interval", []) self.considerError(lastError, None) - self._trace("", (8577, 8592), self.input.position) - _G_apply_508, lastError = self._apply( - self.rule_def_p_interval, "def_p_interval", [] - ) + return (_G_apply_507, self.currentError) + def _G_or_508(): + self._trace('', (8603, 8607), self.input.position) + _G_exactly_509, lastError = self.exactly('(') self.considerError(lastError, None) - _locals["iv"] = _G_apply_508 - self._trace("", (8595, 8599), self.input.position) - _G_exactly_509, lastError = self.exactly(")") + self._trace('', (8607, 8622), self.input.position) + _G_apply_510, lastError = self._apply(self.rule_def_p_interval, "def_p_interval", []) self.considerError(lastError, None) - _G_python_510, lastError = eval(self._G_expr_477, self.globals, _locals), None + _locals['iv'] = _G_apply_510 + self._trace('', (8625, 8629), self.input.position) + _G_exactly_511, lastError = self.exactly(')') self.considerError(lastError, None) - return (_G_python_510, self.currentError) + _G_python_512, lastError = eval(self._G_expr_477, self.globals, _locals), None + self.considerError(lastError, None) + return (_G_python_512, self.currentError) + _G_or_513, lastError = self._or([_G_or_506, _G_or_508]) + self.considerError(lastError, 'p_interval') + return (_G_or_513, self.currentError) - _G_or_511, lastError = self._or([_G_or_504, _G_or_506]) - self.considerError(lastError, "p_interval") - return (_G_or_511, self.currentError) def rule_r_interval(self): - _locals = {"self": self} - self.locals["r_interval"] = _locals - - def _G_or_512(): - self._trace("", (8635, 8650), self.input.position) - _G_apply_513, lastError = self._apply( - self.rule_def_r_interval, "def_r_interval", [] - ) - self.considerError(lastError, None) - return (_G_apply_513, self.currentError) - + _locals = {'self': self} + self.locals['r_interval'] = _locals def _G_or_514(): - self._trace("", (8652, 8656), self.input.position) - _G_exactly_515, lastError = self.exactly("(") + self._trace('', (8665, 8680), self.input.position) + _G_apply_515, lastError = self._apply(self.rule_def_r_interval, "def_r_interval", []) self.considerError(lastError, None) - self._trace("", (8656, 8671), self.input.position) - _G_apply_516, lastError = self._apply( - self.rule_def_r_interval, "def_r_interval", [] - ) + return (_G_apply_515, self.currentError) + def _G_or_516(): + self._trace('', (8682, 8686), self.input.position) + _G_exactly_517, lastError = self.exactly('(') self.considerError(lastError, None) - _locals["iv"] = _G_apply_516 - self._trace("", (8674, 8678), self.input.position) - _G_exactly_517, lastError = self.exactly(")") + self._trace('', (8686, 8701), self.input.position) + _G_apply_518, lastError = self._apply(self.rule_def_r_interval, "def_r_interval", []) self.considerError(lastError, None) - _G_python_518, lastError = eval(self._G_expr_477, self.globals, _locals), None + _locals['iv'] = _G_apply_518 + self._trace('', (8704, 8708), self.input.position) + _G_exactly_519, lastError = self.exactly(')') self.considerError(lastError, None) - return (_G_python_518, self.currentError) + _G_python_520, lastError = eval(self._G_expr_477, self.globals, _locals), None + self.considerError(lastError, None) + return (_G_python_520, self.currentError) + _G_or_521, lastError = self._or([_G_or_514, _G_or_516]) + self.considerError(lastError, 'r_interval') + return (_G_or_521, self.currentError) - _G_or_519, lastError = self._or([_G_or_512, _G_or_514]) - self.considerError(lastError, "r_interval") - return (_G_or_519, self.currentError) def rule_def_g_interval(self): - _locals = {"self": self} - self.locals["def_g_interval"] = _locals - - def _G_or_520(): - self._trace("", (8742, 8747), self.input.position) - _G_apply_521, lastError = self._apply(self.rule_g_pos, "g_pos", []) + _locals = {'self': self} + self.locals['def_g_interval'] = _locals + def _G_or_522(): + self._trace('', (8772, 8777), self.input.position) + _G_apply_523, lastError = self._apply(self.rule_g_pos, "g_pos", []) self.considerError(lastError, None) - _locals["start"] = _G_apply_521 - self._trace("", (8753, 8757), self.input.position) - _G_exactly_522, lastError = self.exactly("_") + _locals['start'] = _G_apply_523 + self._trace('', (8783, 8787), self.input.position) + _G_exactly_524, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace("", (8757, 8763), self.input.position) - _G_apply_523, lastError = self._apply(self.rule_g_pos, "g_pos", []) + self._trace('', (8787, 8793), self.input.position) + _G_apply_525, lastError = self._apply(self.rule_g_pos, "g_pos", []) self.considerError(lastError, None) - _locals["end"] = _G_apply_523 - _G_python_525, lastError = eval(self._G_expr_524, self.globals, _locals), None + _locals['end'] = _G_apply_525 + _G_python_527, lastError = eval(self._G_expr_526, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_525, self.currentError) - - def _G_or_526(): - self._trace("", (8809, 8814), self.input.position) - _G_apply_527, lastError = self._apply(self.rule_g_pos, "g_pos", []) + return (_G_python_527, self.currentError) + def _G_or_528(): + self._trace('', (8839, 8844), self.input.position) + _G_apply_529, lastError = self._apply(self.rule_g_pos, "g_pos", []) self.considerError(lastError, None) - _locals["start"] = _G_apply_527 - _G_python_529, lastError = eval(self._G_expr_528, self.globals, _locals), None + _locals['start'] = _G_apply_529 + _G_python_531, lastError = eval(self._G_expr_530, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_529, self.currentError) + return (_G_python_531, self.currentError) + _G_or_532, lastError = self._or([_G_or_522, _G_or_528]) + self.considerError(lastError, 'def_g_interval') + return (_G_or_532, self.currentError) - _G_or_530, lastError = self._or([_G_or_520, _G_or_526]) - self.considerError(lastError, "def_g_interval") - return (_G_or_530, self.currentError) def rule_def_m_interval(self): - _locals = {"self": self} - self.locals["def_m_interval"] = _locals - - def _G_or_531(): - self._trace("", (8894, 8899), self.input.position) - _G_apply_532, lastError = self._apply(self.rule_m_pos, "m_pos", []) + _locals = {'self': self} + self.locals['def_m_interval'] = _locals + def _G_or_533(): + self._trace('', (8924, 8929), self.input.position) + _G_apply_534, lastError = self._apply(self.rule_m_pos, "m_pos", []) self.considerError(lastError, None) - _locals["start"] = _G_apply_532 - self._trace("", (8905, 8909), self.input.position) - _G_exactly_533, lastError = self.exactly("_") + _locals['start'] = _G_apply_534 + self._trace('', (8935, 8939), self.input.position) + _G_exactly_535, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace("", (8909, 8915), self.input.position) - _G_apply_534, lastError = self._apply(self.rule_m_pos, "m_pos", []) + self._trace('', (8939, 8945), self.input.position) + _G_apply_536, lastError = self._apply(self.rule_m_pos, "m_pos", []) self.considerError(lastError, None) - _locals["end"] = _G_apply_534 - _G_python_535, lastError = eval(self._G_expr_524, self.globals, _locals), None + _locals['end'] = _G_apply_536 + _G_python_537, lastError = eval(self._G_expr_526, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_535, self.currentError) - - def _G_or_536(): - self._trace("", (8961, 8966), self.input.position) - _G_apply_537, lastError = self._apply(self.rule_m_pos, "m_pos", []) + return (_G_python_537, self.currentError) + def _G_or_538(): + self._trace('', (8991, 8996), self.input.position) + _G_apply_539, lastError = self._apply(self.rule_m_pos, "m_pos", []) self.considerError(lastError, None) - _locals["start"] = _G_apply_537 - _G_python_538, lastError = eval(self._G_expr_528, self.globals, _locals), None + _locals['start'] = _G_apply_539 + _G_python_540, lastError = eval(self._G_expr_530, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_538, self.currentError) + return (_G_python_540, self.currentError) + _G_or_541, lastError = self._or([_G_or_533, _G_or_538]) + self.considerError(lastError, 'def_m_interval') + return (_G_or_541, self.currentError) - _G_or_539, lastError = self._or([_G_or_531, _G_or_536]) - self.considerError(lastError, "def_m_interval") - return (_G_or_539, self.currentError) def rule_def_p_interval(self): - _locals = {"self": self} - self.locals["def_p_interval"] = _locals - - def _G_or_540(): - self._trace("", (9046, 9051), self.input.position) - _G_apply_541, lastError = self._apply(self.rule_p_pos, "p_pos", []) + _locals = {'self': self} + self.locals['def_p_interval'] = _locals + def _G_or_542(): + self._trace('', (9076, 9081), self.input.position) + _G_apply_543, lastError = self._apply(self.rule_p_pos, "p_pos", []) self.considerError(lastError, None) - _locals["start"] = _G_apply_541 - self._trace("", (9057, 9061), self.input.position) - _G_exactly_542, lastError = self.exactly("_") + _locals['start'] = _G_apply_543 + self._trace('', (9087, 9091), self.input.position) + _G_exactly_544, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace("", (9061, 9067), self.input.position) - _G_apply_543, lastError = self._apply(self.rule_p_pos, "p_pos", []) + self._trace('', (9091, 9097), self.input.position) + _G_apply_545, lastError = self._apply(self.rule_p_pos, "p_pos", []) self.considerError(lastError, None) - _locals["end"] = _G_apply_543 - _G_python_544, lastError = eval(self._G_expr_524, self.globals, _locals), None + _locals['end'] = _G_apply_545 + _G_python_546, lastError = eval(self._G_expr_526, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_544, self.currentError) - - def _G_or_545(): - self._trace("", (9113, 9118), self.input.position) - _G_apply_546, lastError = self._apply(self.rule_p_pos, "p_pos", []) + return (_G_python_546, self.currentError) + def _G_or_547(): + self._trace('', (9143, 9148), self.input.position) + _G_apply_548, lastError = self._apply(self.rule_p_pos, "p_pos", []) self.considerError(lastError, None) - _locals["start"] = _G_apply_546 - _G_python_547, lastError = eval(self._G_expr_528, self.globals, _locals), None + _locals['start'] = _G_apply_548 + _G_python_549, lastError = eval(self._G_expr_530, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_547, self.currentError) + return (_G_python_549, self.currentError) + _G_or_550, lastError = self._or([_G_or_542, _G_or_547]) + self.considerError(lastError, 'def_p_interval') + return (_G_or_550, self.currentError) - _G_or_548, lastError = self._or([_G_or_540, _G_or_545]) - self.considerError(lastError, "def_p_interval") - return (_G_or_548, self.currentError) def rule_def_r_interval(self): - _locals = {"self": self} - self.locals["def_r_interval"] = _locals - - def _G_or_549(): - self._trace("", (9198, 9203), self.input.position) - _G_apply_550, lastError = self._apply(self.rule_r_pos, "r_pos", []) + _locals = {'self': self} + self.locals['def_r_interval'] = _locals + def _G_or_551(): + self._trace('', (9228, 9233), self.input.position) + _G_apply_552, lastError = self._apply(self.rule_r_pos, "r_pos", []) self.considerError(lastError, None) - _locals["start"] = _G_apply_550 - self._trace("", (9209, 9213), self.input.position) - _G_exactly_551, lastError = self.exactly("_") + _locals['start'] = _G_apply_552 + self._trace('', (9239, 9243), self.input.position) + _G_exactly_553, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace("", (9213, 9219), self.input.position) - _G_apply_552, lastError = self._apply(self.rule_r_pos, "r_pos", []) + self._trace('', (9243, 9249), self.input.position) + _G_apply_554, lastError = self._apply(self.rule_r_pos, "r_pos", []) self.considerError(lastError, None) - _locals["end"] = _G_apply_552 - _G_python_553, lastError = eval(self._G_expr_524, self.globals, _locals), None + _locals['end'] = _G_apply_554 + _G_python_555, lastError = eval(self._G_expr_526, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_553, self.currentError) - - def _G_or_554(): - self._trace("", (9265, 9270), self.input.position) - _G_apply_555, lastError = self._apply(self.rule_r_pos, "r_pos", []) + return (_G_python_555, self.currentError) + def _G_or_556(): + self._trace('', (9295, 9300), self.input.position) + _G_apply_557, lastError = self._apply(self.rule_r_pos, "r_pos", []) self.considerError(lastError, None) - _locals["start"] = _G_apply_555 - _G_python_556, lastError = eval(self._G_expr_528, self.globals, _locals), None + _locals['start'] = _G_apply_557 + _G_python_558, lastError = eval(self._G_expr_530, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_556, self.currentError) + return (_G_python_558, self.currentError) + _G_or_559, lastError = self._or([_G_or_551, _G_or_556]) + self.considerError(lastError, 'def_r_interval') + return (_G_or_559, self.currentError) - _G_or_557, lastError = self._or([_G_or_549, _G_or_554]) - self.considerError(lastError, "def_r_interval") - return (_G_or_557, self.currentError) def rule_def_c_interval(self): - _locals = {"self": self} - self.locals["def_c_interval"] = _locals - - def _G_or_558(): - self._trace("", (9350, 9355), self.input.position) - _G_apply_559, lastError = self._apply(self.rule_c_pos, "c_pos", []) + _locals = {'self': self} + self.locals['def_c_interval'] = _locals + def _G_or_560(): + self._trace('', (9380, 9385), self.input.position) + _G_apply_561, lastError = self._apply(self.rule_c_pos, "c_pos", []) self.considerError(lastError, None) - _locals["start"] = _G_apply_559 - self._trace("", (9361, 9365), self.input.position) - _G_exactly_560, lastError = self.exactly("_") + _locals['start'] = _G_apply_561 + self._trace('', (9391, 9395), self.input.position) + _G_exactly_562, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace("", (9365, 9371), self.input.position) - _G_apply_561, lastError = self._apply(self.rule_c_pos, "c_pos", []) + self._trace('', (9395, 9401), self.input.position) + _G_apply_563, lastError = self._apply(self.rule_c_pos, "c_pos", []) self.considerError(lastError, None) - _locals["end"] = _G_apply_561 - _G_python_563, lastError = eval(self._G_expr_562, self.globals, _locals), None + _locals['end'] = _G_apply_563 + _G_python_565, lastError = eval(self._G_expr_564, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_563, self.currentError) - - def _G_or_564(): - self._trace("", (9427, 9432), self.input.position) - _G_apply_565, lastError = self._apply(self.rule_c_pos, "c_pos", []) + return (_G_python_565, self.currentError) + def _G_or_566(): + self._trace('', (9457, 9462), self.input.position) + _G_apply_567, lastError = self._apply(self.rule_c_pos, "c_pos", []) self.considerError(lastError, None) - _locals["start"] = _G_apply_565 - _G_python_567, lastError = eval(self._G_expr_566, self.globals, _locals), None + _locals['start'] = _G_apply_567 + _G_python_569, lastError = eval(self._G_expr_568, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_567, self.currentError) + return (_G_python_569, self.currentError) + _G_or_570, lastError = self._or([_G_or_560, _G_or_566]) + self.considerError(lastError, 'def_c_interval') + return (_G_or_570, self.currentError) - _G_or_568, lastError = self._or([_G_or_558, _G_or_564]) - self.considerError(lastError, "def_c_interval") - return (_G_or_568, self.currentError) def rule_def_n_interval(self): - _locals = {"self": self} - self.locals["def_n_interval"] = _locals - - def _G_or_569(): - self._trace("", (9522, 9527), self.input.position) - _G_apply_570, lastError = self._apply(self.rule_n_pos, "n_pos", []) + _locals = {'self': self} + self.locals['def_n_interval'] = _locals + def _G_or_571(): + self._trace('', (9552, 9557), self.input.position) + _G_apply_572, lastError = self._apply(self.rule_n_pos, "n_pos", []) self.considerError(lastError, None) - _locals["start"] = _G_apply_570 - self._trace("", (9533, 9537), self.input.position) - _G_exactly_571, lastError = self.exactly("_") + _locals['start'] = _G_apply_572 + self._trace('', (9563, 9567), self.input.position) + _G_exactly_573, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace("", (9537, 9543), self.input.position) - _G_apply_572, lastError = self._apply(self.rule_n_pos, "n_pos", []) + self._trace('', (9567, 9573), self.input.position) + _G_apply_574, lastError = self._apply(self.rule_n_pos, "n_pos", []) self.considerError(lastError, None) - _locals["end"] = _G_apply_572 - _G_python_573, lastError = eval(self._G_expr_562, self.globals, _locals), None + _locals['end'] = _G_apply_574 + _G_python_575, lastError = eval(self._G_expr_564, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_573, self.currentError) + return (_G_python_575, self.currentError) + def _G_or_576(): + self._trace('', (9629, 9634), self.input.position) + _G_apply_577, lastError = self._apply(self.rule_n_pos, "n_pos", []) + self.considerError(lastError, None) + _locals['start'] = _G_apply_577 + _G_python_578, lastError = eval(self._G_expr_568, self.globals, _locals), None + self.considerError(lastError, None) + return (_G_python_578, self.currentError) + _G_or_579, lastError = self._or([_G_or_571, _G_or_576]) + self.considerError(lastError, 'def_n_interval') + return (_G_or_579, self.currentError) - def _G_or_574(): - self._trace("", (9599, 9604), self.input.position) - _G_apply_575, lastError = self._apply(self.rule_n_pos, "n_pos", []) + + def rule_def_g_uncertain_interval(self): + _locals = {'self': self} + self.locals['def_g_uncertain_interval'] = _locals + def _G_or_580(): + self._trace('', (9753, 9757), self.input.position) + _G_exactly_581, lastError = self.exactly('(') + self.considerError(lastError, None) + self._trace('', (9757, 9772), self.input.position) + _G_apply_582, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) + self.considerError(lastError, None) + _locals['ivl_start'] = _G_apply_582 + self._trace('', (9782, 9786), self.input.position) + _G_exactly_583, lastError = self.exactly(')') + self.considerError(lastError, None) + self._trace('', (9786, 9790), self.input.position) + _G_exactly_584, lastError = self.exactly('_') + self.considerError(lastError, None) + self._trace('', (9790, 9794), self.input.position) + _G_exactly_585, lastError = self.exactly('(') + self.considerError(lastError, None) + self._trace('', (9794, 9809), self.input.position) + _G_apply_586, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) + self.considerError(lastError, None) + _locals['ivl_end'] = _G_apply_586 + self._trace('', (9817, 9821), self.input.position) + _G_exactly_587, lastError = self.exactly(')') + self.considerError(lastError, None) + _G_python_589, lastError = eval(self._G_expr_588, self.globals, _locals), None + self.considerError(lastError, None) + return (_G_python_589, self.currentError) + def _G_or_590(): + self._trace('', (9937, 9952), self.input.position) + _G_apply_591, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) + self.considerError(lastError, None) + _locals['ivl_start'] = _G_apply_591 + self._trace('', (9962, 9966), self.input.position) + _G_exactly_592, lastError = self.exactly('_') + self.considerError(lastError, None) + self._trace('', (9966, 9970), self.input.position) + _G_exactly_593, lastError = self.exactly('(') + self.considerError(lastError, None) + self._trace('', (9970, 9985), self.input.position) + _G_apply_594, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) - _locals["start"] = _G_apply_575 - _G_python_576, lastError = eval(self._G_expr_566, self.globals, _locals), None + _locals['ivl_end'] = _G_apply_594 + self._trace('', (9993, 9997), self.input.position) + _G_exactly_595, lastError = self.exactly(')') self.considerError(lastError, None) - return (_G_python_576, self.currentError) + _G_python_596, lastError = eval(self._G_expr_588, self.globals, _locals), None + self.considerError(lastError, None) + return (_G_python_596, self.currentError) + def _G_or_597(): + self._trace('', (10113, 10117), self.input.position) + _G_exactly_598, lastError = self.exactly('(') + self.considerError(lastError, None) + self._trace('', (10117, 10132), self.input.position) + _G_apply_599, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) + self.considerError(lastError, None) + _locals['ivl_start'] = _G_apply_599 + self._trace('', (10142, 10146), self.input.position) + _G_exactly_600, lastError = self.exactly(')') + self.considerError(lastError, None) + self._trace('', (10146, 10150), self.input.position) + _G_exactly_601, lastError = self.exactly('_') + self.considerError(lastError, None) + self._trace('', (10150, 10165), self.input.position) + _G_apply_602, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) + self.considerError(lastError, None) + _locals['ivl_end'] = _G_apply_602 + _G_python_603, lastError = eval(self._G_expr_588, self.globals, _locals), None + self.considerError(lastError, None) + return (_G_python_603, self.currentError) + _G_or_604, lastError = self._or([_G_or_580, _G_or_590, _G_or_597]) + self.considerError(lastError, 'def_g_uncertain_interval') + return (_G_or_604, self.currentError) - _G_or_577, lastError = self._or([_G_or_569, _G_or_574]) - self.considerError(lastError, "def_n_interval") - return (_G_or_577, self.currentError) def rule_c_pos(self): - _locals = {"self": self} - self.locals["c_pos"] = _locals - self._trace("", (9696, 9706), self.input.position) - _G_apply_578, lastError = self._apply(self.rule_def_c_pos, "def_c_pos", []) - self.considerError(lastError, "c_pos") - return (_G_apply_578, self.currentError) + _locals = {'self': self} + self.locals['c_pos'] = _locals + self._trace('', (10284, 10294), self.input.position) + _G_apply_605, lastError = self._apply(self.rule_def_c_pos, "def_c_pos", []) + self.considerError(lastError, 'c_pos') + return (_G_apply_605, self.currentError) + def rule_g_pos(self): - _locals = {"self": self} - self.locals["g_pos"] = _locals - self._trace("", (9763, 9773), self.input.position) - _G_apply_579, lastError = self._apply(self.rule_def_g_pos, "def_g_pos", []) - self.considerError(lastError, "g_pos") - return (_G_apply_579, self.currentError) + _locals = {'self': self} + self.locals['g_pos'] = _locals + self._trace('', (10351, 10361), self.input.position) + _G_apply_606, lastError = self._apply(self.rule_def_g_pos, "def_g_pos", []) + self.considerError(lastError, 'g_pos') + return (_G_apply_606, self.currentError) + def rule_m_pos(self): - _locals = {"self": self} - self.locals["m_pos"] = _locals - self._trace("", (9830, 9840), self.input.position) - _G_apply_580, lastError = self._apply(self.rule_def_m_pos, "def_m_pos", []) - self.considerError(lastError, "m_pos") - return (_G_apply_580, self.currentError) + _locals = {'self': self} + self.locals['m_pos'] = _locals + self._trace('', (10418, 10428), self.input.position) + _G_apply_607, lastError = self._apply(self.rule_def_m_pos, "def_m_pos", []) + self.considerError(lastError, 'm_pos') + return (_G_apply_607, self.currentError) + def rule_n_pos(self): - _locals = {"self": self} - self.locals["n_pos"] = _locals - self._trace("", (9897, 9907), self.input.position) - _G_apply_581, lastError = self._apply(self.rule_def_n_pos, "def_n_pos", []) - self.considerError(lastError, "n_pos") - return (_G_apply_581, self.currentError) + _locals = {'self': self} + self.locals['n_pos'] = _locals + self._trace('', (10485, 10495), self.input.position) + _G_apply_608, lastError = self._apply(self.rule_def_n_pos, "def_n_pos", []) + self.considerError(lastError, 'n_pos') + return (_G_apply_608, self.currentError) + def rule_p_pos(self): - _locals = {"self": self} - self.locals["p_pos"] = _locals - self._trace("", (9964, 9974), self.input.position) - _G_apply_582, lastError = self._apply(self.rule_def_p_pos, "def_p_pos", []) - self.considerError(lastError, "p_pos") - return (_G_apply_582, self.currentError) + _locals = {'self': self} + self.locals['p_pos'] = _locals + self._trace('', (10552, 10562), self.input.position) + _G_apply_609, lastError = self._apply(self.rule_def_p_pos, "def_p_pos", []) + self.considerError(lastError, 'p_pos') + return (_G_apply_609, self.currentError) + def rule_r_pos(self): - _locals = {"self": self} - self.locals["r_pos"] = _locals - self._trace("", (10031, 10041), self.input.position) - _G_apply_583, lastError = self._apply(self.rule_def_r_pos, "def_r_pos", []) - self.considerError(lastError, "r_pos") - return (_G_apply_583, self.currentError) + _locals = {'self': self} + self.locals['r_pos'] = _locals + self._trace('', (10619, 10629), self.input.position) + _G_apply_610, lastError = self._apply(self.rule_def_r_pos, "def_r_pos", []) + self.considerError(lastError, 'r_pos') + return (_G_apply_610, self.currentError) - def rule_def_c_pos(self): - _locals = {"self": self} - self.locals["def_c_pos"] = _locals - def _G_or_584(): - self._trace("", (10124, 10129), self.input.position) - _G_apply_585, lastError = self._apply(self.rule_base, "base", []) + def rule_def_c_pos(self): + _locals = {'self': self} + self.locals['def_c_pos'] = _locals + def _G_or_611(): + self._trace('', (10712, 10717), self.input.position) + _G_apply_612, lastError = self._apply(self.rule_base, "base", []) self.considerError(lastError, None) - _locals["b"] = _G_apply_585 - self._trace("", (10131, 10138), self.input.position) - _G_apply_586, lastError = self._apply(self.rule_offset, "offset", []) + _locals['b'] = _G_apply_612 + self._trace('', (10719, 10726), self.input.position) + _G_apply_613, lastError = self._apply(self.rule_offset, "offset", []) self.considerError(lastError, None) - _locals["o"] = _G_apply_586 - _G_python_588, lastError = eval(self._G_expr_587, self.globals, _locals), None + _locals['o'] = _G_apply_613 + _G_python_615, lastError = eval(self._G_expr_614, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_588, self.currentError) - - def _G_or_589(): - self._trace("", (10223, 10227), self.input.position) - _G_exactly_590, lastError = self.exactly("*") + return (_G_python_615, self.currentError) + def _G_or_616(): + self._trace('', (10811, 10815), self.input.position) + _G_exactly_617, lastError = self.exactly('*') self.considerError(lastError, None) - self._trace("", (10227, 10231), self.input.position) - _G_apply_591, lastError = self._apply(self.rule_num, "num", []) + self._trace('', (10815, 10819), self.input.position) + _G_apply_618, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) - _locals["b"] = _G_apply_591 - self._trace("", (10233, 10240), self.input.position) - _G_apply_592, lastError = self._apply(self.rule_offset, "offset", []) + _locals['b'] = _G_apply_618 + self._trace('', (10821, 10828), self.input.position) + _G_apply_619, lastError = self._apply(self.rule_offset, "offset", []) self.considerError(lastError, None) - _locals["o"] = _G_apply_592 - _G_python_594, lastError = eval(self._G_expr_593, self.globals, _locals), None + _locals['o'] = _G_apply_619 + _G_python_621, lastError = eval(self._G_expr_620, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_594, self.currentError) + return (_G_python_621, self.currentError) + _G_or_622, lastError = self._or([_G_or_611, _G_or_616]) + self.considerError(lastError, 'def_c_pos') + return (_G_or_622, self.currentError) - _G_or_595, lastError = self._or([_G_or_584, _G_or_589]) - self.considerError(lastError, "def_c_pos") - return (_G_or_595, self.currentError) def rule_def_g_pos(self): - _locals = {"self": self} - self.locals["def_g_pos"] = _locals - - def _G_or_596(): - self._trace("", (10328, 10331), self.input.position) - _G_apply_597, lastError = self._apply(self.rule_num, "num", []) + _locals = {'self': self} + self.locals['def_g_pos'] = _locals + def _G_or_623(): + self._trace('', (10916, 10919), self.input.position) + _G_apply_624, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) - return (_G_apply_597, self.currentError) - - def _G_or_598(): - self._trace("", (10332, 10335), self.input.position) - _G_exactly_599, lastError = self.exactly("?") + return (_G_apply_624, self.currentError) + def _G_or_625(): + self._trace('', (10920, 10923), self.input.position) + _G_exactly_626, lastError = self.exactly('?') self.considerError(lastError, None) - _G_python_600, lastError = (None), None + _G_python_627, lastError = (None), None self.considerError(lastError, None) - return (_G_python_600, self.currentError) + return (_G_python_627, self.currentError) + _G_or_628, lastError = self._or([_G_or_623, _G_or_625]) + self.considerError(lastError, 'def_g_pos') + _locals['pos'] = _G_or_628 + _G_python_630, lastError = eval(self._G_expr_629, self.globals, _locals), None + self.considerError(lastError, 'def_g_pos') + return (_G_python_630, self.currentError) - _G_or_601, lastError = self._or([_G_or_596, _G_or_598]) - self.considerError(lastError, "def_g_pos") - _locals["pos"] = _G_or_601 - _G_python_603, lastError = eval(self._G_expr_602, self.globals, _locals), None - self.considerError(lastError, "def_g_pos") - return (_G_python_603, self.currentError) def rule_def_m_pos(self): - _locals = {"self": self} - self.locals["def_m_pos"] = _locals - - def _G_or_604(): - self._trace("", (10397, 10400), self.input.position) - _G_apply_605, lastError = self._apply(self.rule_num, "num", []) + _locals = {'self': self} + self.locals['def_m_pos'] = _locals + def _G_or_631(): + self._trace('', (10985, 10988), self.input.position) + _G_apply_632, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) - return (_G_apply_605, self.currentError) - - def _G_or_606(): - self._trace("", (10401, 10404), self.input.position) - _G_exactly_607, lastError = self.exactly("?") + return (_G_apply_632, self.currentError) + def _G_or_633(): + self._trace('', (10989, 10992), self.input.position) + _G_exactly_634, lastError = self.exactly('?') self.considerError(lastError, None) - _G_python_608, lastError = (None), None + _G_python_635, lastError = (None), None self.considerError(lastError, None) - return (_G_python_608, self.currentError) + return (_G_python_635, self.currentError) + _G_or_636, lastError = self._or([_G_or_631, _G_or_633]) + self.considerError(lastError, 'def_m_pos') + _locals['pos'] = _G_or_636 + _G_python_637, lastError = eval(self._G_expr_629, self.globals, _locals), None + self.considerError(lastError, 'def_m_pos') + return (_G_python_637, self.currentError) - _G_or_609, lastError = self._or([_G_or_604, _G_or_606]) - self.considerError(lastError, "def_m_pos") - _locals["pos"] = _G_or_609 - _G_python_610, lastError = eval(self._G_expr_602, self.globals, _locals), None - self.considerError(lastError, "def_m_pos") - return (_G_python_610, self.currentError) def rule_def_n_pos(self): - _locals = {"self": self} - self.locals["def_n_pos"] = _locals - self._trace("", (10464, 10469), self.input.position) - _G_apply_611, lastError = self._apply(self.rule_base, "base", []) - self.considerError(lastError, "def_n_pos") - _locals["b"] = _G_apply_611 - self._trace("", (10471, 10478), self.input.position) - _G_apply_612, lastError = self._apply(self.rule_offset, "offset", []) - self.considerError(lastError, "def_n_pos") - _locals["o"] = _G_apply_612 - _G_python_614, lastError = eval(self._G_expr_613, self.globals, _locals), None - self.considerError(lastError, "def_n_pos") - return (_G_python_614, self.currentError) - - def rule_def_p_pos(self): - _locals = {"self": self} - self.locals["def_p_pos"] = _locals + _locals = {'self': self} + self.locals['def_n_pos'] = _locals + self._trace('', (11052, 11057), self.input.position) + _G_apply_638, lastError = self._apply(self.rule_base, "base", []) + self.considerError(lastError, 'def_n_pos') + _locals['b'] = _G_apply_638 + self._trace('', (11059, 11066), self.input.position) + _G_apply_639, lastError = self._apply(self.rule_offset, "offset", []) + self.considerError(lastError, 'def_n_pos') + _locals['o'] = _G_apply_639 + _G_python_641, lastError = eval(self._G_expr_640, self.globals, _locals), None + self.considerError(lastError, 'def_n_pos') + return (_G_python_641, self.currentError) - def _G_or_615(): - self._trace("", (10568, 10574), self.input.position) - _G_apply_616, lastError = self._apply(self.rule_term13, "term13", []) - self.considerError(lastError, None) - return (_G_apply_616, self.currentError) - def _G_or_617(): - self._trace("", (10575, 10579), self.input.position) - _G_apply_618, lastError = self._apply(self.rule_aa13, "aa13", []) - self.considerError(lastError, None) - return (_G_apply_618, self.currentError) + def rule_def_p_pos(self): + _locals = {'self': self} + self.locals['def_p_pos'] = _locals + def _G_or_642(): + self._trace('', (11156, 11162), self.input.position) + _G_apply_643, lastError = self._apply(self.rule_term13, "term13", []) + self.considerError(lastError, None) + return (_G_apply_643, self.currentError) + def _G_or_644(): + self._trace('', (11163, 11167), self.input.position) + _G_apply_645, lastError = self._apply(self.rule_aa13, "aa13", []) + self.considerError(lastError, None) + return (_G_apply_645, self.currentError) + _G_or_646, lastError = self._or([_G_or_642, _G_or_644]) + self.considerError(lastError, 'def_p_pos') + _locals['aa'] = _G_or_646 + self._trace('', (11171, 11175), self.input.position) + _G_apply_647, lastError = self._apply(self.rule_num, "num", []) + self.considerError(lastError, 'def_p_pos') + _locals['pos'] = _G_apply_647 + _G_python_649, lastError = eval(self._G_expr_648, self.globals, _locals), None + self.considerError(lastError, 'def_p_pos') + return (_G_python_649, self.currentError) - _G_or_619, lastError = self._or([_G_or_615, _G_or_617]) - self.considerError(lastError, "def_p_pos") - _locals["aa"] = _G_or_619 - self._trace("", (10583, 10587), self.input.position) - _G_apply_620, lastError = self._apply(self.rule_num, "num", []) - self.considerError(lastError, "def_p_pos") - _locals["pos"] = _G_apply_620 - _G_python_622, lastError = eval(self._G_expr_621, self.globals, _locals), None - self.considerError(lastError, "def_p_pos") - return (_G_python_622, self.currentError) def rule_def_r_pos(self): - _locals = {"self": self} - self.locals["def_r_pos"] = _locals - self._trace("", (10669, 10674), self.input.position) - _G_apply_623, lastError = self._apply(self.rule_base, "base", []) - self.considerError(lastError, "def_r_pos") - _locals["b"] = _G_apply_623 - self._trace("", (10676, 10683), self.input.position) - _G_apply_624, lastError = self._apply(self.rule_offset, "offset", []) - self.considerError(lastError, "def_r_pos") - _locals["o"] = _G_apply_624 - _G_python_625, lastError = eval(self._G_expr_613, self.globals, _locals), None - self.considerError(lastError, "def_r_pos") - return (_G_python_625, self.currentError) - - def rule_fs(self): - _locals = {"self": self} - self.locals["fs"] = _locals - self._trace("", (11087, 11092), self.input.position) - _G_exactly_626, lastError = self.exactly("fs") - self.considerError(lastError, "fs") + _locals = {'self': self} + self.locals['def_r_pos'] = _locals + self._trace('', (11257, 11262), self.input.position) + _G_apply_650, lastError = self._apply(self.rule_base, "base", []) + self.considerError(lastError, 'def_r_pos') + _locals['b'] = _G_apply_650 + self._trace('', (11264, 11271), self.input.position) + _G_apply_651, lastError = self._apply(self.rule_offset, "offset", []) + self.considerError(lastError, 'def_r_pos') + _locals['o'] = _G_apply_651 + _G_python_652, lastError = eval(self._G_expr_640, self.globals, _locals), None + self.considerError(lastError, 'def_r_pos') + return (_G_python_652, self.currentError) - def _G_or_627(): - self._trace("", (11094, 11101), self.input.position) - _G_apply_628, lastError = self._apply(self.rule_aa13_fs, "aa13_fs", []) - self.considerError(lastError, None) - return (_G_apply_628, self.currentError) - def _G_or_629(): - _G_python_630, lastError = (None), None - self.considerError(lastError, None) - return (_G_python_630, self.currentError) + def rule_fs(self): + _locals = {'self': self} + self.locals['fs'] = _locals + self._trace('', (11675, 11680), self.input.position) + _G_exactly_653, lastError = self.exactly('fs') + self.considerError(lastError, 'fs') + def _G_or_654(): + self._trace('', (11682, 11689), self.input.position) + _G_apply_655, lastError = self._apply(self.rule_aa13_fs, "aa13_fs", []) + self.considerError(lastError, None) + return (_G_apply_655, self.currentError) + def _G_or_656(): + _G_python_657, lastError = (None), None + self.considerError(lastError, None) + return (_G_python_657, self.currentError) + _G_or_658, lastError = self._or([_G_or_654, _G_or_656]) + self.considerError(lastError, 'fs') + _locals['n'] = _G_or_658 + _G_python_660, lastError = eval(self._G_expr_659, self.globals, _locals), None + self.considerError(lastError, 'fs') + return (_G_python_660, self.currentError) - _G_or_631, lastError = self._or([_G_or_627, _G_or_629]) - self.considerError(lastError, "fs") - _locals["n"] = _G_or_631 - _G_python_633, lastError = eval(self._G_expr_632, self.globals, _locals), None - self.considerError(lastError, "fs") - return (_G_python_633, self.currentError) def rule_ext(self): - _locals = {"self": self} - self.locals["ext"] = _locals - self._trace("", (11125, 11131), self.input.position) - _G_exactly_634, lastError = self.exactly("ext") - self.considerError(lastError, "ext") - - def _G_or_635(): - self._trace("", (11133, 11141), self.input.position) - _G_apply_636, lastError = self._apply(self.rule_aa13_ext, "aa13_ext", []) + _locals = {'self': self} + self.locals['ext'] = _locals + self._trace('', (11713, 11719), self.input.position) + _G_exactly_661, lastError = self.exactly('ext') + self.considerError(lastError, 'ext') + def _G_or_662(): + self._trace('', (11721, 11729), self.input.position) + _G_apply_663, lastError = self._apply(self.rule_aa13_ext, "aa13_ext", []) self.considerError(lastError, None) - return (_G_apply_636, self.currentError) - - def _G_or_637(): - _G_python_638, lastError = ((None, None)), None + return (_G_apply_663, self.currentError) + def _G_or_664(): + _G_python_665, lastError = ((None, None)), None self.considerError(lastError, None) - return (_G_python_638, self.currentError) + return (_G_python_665, self.currentError) + _G_or_666, lastError = self._or([_G_or_662, _G_or_664]) + self.considerError(lastError, 'ext') + _locals['aat'] = _G_or_666[0] + _locals['n'] = _G_or_666[1] + _G_python_668, lastError = eval(self._G_expr_667, self.globals, _locals), None + self.considerError(lastError, 'ext') + return (_G_python_668, self.currentError) - _G_or_639, lastError = self._or([_G_or_635, _G_or_637]) - self.considerError(lastError, "ext") - _locals["aat"] = _G_or_639[0] - _locals["n"] = _G_or_639[1] - _G_python_641, lastError = eval(self._G_expr_640, self.globals, _locals), None - self.considerError(lastError, "ext") - return (_G_python_641, self.currentError) def rule_aa13_fs(self): - _locals = {"self": self} - self.locals["aa13_fs"] = _locals - self._trace("", (11191, 11198), self.input.position) - _G_apply_642, lastError = self._apply(self.rule_term13, "term13", []) - self.considerError(lastError, "aa13_fs") - self._trace("", (11198, 11211), self.input.position) - _G_apply_643, lastError = self._apply(self.rule_fsext_offset, "fsext_offset", []) - self.considerError(lastError, "aa13_fs") - _locals["n"] = _G_apply_643 - _G_python_644, lastError = eval(self._G_expr_632, self.globals, _locals), None - self.considerError(lastError, "aa13_fs") - return (_G_python_644, self.currentError) + _locals = {'self': self} + self.locals['aa13_fs'] = _locals + self._trace('', (11779, 11786), self.input.position) + _G_apply_669, lastError = self._apply(self.rule_term13, "term13", []) + self.considerError(lastError, 'aa13_fs') + self._trace('', (11786, 11799), self.input.position) + _G_apply_670, lastError = self._apply(self.rule_fsext_offset, "fsext_offset", []) + self.considerError(lastError, 'aa13_fs') + _locals['n'] = _G_apply_670 + _G_python_671, lastError = eval(self._G_expr_659, self.globals, _locals), None + self.considerError(lastError, 'aa13_fs') + return (_G_python_671, self.currentError) - def rule_aa13_ext(self): - _locals = {"self": self} - self.locals["aa13_ext"] = _locals - def _G_or_645(): - self._trace("", (11229, 11236), self.input.position) - _G_apply_646, lastError = self._apply(self.rule_term13, "term13", []) - self.considerError(lastError, None) - _locals["aat"] = _G_apply_646 - self._trace("", (11240, 11253), self.input.position) - _G_apply_647, lastError = self._apply(self.rule_fsext_offset, "fsext_offset", []) - self.considerError(lastError, None) - _locals["n"] = _G_apply_647 - _G_python_648, lastError = eval(self._G_expr_640, self.globals, _locals), None - self.considerError(lastError, None) - return (_G_python_648, self.currentError) - - def _G_or_649(): - def _G_or_650(): - self._trace("", (11280, 11284), self.input.position) - _G_apply_651, lastError = self._apply(self.rule_aa13, "aa13", []) + def rule_aa13_ext(self): + _locals = {'self': self} + self.locals['aa13_ext'] = _locals + def _G_or_672(): + self._trace('', (11817, 11824), self.input.position) + _G_apply_673, lastError = self._apply(self.rule_term13, "term13", []) + self.considerError(lastError, None) + _locals['aat'] = _G_apply_673 + self._trace('', (11828, 11841), self.input.position) + _G_apply_674, lastError = self._apply(self.rule_fsext_offset, "fsext_offset", []) + self.considerError(lastError, None) + _locals['n'] = _G_apply_674 + _G_python_675, lastError = eval(self._G_expr_667, self.globals, _locals), None + self.considerError(lastError, None) + return (_G_python_675, self.currentError) + def _G_or_676(): + def _G_or_677(): + self._trace('', (11868, 11872), self.input.position) + _G_apply_678, lastError = self._apply(self.rule_aa13, "aa13", []) self.considerError(lastError, None) - return (_G_apply_651, self.currentError) - - def _G_or_652(): - _G_python_653, lastError = (None), None + return (_G_apply_678, self.currentError) + def _G_or_679(): + _G_python_680, lastError = (None), None self.considerError(lastError, None) - return (_G_python_653, self.currentError) - - _G_or_654, lastError = self._or([_G_or_650, _G_or_652]) + return (_G_python_680, self.currentError) + _G_or_681, lastError = self._or([_G_or_677, _G_or_679]) self.considerError(lastError, None) - _locals["aat"] = _G_or_654 - self._trace("", (11301, 11306), self.input.position) - _G_apply_655, lastError = self._apply(self.rule_nnum, "nnum", []) + _locals['aat'] = _G_or_681 + self._trace('', (11889, 11894), self.input.position) + _G_apply_682, lastError = self._apply(self.rule_nnum, "nnum", []) self.considerError(lastError, None) - _locals["n"] = _G_apply_655 - _G_python_656, lastError = eval(self._G_expr_640, self.globals, _locals), None + _locals['n'] = _G_apply_682 + _G_python_683, lastError = eval(self._G_expr_667, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_656, self.currentError) + return (_G_python_683, self.currentError) + _G_or_684, lastError = self._or([_G_or_672, _G_or_676]) + self.considerError(lastError, 'aa13_ext') + return (_G_or_684, self.currentError) - _G_or_657, lastError = self._or([_G_or_645, _G_or_649]) - self.considerError(lastError, "aa13_ext") - return (_G_or_657, self.currentError) def rule_fsext_offset(self): - _locals = {"self": self} - self.locals["fsext_offset"] = _locals - - def _G_or_658(): - self._trace("", (11335, 11339), self.input.position) - _G_apply_659, lastError = self._apply(self.rule_num, "num", []) + _locals = {'self': self} + self.locals['fsext_offset'] = _locals + def _G_or_685(): + self._trace('', (11923, 11927), self.input.position) + _G_apply_686, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) - return (_G_apply_659, self.currentError) - - def _G_or_660(): - self._trace("", (11340, 11343), self.input.position) - _G_exactly_661, lastError = self.exactly("?") + return (_G_apply_686, self.currentError) + def _G_or_687(): + self._trace('', (11928, 11931), self.input.position) + _G_exactly_688, lastError = self.exactly('?') self.considerError(lastError, None) - return (_G_exactly_661, self.currentError) - - def _G_or_662(): - _G_python_663, lastError = (None), None + return (_G_exactly_688, self.currentError) + def _G_or_689(): + _G_python_690, lastError = (None), None self.considerError(lastError, None) - return (_G_python_663, self.currentError) + return (_G_python_690, self.currentError) + _G_or_691, lastError = self._or([_G_or_685, _G_or_687, _G_or_689]) + self.considerError(lastError, 'fsext_offset') + return (_G_or_691, self.currentError) - _G_or_664, lastError = self._or([_G_or_658, _G_or_660, _G_or_662]) - self.considerError(lastError, "fsext_offset") - return (_G_or_664, self.currentError) def rule_dna_seq(self): - _locals = {"self": self} - self.locals["dna_seq"] = _locals - - def _G_consumedby_665(): - def _G_many1_666(): - self._trace("", (11388, 11391), self.input.position) - _G_apply_667, lastError = self._apply(self.rule_dna, "dna", []) + _locals = {'self': self} + self.locals['dna_seq'] = _locals + def _G_consumedby_692(): + def _G_many1_693(): + self._trace('', (11976, 11979), self.input.position) + _G_apply_694, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) - return (_G_apply_667, self.currentError) - - _G_many1_668, lastError = self.many(_G_many1_666, _G_many1_666()) + return (_G_apply_694, self.currentError) + _G_many1_695, lastError = self.many(_G_many1_693, _G_many1_693()) self.considerError(lastError, None) - return (_G_many1_668, self.currentError) + return (_G_many1_695, self.currentError) + _G_consumedby_696, lastError = self.consumedby(_G_consumedby_692) + self.considerError(lastError, 'dna_seq') + return (_G_consumedby_696, self.currentError) - _G_consumedby_669, lastError = self.consumedby(_G_consumedby_665) - self.considerError(lastError, "dna_seq") - return (_G_consumedby_669, self.currentError) def rule_rna_seq(self): - _locals = {"self": self} - self.locals["rna_seq"] = _locals - - def _G_consumedby_670(): - def _G_many1_671(): - self._trace("", (11405, 11408), self.input.position) - _G_apply_672, lastError = self._apply(self.rule_rna, "rna", []) + _locals = {'self': self} + self.locals['rna_seq'] = _locals + def _G_consumedby_697(): + def _G_many1_698(): + self._trace('', (11993, 11996), self.input.position) + _G_apply_699, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) - return (_G_apply_672, self.currentError) - - _G_many1_673, lastError = self.many(_G_many1_671, _G_many1_671()) + return (_G_apply_699, self.currentError) + _G_many1_700, lastError = self.many(_G_many1_698, _G_many1_698()) self.considerError(lastError, None) - return (_G_many1_673, self.currentError) + return (_G_many1_700, self.currentError) + _G_consumedby_701, lastError = self.consumedby(_G_consumedby_697) + self.considerError(lastError, 'rna_seq') + return (_G_consumedby_701, self.currentError) - _G_consumedby_674, lastError = self.consumedby(_G_consumedby_670) - self.considerError(lastError, "rna_seq") - return (_G_consumedby_674, self.currentError) def rule_aat13_seq(self): - _locals = {"self": self} - self.locals["aat13_seq"] = _locals - - def _G_or_675(): - def _G_consumedby_676(): - self._trace("", (11424, 11432), self.input.position) - _G_apply_677, lastError = self._apply(self.rule_aat3_seq, "aat3_seq", []) + _locals = {'self': self} + self.locals['aat13_seq'] = _locals + def _G_or_702(): + def _G_consumedby_703(): + self._trace('', (12012, 12020), self.input.position) + _G_apply_704, lastError = self._apply(self.rule_aat3_seq, "aat3_seq", []) self.considerError(lastError, None) - return (_G_apply_677, self.currentError) - - _G_consumedby_678, lastError = self.consumedby(_G_consumedby_676) - self.considerError(lastError, None) - return (_G_consumedby_678, self.currentError) - - def _G_or_679(): - def _G_consumedby_680(): - self._trace("", (11437, 11445), self.input.position) - _G_apply_681, lastError = self._apply(self.rule_aat1_seq, "aat1_seq", []) + return (_G_apply_704, self.currentError) + _G_consumedby_705, lastError = self.consumedby(_G_consumedby_703) + self.considerError(lastError, None) + return (_G_consumedby_705, self.currentError) + def _G_or_706(): + def _G_consumedby_707(): + self._trace('', (12025, 12033), self.input.position) + _G_apply_708, lastError = self._apply(self.rule_aat1_seq, "aat1_seq", []) self.considerError(lastError, None) - return (_G_apply_681, self.currentError) - - _G_consumedby_682, lastError = self.consumedby(_G_consumedby_680) + return (_G_apply_708, self.currentError) + _G_consumedby_709, lastError = self.consumedby(_G_consumedby_707) self.considerError(lastError, None) - return (_G_consumedby_682, self.currentError) + return (_G_consumedby_709, self.currentError) + _G_or_710, lastError = self._or([_G_or_702, _G_or_706]) + self.considerError(lastError, 'aat13_seq') + return (_G_or_710, self.currentError) - _G_or_683, lastError = self._or([_G_or_675, _G_or_679]) - self.considerError(lastError, "aat13_seq") - return (_G_or_683, self.currentError) def rule_aat1_seq(self): - _locals = {"self": self} - self.locals["aat1_seq"] = _locals - - def _G_or_684(): - def _G_consumedby_685(): - self._trace("", (11459, 11464), self.input.position) - _G_apply_686, lastError = self._apply(self.rule_term1, "term1", []) + _locals = {'self': self} + self.locals['aat1_seq'] = _locals + def _G_or_711(): + def _G_consumedby_712(): + self._trace('', (12047, 12052), self.input.position) + _G_apply_713, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) - return (_G_apply_686, self.currentError) - - _G_consumedby_687, lastError = self.consumedby(_G_consumedby_685) - self.considerError(lastError, None) - return (_G_consumedby_687, self.currentError) - - def _G_or_688(): - def _G_consumedby_689(): - def _G_many1_690(): - self._trace("", (11469, 11472), self.input.position) - _G_apply_691, lastError = self._apply(self.rule_aa1, "aa1", []) + return (_G_apply_713, self.currentError) + _G_consumedby_714, lastError = self.consumedby(_G_consumedby_712) + self.considerError(lastError, None) + return (_G_consumedby_714, self.currentError) + def _G_or_715(): + def _G_consumedby_716(): + def _G_many1_717(): + self._trace('', (12057, 12060), self.input.position) + _G_apply_718, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) - return (_G_apply_691, self.currentError) - - _G_many1_692, lastError = self.many(_G_many1_690, _G_many1_690()) + return (_G_apply_718, self.currentError) + _G_many1_719, lastError = self.many(_G_many1_717, _G_many1_717()) self.considerError(lastError, None) - - def _G_optional_693(): - self._trace("", (11473, 11479), self.input.position) - _G_apply_694, lastError = self._apply(self.rule_term1, "term1", []) + def _G_optional_720(): + self._trace('', (12061, 12067), self.input.position) + _G_apply_721, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) - return (_G_apply_694, self.currentError) - - def _G_optional_695(): + return (_G_apply_721, self.currentError) + def _G_optional_722(): return (None, self.input.nullError()) - - _G_or_696, lastError = self._or([_G_optional_693, _G_optional_695]) + _G_or_723, lastError = self._or([_G_optional_720, _G_optional_722]) self.considerError(lastError, None) - return (_G_or_696, self.currentError) - - _G_consumedby_697, lastError = self.consumedby(_G_consumedby_689) + return (_G_or_723, self.currentError) + _G_consumedby_724, lastError = self.consumedby(_G_consumedby_716) self.considerError(lastError, None) - return (_G_consumedby_697, self.currentError) + return (_G_consumedby_724, self.currentError) + _G_or_725, lastError = self._or([_G_or_711, _G_or_715]) + self.considerError(lastError, 'aat1_seq') + return (_G_or_725, self.currentError) - _G_or_698, lastError = self._or([_G_or_684, _G_or_688]) - self.considerError(lastError, "aat1_seq") - return (_G_or_698, self.currentError) def rule_aat3_seq(self): - _locals = {"self": self} - self.locals["aat3_seq"] = _locals - - def _G_or_699(): - def _G_consumedby_700(): - self._trace("", (11494, 11499), self.input.position) - _G_apply_701, lastError = self._apply(self.rule_term3, "term3", []) + _locals = {'self': self} + self.locals['aat3_seq'] = _locals + def _G_or_726(): + def _G_consumedby_727(): + self._trace('', (12082, 12087), self.input.position) + _G_apply_728, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) - return (_G_apply_701, self.currentError) - - _G_consumedby_702, lastError = self.consumedby(_G_consumedby_700) - self.considerError(lastError, None) - return (_G_consumedby_702, self.currentError) - - def _G_or_703(): - def _G_consumedby_704(): - def _G_many1_705(): - self._trace("", (11504, 11507), self.input.position) - _G_apply_706, lastError = self._apply(self.rule_aa3, "aa3", []) + return (_G_apply_728, self.currentError) + _G_consumedby_729, lastError = self.consumedby(_G_consumedby_727) + self.considerError(lastError, None) + return (_G_consumedby_729, self.currentError) + def _G_or_730(): + def _G_consumedby_731(): + def _G_many1_732(): + self._trace('', (12092, 12095), self.input.position) + _G_apply_733, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) - return (_G_apply_706, self.currentError) - - _G_many1_707, lastError = self.many(_G_many1_705, _G_many1_705()) + return (_G_apply_733, self.currentError) + _G_many1_734, lastError = self.many(_G_many1_732, _G_many1_732()) self.considerError(lastError, None) - - def _G_optional_708(): - self._trace("", (11508, 11514), self.input.position) - _G_apply_709, lastError = self._apply(self.rule_term3, "term3", []) + def _G_optional_735(): + self._trace('', (12096, 12102), self.input.position) + _G_apply_736, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) - return (_G_apply_709, self.currentError) - - def _G_optional_710(): + return (_G_apply_736, self.currentError) + def _G_optional_737(): return (None, self.input.nullError()) - - _G_or_711, lastError = self._or([_G_optional_708, _G_optional_710]) + _G_or_738, lastError = self._or([_G_optional_735, _G_optional_737]) self.considerError(lastError, None) - return (_G_or_711, self.currentError) - - _G_consumedby_712, lastError = self.consumedby(_G_consumedby_704) + return (_G_or_738, self.currentError) + _G_consumedby_739, lastError = self.consumedby(_G_consumedby_731) self.considerError(lastError, None) - return (_G_consumedby_712, self.currentError) + return (_G_consumedby_739, self.currentError) + _G_or_740, lastError = self._or([_G_or_726, _G_or_730]) + self.considerError(lastError, 'aat3_seq') + return (_G_or_740, self.currentError) - _G_or_713, lastError = self._or([_G_or_699, _G_or_703]) - self.considerError(lastError, "aat3_seq") - return (_G_or_713, self.currentError) def rule_aa13_seq(self): - _locals = {"self": self} - self.locals["aa13_seq"] = _locals - - def _G_or_714(): - def _G_consumedby_715(): - self._trace("", (11529, 11536), self.input.position) - _G_apply_716, lastError = self._apply(self.rule_aa3_seq, "aa3_seq", []) + _locals = {'self': self} + self.locals['aa13_seq'] = _locals + def _G_or_741(): + def _G_consumedby_742(): + self._trace('', (12117, 12124), self.input.position) + _G_apply_743, lastError = self._apply(self.rule_aa3_seq, "aa3_seq", []) self.considerError(lastError, None) - return (_G_apply_716, self.currentError) - - _G_consumedby_717, lastError = self.consumedby(_G_consumedby_715) + return (_G_apply_743, self.currentError) + _G_consumedby_744, lastError = self.consumedby(_G_consumedby_742) self.considerError(lastError, None) - return (_G_consumedby_717, self.currentError) - - def _G_or_718(): - def _G_consumedby_719(): - self._trace("", (11541, 11548), self.input.position) - _G_apply_720, lastError = self._apply(self.rule_aa1_seq, "aa1_seq", []) + return (_G_consumedby_744, self.currentError) + def _G_or_745(): + def _G_consumedby_746(): + self._trace('', (12129, 12136), self.input.position) + _G_apply_747, lastError = self._apply(self.rule_aa1_seq, "aa1_seq", []) self.considerError(lastError, None) - return (_G_apply_720, self.currentError) - - _G_consumedby_721, lastError = self.consumedby(_G_consumedby_719) + return (_G_apply_747, self.currentError) + _G_consumedby_748, lastError = self.consumedby(_G_consumedby_746) self.considerError(lastError, None) - return (_G_consumedby_721, self.currentError) + return (_G_consumedby_748, self.currentError) + _G_or_749, lastError = self._or([_G_or_741, _G_or_745]) + self.considerError(lastError, 'aa13_seq') + return (_G_or_749, self.currentError) - _G_or_722, lastError = self._or([_G_or_714, _G_or_718]) - self.considerError(lastError, "aa13_seq") - return (_G_or_722, self.currentError) def rule_aa1_seq(self): - _locals = {"self": self} - self.locals["aa1_seq"] = _locals - - def _G_consumedby_723(): - def _G_many1_724(): - self._trace("", (11561, 11564), self.input.position) - _G_apply_725, lastError = self._apply(self.rule_aa1, "aa1", []) + _locals = {'self': self} + self.locals['aa1_seq'] = _locals + def _G_consumedby_750(): + def _G_many1_751(): + self._trace('', (12149, 12152), self.input.position) + _G_apply_752, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) - return (_G_apply_725, self.currentError) - - _G_many1_726, lastError = self.many(_G_many1_724, _G_many1_724()) + return (_G_apply_752, self.currentError) + _G_many1_753, lastError = self.many(_G_many1_751, _G_many1_751()) self.considerError(lastError, None) - return (_G_many1_726, self.currentError) + return (_G_many1_753, self.currentError) + _G_consumedby_754, lastError = self.consumedby(_G_consumedby_750) + self.considerError(lastError, 'aa1_seq') + return (_G_consumedby_754, self.currentError) - _G_consumedby_727, lastError = self.consumedby(_G_consumedby_723) - self.considerError(lastError, "aa1_seq") - return (_G_consumedby_727, self.currentError) def rule_aa3_seq(self): - _locals = {"self": self} - self.locals["aa3_seq"] = _locals - - def _G_consumedby_728(): - def _G_many1_729(): - self._trace("", (11578, 11581), self.input.position) - _G_apply_730, lastError = self._apply(self.rule_aa3, "aa3", []) + _locals = {'self': self} + self.locals['aa3_seq'] = _locals + def _G_consumedby_755(): + def _G_many1_756(): + self._trace('', (12166, 12169), self.input.position) + _G_apply_757, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) - return (_G_apply_730, self.currentError) - - _G_many1_731, lastError = self.many(_G_many1_729, _G_many1_729()) + return (_G_apply_757, self.currentError) + _G_many1_758, lastError = self.many(_G_many1_756, _G_many1_756()) self.considerError(lastError, None) - return (_G_many1_731, self.currentError) + return (_G_many1_758, self.currentError) + _G_consumedby_759, lastError = self.consumedby(_G_consumedby_755) + self.considerError(lastError, 'aa3_seq') + return (_G_consumedby_759, self.currentError) - _G_consumedby_732, lastError = self.consumedby(_G_consumedby_728) - self.considerError(lastError, "aa3_seq") - return (_G_consumedby_732, self.currentError) def rule_aa1(self): - _locals = {"self": self} - self.locals["aa1"] = _locals - _G_apply_733, lastError = self._apply(self.rule_anything, "anything", []) - self.considerError(lastError, "aa1") - _locals["x"] = _G_apply_733 + _locals = {'self': self} + self.locals['aa1'] = _locals + _G_apply_760, lastError = self._apply(self.rule_anything, "anything", []) + self.considerError(lastError, 'aa1') + _locals['x'] = _G_apply_760 + def _G_pred_761(): + _G_python_763, lastError = eval(self._G_expr_762, self.globals, _locals), None + self.considerError(lastError, None) + return (_G_python_763, self.currentError) + _G_pred_764, lastError = self.pred(_G_pred_761) + self.considerError(lastError, 'aa1') + _G_python_766, lastError = eval(self._G_expr_765, self.globals, _locals), None + self.considerError(lastError, 'aa1') + return (_G_python_766, self.currentError) - def _G_pred_734(): - _G_python_736, lastError = eval(self._G_expr_735, self.globals, _locals), None - self.considerError(lastError, None) - return (_G_python_736, self.currentError) - - _G_pred_737, lastError = self.pred(_G_pred_734) - self.considerError(lastError, "aa1") - _G_python_739, lastError = eval(self._G_expr_738, self.globals, _locals), None - self.considerError(lastError, "aa1") - return (_G_python_739, self.currentError) def rule_aa13(self): - _locals = {"self": self} - self.locals["aa13"] = _locals - - def _G_or_740(): - self._trace("", (11662, 11666), self.input.position) - _G_apply_741, lastError = self._apply(self.rule_aa3, "aa3", []) + _locals = {'self': self} + self.locals['aa13'] = _locals + def _G_or_767(): + self._trace('', (12250, 12254), self.input.position) + _G_apply_768, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) - return (_G_apply_741, self.currentError) - - def _G_or_742(): - self._trace("", (11668, 11672), self.input.position) - _G_apply_743, lastError = self._apply(self.rule_aa1, "aa1", []) + return (_G_apply_768, self.currentError) + def _G_or_769(): + self._trace('', (12256, 12260), self.input.position) + _G_apply_770, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) - return (_G_apply_743, self.currentError) + return (_G_apply_770, self.currentError) + _G_or_771, lastError = self._or([_G_or_767, _G_or_769]) + self.considerError(lastError, 'aa13') + return (_G_or_771, self.currentError) - _G_or_744, lastError = self._or([_G_or_740, _G_or_742]) - self.considerError(lastError, "aa13") - return (_G_or_744, self.currentError) def rule_aa3(self): - _locals = {"self": self} - self.locals["aa3"] = _locals - - def _G_or_745(): - self._trace("", (11678, 11684), self.input.position) - _G_exactly_746, lastError = self.exactly("Ala") - self.considerError(lastError, None) - return (_G_exactly_746, self.currentError) - - def _G_or_747(): - self._trace("", (11685, 11690), self.input.position) - _G_exactly_748, lastError = self.exactly("Cys") - self.considerError(lastError, None) - return (_G_exactly_748, self.currentError) - - def _G_or_749(): - self._trace("", (11691, 11696), self.input.position) - _G_exactly_750, lastError = self.exactly("Asp") - self.considerError(lastError, None) - return (_G_exactly_750, self.currentError) - - def _G_or_751(): - self._trace("", (11697, 11702), self.input.position) - _G_exactly_752, lastError = self.exactly("Glu") - self.considerError(lastError, None) - return (_G_exactly_752, self.currentError) - - def _G_or_753(): - self._trace("", (11703, 11708), self.input.position) - _G_exactly_754, lastError = self.exactly("Phe") - self.considerError(lastError, None) - return (_G_exactly_754, self.currentError) - - def _G_or_755(): - self._trace("", (11709, 11714), self.input.position) - _G_exactly_756, lastError = self.exactly("Gly") - self.considerError(lastError, None) - return (_G_exactly_756, self.currentError) - - def _G_or_757(): - self._trace("", (11715, 11720), self.input.position) - _G_exactly_758, lastError = self.exactly("His") - self.considerError(lastError, None) - return (_G_exactly_758, self.currentError) - - def _G_or_759(): - self._trace("", (11721, 11726), self.input.position) - _G_exactly_760, lastError = self.exactly("Ile") - self.considerError(lastError, None) - return (_G_exactly_760, self.currentError) - - def _G_or_761(): - self._trace("", (11727, 11732), self.input.position) - _G_exactly_762, lastError = self.exactly("Lys") - self.considerError(lastError, None) - return (_G_exactly_762, self.currentError) - - def _G_or_763(): - self._trace("", (11733, 11738), self.input.position) - _G_exactly_764, lastError = self.exactly("Leu") - self.considerError(lastError, None) - return (_G_exactly_764, self.currentError) - - def _G_or_765(): - self._trace("", (11739, 11744), self.input.position) - _G_exactly_766, lastError = self.exactly("Met") - self.considerError(lastError, None) - return (_G_exactly_766, self.currentError) - - def _G_or_767(): - self._trace("", (11745, 11750), self.input.position) - _G_exactly_768, lastError = self.exactly("Asn") + _locals = {'self': self} + self.locals['aa3'] = _locals + def _G_or_772(): + self._trace('', (12266, 12272), self.input.position) + _G_exactly_773, lastError = self.exactly('Ala') + self.considerError(lastError, None) + return (_G_exactly_773, self.currentError) + def _G_or_774(): + self._trace('', (12273, 12278), self.input.position) + _G_exactly_775, lastError = self.exactly('Cys') + self.considerError(lastError, None) + return (_G_exactly_775, self.currentError) + def _G_or_776(): + self._trace('', (12279, 12284), self.input.position) + _G_exactly_777, lastError = self.exactly('Asp') + self.considerError(lastError, None) + return (_G_exactly_777, self.currentError) + def _G_or_778(): + self._trace('', (12285, 12290), self.input.position) + _G_exactly_779, lastError = self.exactly('Glu') + self.considerError(lastError, None) + return (_G_exactly_779, self.currentError) + def _G_or_780(): + self._trace('', (12291, 12296), self.input.position) + _G_exactly_781, lastError = self.exactly('Phe') + self.considerError(lastError, None) + return (_G_exactly_781, self.currentError) + def _G_or_782(): + self._trace('', (12297, 12302), self.input.position) + _G_exactly_783, lastError = self.exactly('Gly') + self.considerError(lastError, None) + return (_G_exactly_783, self.currentError) + def _G_or_784(): + self._trace('', (12303, 12308), self.input.position) + _G_exactly_785, lastError = self.exactly('His') + self.considerError(lastError, None) + return (_G_exactly_785, self.currentError) + def _G_or_786(): + self._trace('', (12309, 12314), self.input.position) + _G_exactly_787, lastError = self.exactly('Ile') + self.considerError(lastError, None) + return (_G_exactly_787, self.currentError) + def _G_or_788(): + self._trace('', (12315, 12320), self.input.position) + _G_exactly_789, lastError = self.exactly('Lys') + self.considerError(lastError, None) + return (_G_exactly_789, self.currentError) + def _G_or_790(): + self._trace('', (12321, 12326), self.input.position) + _G_exactly_791, lastError = self.exactly('Leu') + self.considerError(lastError, None) + return (_G_exactly_791, self.currentError) + def _G_or_792(): + self._trace('', (12327, 12332), self.input.position) + _G_exactly_793, lastError = self.exactly('Met') + self.considerError(lastError, None) + return (_G_exactly_793, self.currentError) + def _G_or_794(): + self._trace('', (12333, 12338), self.input.position) + _G_exactly_795, lastError = self.exactly('Asn') self.considerError(lastError, None) - return (_G_exactly_768, self.currentError) - - def _G_or_769(): - self._trace("", (11751, 11756), self.input.position) - _G_exactly_770, lastError = self.exactly("Pro") + return (_G_exactly_795, self.currentError) + def _G_or_796(): + self._trace('', (12339, 12344), self.input.position) + _G_exactly_797, lastError = self.exactly('Pro') self.considerError(lastError, None) - return (_G_exactly_770, self.currentError) - - def _G_or_771(): - self._trace("", (11757, 11762), self.input.position) - _G_exactly_772, lastError = self.exactly("Gln") + return (_G_exactly_797, self.currentError) + def _G_or_798(): + self._trace('', (12345, 12350), self.input.position) + _G_exactly_799, lastError = self.exactly('Gln') self.considerError(lastError, None) - return (_G_exactly_772, self.currentError) - - def _G_or_773(): - self._trace("", (11763, 11768), self.input.position) - _G_exactly_774, lastError = self.exactly("Arg") + return (_G_exactly_799, self.currentError) + def _G_or_800(): + self._trace('', (12351, 12356), self.input.position) + _G_exactly_801, lastError = self.exactly('Arg') self.considerError(lastError, None) - return (_G_exactly_774, self.currentError) - - def _G_or_775(): - self._trace("", (11769, 11774), self.input.position) - _G_exactly_776, lastError = self.exactly("Ser") + return (_G_exactly_801, self.currentError) + def _G_or_802(): + self._trace('', (12357, 12362), self.input.position) + _G_exactly_803, lastError = self.exactly('Ser') self.considerError(lastError, None) - return (_G_exactly_776, self.currentError) - - def _G_or_777(): - self._trace("", (11775, 11780), self.input.position) - _G_exactly_778, lastError = self.exactly("Thr") + return (_G_exactly_803, self.currentError) + def _G_or_804(): + self._trace('', (12363, 12368), self.input.position) + _G_exactly_805, lastError = self.exactly('Thr') self.considerError(lastError, None) - return (_G_exactly_778, self.currentError) - - def _G_or_779(): - self._trace("", (11781, 11786), self.input.position) - _G_exactly_780, lastError = self.exactly("Val") + return (_G_exactly_805, self.currentError) + def _G_or_806(): + self._trace('', (12369, 12374), self.input.position) + _G_exactly_807, lastError = self.exactly('Val') self.considerError(lastError, None) - return (_G_exactly_780, self.currentError) - - def _G_or_781(): - self._trace("", (11787, 11792), self.input.position) - _G_exactly_782, lastError = self.exactly("Trp") + return (_G_exactly_807, self.currentError) + def _G_or_808(): + self._trace('', (12375, 12380), self.input.position) + _G_exactly_809, lastError = self.exactly('Trp') self.considerError(lastError, None) - return (_G_exactly_782, self.currentError) - - def _G_or_783(): - self._trace("", (11793, 11798), self.input.position) - _G_exactly_784, lastError = self.exactly("Tyr") + return (_G_exactly_809, self.currentError) + def _G_or_810(): + self._trace('', (12381, 12386), self.input.position) + _G_exactly_811, lastError = self.exactly('Tyr') self.considerError(lastError, None) - return (_G_exactly_784, self.currentError) - - def _G_or_785(): - self._trace("", (11800, 11806), self.input.position) - _G_exactly_786, lastError = self.exactly("Asx") + return (_G_exactly_811, self.currentError) + def _G_or_812(): + self._trace('', (12388, 12394), self.input.position) + _G_exactly_813, lastError = self.exactly('Asx') self.considerError(lastError, None) - return (_G_exactly_786, self.currentError) - - def _G_or_787(): - self._trace("", (11808, 11814), self.input.position) - _G_exactly_788, lastError = self.exactly("Glx") + return (_G_exactly_813, self.currentError) + def _G_or_814(): + self._trace('', (12396, 12402), self.input.position) + _G_exactly_815, lastError = self.exactly('Glx') self.considerError(lastError, None) - return (_G_exactly_788, self.currentError) - - def _G_or_789(): - self._trace("", (11816, 11822), self.input.position) - _G_exactly_790, lastError = self.exactly("Xaa") + return (_G_exactly_815, self.currentError) + def _G_or_816(): + self._trace('', (12404, 12410), self.input.position) + _G_exactly_817, lastError = self.exactly('Xaa') self.considerError(lastError, None) - return (_G_exactly_790, self.currentError) - - def _G_or_791(): - self._trace("", (11824, 11830), self.input.position) - _G_exactly_792, lastError = self.exactly("Sec") + return (_G_exactly_817, self.currentError) + def _G_or_818(): + self._trace('', (12412, 12418), self.input.position) + _G_exactly_819, lastError = self.exactly('Sec') self.considerError(lastError, None) - return (_G_exactly_792, self.currentError) + return (_G_exactly_819, self.currentError) + _G_or_820, lastError = self._or([_G_or_772, _G_or_774, _G_or_776, _G_or_778, _G_or_780, _G_or_782, _G_or_784, _G_or_786, _G_or_788, _G_or_790, _G_or_792, _G_or_794, _G_or_796, _G_or_798, _G_or_800, _G_or_802, _G_or_804, _G_or_806, _G_or_808, _G_or_810, _G_or_812, _G_or_814, _G_or_816, _G_or_818]) + self.considerError(lastError, 'aa3') + return (_G_or_820, self.currentError) - _G_or_793, lastError = self._or( - [ - _G_or_745, - _G_or_747, - _G_or_749, - _G_or_751, - _G_or_753, - _G_or_755, - _G_or_757, - _G_or_759, - _G_or_761, - _G_or_763, - _G_or_765, - _G_or_767, - _G_or_769, - _G_or_771, - _G_or_773, - _G_or_775, - _G_or_777, - _G_or_779, - _G_or_781, - _G_or_783, - _G_or_785, - _G_or_787, - _G_or_789, - _G_or_791, - ] - ) - self.considerError(lastError, "aa3") - return (_G_or_793, self.currentError) def rule_aat1(self): - _locals = {"self": self} - self.locals["aat1"] = _locals - - def _G_or_794(): - self._trace("", (11837, 11843), self.input.position) - _G_apply_795, lastError = self._apply(self.rule_term1, "term1", []) + _locals = {'self': self} + self.locals['aat1'] = _locals + def _G_or_821(): + self._trace('', (12425, 12431), self.input.position) + _G_apply_822, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) - return (_G_apply_795, self.currentError) - - def _G_or_796(): - self._trace("", (11845, 11849), self.input.position) - _G_apply_797, lastError = self._apply(self.rule_aa1, "aa1", []) + return (_G_apply_822, self.currentError) + def _G_or_823(): + self._trace('', (12433, 12437), self.input.position) + _G_apply_824, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) - return (_G_apply_797, self.currentError) + return (_G_apply_824, self.currentError) + _G_or_825, lastError = self._or([_G_or_821, _G_or_823]) + self.considerError(lastError, 'aat1') + return (_G_or_825, self.currentError) - _G_or_798, lastError = self._or([_G_or_794, _G_or_796]) - self.considerError(lastError, "aat1") - return (_G_or_798, self.currentError) def rule_aat13(self): - _locals = {"self": self} - self.locals["aat13"] = _locals - - def _G_or_799(): - self._trace("", (11857, 11862), self.input.position) - _G_apply_800, lastError = self._apply(self.rule_aat3, "aat3", []) + _locals = {'self': self} + self.locals['aat13'] = _locals + def _G_or_826(): + self._trace('', (12445, 12450), self.input.position) + _G_apply_827, lastError = self._apply(self.rule_aat3, "aat3", []) self.considerError(lastError, None) - return (_G_apply_800, self.currentError) - - def _G_or_801(): - self._trace("", (11864, 11869), self.input.position) - _G_apply_802, lastError = self._apply(self.rule_aat1, "aat1", []) + return (_G_apply_827, self.currentError) + def _G_or_828(): + self._trace('', (12452, 12457), self.input.position) + _G_apply_829, lastError = self._apply(self.rule_aat1, "aat1", []) self.considerError(lastError, None) - return (_G_apply_802, self.currentError) + return (_G_apply_829, self.currentError) + _G_or_830, lastError = self._or([_G_or_826, _G_or_828]) + self.considerError(lastError, 'aat13') + return (_G_or_830, self.currentError) - _G_or_803, lastError = self._or([_G_or_799, _G_or_801]) - self.considerError(lastError, "aat13") - return (_G_or_803, self.currentError) def rule_aat3(self): - _locals = {"self": self} - self.locals["aat3"] = _locals - - def _G_or_804(): - self._trace("", (11876, 11882), self.input.position) - _G_apply_805, lastError = self._apply(self.rule_term3, "term3", []) + _locals = {'self': self} + self.locals['aat3'] = _locals + def _G_or_831(): + self._trace('', (12464, 12470), self.input.position) + _G_apply_832, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) - return (_G_apply_805, self.currentError) - - def _G_or_806(): - self._trace("", (11884, 11888), self.input.position) - _G_apply_807, lastError = self._apply(self.rule_aa3, "aa3", []) + return (_G_apply_832, self.currentError) + def _G_or_833(): + self._trace('', (12472, 12476), self.input.position) + _G_apply_834, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) - return (_G_apply_807, self.currentError) + return (_G_apply_834, self.currentError) + _G_or_835, lastError = self._or([_G_or_831, _G_or_833]) + self.considerError(lastError, 'aat3') + return (_G_or_835, self.currentError) - _G_or_808, lastError = self._or([_G_or_804, _G_or_806]) - self.considerError(lastError, "aat3") - return (_G_or_808, self.currentError) def rule_dna(self): - _locals = {"self": self} - self.locals["dna"] = _locals - self._trace("", (11894, 11904), self.input.position) - _G_apply_809, lastError = self._apply(self.rule_dna_iupac, "dna_iupac", []) - self.considerError(lastError, "dna") - return (_G_apply_809, self.currentError) + _locals = {'self': self} + self.locals['dna'] = _locals + self._trace('', (12482, 12492), self.input.position) + _G_apply_836, lastError = self._apply(self.rule_dna_iupac, "dna_iupac", []) + self.considerError(lastError, 'dna') + return (_G_apply_836, self.currentError) - def rule_dna_iupac(self): - _locals = {"self": self} - self.locals["dna_iupac"] = _locals - _G_apply_810, lastError = self._apply(self.rule_anything, "anything", []) - self.considerError(lastError, "dna_iupac") - _locals["x"] = _G_apply_810 - def _G_pred_811(): - _G_python_813, lastError = eval(self._G_expr_812, self.globals, _locals), None - self.considerError(lastError, None) - return (_G_python_813, self.currentError) + def rule_dna_iupac(self): + _locals = {'self': self} + self.locals['dna_iupac'] = _locals + _G_apply_837, lastError = self._apply(self.rule_anything, "anything", []) + self.considerError(lastError, 'dna_iupac') + _locals['x'] = _G_apply_837 + def _G_pred_838(): + _G_python_840, lastError = eval(self._G_expr_839, self.globals, _locals), None + self.considerError(lastError, None) + return (_G_python_840, self.currentError) + _G_pred_841, lastError = self.pred(_G_pred_838) + self.considerError(lastError, 'dna_iupac') + _G_python_842, lastError = eval(self._G_expr_765, self.globals, _locals), None + self.considerError(lastError, 'dna_iupac') + return (_G_python_842, self.currentError) - _G_pred_814, lastError = self.pred(_G_pred_811) - self.considerError(lastError, "dna_iupac") - _G_python_815, lastError = eval(self._G_expr_738, self.globals, _locals), None - self.considerError(lastError, "dna_iupac") - return (_G_python_815, self.currentError) def rule_na_iupac(self): - _locals = {"self": self} - self.locals["na_iupac"] = _locals - _G_apply_816, lastError = self._apply(self.rule_anything, "anything", []) - self.considerError(lastError, "na_iupac") - _locals["x"] = _G_apply_816 - - def _G_pred_817(): - _G_python_819, lastError = eval(self._G_expr_818, self.globals, _locals), None - self.considerError(lastError, None) - return (_G_python_819, self.currentError) + _locals = {'self': self} + self.locals['na_iupac'] = _locals + _G_apply_843, lastError = self._apply(self.rule_anything, "anything", []) + self.considerError(lastError, 'na_iupac') + _locals['x'] = _G_apply_843 + def _G_pred_844(): + _G_python_846, lastError = eval(self._G_expr_845, self.globals, _locals), None + self.considerError(lastError, None) + return (_G_python_846, self.currentError) + _G_pred_847, lastError = self.pred(_G_pred_844) + self.considerError(lastError, 'na_iupac') + _G_python_848, lastError = eval(self._G_expr_765, self.globals, _locals), None + self.considerError(lastError, 'na_iupac') + return (_G_python_848, self.currentError) - _G_pred_820, lastError = self.pred(_G_pred_817) - self.considerError(lastError, "na_iupac") - _G_python_821, lastError = eval(self._G_expr_738, self.globals, _locals), None - self.considerError(lastError, "na_iupac") - return (_G_python_821, self.currentError) def rule_rna(self): - _locals = {"self": self} - self.locals["rna"] = _locals - self._trace("", (12033, 12043), self.input.position) - _G_apply_822, lastError = self._apply(self.rule_rna_iupac, "rna_iupac", []) - self.considerError(lastError, "rna") - return (_G_apply_822, self.currentError) + _locals = {'self': self} + self.locals['rna'] = _locals + self._trace('', (12621, 12631), self.input.position) + _G_apply_849, lastError = self._apply(self.rule_rna_iupac, "rna_iupac", []) + self.considerError(lastError, 'rna') + return (_G_apply_849, self.currentError) - def rule_rna_iupac(self): - _locals = {"self": self} - self.locals["rna_iupac"] = _locals - _G_apply_823, lastError = self._apply(self.rule_anything, "anything", []) - self.considerError(lastError, "rna_iupac") - _locals["x"] = _G_apply_823 - def _G_pred_824(): - _G_python_826, lastError = eval(self._G_expr_825, self.globals, _locals), None - self.considerError(lastError, None) - return (_G_python_826, self.currentError) + def rule_rna_iupac(self): + _locals = {'self': self} + self.locals['rna_iupac'] = _locals + _G_apply_850, lastError = self._apply(self.rule_anything, "anything", []) + self.considerError(lastError, 'rna_iupac') + _locals['x'] = _G_apply_850 + def _G_pred_851(): + _G_python_853, lastError = eval(self._G_expr_852, self.globals, _locals), None + self.considerError(lastError, None) + return (_G_python_853, self.currentError) + _G_pred_854, lastError = self.pred(_G_pred_851) + self.considerError(lastError, 'rna_iupac') + _G_python_855, lastError = eval(self._G_expr_765, self.globals, _locals), None + self.considerError(lastError, 'rna_iupac') + return (_G_python_855, self.currentError) - _G_pred_827, lastError = self.pred(_G_pred_824) - self.considerError(lastError, "rna_iupac") - _G_python_828, lastError = eval(self._G_expr_738, self.globals, _locals), None - self.considerError(lastError, "rna_iupac") - return (_G_python_828, self.currentError) def rule_term1(self): - _locals = {"self": self} - self.locals["term1"] = _locals - _G_apply_829, lastError = self._apply(self.rule_anything, "anything", []) - self.considerError(lastError, "term1") - _locals["x"] = _G_apply_829 + _locals = {'self': self} + self.locals['term1'] = _locals + _G_apply_856, lastError = self._apply(self.rule_anything, "anything", []) + self.considerError(lastError, 'term1') + _locals['x'] = _G_apply_856 + def _G_pred_857(): + _G_python_859, lastError = eval(self._G_expr_858, self.globals, _locals), None + self.considerError(lastError, None) + return (_G_python_859, self.currentError) + _G_pred_860, lastError = self.pred(_G_pred_857) + self.considerError(lastError, 'term1') + _G_python_861, lastError = eval(self._G_expr_765, self.globals, _locals), None + self.considerError(lastError, 'term1') + return (_G_python_861, self.currentError) - def _G_pred_830(): - _G_python_832, lastError = eval(self._G_expr_831, self.globals, _locals), None - self.considerError(lastError, None) - return (_G_python_832, self.currentError) - - _G_pred_833, lastError = self.pred(_G_pred_830) - self.considerError(lastError, "term1") - _G_python_834, lastError = eval(self._G_expr_738, self.globals, _locals), None - self.considerError(lastError, "term1") - return (_G_python_834, self.currentError) def rule_term13(self): - _locals = {"self": self} - self.locals["term13"] = _locals - - def _G_or_835(): - self._trace("", (12142, 12148), self.input.position) - _G_apply_836, lastError = self._apply(self.rule_term3, "term3", []) + _locals = {'self': self} + self.locals['term13'] = _locals + def _G_or_862(): + self._trace('', (12730, 12736), self.input.position) + _G_apply_863, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) - return (_G_apply_836, self.currentError) - - def _G_or_837(): - self._trace("", (12150, 12156), self.input.position) - _G_apply_838, lastError = self._apply(self.rule_term1, "term1", []) + return (_G_apply_863, self.currentError) + def _G_or_864(): + self._trace('', (12738, 12744), self.input.position) + _G_apply_865, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) - return (_G_apply_838, self.currentError) + return (_G_apply_865, self.currentError) + _G_or_866, lastError = self._or([_G_or_862, _G_or_864]) + self.considerError(lastError, 'term13') + return (_G_or_866, self.currentError) - _G_or_839, lastError = self._or([_G_or_835, _G_or_837]) - self.considerError(lastError, "term13") - return (_G_or_839, self.currentError) def rule_term3(self): - _locals = {"self": self} - self.locals["term3"] = _locals - self._trace("", (12164, 12170), self.input.position) - _G_exactly_840, lastError = self.exactly("Ter") - self.considerError(lastError, "term3") - return (_G_exactly_840, self.currentError) + _locals = {'self': self} + self.locals['term3'] = _locals + self._trace('', (12752, 12758), self.input.position) + _G_exactly_867, lastError = self.exactly('Ter') + self.considerError(lastError, 'term3') + return (_G_exactly_867, self.currentError) + def rule_base(self): - _locals = {"self": self} - self.locals["base"] = _locals - self._trace("", (12254, 12259), self.input.position) - _G_apply_841, lastError = self._apply(self.rule_snum, "snum", []) - self.considerError(lastError, "base") - return (_G_apply_841, self.currentError) + _locals = {'self': self} + self.locals['base'] = _locals + self._trace('', (12842, 12847), self.input.position) + _G_apply_868, lastError = self._apply(self.rule_snum, "snum", []) + self.considerError(lastError, 'base') + return (_G_apply_868, self.currentError) - def rule_nnum(self): - _locals = {"self": self} - self.locals["nnum"] = _locals - def _G_consumedby_842(): - self._trace("", (12268, 12271), self.input.position) - _G_exactly_843, lastError = self.exactly("-") + def rule_nnum(self): + _locals = {'self': self} + self.locals['nnum'] = _locals + def _G_consumedby_869(): + self._trace('', (12856, 12859), self.input.position) + _G_exactly_870, lastError = self.exactly('-') self.considerError(lastError, None) - self._trace("", (12271, 12275), self.input.position) - _G_apply_844, lastError = self._apply(self.rule_num, "num", []) + self._trace('', (12859, 12863), self.input.position) + _G_apply_871, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) - return (_G_apply_844, self.currentError) + return (_G_apply_871, self.currentError) + _G_consumedby_872, lastError = self.consumedby(_G_consumedby_869) + self.considerError(lastError, 'nnum') + _locals['x'] = _G_consumedby_872 + _G_python_874, lastError = eval(self._G_expr_873, self.globals, _locals), None + self.considerError(lastError, 'nnum') + return (_G_python_874, self.currentError) - _G_consumedby_845, lastError = self.consumedby(_G_consumedby_842) - self.considerError(lastError, "nnum") - _locals["x"] = _G_consumedby_845 - _G_python_847, lastError = eval(self._G_expr_846, self.globals, _locals), None - self.considerError(lastError, "nnum") - return (_G_python_847, self.currentError) def rule_num(self): - _locals = {"self": self} - self.locals["num"] = _locals - - def _G_consumedby_848(): - def _G_many1_849(): - self._trace("", (12296, 12301), self.input.position) - _G_apply_850, lastError = self._apply(self.rule_digit, "digit", []) + _locals = {'self': self} + self.locals['num'] = _locals + def _G_consumedby_875(): + def _G_many1_876(): + self._trace('', (12884, 12889), self.input.position) + _G_apply_877, lastError = self._apply(self.rule_digit, "digit", []) self.considerError(lastError, None) - return (_G_apply_850, self.currentError) - - _G_many1_851, lastError = self.many(_G_many1_849, _G_many1_849()) + return (_G_apply_877, self.currentError) + _G_many1_878, lastError = self.many(_G_many1_876, _G_many1_876()) self.considerError(lastError, None) - return (_G_many1_851, self.currentError) + return (_G_many1_878, self.currentError) + _G_consumedby_879, lastError = self.consumedby(_G_consumedby_875) + self.considerError(lastError, 'num') + _locals['x'] = _G_consumedby_879 + _G_python_880, lastError = eval(self._G_expr_873, self.globals, _locals), None + self.considerError(lastError, 'num') + return (_G_python_880, self.currentError) - _G_consumedby_852, lastError = self.consumedby(_G_consumedby_848) - self.considerError(lastError, "num") - _locals["x"] = _G_consumedby_852 - _G_python_853, lastError = eval(self._G_expr_846, self.globals, _locals), None - self.considerError(lastError, "num") - return (_G_python_853, self.currentError) def rule_offset(self): - _locals = {"self": self} - self.locals["offset"] = _locals - - def _G_or_854(): - self._trace("", (12324, 12329), self.input.position) - _G_apply_855, lastError = self._apply(self.rule_snum, "snum", []) + _locals = {'self': self} + self.locals['offset'] = _locals + def _G_or_881(): + self._trace('', (12912, 12917), self.input.position) + _G_apply_882, lastError = self._apply(self.rule_snum, "snum", []) self.considerError(lastError, None) - return (_G_apply_855, self.currentError) - - def _G_or_856(): - _G_python_857, lastError = (0), None + return (_G_apply_882, self.currentError) + def _G_or_883(): + _G_python_884, lastError = (0), None self.considerError(lastError, None) - return (_G_python_857, self.currentError) + return (_G_python_884, self.currentError) + _G_or_885, lastError = self._or([_G_or_881, _G_or_883]) + self.considerError(lastError, 'offset') + return (_G_or_885, self.currentError) - _G_or_858, lastError = self._or([_G_or_854, _G_or_856]) - self.considerError(lastError, "offset") - return (_G_or_858, self.currentError) def rule_pm(self): - _locals = {"self": self} - self.locals["pm"] = _locals - _G_apply_859, lastError = self._apply(self.rule_anything, "anything", []) - self.considerError(lastError, "pm") - _locals["x"] = _G_apply_859 + _locals = {'self': self} + self.locals['pm'] = _locals + _G_apply_886, lastError = self._apply(self.rule_anything, "anything", []) + self.considerError(lastError, 'pm') + _locals['x'] = _G_apply_886 + def _G_pred_887(): + _G_python_889, lastError = eval(self._G_expr_888, self.globals, _locals), None + self.considerError(lastError, None) + return (_G_python_889, self.currentError) + _G_pred_890, lastError = self.pred(_G_pred_887) + self.considerError(lastError, 'pm') + _G_python_891, lastError = eval(self._G_expr_765, self.globals, _locals), None + self.considerError(lastError, 'pm') + return (_G_python_891, self.currentError) - def _G_pred_860(): - _G_python_862, lastError = eval(self._G_expr_861, self.globals, _locals), None - self.considerError(lastError, None) - return (_G_python_862, self.currentError) - - _G_pred_863, lastError = self.pred(_G_pred_860) - self.considerError(lastError, "pm") - _G_python_864, lastError = eval(self._G_expr_738, self.globals, _locals), None - self.considerError(lastError, "pm") - return (_G_python_864, self.currentError) def rule_snum(self): - _locals = {"self": self} - self.locals["snum"] = _locals - - def _G_consumedby_865(): - def _G_optional_866(): - self._trace("", (12373, 12375), self.input.position) - _G_apply_867, lastError = self._apply(self.rule_pm, "pm", []) + _locals = {'self': self} + self.locals['snum'] = _locals + def _G_consumedby_892(): + def _G_optional_893(): + self._trace('', (12961, 12963), self.input.position) + _G_apply_894, lastError = self._apply(self.rule_pm, "pm", []) self.considerError(lastError, None) - return (_G_apply_867, self.currentError) - - def _G_optional_868(): + return (_G_apply_894, self.currentError) + def _G_optional_895(): return (None, self.input.nullError()) - - _G_or_869, lastError = self._or([_G_optional_866, _G_optional_868]) + _G_or_896, lastError = self._or([_G_optional_893, _G_optional_895]) self.considerError(lastError, None) - self._trace("", (12376, 12380), self.input.position) - _G_apply_870, lastError = self._apply(self.rule_num, "num", []) + self._trace('', (12964, 12968), self.input.position) + _G_apply_897, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) - return (_G_apply_870, self.currentError) + return (_G_apply_897, self.currentError) + _G_consumedby_898, lastError = self.consumedby(_G_consumedby_892) + self.considerError(lastError, 'snum') + _locals['x'] = _G_consumedby_898 + _G_python_899, lastError = eval(self._G_expr_873, self.globals, _locals), None + self.considerError(lastError, 'snum') + return (_G_python_899, self.currentError) - _G_consumedby_871, lastError = self.consumedby(_G_consumedby_865) - self.considerError(lastError, "snum") - _locals["x"] = _G_consumedby_871 - _G_python_872, lastError = eval(self._G_expr_846, self.globals, _locals), None - self.considerError(lastError, "snum") - return (_G_python_872, self.currentError) def rule_accn(self): - _locals = {"self": self} - self.locals["accn"] = _locals - - def _G_consumedby_873(): - self._trace("", (12484, 12490), self.input.position) - _G_apply_874, lastError = self._apply(self.rule_letter, "letter", []) - self.considerError(lastError, None) - - def _G_optional_875(): - def _G_many1_876(): - def _G_or_877(): - self._trace("", (12493, 12506), self.input.position) - _G_apply_878, lastError = self._apply( - self.rule_letterOrDigit, "letterOrDigit", [] - ) + _locals = {'self': self} + self.locals['accn'] = _locals + def _G_consumedby_900(): + self._trace('', (13072, 13078), self.input.position) + _G_apply_901, lastError = self._apply(self.rule_letter, "letter", []) + self.considerError(lastError, None) + def _G_optional_902(): + def _G_many1_903(): + def _G_or_904(): + self._trace('', (13081, 13094), self.input.position) + _G_apply_905, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) self.considerError(lastError, None) - return (_G_apply_878, self.currentError) - - def _G_or_879(): - def _G_or_880(): - self._trace("", (12510, 12513), self.input.position) - _G_exactly_881, lastError = self.exactly("-") + return (_G_apply_905, self.currentError) + def _G_or_906(): + def _G_or_907(): + self._trace('', (13098, 13101), self.input.position) + _G_exactly_908, lastError = self.exactly('-') self.considerError(lastError, None) - return (_G_exactly_881, self.currentError) - - def _G_or_882(): - self._trace("", (12514, 12517), self.input.position) - _G_exactly_883, lastError = self.exactly("_") + return (_G_exactly_908, self.currentError) + def _G_or_909(): + self._trace('', (13102, 13105), self.input.position) + _G_exactly_910, lastError = self.exactly('_') self.considerError(lastError, None) - return (_G_exactly_883, self.currentError) - - _G_or_884, lastError = self._or([_G_or_880, _G_or_882]) + return (_G_exactly_910, self.currentError) + _G_or_911, lastError = self._or([_G_or_907, _G_or_909]) self.considerError(lastError, None) - - def _G_lookahead_885(): - self._trace("", (12521, 12534), self.input.position) - _G_apply_886, lastError = self._apply( - self.rule_letterOrDigit, "letterOrDigit", [] - ) + def _G_lookahead_912(): + self._trace('', (13109, 13122), self.input.position) + _G_apply_913, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) self.considerError(lastError, None) - return (_G_apply_886, self.currentError) - - _G_lookahead_887, lastError = self.lookahead(_G_lookahead_885) + return (_G_apply_913, self.currentError) + _G_lookahead_914, lastError = self.lookahead(_G_lookahead_912) self.considerError(lastError, None) - return (_G_lookahead_887, self.currentError) - - _G_or_888, lastError = self._or([_G_or_877, _G_or_879]) + return (_G_lookahead_914, self.currentError) + _G_or_915, lastError = self._or([_G_or_904, _G_or_906]) self.considerError(lastError, None) - return (_G_or_888, self.currentError) - - _G_many1_889, lastError = self.many(_G_many1_876, _G_many1_876()) + return (_G_or_915, self.currentError) + _G_many1_916, lastError = self.many(_G_many1_903, _G_many1_903()) self.considerError(lastError, None) - return (_G_many1_889, self.currentError) - - def _G_optional_890(): + return (_G_many1_916, self.currentError) + def _G_optional_917(): return (None, self.input.nullError()) - - _G_or_891, lastError = self._or([_G_optional_875, _G_optional_890]) + _G_or_918, lastError = self._or([_G_optional_902, _G_optional_917]) self.considerError(lastError, None) - - def _G_optional_892(): - self._trace("", (12540, 12543), self.input.position) - _G_exactly_893, lastError = self.exactly(".") + def _G_optional_919(): + self._trace('', (13128, 13131), self.input.position) + _G_exactly_920, lastError = self.exactly('.') self.considerError(lastError, None) - - def _G_many1_894(): - self._trace("", (12543, 12549), self.input.position) - _G_apply_895, lastError = self._apply(self.rule_digit, "digit", []) + def _G_many1_921(): + self._trace('', (13131, 13137), self.input.position) + _G_apply_922, lastError = self._apply(self.rule_digit, "digit", []) self.considerError(lastError, None) - return (_G_apply_895, self.currentError) - - _G_many1_896, lastError = self.many(_G_many1_894, _G_many1_894()) + return (_G_apply_922, self.currentError) + _G_many1_923, lastError = self.many(_G_many1_921, _G_many1_921()) self.considerError(lastError, None) - return (_G_many1_896, self.currentError) - - def _G_optional_897(): + return (_G_many1_923, self.currentError) + def _G_optional_924(): return (None, self.input.nullError()) - - _G_or_898, lastError = self._or([_G_optional_892, _G_optional_897]) + _G_or_925, lastError = self._or([_G_optional_919, _G_optional_924]) self.considerError(lastError, None) - return (_G_or_898, self.currentError) + return (_G_or_925, self.currentError) + _G_consumedby_926, lastError = self.consumedby(_G_consumedby_900) + self.considerError(lastError, 'accn') + return (_G_consumedby_926, self.currentError) - _G_consumedby_899, lastError = self.consumedby(_G_consumedby_873) - self.considerError(lastError, "accn") - return (_G_consumedby_899, self.currentError) def rule_opt_gene_expr(self): - _locals = {"self": self} - self.locals["opt_gene_expr"] = _locals - - def _G_or_900(): - self._trace("", (12571, 12581), self.input.position) - _G_apply_901, lastError = self._apply(self.rule_paren_gene, "paren_gene", []) + _locals = {'self': self} + self.locals['opt_gene_expr'] = _locals + def _G_or_927(): + self._trace('', (13159, 13169), self.input.position) + _G_apply_928, lastError = self._apply(self.rule_paren_gene, "paren_gene", []) self.considerError(lastError, None) - return (_G_apply_901, self.currentError) - - def _G_or_902(): - _G_python_903, lastError = (None), None + return (_G_apply_928, self.currentError) + def _G_or_929(): + _G_python_930, lastError = (None), None self.considerError(lastError, None) - return (_G_python_903, self.currentError) + return (_G_python_930, self.currentError) + _G_or_931, lastError = self._or([_G_or_927, _G_or_929]) + self.considerError(lastError, 'opt_gene_expr') + _locals['gene'] = _G_or_931 + _G_python_933, lastError = eval(self._G_expr_932, self.globals, _locals), None + self.considerError(lastError, 'opt_gene_expr') + return (_G_python_933, self.currentError) - _G_or_904, lastError = self._or([_G_or_900, _G_or_902]) - self.considerError(lastError, "opt_gene_expr") - _locals["gene"] = _G_or_904 - _G_python_906, lastError = eval(self._G_expr_905, self.globals, _locals), None - self.considerError(lastError, "opt_gene_expr") - return (_G_python_906, self.currentError) def rule_paren_gene(self): - _locals = {"self": self} - self.locals["paren_gene"] = _locals - self._trace("", (12617, 12621), self.input.position) - _G_exactly_907, lastError = self.exactly("(") - self.considerError(lastError, "paren_gene") - self._trace("", (12621, 12633), self.input.position) - _G_apply_908, lastError = self._apply(self.rule_gene_symbol, "gene_symbol", []) - self.considerError(lastError, "paren_gene") - _locals["symbol"] = _G_apply_908 - self._trace("", (12640, 12644), self.input.position) - _G_exactly_909, lastError = self.exactly(")") - self.considerError(lastError, "paren_gene") - _G_python_911, lastError = eval(self._G_expr_910, self.globals, _locals), None - self.considerError(lastError, "paren_gene") - return (_G_python_911, self.currentError) + _locals = {'self': self} + self.locals['paren_gene'] = _locals + self._trace('', (13205, 13209), self.input.position) + _G_exactly_934, lastError = self.exactly('(') + self.considerError(lastError, 'paren_gene') + self._trace('', (13209, 13221), self.input.position) + _G_apply_935, lastError = self._apply(self.rule_gene_symbol, "gene_symbol", []) + self.considerError(lastError, 'paren_gene') + _locals['symbol'] = _G_apply_935 + self._trace('', (13228, 13232), self.input.position) + _G_exactly_936, lastError = self.exactly(')') + self.considerError(lastError, 'paren_gene') + _G_python_938, lastError = eval(self._G_expr_937, self.globals, _locals), None + self.considerError(lastError, 'paren_gene') + return (_G_python_938, self.currentError) - def rule_gene_symbol(self): - _locals = {"self": self} - self.locals["gene_symbol"] = _locals - def _G_consumedby_912(): - self._trace("", (12670, 12676), self.input.position) - _G_apply_913, lastError = self._apply(self.rule_letter, "letter", []) - self.considerError(lastError, None) - - def _G_many1_914(): - def _G_or_915(): - self._trace("", (12678, 12691), self.input.position) - _G_apply_916, lastError = self._apply( - self.rule_letterOrDigit, "letterOrDigit", [] - ) + def rule_gene_symbol(self): + _locals = {'self': self} + self.locals['gene_symbol'] = _locals + def _G_consumedby_939(): + self._trace('', (13258, 13264), self.input.position) + _G_apply_940, lastError = self._apply(self.rule_letter, "letter", []) + self.considerError(lastError, None) + def _G_many1_941(): + def _G_or_942(): + self._trace('', (13266, 13279), self.input.position) + _G_apply_943, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) self.considerError(lastError, None) - return (_G_apply_916, self.currentError) - - def _G_or_917(): - def _G_or_918(): - self._trace("", (12695, 12698), self.input.position) - _G_exactly_919, lastError = self.exactly("-") + return (_G_apply_943, self.currentError) + def _G_or_944(): + def _G_or_945(): + self._trace('', (13283, 13286), self.input.position) + _G_exactly_946, lastError = self.exactly('-') self.considerError(lastError, None) - return (_G_exactly_919, self.currentError) - - def _G_or_920(): - self._trace("", (12699, 12702), self.input.position) - _G_exactly_921, lastError = self.exactly("_") + return (_G_exactly_946, self.currentError) + def _G_or_947(): + self._trace('', (13287, 13290), self.input.position) + _G_exactly_948, lastError = self.exactly('_') self.considerError(lastError, None) - return (_G_exactly_921, self.currentError) - - _G_or_922, lastError = self._or([_G_or_918, _G_or_920]) + return (_G_exactly_948, self.currentError) + _G_or_949, lastError = self._or([_G_or_945, _G_or_947]) self.considerError(lastError, None) - - def _G_lookahead_923(): - self._trace("", (12706, 12719), self.input.position) - _G_apply_924, lastError = self._apply( - self.rule_letterOrDigit, "letterOrDigit", [] - ) + def _G_lookahead_950(): + self._trace('', (13294, 13307), self.input.position) + _G_apply_951, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) self.considerError(lastError, None) - return (_G_apply_924, self.currentError) - - _G_lookahead_925, lastError = self.lookahead(_G_lookahead_923) + return (_G_apply_951, self.currentError) + _G_lookahead_952, lastError = self.lookahead(_G_lookahead_950) self.considerError(lastError, None) - return (_G_lookahead_925, self.currentError) - - _G_or_926, lastError = self._or([_G_or_915, _G_or_917]) + return (_G_lookahead_952, self.currentError) + _G_or_953, lastError = self._or([_G_or_942, _G_or_944]) self.considerError(lastError, None) - return (_G_or_926, self.currentError) - - _G_many1_927, lastError = self.many(_G_many1_914, _G_many1_914()) - self.considerError(lastError, None) - return (_G_many1_927, self.currentError) - - _G_consumedby_928, lastError = self.consumedby(_G_consumedby_912) - self.considerError(lastError, "gene_symbol") - return (_G_consumedby_928, self.currentError) - - _G_expr_20 = compile( - "hgvs.sequencevariant.SequenceVariant(ac=ac, gene=gene, type=type, posedit=posedit)", - "", - "eval", - ) - _G_expr_76 = compile( - "hgvs.hgvsposition.HGVSPosition(ac=ac, gene=gene, type=type, pos=pos)", - "", - "eval", - ) - _G_expr_116 = compile( - "hgvs.sequencevariant.SequenceVariant(None,type,posedit)", "", "eval" - ) - _G_expr_140 = compile("hgvs.posedit.PosEdit(pos=pos,edit=edit)", "", "eval") - _G_expr_160 = compile( - "hgvs.posedit.PosEdit(pos=pos,edit=edit, uncertain=True)", "", "eval" - ) - _G_expr_178 = compile( - "hgvs.posedit.PosEdit(pos=None,edit=x,uncertain=False)", "", "eval" - ) - _G_expr_184 = compile( - "hgvs.posedit.PosEdit(pos=None,edit=x,uncertain=True)", "", "eval" - ) - _G_expr_203 = compile("edit._set_uncertain()", "", "eval") - _G_expr_231 = compile("hgvs.edit.NARefAlt(ref=ref,alt=ref)", "", "eval") - _G_expr_236 = compile("hgvs.edit.NARefAlt(ref=ref,alt=alt)", "", "eval") - _G_expr_269 = compile("hgvs.edit.NARefAlt(ref=ref,alt=None)", "", "eval") - _G_expr_277 = compile("hgvs.edit.NARefAlt(ref=None,alt=alt)", "", "eval") - _G_expr_285 = compile("hgvs.edit.Dup(ref=ref)", "", "eval") - _G_expr_299 = compile("hgvs.edit.Inv(ref=None)", "", "eval") - _G_expr_303 = compile( - "hgvs.edit.Conv(from_ac=pos.ac, from_type=pos.type, from_pos=pos.pos)", - "", - "eval", - ) - _G_expr_307 = compile("hgvs.edit.NACopy(copy=n)", "", "eval") - _G_expr_437 = compile("hgvs.edit.AASub(ref='',alt=alt)", "", "eval") - _G_expr_441 = compile("hgvs.edit.AARefAlt(ref='',alt=alt)", "", "eval") - _G_expr_444 = compile("hgvs.edit.AARefAlt(ref='',alt=None)", "", "eval") - _G_expr_448 = compile("hgvs.edit.AARefAlt(ref=None,alt=alt)", "", "eval") - _G_expr_451 = compile("hgvs.edit.Dup(ref='')", "", "eval") - _G_expr_459 = compile("hgvs.edit.AAFs(ref='', alt=alt, length=length)", "", "eval") - _G_expr_466 = compile( - "hgvs.edit.AAExt(ref='', alt=alt, aaterm=aaterm, length=length)", "", "eval" - ) - _G_expr_469 = compile("hgvs.edit.AARefAlt(ref='',alt='')", "", "eval") - _G_expr_477 = compile("iv._set_uncertain()", "", "eval") - _G_expr_524 = compile("hgvs.location.Interval(start,end)", "", "eval") - _G_expr_528 = compile( - "hgvs.location.Interval(start,copy.deepcopy(start))", "", "eval" - ) - _G_expr_562 = compile("hgvs.location.BaseOffsetInterval(start,end)", "", "eval") - _G_expr_566 = compile( - "hgvs.location.BaseOffsetInterval(start,copy.deepcopy(start))", "", "eval" - ) - _G_expr_587 = compile( - "hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.CDS_START)", - "", - "eval", - ) - _G_expr_593 = compile( - "hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.CDS_END)", - "", - "eval", - ) - _G_expr_602 = compile("hgvs.location.SimplePosition(pos)", "", "eval") - _G_expr_613 = compile( - "hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.SEQ_START)", - "", - "eval", - ) - _G_expr_621 = compile( - "hgvs.location.AAPosition(pos,bioutils.sequences.aa_to_aa1(aa))", "", "eval" - ) - _G_expr_632 = compile("n", "", "eval") - _G_expr_640 = compile("(aat, n)", "", "eval") - _G_expr_735 = compile("x in 'ACDEFGHIKLMNPQRSTVWYBZXU'", "", "eval") - _G_expr_738 = compile("x", "", "eval") - _G_expr_812 = compile("x in 'ACGTRYMKWSBDHVNacgtrymkwsbdhvn'", "", "eval") - _G_expr_818 = compile("x in 'ACGTURYMKWSBDHVNacgturymkwsbdhvn'", "", "eval") - _G_expr_825 = compile("x in 'ACGURYMKWSBDHVNacgurymkwsbdhvn'", "", "eval") - _G_expr_831 = compile("x in 'X*'", "", "eval") - _G_expr_846 = compile("int(x)", "", "eval") - _G_expr_861 = compile("x in '-+'", "", "eval") - _G_expr_905 = compile("gene", "", "eval") - _G_expr_910 = compile("symbol", "", "eval") - + return (_G_or_953, self.currentError) + _G_many1_954, lastError = self.many(_G_many1_941, _G_many1_941()) + self.considerError(lastError, None) + return (_G_many1_954, self.currentError) + _G_consumedby_955, lastError = self.consumedby(_G_consumedby_939) + self.considerError(lastError, 'gene_symbol') + return (_G_consumedby_955, self.currentError) + + + _G_expr_20 = compile('hgvs.sequencevariant.SequenceVariant(ac=ac, gene=gene, type=type, posedit=posedit)', '', 'eval') + _G_expr_76 = compile('hgvs.hgvsposition.HGVSPosition(ac=ac, gene=gene, type=type, pos=pos)', '', 'eval') + _G_expr_116 = compile('hgvs.sequencevariant.SequenceVariant(None,type,posedit)', '', 'eval') + _G_expr_140 = compile('hgvs.posedit.PosEdit(pos=pos,edit=edit)', '', 'eval') + _G_expr_160 = compile('hgvs.posedit.PosEdit(pos=pos,edit=edit, uncertain=True)', '', 'eval') + _G_expr_178 = compile('hgvs.posedit.PosEdit(pos=None,edit=x,uncertain=False)', '', 'eval') + _G_expr_184 = compile('hgvs.posedit.PosEdit(pos=None,edit=x,uncertain=True)', '', 'eval') + _G_expr_203 = compile('edit._set_uncertain()', '', 'eval') + _G_expr_231 = compile('hgvs.edit.NARefAlt(ref=ref,alt=ref)', '', 'eval') + _G_expr_236 = compile('hgvs.edit.NARefAlt(ref=ref,alt=alt)', '', 'eval') + _G_expr_269 = compile('hgvs.edit.NARefAlt(ref=ref,alt=None)', '', 'eval') + _G_expr_277 = compile('hgvs.edit.NARefAlt(ref=None,alt=alt)', '', 'eval') + _G_expr_285 = compile('hgvs.edit.Dup(ref=ref)', '', 'eval') + _G_expr_299 = compile('hgvs.edit.Inv(ref=None)', '', 'eval') + _G_expr_303 = compile('hgvs.edit.Conv(from_ac=pos.ac, from_type=pos.type, from_pos=pos.pos)', '', 'eval') + _G_expr_307 = compile('hgvs.edit.NACopy(copy=n)', '', 'eval') + _G_expr_437 = compile("hgvs.edit.AASub(ref='',alt=alt)", '', 'eval') + _G_expr_441 = compile("hgvs.edit.AARefAlt(ref='',alt=alt)", '', 'eval') + _G_expr_444 = compile("hgvs.edit.AARefAlt(ref='',alt=None)", '', 'eval') + _G_expr_448 = compile('hgvs.edit.AARefAlt(ref=None,alt=alt)', '', 'eval') + _G_expr_451 = compile("hgvs.edit.Dup(ref='')", '', 'eval') + _G_expr_459 = compile("hgvs.edit.AAFs(ref='', alt=alt, length=length)", '', 'eval') + _G_expr_466 = compile("hgvs.edit.AAExt(ref='', alt=alt, aaterm=aaterm, length=length)", '', 'eval') + _G_expr_469 = compile("hgvs.edit.AARefAlt(ref='',alt='')", '', 'eval') + _G_expr_477 = compile('iv._set_uncertain()', '', 'eval') + _G_expr_526 = compile('hgvs.location.Interval(start,end)', '', 'eval') + _G_expr_530 = compile('hgvs.location.Interval(start,copy.deepcopy(start))', '', 'eval') + _G_expr_564 = compile('hgvs.location.BaseOffsetInterval(start,end)', '', 'eval') + _G_expr_568 = compile('hgvs.location.BaseOffsetInterval(start,copy.deepcopy(start))', '', 'eval') + _G_expr_588 = compile('hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end._set_uncertain())', '', 'eval') + _G_expr_614 = compile('hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.CDS_START)', '', 'eval') + _G_expr_620 = compile('hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.CDS_END)', '', 'eval') + _G_expr_629 = compile('hgvs.location.SimplePosition(pos)', '', 'eval') + _G_expr_640 = compile('hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.SEQ_START)', '', 'eval') + _G_expr_648 = compile('hgvs.location.AAPosition(pos,bioutils.sequences.aa_to_aa1(aa))', '', 'eval') + _G_expr_659 = compile('n', '', 'eval') + _G_expr_667 = compile('(aat, n)', '', 'eval') + _G_expr_762 = compile("x in 'ACDEFGHIKLMNPQRSTVWYBZXU'", '', 'eval') + _G_expr_765 = compile('x', '', 'eval') + _G_expr_839 = compile("x in 'ACGTRYMKWSBDHVNacgtrymkwsbdhvn'", '', 'eval') + _G_expr_845 = compile("x in 'ACGTURYMKWSBDHVNacgturymkwsbdhvn'", '', 'eval') + _G_expr_852 = compile("x in 'ACGURYMKWSBDHVNacgurymkwsbdhvn'", '', 'eval') + _G_expr_858 = compile("x in 'X*'", '', 'eval') + _G_expr_873 = compile('int(x)', '', 'eval') + _G_expr_888 = compile("x in '-+'", '', 'eval') + _G_expr_932 = compile('gene', '', 'eval') + _G_expr_937 = compile('symbol', '', 'eval') if Grammar.globals is not None: Grammar.globals = Grammar.globals.copy() Grammar.globals.update(ruleGlobals) else: Grammar.globals = ruleGlobals - return Grammar + return Grammar \ No newline at end of file diff --git a/tests/data/grammar_test.tsv b/tests/data/grammar_test.tsv index c1fb1f70..9bd975ef 100644 --- a/tests/data/grammar_test.tsv +++ b/tests/data/grammar_test.tsv @@ -104,6 +104,14 @@ def_c_interval 1_10|1|1+2_10-2 True list def_c_pos 1|11+1|9-3|-1|*10 True list def_c_pos X|11_12|10* False list def_g_interval 2_10|2 True list +def_g_uncertain_interval (1_10)_(21_30) True one +def_g_uncertain_interval (?_10)_(21_?) True one +def_g_uncertain_interval (1_?)_(?_30) True one +def_g_uncertain_interval 1_(21_30) True one +def_g_uncertain_interval (1_10)_21 True one +def_g_uncertain_interval ?_(21_30) True one +def_g_uncertain_interval (1_10)_? True one +def_g_uncertain_interval (1_10)_(21_30)_(41_50) False one def_g_pos 2 True list def_g_pos ? True one def_g_pos A|2?|*1|-2 False list diff --git a/tests/test_hgvs_location.py b/tests/test_hgvs_location.py index a505651c..2e75f2e8 100644 --- a/tests/test_hgvs_location.py +++ b/tests/test_hgvs_location.py @@ -199,6 +199,31 @@ def test_length(self): ) self.assertEqual(ival._length(), 39) + def test_uncertain(self): + def sp(i): return hgvs.location.SimplePosition(i) + ival = hgvs.location.Interval( + hgvs.location.Interval(sp(10), sp(20), uncertain=True), + hgvs.location.Interval(sp(30), sp(40), uncertain=True) + ) + self.assertEqual("(10_20)_(30_40)", str(ival)) + + with self.assertRaises(AssertionError): + str(hgvs.location.Interval( + sp(10), + hgvs.location.Interval(sp(30), sp(40), uncertain=True) + )) + ival3 = hgvs.location.Interval( + hgvs.location.Interval(sp(10), sp(10), uncertain=True), + hgvs.location.Interval(sp(30), sp(40), uncertain=True) + ) + self.assertEqual("10_(30_40)", str(ival3)) + + ival4 = hgvs.location.Interval( + hgvs.location.Interval(sp(10), sp(20), uncertain=True), + hgvs.location.Interval(sp(30), sp(30), uncertain=True) + ) + self.assertEqual("(10_20)_30", str(ival4)) + if __name__ == "__main__": unittest.main() diff --git a/tests/test_hgvs_sequencevariant.py b/tests/test_hgvs_sequencevariant.py index 12ec5704..00ed8360 100644 --- a/tests/test_hgvs_sequencevariant.py +++ b/tests/test_hgvs_sequencevariant.py @@ -97,6 +97,30 @@ def test_format(self): self.assertEqual(str(var), "NM_001166478.1:c.31=") self.assertEqual(var.format(conf={"max_ref_length": None}), "NM_001166478.1:c.31T=") + def test_uncertain(self): + hp = hgvs.parser.Parser() + + vs = "NC_000005.9:g.(90136803_90144453)_(90159675_90261231)dup" + v = hp.parse(vs) + self.assertEqual(vs, str(v)) + self.assertEqual(v.posedit.pos.start.start.base, 90136803) + self.assertEqual(v.posedit.pos.start.end.base, 90144453) + self.assertEqual(v.posedit.pos.end.start.base, 90159675) + self.assertEqual(v.posedit.pos.end.end.base, 90261231) + self.assertEqual(type(v.posedit.edit).__name__, "Dup") + + vs2 = "NC_000009.11:g.(?_108337304)_(108337428_?)del" + v2 = hp.parse(vs2) + self.assertEqual(vs2, str(v2)) + self.assertEqual(v2.posedit.pos.start.start.base, None) + self.assertEqual(v2.posedit.pos.start.uncertain, True) + self.assertEqual(v2.posedit.pos.start.end.base, 108337304) + self.assertEqual(v2.posedit.pos.end.start.base, 108337428) + self.assertEqual(v2.posedit.pos.end.end.base, None) + self.assertEqual(v2.posedit.pos.end.uncertain, True) + self.assertEqual(type(v2.posedit.edit).__name__, "NARefAlt") + + if __name__ == "__main__": unittest.main() From 1f624ad679bd26026bf90a57a290b872a597978d Mon Sep 17 00:00:00 2001 From: Kyle Ferriter Date: Wed, 20 Sep 2023 09:37:22 -0700 Subject: [PATCH 02/25] Rebuild hgvs grammar due to whitespace changes --- src/hgvs/generated/hgvs_grammar.py | 720 ++++++++++++++--------------- 1 file changed, 360 insertions(+), 360 deletions(-) diff --git a/src/hgvs/generated/hgvs_grammar.py b/src/hgvs/generated/hgvs_grammar.py index 26bfc64e..e3c1c258 100644 --- a/src/hgvs/generated/hgvs_grammar.py +++ b/src/hgvs/generated/hgvs_grammar.py @@ -3,7 +3,7 @@ # Changes will be overwritten by the generation script. # Generated by: sbin/generate_parser.py # Grammar file: src/hgvs/_data/hgvs.pymeta -# Grammar hash: 7ea128c4af760e7e198a272b1bc182cb +# Grammar hash: 9391d543da30300646420cd012dbd929 # Parsley version: 1.3 # Python version: 3.11.4 (main, Jul 25 2023, 17:07:07) [Clang 14.0.3 (clang-1403.0.22.14.1)] # -------------------------------------------------- @@ -234,32 +234,32 @@ def rule_hgvs_position(self): _locals = {'self': self} self.locals['hgvs_position'] = _locals def _G_or_57(): - self._trace('', (1919, 1935), self.input.position) + self._trace('', (1920, 1936), self.input.position) _G_apply_58, lastError = self._apply(self.rule_g_hgvs_position, "g_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_58, self.currentError) def _G_or_59(): - self._trace('', (1937, 1953), self.input.position) + self._trace('', (1938, 1954), self.input.position) _G_apply_60, lastError = self._apply(self.rule_m_hgvs_position, "m_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_60, self.currentError) def _G_or_61(): - self._trace('', (1955, 1971), self.input.position) + self._trace('', (1956, 1972), self.input.position) _G_apply_62, lastError = self._apply(self.rule_c_hgvs_position, "c_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_62, self.currentError) def _G_or_63(): - self._trace('', (1973, 1989), self.input.position) + self._trace('', (1974, 1990), self.input.position) _G_apply_64, lastError = self._apply(self.rule_n_hgvs_position, "n_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_64, self.currentError) def _G_or_65(): - self._trace('', (1991, 2007), self.input.position) + self._trace('', (1992, 2008), self.input.position) _G_apply_66, lastError = self._apply(self.rule_r_hgvs_position, "r_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_66, self.currentError) def _G_or_67(): - self._trace('', (2009, 2025), self.input.position) + self._trace('', (2010, 2026), self.input.position) _G_apply_68, lastError = self._apply(self.rule_p_hgvs_position, "p_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_68, self.currentError) @@ -271,25 +271,25 @@ def _G_or_67(): def rule_c_hgvs_position(self): _locals = {'self': self} self.locals['c_hgvs_position'] = _locals - self._trace('', (2044, 2049), self.input.position) + self._trace('', (2045, 2050), self.input.position) _G_apply_70, lastError = self._apply(self.rule_accn, "accn", []) self.considerError(lastError, 'c_hgvs_position') _locals['ac'] = _G_apply_70 - self._trace('', (2052, 2066), self.input.position) + self._trace('', (2053, 2067), self.input.position) _G_apply_71, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) self.considerError(lastError, 'c_hgvs_position') _locals['gene'] = _G_apply_71 - self._trace('', (2071, 2075), self.input.position) + self._trace('', (2072, 2076), self.input.position) _G_exactly_72, lastError = self.exactly(':') self.considerError(lastError, 'c_hgvs_position') - self._trace('', (2075, 2079), self.input.position) + self._trace('', (2076, 2080), self.input.position) _G_exactly_73, lastError = self.exactly('c') self.considerError(lastError, 'c_hgvs_position') _locals['type'] = _G_exactly_73 - self._trace('', (2084, 2088), self.input.position) + self._trace('', (2085, 2089), self.input.position) _G_exactly_74, lastError = self.exactly('.') self.considerError(lastError, 'c_hgvs_position') - self._trace('', (2088, 2099), self.input.position) + self._trace('', (2089, 2100), self.input.position) _G_apply_75, lastError = self._apply(self.rule_c_interval, "c_interval", []) self.considerError(lastError, 'c_hgvs_position') _locals['pos'] = _G_apply_75 @@ -301,25 +301,25 @@ def rule_c_hgvs_position(self): def rule_g_hgvs_position(self): _locals = {'self': self} self.locals['g_hgvs_position'] = _locals - self._trace('', (2193, 2198), self.input.position) + self._trace('', (2194, 2199), self.input.position) _G_apply_78, lastError = self._apply(self.rule_accn, "accn", []) self.considerError(lastError, 'g_hgvs_position') _locals['ac'] = _G_apply_78 - self._trace('', (2201, 2215), self.input.position) + self._trace('', (2202, 2216), self.input.position) _G_apply_79, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) self.considerError(lastError, 'g_hgvs_position') _locals['gene'] = _G_apply_79 - self._trace('', (2220, 2224), self.input.position) + self._trace('', (2221, 2225), self.input.position) _G_exactly_80, lastError = self.exactly(':') self.considerError(lastError, 'g_hgvs_position') - self._trace('', (2224, 2228), self.input.position) + self._trace('', (2225, 2229), self.input.position) _G_exactly_81, lastError = self.exactly('g') self.considerError(lastError, 'g_hgvs_position') _locals['type'] = _G_exactly_81 - self._trace('', (2233, 2237), self.input.position) + self._trace('', (2234, 2238), self.input.position) _G_exactly_82, lastError = self.exactly('.') self.considerError(lastError, 'g_hgvs_position') - self._trace('', (2237, 2248), self.input.position) + self._trace('', (2238, 2249), self.input.position) _G_apply_83, lastError = self._apply(self.rule_g_interval, "g_interval", []) self.considerError(lastError, 'g_hgvs_position') _locals['pos'] = _G_apply_83 @@ -331,25 +331,25 @@ def rule_g_hgvs_position(self): def rule_m_hgvs_position(self): _locals = {'self': self} self.locals['m_hgvs_position'] = _locals - self._trace('', (2342, 2347), self.input.position) + self._trace('', (2343, 2348), self.input.position) _G_apply_85, lastError = self._apply(self.rule_accn, "accn", []) self.considerError(lastError, 'm_hgvs_position') _locals['ac'] = _G_apply_85 - self._trace('', (2350, 2364), self.input.position) + self._trace('', (2351, 2365), self.input.position) _G_apply_86, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) self.considerError(lastError, 'm_hgvs_position') _locals['gene'] = _G_apply_86 - self._trace('', (2369, 2373), self.input.position) + self._trace('', (2370, 2374), self.input.position) _G_exactly_87, lastError = self.exactly(':') self.considerError(lastError, 'm_hgvs_position') - self._trace('', (2373, 2377), self.input.position) + self._trace('', (2374, 2378), self.input.position) _G_exactly_88, lastError = self.exactly('m') self.considerError(lastError, 'm_hgvs_position') _locals['type'] = _G_exactly_88 - self._trace('', (2382, 2386), self.input.position) + self._trace('', (2383, 2387), self.input.position) _G_exactly_89, lastError = self.exactly('.') self.considerError(lastError, 'm_hgvs_position') - self._trace('', (2386, 2397), self.input.position) + self._trace('', (2387, 2398), self.input.position) _G_apply_90, lastError = self._apply(self.rule_m_interval, "m_interval", []) self.considerError(lastError, 'm_hgvs_position') _locals['pos'] = _G_apply_90 @@ -361,25 +361,25 @@ def rule_m_hgvs_position(self): def rule_n_hgvs_position(self): _locals = {'self': self} self.locals['n_hgvs_position'] = _locals - self._trace('', (2491, 2496), self.input.position) + self._trace('', (2492, 2497), self.input.position) _G_apply_92, lastError = self._apply(self.rule_accn, "accn", []) self.considerError(lastError, 'n_hgvs_position') _locals['ac'] = _G_apply_92 - self._trace('', (2499, 2513), self.input.position) + self._trace('', (2500, 2514), self.input.position) _G_apply_93, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) self.considerError(lastError, 'n_hgvs_position') _locals['gene'] = _G_apply_93 - self._trace('', (2518, 2522), self.input.position) + self._trace('', (2519, 2523), self.input.position) _G_exactly_94, lastError = self.exactly(':') self.considerError(lastError, 'n_hgvs_position') - self._trace('', (2522, 2526), self.input.position) + self._trace('', (2523, 2527), self.input.position) _G_exactly_95, lastError = self.exactly('n') self.considerError(lastError, 'n_hgvs_position') _locals['type'] = _G_exactly_95 - self._trace('', (2531, 2535), self.input.position) + self._trace('', (2532, 2536), self.input.position) _G_exactly_96, lastError = self.exactly('.') self.considerError(lastError, 'n_hgvs_position') - self._trace('', (2535, 2546), self.input.position) + self._trace('', (2536, 2547), self.input.position) _G_apply_97, lastError = self._apply(self.rule_n_interval, "n_interval", []) self.considerError(lastError, 'n_hgvs_position') _locals['pos'] = _G_apply_97 @@ -391,25 +391,25 @@ def rule_n_hgvs_position(self): def rule_p_hgvs_position(self): _locals = {'self': self} self.locals['p_hgvs_position'] = _locals - self._trace('', (2640, 2645), self.input.position) + self._trace('', (2641, 2646), self.input.position) _G_apply_99, lastError = self._apply(self.rule_accn, "accn", []) self.considerError(lastError, 'p_hgvs_position') _locals['ac'] = _G_apply_99 - self._trace('', (2648, 2662), self.input.position) + self._trace('', (2649, 2663), self.input.position) _G_apply_100, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) self.considerError(lastError, 'p_hgvs_position') _locals['gene'] = _G_apply_100 - self._trace('', (2667, 2671), self.input.position) + self._trace('', (2668, 2672), self.input.position) _G_exactly_101, lastError = self.exactly(':') self.considerError(lastError, 'p_hgvs_position') - self._trace('', (2671, 2675), self.input.position) + self._trace('', (2672, 2676), self.input.position) _G_exactly_102, lastError = self.exactly('p') self.considerError(lastError, 'p_hgvs_position') _locals['type'] = _G_exactly_102 - self._trace('', (2680, 2684), self.input.position) + self._trace('', (2681, 2685), self.input.position) _G_exactly_103, lastError = self.exactly('.') self.considerError(lastError, 'p_hgvs_position') - self._trace('', (2684, 2695), self.input.position) + self._trace('', (2685, 2696), self.input.position) _G_apply_104, lastError = self._apply(self.rule_p_interval, "p_interval", []) self.considerError(lastError, 'p_hgvs_position') _locals['pos'] = _G_apply_104 @@ -421,25 +421,25 @@ def rule_p_hgvs_position(self): def rule_r_hgvs_position(self): _locals = {'self': self} self.locals['r_hgvs_position'] = _locals - self._trace('', (2789, 2794), self.input.position) + self._trace('', (2790, 2795), self.input.position) _G_apply_106, lastError = self._apply(self.rule_accn, "accn", []) self.considerError(lastError, 'r_hgvs_position') _locals['ac'] = _G_apply_106 - self._trace('', (2797, 2811), self.input.position) + self._trace('', (2798, 2812), self.input.position) _G_apply_107, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) self.considerError(lastError, 'r_hgvs_position') _locals['gene'] = _G_apply_107 - self._trace('', (2816, 2820), self.input.position) + self._trace('', (2817, 2821), self.input.position) _G_exactly_108, lastError = self.exactly(':') self.considerError(lastError, 'r_hgvs_position') - self._trace('', (2820, 2824), self.input.position) + self._trace('', (2821, 2825), self.input.position) _G_exactly_109, lastError = self.exactly('r') self.considerError(lastError, 'r_hgvs_position') _locals['type'] = _G_exactly_109 - self._trace('', (2829, 2833), self.input.position) + self._trace('', (2830, 2834), self.input.position) _G_exactly_110, lastError = self.exactly('.') self.considerError(lastError, 'r_hgvs_position') - self._trace('', (2833, 2844), self.input.position) + self._trace('', (2834, 2845), self.input.position) _G_apply_111, lastError = self._apply(self.rule_r_interval, "r_interval", []) self.considerError(lastError, 'r_hgvs_position') _locals['pos'] = _G_apply_111 @@ -451,14 +451,14 @@ def rule_r_hgvs_position(self): def rule_c_typed_posedit(self): _locals = {'self': self} self.locals['c_typed_posedit'] = _locals - self._trace('', (3248, 3252), self.input.position) + self._trace('', (3249, 3253), self.input.position) _G_exactly_113, lastError = self.exactly('c') self.considerError(lastError, 'c_typed_posedit') _locals['type'] = _G_exactly_113 - self._trace('', (3257, 3261), self.input.position) + self._trace('', (3258, 3262), self.input.position) _G_exactly_114, lastError = self.exactly('.') self.considerError(lastError, 'c_typed_posedit') - self._trace('', (3261, 3271), self.input.position) + self._trace('', (3262, 3272), self.input.position) _G_apply_115, lastError = self._apply(self.rule_c_posedit, "c_posedit", []) self.considerError(lastError, 'c_typed_posedit') _locals['posedit'] = _G_apply_115 @@ -470,14 +470,14 @@ def rule_c_typed_posedit(self): def rule_g_typed_posedit(self): _locals = {'self': self} self.locals['g_typed_posedit'] = _locals - self._trace('', (3356, 3360), self.input.position) + self._trace('', (3357, 3361), self.input.position) _G_exactly_118, lastError = self.exactly('g') self.considerError(lastError, 'g_typed_posedit') _locals['type'] = _G_exactly_118 - self._trace('', (3365, 3369), self.input.position) + self._trace('', (3366, 3370), self.input.position) _G_exactly_119, lastError = self.exactly('.') self.considerError(lastError, 'g_typed_posedit') - self._trace('', (3369, 3379), self.input.position) + self._trace('', (3370, 3380), self.input.position) _G_apply_120, lastError = self._apply(self.rule_g_posedit, "g_posedit", []) self.considerError(lastError, 'g_typed_posedit') _locals['posedit'] = _G_apply_120 @@ -489,14 +489,14 @@ def rule_g_typed_posedit(self): def rule_m_typed_posedit(self): _locals = {'self': self} self.locals['m_typed_posedit'] = _locals - self._trace('', (3464, 3468), self.input.position) + self._trace('', (3465, 3469), self.input.position) _G_exactly_122, lastError = self.exactly('m') self.considerError(lastError, 'm_typed_posedit') _locals['type'] = _G_exactly_122 - self._trace('', (3473, 3477), self.input.position) + self._trace('', (3474, 3478), self.input.position) _G_exactly_123, lastError = self.exactly('.') self.considerError(lastError, 'm_typed_posedit') - self._trace('', (3477, 3487), self.input.position) + self._trace('', (3478, 3488), self.input.position) _G_apply_124, lastError = self._apply(self.rule_m_posedit, "m_posedit", []) self.considerError(lastError, 'm_typed_posedit') _locals['posedit'] = _G_apply_124 @@ -508,14 +508,14 @@ def rule_m_typed_posedit(self): def rule_n_typed_posedit(self): _locals = {'self': self} self.locals['n_typed_posedit'] = _locals - self._trace('', (3572, 3576), self.input.position) + self._trace('', (3573, 3577), self.input.position) _G_exactly_126, lastError = self.exactly('n') self.considerError(lastError, 'n_typed_posedit') _locals['type'] = _G_exactly_126 - self._trace('', (3581, 3585), self.input.position) + self._trace('', (3582, 3586), self.input.position) _G_exactly_127, lastError = self.exactly('.') self.considerError(lastError, 'n_typed_posedit') - self._trace('', (3585, 3595), self.input.position) + self._trace('', (3586, 3596), self.input.position) _G_apply_128, lastError = self._apply(self.rule_n_posedit, "n_posedit", []) self.considerError(lastError, 'n_typed_posedit') _locals['posedit'] = _G_apply_128 @@ -527,14 +527,14 @@ def rule_n_typed_posedit(self): def rule_p_typed_posedit(self): _locals = {'self': self} self.locals['p_typed_posedit'] = _locals - self._trace('', (3680, 3684), self.input.position) + self._trace('', (3681, 3685), self.input.position) _G_exactly_130, lastError = self.exactly('p') self.considerError(lastError, 'p_typed_posedit') _locals['type'] = _G_exactly_130 - self._trace('', (3689, 3693), self.input.position) + self._trace('', (3690, 3694), self.input.position) _G_exactly_131, lastError = self.exactly('.') self.considerError(lastError, 'p_typed_posedit') - self._trace('', (3693, 3703), self.input.position) + self._trace('', (3694, 3704), self.input.position) _G_apply_132, lastError = self._apply(self.rule_p_posedit, "p_posedit", []) self.considerError(lastError, 'p_typed_posedit') _locals['posedit'] = _G_apply_132 @@ -546,14 +546,14 @@ def rule_p_typed_posedit(self): def rule_r_typed_posedit(self): _locals = {'self': self} self.locals['r_typed_posedit'] = _locals - self._trace('', (3788, 3792), self.input.position) + self._trace('', (3789, 3793), self.input.position) _G_exactly_134, lastError = self.exactly('r') self.considerError(lastError, 'r_typed_posedit') _locals['type'] = _G_exactly_134 - self._trace('', (3797, 3801), self.input.position) + self._trace('', (3798, 3802), self.input.position) _G_exactly_135, lastError = self.exactly('.') self.considerError(lastError, 'r_typed_posedit') - self._trace('', (3801, 3811), self.input.position) + self._trace('', (3802, 3812), self.input.position) _G_apply_136, lastError = self._apply(self.rule_r_posedit, "r_posedit", []) self.considerError(lastError, 'r_typed_posedit') _locals['posedit'] = _G_apply_136 @@ -565,11 +565,11 @@ def rule_r_typed_posedit(self): def rule_c_posedit(self): _locals = {'self': self} self.locals['c_posedit'] = _locals - self._trace('', (4009, 4020), self.input.position) + self._trace('', (4010, 4021), self.input.position) _G_apply_138, lastError = self._apply(self.rule_c_interval, "c_interval", []) self.considerError(lastError, 'c_posedit') _locals['pos'] = _G_apply_138 - self._trace('', (4024, 4033), self.input.position) + self._trace('', (4025, 4034), self.input.position) _G_apply_139, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) self.considerError(lastError, 'c_posedit') _locals['edit'] = _G_apply_139 @@ -581,11 +581,11 @@ def rule_c_posedit(self): def rule_g_posedit(self): _locals = {'self': self} self.locals['g_posedit'] = _locals - self._trace('', (4093, 4104), self.input.position) + self._trace('', (4094, 4105), self.input.position) _G_apply_142, lastError = self._apply(self.rule_g_interval, "g_interval", []) self.considerError(lastError, 'g_posedit') _locals['pos'] = _G_apply_142 - self._trace('', (4108, 4117), self.input.position) + self._trace('', (4109, 4118), self.input.position) _G_apply_143, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) self.considerError(lastError, 'g_posedit') _locals['edit'] = _G_apply_143 @@ -597,11 +597,11 @@ def rule_g_posedit(self): def rule_m_posedit(self): _locals = {'self': self} self.locals['m_posedit'] = _locals - self._trace('', (4177, 4188), self.input.position) + self._trace('', (4178, 4189), self.input.position) _G_apply_145, lastError = self._apply(self.rule_m_interval, "m_interval", []) self.considerError(lastError, 'm_posedit') _locals['pos'] = _G_apply_145 - self._trace('', (4192, 4201), self.input.position) + self._trace('', (4193, 4202), self.input.position) _G_apply_146, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) self.considerError(lastError, 'm_posedit') _locals['edit'] = _G_apply_146 @@ -613,11 +613,11 @@ def rule_m_posedit(self): def rule_n_posedit(self): _locals = {'self': self} self.locals['n_posedit'] = _locals - self._trace('', (4261, 4272), self.input.position) + self._trace('', (4262, 4273), self.input.position) _G_apply_148, lastError = self._apply(self.rule_n_interval, "n_interval", []) self.considerError(lastError, 'n_posedit') _locals['pos'] = _G_apply_148 - self._trace('', (4276, 4285), self.input.position) + self._trace('', (4277, 4286), self.input.position) _G_apply_149, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) self.considerError(lastError, 'n_posedit') _locals['edit'] = _G_apply_149 @@ -630,11 +630,11 @@ def rule_r_posedit(self): _locals = {'self': self} self.locals['r_posedit'] = _locals def _G_or_151(): - self._trace('', (4347, 4357), self.input.position) + self._trace('', (4348, 4358), self.input.position) _G_apply_152, lastError = self._apply(self.rule_r_interval, "r_interval", []) self.considerError(lastError, None) _locals['pos'] = _G_apply_152 - self._trace('', (4361, 4370), self.input.position) + self._trace('', (4362, 4371), self.input.position) _G_apply_153, lastError = self._apply(self.rule_rna_edit, "rna_edit", []) self.considerError(lastError, None) _locals['edit'] = _G_apply_153 @@ -642,18 +642,18 @@ def _G_or_151(): self.considerError(lastError, None) return (_G_python_154, self.currentError) def _G_or_155(): - self._trace('', (4426, 4429), self.input.position) + self._trace('', (4427, 4430), self.input.position) _G_exactly_156, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (4429, 4440), self.input.position) + self._trace('', (4430, 4441), self.input.position) _G_apply_157, lastError = self._apply(self.rule_r_interval, "r_interval", []) self.considerError(lastError, None) _locals['pos'] = _G_apply_157 - self._trace('', (4444, 4453), self.input.position) + self._trace('', (4445, 4454), self.input.position) _G_apply_158, lastError = self._apply(self.rule_rna_edit, "rna_edit", []) self.considerError(lastError, None) _locals['edit'] = _G_apply_158 - self._trace('', (4458, 4462), self.input.position) + self._trace('', (4459, 4463), self.input.position) _G_exactly_159, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_161, lastError = eval(self._G_expr_160, self.globals, _locals), None @@ -668,11 +668,11 @@ def rule_p_posedit(self): _locals = {'self': self} self.locals['p_posedit'] = _locals def _G_or_163(): - self._trace('', (4539, 4549), self.input.position) + self._trace('', (4540, 4550), self.input.position) _G_apply_164, lastError = self._apply(self.rule_p_interval, "p_interval", []) self.considerError(lastError, None) _locals['pos'] = _G_apply_164 - self._trace('', (4553, 4562), self.input.position) + self._trace('', (4554, 4563), self.input.position) _G_apply_165, lastError = self._apply(self.rule_pro_edit, "pro_edit", []) self.considerError(lastError, None) _locals['edit'] = _G_apply_165 @@ -680,25 +680,25 @@ def _G_or_163(): self.considerError(lastError, None) return (_G_python_166, self.currentError) def _G_or_167(): - self._trace('', (4618, 4621), self.input.position) + self._trace('', (4619, 4622), self.input.position) _G_exactly_168, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (4621, 4632), self.input.position) + self._trace('', (4622, 4633), self.input.position) _G_apply_169, lastError = self._apply(self.rule_p_interval, "p_interval", []) self.considerError(lastError, None) _locals['pos'] = _G_apply_169 - self._trace('', (4636, 4645), self.input.position) + self._trace('', (4637, 4646), self.input.position) _G_apply_170, lastError = self._apply(self.rule_pro_edit, "pro_edit", []) self.considerError(lastError, None) _locals['edit'] = _G_apply_170 - self._trace('', (4650, 4654), self.input.position) + self._trace('', (4651, 4655), self.input.position) _G_exactly_171, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_172, lastError = eval(self._G_expr_160, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_172, self.currentError) def _G_or_173(): - self._trace('', (4719, 4737), self.input.position) + self._trace('', (4720, 4738), self.input.position) _G_apply_174, lastError = self._apply(self.rule_p_posedit_special, "p_posedit_special", []) self.considerError(lastError, None) return (_G_apply_174, self.currentError) @@ -711,7 +711,7 @@ def rule_p_posedit_special(self): _locals = {'self': self} self.locals['p_posedit_special'] = _locals def _G_or_176(): - self._trace('', (4757, 4767), self.input.position) + self._trace('', (4758, 4769), self.input.position) _G_exactly_177, lastError = self.exactly('=') self.considerError(lastError, None) _locals['x'] = _G_exactly_177 @@ -719,32 +719,32 @@ def _G_or_176(): self.considerError(lastError, None) return (_G_python_179, self.currentError) def _G_or_180(): - self._trace('', (4829, 4833), self.input.position) + self._trace('', (4831, 4835), self.input.position) _G_exactly_181, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (4833, 4837), self.input.position) + self._trace('', (4835, 4839), self.input.position) _G_exactly_182, lastError = self.exactly('=') self.considerError(lastError, None) _locals['x'] = _G_exactly_182 - self._trace('', (4839, 4843), self.input.position) + self._trace('', (4841, 4845), self.input.position) _G_exactly_183, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_185, lastError = eval(self._G_expr_184, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_185, self.currentError) def _G_or_186(): - self._trace('', (4902, 4906), self.input.position) + self._trace('', (4904, 4908), self.input.position) _G_exactly_187, lastError = self.exactly('0') self.considerError(lastError, None) _locals['x'] = _G_exactly_187 - self._trace('', (4908, 4912), self.input.position) + self._trace('', (4910, 4914), self.input.position) _G_exactly_188, lastError = self.exactly('?') self.considerError(lastError, None) _G_python_189, lastError = eval(self._G_expr_184, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_189, self.currentError) def _G_or_190(): - self._trace('', (4971, 4975), self.input.position) + self._trace('', (4973, 4977), self.input.position) _G_exactly_191, lastError = self.exactly('0') self.considerError(lastError, None) _locals['x'] = _G_exactly_191 @@ -752,7 +752,7 @@ def _G_or_190(): self.considerError(lastError, None) return (_G_python_192, self.currentError) def _G_or_193(): - self._trace('', (5037, 5041), self.input.position) + self._trace('', (5039, 5043), self.input.position) _G_exactly_194, lastError = self.exactly('?') self.considerError(lastError, None) _locals['x'] = _G_exactly_194 @@ -768,19 +768,19 @@ def rule_dna_edit_mu(self): _locals = {'self': self} self.locals['dna_edit_mu'] = _locals def _G_or_197(): - self._trace('', (5392, 5401), self.input.position) + self._trace('', (5394, 5403), self.input.position) _G_apply_198, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) self.considerError(lastError, None) return (_G_apply_198, self.currentError) def _G_or_199(): - self._trace('', (5403, 5407), self.input.position) + self._trace('', (5405, 5409), self.input.position) _G_exactly_200, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (5407, 5416), self.input.position) + self._trace('', (5409, 5418), self.input.position) _G_apply_201, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) self.considerError(lastError, None) _locals['edit'] = _G_apply_201 - self._trace('', (5421, 5425), self.input.position) + self._trace('', (5423, 5427), self.input.position) _G_exactly_202, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_204, lastError = eval(self._G_expr_203, self.globals, _locals), None @@ -795,47 +795,47 @@ def rule_dna_edit(self): _locals = {'self': self} self.locals['dna_edit'] = _locals def _G_or_206(): - self._trace('', (5463, 5473), self.input.position) + self._trace('', (5465, 5475), self.input.position) _G_apply_207, lastError = self._apply(self.rule_dna_ident, "dna_ident", []) self.considerError(lastError, None) return (_G_apply_207, self.currentError) def _G_or_208(): - self._trace('', (5475, 5485), self.input.position) + self._trace('', (5477, 5487), self.input.position) _G_apply_209, lastError = self._apply(self.rule_dna_subst, "dna_subst", []) self.considerError(lastError, None) return (_G_apply_209, self.currentError) def _G_or_210(): - self._trace('', (5487, 5498), self.input.position) + self._trace('', (5489, 5500), self.input.position) _G_apply_211, lastError = self._apply(self.rule_dna_delins, "dna_delins", []) self.considerError(lastError, None) return (_G_apply_211, self.currentError) def _G_or_212(): - self._trace('', (5500, 5508), self.input.position) + self._trace('', (5502, 5510), self.input.position) _G_apply_213, lastError = self._apply(self.rule_dna_ins, "dna_ins", []) self.considerError(lastError, None) return (_G_apply_213, self.currentError) def _G_or_214(): - self._trace('', (5510, 5518), self.input.position) + self._trace('', (5512, 5520), self.input.position) _G_apply_215, lastError = self._apply(self.rule_dna_del, "dna_del", []) self.considerError(lastError, None) return (_G_apply_215, self.currentError) def _G_or_216(): - self._trace('', (5520, 5528), self.input.position) + self._trace('', (5522, 5530), self.input.position) _G_apply_217, lastError = self._apply(self.rule_dna_dup, "dna_dup", []) self.considerError(lastError, None) return (_G_apply_217, self.currentError) def _G_or_218(): - self._trace('', (5530, 5538), self.input.position) + self._trace('', (5532, 5540), self.input.position) _G_apply_219, lastError = self._apply(self.rule_dna_inv, "dna_inv", []) self.considerError(lastError, None) return (_G_apply_219, self.currentError) def _G_or_220(): - self._trace('', (5540, 5548), self.input.position) + self._trace('', (5542, 5550), self.input.position) _G_apply_221, lastError = self._apply(self.rule_dna_con, "dna_con", []) self.considerError(lastError, None) return (_G_apply_221, self.currentError) def _G_or_222(): - self._trace('', (5550, 5559), self.input.position) + self._trace('', (5552, 5561), self.input.position) _G_apply_223, lastError = self._apply(self.rule_dna_copy, "dna_copy", []) self.considerError(lastError, None) return (_G_apply_223, self.currentError) @@ -849,7 +849,7 @@ def rule_dna_ident(self): self.locals['dna_ident'] = _locals def _G_consumedby_225(): def _G_many_226(): - self._trace('', (5574, 5577), self.input.position) + self._trace('', (5576, 5579), self.input.position) _G_apply_227, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_227, self.currentError) @@ -859,7 +859,7 @@ def _G_many_226(): _G_consumedby_229, lastError = self.consumedby(_G_consumedby_225) self.considerError(lastError, 'dna_ident') _locals['ref'] = _G_consumedby_229 - self._trace('', (5583, 5587), self.input.position) + self._trace('', (5585, 5589), self.input.position) _G_exactly_230, lastError = self.exactly('=') self.considerError(lastError, 'dna_ident') _G_python_232, lastError = eval(self._G_expr_231, self.globals, _locals), None @@ -870,14 +870,14 @@ def _G_many_226(): def rule_dna_subst(self): _locals = {'self': self} self.locals['dna_subst'] = _locals - self._trace('', (5649, 5653), self.input.position) + self._trace('', (5651, 5655), self.input.position) _G_apply_233, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, 'dna_subst') _locals['ref'] = _G_apply_233 - self._trace('', (5657, 5661), self.input.position) + self._trace('', (5659, 5663), self.input.position) _G_exactly_234, lastError = self.exactly('>') self.considerError(lastError, 'dna_subst') - self._trace('', (5661, 5665), self.input.position) + self._trace('', (5663, 5667), self.input.position) _G_apply_235, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, 'dna_subst') _locals['alt'] = _G_apply_235 @@ -889,12 +889,12 @@ def rule_dna_subst(self): def rule_dna_delins(self): _locals = {'self': self} self.locals['dna_delins'] = _locals - self._trace('', (5726, 5732), self.input.position) + self._trace('', (5728, 5734), self.input.position) _G_exactly_238, lastError = self.exactly('del') self.considerError(lastError, 'dna_delins') def _G_or_239(): def _G_consumedby_240(): - self._trace('', (5735, 5738), self.input.position) + self._trace('', (5737, 5740), self.input.position) _G_apply_241, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_241, self.currentError) @@ -904,7 +904,7 @@ def _G_consumedby_240(): def _G_or_243(): def _G_consumedby_244(): def _G_many_245(): - self._trace('', (5741, 5744), self.input.position) + self._trace('', (5743, 5746), self.input.position) _G_apply_246, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_246, self.currentError) @@ -917,12 +917,12 @@ def _G_many_245(): _G_or_249, lastError = self._or([_G_or_239, _G_or_243]) self.considerError(lastError, 'dna_delins') _locals['ref'] = _G_or_249 - self._trace('', (5751, 5757), self.input.position) + self._trace('', (5753, 5759), self.input.position) _G_exactly_250, lastError = self.exactly('ins') self.considerError(lastError, 'dna_delins') def _G_consumedby_251(): def _G_many1_252(): - self._trace('', (5759, 5762), self.input.position) + self._trace('', (5761, 5764), self.input.position) _G_apply_253, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_253, self.currentError) @@ -940,12 +940,12 @@ def _G_many1_252(): def rule_dna_del(self): _locals = {'self': self} self.locals['dna_del'] = _locals - self._trace('', (5821, 5827), self.input.position) + self._trace('', (5823, 5829), self.input.position) _G_exactly_257, lastError = self.exactly('del') self.considerError(lastError, 'dna_del') def _G_or_258(): def _G_consumedby_259(): - self._trace('', (5830, 5833), self.input.position) + self._trace('', (5832, 5835), self.input.position) _G_apply_260, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_260, self.currentError) @@ -955,7 +955,7 @@ def _G_consumedby_259(): def _G_or_262(): def _G_consumedby_263(): def _G_many_264(): - self._trace('', (5836, 5839), self.input.position) + self._trace('', (5838, 5841), self.input.position) _G_apply_265, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_265, self.currentError) @@ -976,12 +976,12 @@ def _G_many_264(): def rule_dna_ins(self): _locals = {'self': self} self.locals['dna_ins'] = _locals - self._trace('', (5899, 5905), self.input.position) + self._trace('', (5901, 5907), self.input.position) _G_exactly_271, lastError = self.exactly('ins') self.considerError(lastError, 'dna_ins') def _G_consumedby_272(): def _G_many1_273(): - self._trace('', (5907, 5910), self.input.position) + self._trace('', (5909, 5912), self.input.position) _G_apply_274, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_274, self.currentError) @@ -999,12 +999,12 @@ def _G_many1_273(): def rule_dna_dup(self): _locals = {'self': self} self.locals['dna_dup'] = _locals - self._trace('', (5977, 5983), self.input.position) + self._trace('', (5979, 5985), self.input.position) _G_exactly_279, lastError = self.exactly('dup') self.considerError(lastError, 'dna_dup') def _G_consumedby_280(): def _G_many_281(): - self._trace('', (5985, 5988), self.input.position) + self._trace('', (5987, 5990), self.input.position) _G_apply_282, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_282, self.currentError) @@ -1022,12 +1022,12 @@ def _G_many_281(): def rule_dna_inv(self): _locals = {'self': self} self.locals['dna_inv'] = _locals - self._trace('', (6041, 6047), self.input.position) + self._trace('', (6043, 6049), self.input.position) _G_exactly_287, lastError = self.exactly('inv') self.considerError(lastError, 'dna_inv') def _G_or_288(): def _G_consumedby_289(): - self._trace('', (6050, 6053), self.input.position) + self._trace('', (6052, 6055), self.input.position) _G_apply_290, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_290, self.currentError) @@ -1037,7 +1037,7 @@ def _G_consumedby_289(): def _G_or_292(): def _G_consumedby_293(): def _G_many_294(): - self._trace('', (6056, 6059), self.input.position) + self._trace('', (6058, 6061), self.input.position) _G_apply_295, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_295, self.currentError) @@ -1058,10 +1058,10 @@ def _G_many_294(): def rule_dna_con(self): _locals = {'self': self} self.locals['dna_con'] = _locals - self._trace('', (6106, 6112), self.input.position) + self._trace('', (6108, 6114), self.input.position) _G_exactly_301, lastError = self.exactly('con') self.considerError(lastError, 'dna_con') - self._trace('', (6112, 6126), self.input.position) + self._trace('', (6114, 6128), self.input.position) _G_apply_302, lastError = self._apply(self.rule_hgvs_position, "hgvs_position", []) self.considerError(lastError, 'dna_con') _locals['pos'] = _G_apply_302 @@ -1073,10 +1073,10 @@ def rule_dna_con(self): def rule_dna_copy(self): _locals = {'self': self} self.locals['dna_copy'] = _locals - self._trace('', (6216, 6223), self.input.position) + self._trace('', (6218, 6225), self.input.position) _G_exactly_305, lastError = self.exactly('copy') self.considerError(lastError, 'dna_copy') - self._trace('', (6223, 6227), self.input.position) + self._trace('', (6225, 6229), self.input.position) _G_apply_306, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, 'dna_copy') _locals['n'] = _G_apply_306 @@ -1089,19 +1089,19 @@ def rule_rna_edit_mu(self): _locals = {'self': self} self.locals['rna_edit_mu'] = _locals def _G_or_309(): - self._trace('', (6272, 6281), self.input.position) + self._trace('', (6274, 6283), self.input.position) _G_apply_310, lastError = self._apply(self.rule_rna_edit, "rna_edit", []) self.considerError(lastError, None) return (_G_apply_310, self.currentError) def _G_or_311(): - self._trace('', (6283, 6287), self.input.position) + self._trace('', (6285, 6289), self.input.position) _G_exactly_312, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (6287, 6296), self.input.position) + self._trace('', (6289, 6298), self.input.position) _G_apply_313, lastError = self._apply(self.rule_rna_edit, "rna_edit", []) self.considerError(lastError, None) _locals['edit'] = _G_apply_313 - self._trace('', (6301, 6305), self.input.position) + self._trace('', (6303, 6307), self.input.position) _G_exactly_314, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_315, lastError = eval(self._G_expr_203, self.globals, _locals), None @@ -1116,42 +1116,42 @@ def rule_rna_edit(self): _locals = {'self': self} self.locals['rna_edit'] = _locals def _G_or_317(): - self._trace('', (6343, 6353), self.input.position) + self._trace('', (6345, 6355), self.input.position) _G_apply_318, lastError = self._apply(self.rule_rna_ident, "rna_ident", []) self.considerError(lastError, None) return (_G_apply_318, self.currentError) def _G_or_319(): - self._trace('', (6355, 6365), self.input.position) + self._trace('', (6357, 6367), self.input.position) _G_apply_320, lastError = self._apply(self.rule_rna_subst, "rna_subst", []) self.considerError(lastError, None) return (_G_apply_320, self.currentError) def _G_or_321(): - self._trace('', (6367, 6378), self.input.position) + self._trace('', (6369, 6380), self.input.position) _G_apply_322, lastError = self._apply(self.rule_rna_delins, "rna_delins", []) self.considerError(lastError, None) return (_G_apply_322, self.currentError) def _G_or_323(): - self._trace('', (6380, 6388), self.input.position) + self._trace('', (6382, 6390), self.input.position) _G_apply_324, lastError = self._apply(self.rule_rna_ins, "rna_ins", []) self.considerError(lastError, None) return (_G_apply_324, self.currentError) def _G_or_325(): - self._trace('', (6390, 6398), self.input.position) + self._trace('', (6392, 6400), self.input.position) _G_apply_326, lastError = self._apply(self.rule_rna_del, "rna_del", []) self.considerError(lastError, None) return (_G_apply_326, self.currentError) def _G_or_327(): - self._trace('', (6400, 6408), self.input.position) + self._trace('', (6402, 6410), self.input.position) _G_apply_328, lastError = self._apply(self.rule_rna_dup, "rna_dup", []) self.considerError(lastError, None) return (_G_apply_328, self.currentError) def _G_or_329(): - self._trace('', (6410, 6418), self.input.position) + self._trace('', (6412, 6420), self.input.position) _G_apply_330, lastError = self._apply(self.rule_rna_inv, "rna_inv", []) self.considerError(lastError, None) return (_G_apply_330, self.currentError) def _G_or_331(): - self._trace('', (6420, 6428), self.input.position) + self._trace('', (6422, 6430), self.input.position) _G_apply_332, lastError = self._apply(self.rule_rna_con, "rna_con", []) self.considerError(lastError, None) return (_G_apply_332, self.currentError) @@ -1165,7 +1165,7 @@ def rule_rna_ident(self): self.locals['rna_ident'] = _locals def _G_consumedby_334(): def _G_many_335(): - self._trace('', (6443, 6446), self.input.position) + self._trace('', (6445, 6448), self.input.position) _G_apply_336, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_336, self.currentError) @@ -1175,7 +1175,7 @@ def _G_many_335(): _G_consumedby_338, lastError = self.consumedby(_G_consumedby_334) self.considerError(lastError, 'rna_ident') _locals['ref'] = _G_consumedby_338 - self._trace('', (6452, 6456), self.input.position) + self._trace('', (6454, 6458), self.input.position) _G_exactly_339, lastError = self.exactly('=') self.considerError(lastError, 'rna_ident') _G_python_340, lastError = eval(self._G_expr_231, self.globals, _locals), None @@ -1186,14 +1186,14 @@ def _G_many_335(): def rule_rna_subst(self): _locals = {'self': self} self.locals['rna_subst'] = _locals - self._trace('', (6525, 6529), self.input.position) + self._trace('', (6527, 6531), self.input.position) _G_apply_341, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, 'rna_subst') _locals['ref'] = _G_apply_341 - self._trace('', (6533, 6537), self.input.position) + self._trace('', (6535, 6539), self.input.position) _G_exactly_342, lastError = self.exactly('>') self.considerError(lastError, 'rna_subst') - self._trace('', (6537, 6541), self.input.position) + self._trace('', (6539, 6543), self.input.position) _G_apply_343, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, 'rna_subst') _locals['alt'] = _G_apply_343 @@ -1205,12 +1205,12 @@ def rule_rna_subst(self): def rule_rna_delins(self): _locals = {'self': self} self.locals['rna_delins'] = _locals - self._trace('', (6609, 6615), self.input.position) + self._trace('', (6611, 6617), self.input.position) _G_exactly_345, lastError = self.exactly('del') self.considerError(lastError, 'rna_delins') def _G_or_346(): def _G_consumedby_347(): - self._trace('', (6618, 6621), self.input.position) + self._trace('', (6620, 6623), self.input.position) _G_apply_348, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_348, self.currentError) @@ -1220,7 +1220,7 @@ def _G_consumedby_347(): def _G_or_350(): def _G_consumedby_351(): def _G_many_352(): - self._trace('', (6624, 6627), self.input.position) + self._trace('', (6626, 6629), self.input.position) _G_apply_353, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_353, self.currentError) @@ -1233,12 +1233,12 @@ def _G_many_352(): _G_or_356, lastError = self._or([_G_or_346, _G_or_350]) self.considerError(lastError, 'rna_delins') _locals['ref'] = _G_or_356 - self._trace('', (6634, 6640), self.input.position) + self._trace('', (6636, 6642), self.input.position) _G_exactly_357, lastError = self.exactly('ins') self.considerError(lastError, 'rna_delins') def _G_consumedby_358(): def _G_many1_359(): - self._trace('', (6642, 6645), self.input.position) + self._trace('', (6644, 6647), self.input.position) _G_apply_360, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_360, self.currentError) @@ -1256,12 +1256,12 @@ def _G_many1_359(): def rule_rna_del(self): _locals = {'self': self} self.locals['rna_del'] = _locals - self._trace('', (6704, 6710), self.input.position) + self._trace('', (6706, 6712), self.input.position) _G_exactly_364, lastError = self.exactly('del') self.considerError(lastError, 'rna_del') def _G_or_365(): def _G_consumedby_366(): - self._trace('', (6713, 6716), self.input.position) + self._trace('', (6715, 6718), self.input.position) _G_apply_367, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_367, self.currentError) @@ -1271,7 +1271,7 @@ def _G_consumedby_366(): def _G_or_369(): def _G_consumedby_370(): def _G_many_371(): - self._trace('', (6719, 6722), self.input.position) + self._trace('', (6721, 6724), self.input.position) _G_apply_372, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_372, self.currentError) @@ -1292,12 +1292,12 @@ def _G_many_371(): def rule_rna_ins(self): _locals = {'self': self} self.locals['rna_ins'] = _locals - self._trace('', (6789, 6795), self.input.position) + self._trace('', (6791, 6797), self.input.position) _G_exactly_377, lastError = self.exactly('ins') self.considerError(lastError, 'rna_ins') def _G_consumedby_378(): def _G_many1_379(): - self._trace('', (6797, 6800), self.input.position) + self._trace('', (6799, 6802), self.input.position) _G_apply_380, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_380, self.currentError) @@ -1315,12 +1315,12 @@ def _G_many1_379(): def rule_rna_dup(self): _locals = {'self': self} self.locals['rna_dup'] = _locals - self._trace('', (6874, 6880), self.input.position) + self._trace('', (6876, 6882), self.input.position) _G_exactly_384, lastError = self.exactly('dup') self.considerError(lastError, 'rna_dup') def _G_consumedby_385(): def _G_many_386(): - self._trace('', (6882, 6885), self.input.position) + self._trace('', (6884, 6887), self.input.position) _G_apply_387, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_387, self.currentError) @@ -1338,12 +1338,12 @@ def _G_many_386(): def rule_rna_inv(self): _locals = {'self': self} self.locals['rna_inv'] = _locals - self._trace('', (6945, 6951), self.input.position) + self._trace('', (6947, 6953), self.input.position) _G_exactly_391, lastError = self.exactly('inv') self.considerError(lastError, 'rna_inv') def _G_or_392(): def _G_consumedby_393(): - self._trace('', (6954, 6957), self.input.position) + self._trace('', (6956, 6959), self.input.position) _G_apply_394, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_394, self.currentError) @@ -1353,7 +1353,7 @@ def _G_consumedby_393(): def _G_or_396(): def _G_consumedby_397(): def _G_many_398(): - self._trace('', (6960, 6963), self.input.position) + self._trace('', (6962, 6965), self.input.position) _G_apply_399, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_399, self.currentError) @@ -1374,10 +1374,10 @@ def _G_many_398(): def rule_rna_con(self): _locals = {'self': self} self.locals['rna_con'] = _locals - self._trace('', (7017, 7023), self.input.position) + self._trace('', (7019, 7025), self.input.position) _G_exactly_404, lastError = self.exactly('con') self.considerError(lastError, 'rna_con') - self._trace('', (7023, 7037), self.input.position) + self._trace('', (7025, 7039), self.input.position) _G_apply_405, lastError = self._apply(self.rule_hgvs_position, "hgvs_position", []) self.considerError(lastError, 'rna_con') _locals['pos'] = _G_apply_405 @@ -1390,19 +1390,19 @@ def rule_pro_edit_mu(self): _locals = {'self': self} self.locals['pro_edit_mu'] = _locals def _G_or_407(): - self._trace('', (7136, 7145), self.input.position) + self._trace('', (7138, 7147), self.input.position) _G_apply_408, lastError = self._apply(self.rule_pro_edit, "pro_edit", []) self.considerError(lastError, None) return (_G_apply_408, self.currentError) def _G_or_409(): - self._trace('', (7147, 7151), self.input.position) + self._trace('', (7149, 7153), self.input.position) _G_exactly_410, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (7151, 7160), self.input.position) + self._trace('', (7153, 7162), self.input.position) _G_apply_411, lastError = self._apply(self.rule_pro_edit, "pro_edit", []) self.considerError(lastError, None) _locals['edit'] = _G_apply_411 - self._trace('', (7165, 7169), self.input.position) + self._trace('', (7167, 7171), self.input.position) _G_exactly_412, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_413, lastError = eval(self._G_expr_203, self.globals, _locals), None @@ -1417,42 +1417,42 @@ def rule_pro_edit(self): _locals = {'self': self} self.locals['pro_edit'] = _locals def _G_or_415(): - self._trace('', (7207, 7214), self.input.position) + self._trace('', (7209, 7216), self.input.position) _G_apply_416, lastError = self._apply(self.rule_pro_fs, "pro_fs", []) self.considerError(lastError, None) return (_G_apply_416, self.currentError) def _G_or_417(): - self._trace('', (7216, 7224), self.input.position) + self._trace('', (7218, 7226), self.input.position) _G_apply_418, lastError = self._apply(self.rule_pro_ext, "pro_ext", []) self.considerError(lastError, None) return (_G_apply_418, self.currentError) def _G_or_419(): - self._trace('', (7226, 7236), self.input.position) + self._trace('', (7228, 7238), self.input.position) _G_apply_420, lastError = self._apply(self.rule_pro_subst, "pro_subst", []) self.considerError(lastError, None) return (_G_apply_420, self.currentError) def _G_or_421(): - self._trace('', (7238, 7249), self.input.position) + self._trace('', (7240, 7251), self.input.position) _G_apply_422, lastError = self._apply(self.rule_pro_delins, "pro_delins", []) self.considerError(lastError, None) return (_G_apply_422, self.currentError) def _G_or_423(): - self._trace('', (7251, 7259), self.input.position) + self._trace('', (7253, 7261), self.input.position) _G_apply_424, lastError = self._apply(self.rule_pro_ins, "pro_ins", []) self.considerError(lastError, None) return (_G_apply_424, self.currentError) def _G_or_425(): - self._trace('', (7261, 7269), self.input.position) + self._trace('', (7263, 7271), self.input.position) _G_apply_426, lastError = self._apply(self.rule_pro_del, "pro_del", []) self.considerError(lastError, None) return (_G_apply_426, self.currentError) def _G_or_427(): - self._trace('', (7271, 7279), self.input.position) + self._trace('', (7273, 7281), self.input.position) _G_apply_428, lastError = self._apply(self.rule_pro_dup, "pro_dup", []) self.considerError(lastError, None) return (_G_apply_428, self.currentError) def _G_or_429(): - self._trace('', (7281, 7291), self.input.position) + self._trace('', (7283, 7293), self.input.position) _G_apply_430, lastError = self._apply(self.rule_pro_ident, "pro_ident", []) self.considerError(lastError, None) return (_G_apply_430, self.currentError) @@ -1465,12 +1465,12 @@ def rule_pro_subst(self): _locals = {'self': self} self.locals['pro_subst'] = _locals def _G_or_432(): - self._trace('', (7306, 7311), self.input.position) + self._trace('', (7308, 7313), self.input.position) _G_apply_433, lastError = self._apply(self.rule_aat13, "aat13", []) self.considerError(lastError, None) return (_G_apply_433, self.currentError) def _G_or_434(): - self._trace('', (7312, 7315), self.input.position) + self._trace('', (7314, 7317), self.input.position) _G_exactly_435, lastError = self.exactly('?') self.considerError(lastError, None) return (_G_exactly_435, self.currentError) @@ -1485,10 +1485,10 @@ def _G_or_434(): def rule_pro_delins(self): _locals = {'self': self} self.locals['pro_delins'] = _locals - self._trace('', (7384, 7393), self.input.position) + self._trace('', (7386, 7395), self.input.position) _G_exactly_439, lastError = self.exactly('delins') self.considerError(lastError, 'pro_delins') - self._trace('', (7393, 7403), self.input.position) + self._trace('', (7395, 7405), self.input.position) _G_apply_440, lastError = self._apply(self.rule_aat13_seq, "aat13_seq", []) self.considerError(lastError, 'pro_delins') _locals['alt'] = _G_apply_440 @@ -1500,7 +1500,7 @@ def rule_pro_delins(self): def rule_pro_del(self): _locals = {'self': self} self.locals['pro_del'] = _locals - self._trace('', (7467, 7473), self.input.position) + self._trace('', (7469, 7475), self.input.position) _G_exactly_443, lastError = self.exactly('del') self.considerError(lastError, 'pro_del') _G_python_445, lastError = eval(self._G_expr_444, self.globals, _locals), None @@ -1511,10 +1511,10 @@ def rule_pro_del(self): def rule_pro_ins(self): _locals = {'self': self} self.locals['pro_ins'] = _locals - self._trace('', (7551, 7557), self.input.position) + self._trace('', (7553, 7559), self.input.position) _G_exactly_446, lastError = self.exactly('ins') self.considerError(lastError, 'pro_ins') - self._trace('', (7557, 7567), self.input.position) + self._trace('', (7559, 7569), self.input.position) _G_apply_447, lastError = self._apply(self.rule_aat13_seq, "aat13_seq", []) self.considerError(lastError, 'pro_ins') _locals['alt'] = _G_apply_447 @@ -1526,7 +1526,7 @@ def rule_pro_ins(self): def rule_pro_dup(self): _locals = {'self': self} self.locals['pro_dup'] = _locals - self._trace('', (7636, 7642), self.input.position) + self._trace('', (7638, 7644), self.input.position) _G_exactly_450, lastError = self.exactly('dup') self.considerError(lastError, 'pro_dup') _G_python_452, lastError = eval(self._G_expr_451, self.globals, _locals), None @@ -1538,7 +1538,7 @@ def rule_pro_fs(self): _locals = {'self': self} self.locals['pro_fs'] = _locals def _G_or_453(): - self._trace('', (7708, 7713), self.input.position) + self._trace('', (7710, 7715), self.input.position) _G_apply_454, lastError = self._apply(self.rule_aat13, "aat13", []) self.considerError(lastError, None) return (_G_apply_454, self.currentError) @@ -1549,7 +1549,7 @@ def _G_or_455(): _G_or_457, lastError = self._or([_G_or_453, _G_or_455]) self.considerError(lastError, 'pro_fs') _locals['alt'] = _G_or_457 - self._trace('', (7728, 7731), self.input.position) + self._trace('', (7730, 7733), self.input.position) _G_apply_458, lastError = self._apply(self.rule_fs, "fs", []) self.considerError(lastError, 'pro_fs') _locals['length'] = _G_apply_458 @@ -1562,7 +1562,7 @@ def rule_pro_ext(self): _locals = {'self': self} self.locals['pro_ext'] = _locals def _G_optional_461(): - self._trace('', (7801, 7807), self.input.position) + self._trace('', (7803, 7809), self.input.position) _G_apply_462, lastError = self._apply(self.rule_aat13, "aat13", []) self.considerError(lastError, None) return (_G_apply_462, self.currentError) @@ -1571,7 +1571,7 @@ def _G_optional_463(): _G_or_464, lastError = self._or([_G_optional_461, _G_optional_463]) self.considerError(lastError, 'pro_ext') _locals['alt'] = _G_or_464 - self._trace('', (7812, 7816), self.input.position) + self._trace('', (7814, 7818), self.input.position) _G_apply_465, lastError = self._apply(self.rule_ext, "ext", []) self.considerError(lastError, 'pro_ext') _locals['aaterm'] = _G_apply_465[0] @@ -1584,7 +1584,7 @@ def _G_optional_463(): def rule_pro_ident(self): _locals = {'self': self} self.locals['pro_ident'] = _locals - self._trace('', (7912, 7916), self.input.position) + self._trace('', (7914, 7918), self.input.position) _G_exactly_468, lastError = self.exactly('=') self.considerError(lastError, 'pro_ident') _G_python_470, lastError = eval(self._G_expr_469, self.globals, _locals), None @@ -1596,19 +1596,19 @@ def rule_c_interval(self): _locals = {'self': self} self.locals['c_interval'] = _locals def _G_or_471(): - self._trace('', (8238, 8253), self.input.position) + self._trace('', (8240, 8255), self.input.position) _G_apply_472, lastError = self._apply(self.rule_def_c_interval, "def_c_interval", []) self.considerError(lastError, None) return (_G_apply_472, self.currentError) def _G_or_473(): - self._trace('', (8255, 8259), self.input.position) + self._trace('', (8257, 8261), self.input.position) _G_exactly_474, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8259, 8274), self.input.position) + self._trace('', (8261, 8276), self.input.position) _G_apply_475, lastError = self._apply(self.rule_def_c_interval, "def_c_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_475 - self._trace('', (8277, 8281), self.input.position) + self._trace('', (8279, 8283), self.input.position) _G_exactly_476, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_478, lastError = eval(self._G_expr_477, self.globals, _locals), None @@ -1623,27 +1623,27 @@ def rule_g_interval(self): _locals = {'self': self} self.locals['g_interval'] = _locals def _G_or_480(): - self._trace('', (8317, 8342), self.input.position) + self._trace('', (8319, 8344), self.input.position) _G_apply_481, lastError = self._apply(self.rule_def_g_uncertain_interval, "def_g_uncertain_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_481 return (_G_apply_481, self.currentError) def _G_or_482(): - self._trace('', (8349, 8352), self.input.position) + self._trace('', (8351, 8354), self.input.position) _G_exactly_483, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8352, 8367), self.input.position) + self._trace('', (8354, 8369), self.input.position) _G_apply_484, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_484 - self._trace('', (8370, 8374), self.input.position) + self._trace('', (8372, 8376), self.input.position) _G_exactly_485, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_486, lastError = eval(self._G_expr_477, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_486, self.currentError) def _G_or_487(): - self._trace('', (8400, 8415), self.input.position) + self._trace('', (8402, 8417), self.input.position) _G_apply_488, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) return (_G_apply_488, self.currentError) @@ -1656,19 +1656,19 @@ def rule_m_interval(self): _locals = {'self': self} self.locals['m_interval'] = _locals def _G_or_490(): - self._trace('', (8428, 8443), self.input.position) + self._trace('', (8430, 8445), self.input.position) _G_apply_491, lastError = self._apply(self.rule_def_m_interval, "def_m_interval", []) self.considerError(lastError, None) return (_G_apply_491, self.currentError) def _G_or_492(): - self._trace('', (8445, 8449), self.input.position) + self._trace('', (8447, 8451), self.input.position) _G_exactly_493, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8449, 8464), self.input.position) + self._trace('', (8451, 8466), self.input.position) _G_apply_494, lastError = self._apply(self.rule_def_m_interval, "def_m_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_494 - self._trace('', (8467, 8471), self.input.position) + self._trace('', (8469, 8473), self.input.position) _G_exactly_495, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_496, lastError = eval(self._G_expr_477, self.globals, _locals), None @@ -1683,19 +1683,19 @@ def rule_n_interval(self): _locals = {'self': self} self.locals['n_interval'] = _locals def _G_or_498(): - self._trace('', (8507, 8522), self.input.position) + self._trace('', (8509, 8524), self.input.position) _G_apply_499, lastError = self._apply(self.rule_def_n_interval, "def_n_interval", []) self.considerError(lastError, None) return (_G_apply_499, self.currentError) def _G_or_500(): - self._trace('', (8524, 8528), self.input.position) + self._trace('', (8526, 8530), self.input.position) _G_exactly_501, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8528, 8543), self.input.position) + self._trace('', (8530, 8545), self.input.position) _G_apply_502, lastError = self._apply(self.rule_def_n_interval, "def_n_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_502 - self._trace('', (8546, 8550), self.input.position) + self._trace('', (8548, 8552), self.input.position) _G_exactly_503, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_504, lastError = eval(self._G_expr_477, self.globals, _locals), None @@ -1710,19 +1710,19 @@ def rule_p_interval(self): _locals = {'self': self} self.locals['p_interval'] = _locals def _G_or_506(): - self._trace('', (8586, 8601), self.input.position) + self._trace('', (8588, 8603), self.input.position) _G_apply_507, lastError = self._apply(self.rule_def_p_interval, "def_p_interval", []) self.considerError(lastError, None) return (_G_apply_507, self.currentError) def _G_or_508(): - self._trace('', (8603, 8607), self.input.position) + self._trace('', (8605, 8609), self.input.position) _G_exactly_509, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8607, 8622), self.input.position) + self._trace('', (8609, 8624), self.input.position) _G_apply_510, lastError = self._apply(self.rule_def_p_interval, "def_p_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_510 - self._trace('', (8625, 8629), self.input.position) + self._trace('', (8627, 8631), self.input.position) _G_exactly_511, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_512, lastError = eval(self._G_expr_477, self.globals, _locals), None @@ -1737,19 +1737,19 @@ def rule_r_interval(self): _locals = {'self': self} self.locals['r_interval'] = _locals def _G_or_514(): - self._trace('', (8665, 8680), self.input.position) + self._trace('', (8667, 8682), self.input.position) _G_apply_515, lastError = self._apply(self.rule_def_r_interval, "def_r_interval", []) self.considerError(lastError, None) return (_G_apply_515, self.currentError) def _G_or_516(): - self._trace('', (8682, 8686), self.input.position) + self._trace('', (8684, 8688), self.input.position) _G_exactly_517, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8686, 8701), self.input.position) + self._trace('', (8688, 8703), self.input.position) _G_apply_518, lastError = self._apply(self.rule_def_r_interval, "def_r_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_518 - self._trace('', (8704, 8708), self.input.position) + self._trace('', (8706, 8710), self.input.position) _G_exactly_519, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_520, lastError = eval(self._G_expr_477, self.globals, _locals), None @@ -1764,14 +1764,14 @@ def rule_def_g_interval(self): _locals = {'self': self} self.locals['def_g_interval'] = _locals def _G_or_522(): - self._trace('', (8772, 8777), self.input.position) + self._trace('', (8774, 8779), self.input.position) _G_apply_523, lastError = self._apply(self.rule_g_pos, "g_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_523 - self._trace('', (8783, 8787), self.input.position) + self._trace('', (8785, 8789), self.input.position) _G_exactly_524, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (8787, 8793), self.input.position) + self._trace('', (8789, 8795), self.input.position) _G_apply_525, lastError = self._apply(self.rule_g_pos, "g_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_525 @@ -1779,7 +1779,7 @@ def _G_or_522(): self.considerError(lastError, None) return (_G_python_527, self.currentError) def _G_or_528(): - self._trace('', (8839, 8844), self.input.position) + self._trace('', (8841, 8846), self.input.position) _G_apply_529, lastError = self._apply(self.rule_g_pos, "g_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_529 @@ -1795,14 +1795,14 @@ def rule_def_m_interval(self): _locals = {'self': self} self.locals['def_m_interval'] = _locals def _G_or_533(): - self._trace('', (8924, 8929), self.input.position) + self._trace('', (8926, 8931), self.input.position) _G_apply_534, lastError = self._apply(self.rule_m_pos, "m_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_534 - self._trace('', (8935, 8939), self.input.position) + self._trace('', (8937, 8941), self.input.position) _G_exactly_535, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (8939, 8945), self.input.position) + self._trace('', (8941, 8947), self.input.position) _G_apply_536, lastError = self._apply(self.rule_m_pos, "m_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_536 @@ -1810,7 +1810,7 @@ def _G_or_533(): self.considerError(lastError, None) return (_G_python_537, self.currentError) def _G_or_538(): - self._trace('', (8991, 8996), self.input.position) + self._trace('', (8993, 8998), self.input.position) _G_apply_539, lastError = self._apply(self.rule_m_pos, "m_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_539 @@ -1826,14 +1826,14 @@ def rule_def_p_interval(self): _locals = {'self': self} self.locals['def_p_interval'] = _locals def _G_or_542(): - self._trace('', (9076, 9081), self.input.position) + self._trace('', (9078, 9083), self.input.position) _G_apply_543, lastError = self._apply(self.rule_p_pos, "p_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_543 - self._trace('', (9087, 9091), self.input.position) + self._trace('', (9089, 9093), self.input.position) _G_exactly_544, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9091, 9097), self.input.position) + self._trace('', (9093, 9099), self.input.position) _G_apply_545, lastError = self._apply(self.rule_p_pos, "p_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_545 @@ -1841,7 +1841,7 @@ def _G_or_542(): self.considerError(lastError, None) return (_G_python_546, self.currentError) def _G_or_547(): - self._trace('', (9143, 9148), self.input.position) + self._trace('', (9145, 9150), self.input.position) _G_apply_548, lastError = self._apply(self.rule_p_pos, "p_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_548 @@ -1857,14 +1857,14 @@ def rule_def_r_interval(self): _locals = {'self': self} self.locals['def_r_interval'] = _locals def _G_or_551(): - self._trace('', (9228, 9233), self.input.position) + self._trace('', (9230, 9235), self.input.position) _G_apply_552, lastError = self._apply(self.rule_r_pos, "r_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_552 - self._trace('', (9239, 9243), self.input.position) + self._trace('', (9241, 9245), self.input.position) _G_exactly_553, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9243, 9249), self.input.position) + self._trace('', (9245, 9251), self.input.position) _G_apply_554, lastError = self._apply(self.rule_r_pos, "r_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_554 @@ -1872,7 +1872,7 @@ def _G_or_551(): self.considerError(lastError, None) return (_G_python_555, self.currentError) def _G_or_556(): - self._trace('', (9295, 9300), self.input.position) + self._trace('', (9297, 9302), self.input.position) _G_apply_557, lastError = self._apply(self.rule_r_pos, "r_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_557 @@ -1888,14 +1888,14 @@ def rule_def_c_interval(self): _locals = {'self': self} self.locals['def_c_interval'] = _locals def _G_or_560(): - self._trace('', (9380, 9385), self.input.position) + self._trace('', (9382, 9387), self.input.position) _G_apply_561, lastError = self._apply(self.rule_c_pos, "c_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_561 - self._trace('', (9391, 9395), self.input.position) + self._trace('', (9393, 9397), self.input.position) _G_exactly_562, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9395, 9401), self.input.position) + self._trace('', (9397, 9403), self.input.position) _G_apply_563, lastError = self._apply(self.rule_c_pos, "c_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_563 @@ -1903,7 +1903,7 @@ def _G_or_560(): self.considerError(lastError, None) return (_G_python_565, self.currentError) def _G_or_566(): - self._trace('', (9457, 9462), self.input.position) + self._trace('', (9459, 9464), self.input.position) _G_apply_567, lastError = self._apply(self.rule_c_pos, "c_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_567 @@ -1919,14 +1919,14 @@ def rule_def_n_interval(self): _locals = {'self': self} self.locals['def_n_interval'] = _locals def _G_or_571(): - self._trace('', (9552, 9557), self.input.position) + self._trace('', (9554, 9559), self.input.position) _G_apply_572, lastError = self._apply(self.rule_n_pos, "n_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_572 - self._trace('', (9563, 9567), self.input.position) + self._trace('', (9565, 9569), self.input.position) _G_exactly_573, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9567, 9573), self.input.position) + self._trace('', (9569, 9575), self.input.position) _G_apply_574, lastError = self._apply(self.rule_n_pos, "n_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_574 @@ -1934,7 +1934,7 @@ def _G_or_571(): self.considerError(lastError, None) return (_G_python_575, self.currentError) def _G_or_576(): - self._trace('', (9629, 9634), self.input.position) + self._trace('', (9631, 9636), self.input.position) _G_apply_577, lastError = self._apply(self.rule_n_pos, "n_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_577 @@ -1950,68 +1950,68 @@ def rule_def_g_uncertain_interval(self): _locals = {'self': self} self.locals['def_g_uncertain_interval'] = _locals def _G_or_580(): - self._trace('', (9753, 9757), self.input.position) + self._trace('', (9755, 9759), self.input.position) _G_exactly_581, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (9757, 9772), self.input.position) + self._trace('', (9759, 9774), self.input.position) _G_apply_582, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['ivl_start'] = _G_apply_582 - self._trace('', (9782, 9786), self.input.position) + self._trace('', (9784, 9788), self.input.position) _G_exactly_583, lastError = self.exactly(')') self.considerError(lastError, None) - self._trace('', (9786, 9790), self.input.position) + self._trace('', (9788, 9792), self.input.position) _G_exactly_584, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9790, 9794), self.input.position) + self._trace('', (9792, 9796), self.input.position) _G_exactly_585, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (9794, 9809), self.input.position) + self._trace('', (9796, 9811), self.input.position) _G_apply_586, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['ivl_end'] = _G_apply_586 - self._trace('', (9817, 9821), self.input.position) + self._trace('', (9819, 9823), self.input.position) _G_exactly_587, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_589, lastError = eval(self._G_expr_588, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_589, self.currentError) def _G_or_590(): - self._trace('', (9937, 9952), self.input.position) + self._trace('', (9939, 9954), self.input.position) _G_apply_591, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['ivl_start'] = _G_apply_591 - self._trace('', (9962, 9966), self.input.position) + self._trace('', (9964, 9968), self.input.position) _G_exactly_592, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9966, 9970), self.input.position) + self._trace('', (9968, 9972), self.input.position) _G_exactly_593, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (9970, 9985), self.input.position) + self._trace('', (9972, 9987), self.input.position) _G_apply_594, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['ivl_end'] = _G_apply_594 - self._trace('', (9993, 9997), self.input.position) + self._trace('', (9995, 9999), self.input.position) _G_exactly_595, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_596, lastError = eval(self._G_expr_588, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_596, self.currentError) def _G_or_597(): - self._trace('', (10113, 10117), self.input.position) + self._trace('', (10115, 10119), self.input.position) _G_exactly_598, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (10117, 10132), self.input.position) + self._trace('', (10119, 10134), self.input.position) _G_apply_599, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['ivl_start'] = _G_apply_599 - self._trace('', (10142, 10146), self.input.position) + self._trace('', (10144, 10148), self.input.position) _G_exactly_600, lastError = self.exactly(')') self.considerError(lastError, None) - self._trace('', (10146, 10150), self.input.position) + self._trace('', (10148, 10152), self.input.position) _G_exactly_601, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (10150, 10165), self.input.position) + self._trace('', (10152, 10167), self.input.position) _G_apply_602, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['ivl_end'] = _G_apply_602 @@ -2026,7 +2026,7 @@ def _G_or_597(): def rule_c_pos(self): _locals = {'self': self} self.locals['c_pos'] = _locals - self._trace('', (10284, 10294), self.input.position) + self._trace('', (10286, 10296), self.input.position) _G_apply_605, lastError = self._apply(self.rule_def_c_pos, "def_c_pos", []) self.considerError(lastError, 'c_pos') return (_G_apply_605, self.currentError) @@ -2035,7 +2035,7 @@ def rule_c_pos(self): def rule_g_pos(self): _locals = {'self': self} self.locals['g_pos'] = _locals - self._trace('', (10351, 10361), self.input.position) + self._trace('', (10353, 10363), self.input.position) _G_apply_606, lastError = self._apply(self.rule_def_g_pos, "def_g_pos", []) self.considerError(lastError, 'g_pos') return (_G_apply_606, self.currentError) @@ -2044,7 +2044,7 @@ def rule_g_pos(self): def rule_m_pos(self): _locals = {'self': self} self.locals['m_pos'] = _locals - self._trace('', (10418, 10428), self.input.position) + self._trace('', (10420, 10430), self.input.position) _G_apply_607, lastError = self._apply(self.rule_def_m_pos, "def_m_pos", []) self.considerError(lastError, 'm_pos') return (_G_apply_607, self.currentError) @@ -2053,7 +2053,7 @@ def rule_m_pos(self): def rule_n_pos(self): _locals = {'self': self} self.locals['n_pos'] = _locals - self._trace('', (10485, 10495), self.input.position) + self._trace('', (10487, 10497), self.input.position) _G_apply_608, lastError = self._apply(self.rule_def_n_pos, "def_n_pos", []) self.considerError(lastError, 'n_pos') return (_G_apply_608, self.currentError) @@ -2062,7 +2062,7 @@ def rule_n_pos(self): def rule_p_pos(self): _locals = {'self': self} self.locals['p_pos'] = _locals - self._trace('', (10552, 10562), self.input.position) + self._trace('', (10554, 10564), self.input.position) _G_apply_609, lastError = self._apply(self.rule_def_p_pos, "def_p_pos", []) self.considerError(lastError, 'p_pos') return (_G_apply_609, self.currentError) @@ -2071,7 +2071,7 @@ def rule_p_pos(self): def rule_r_pos(self): _locals = {'self': self} self.locals['r_pos'] = _locals - self._trace('', (10619, 10629), self.input.position) + self._trace('', (10621, 10631), self.input.position) _G_apply_610, lastError = self._apply(self.rule_def_r_pos, "def_r_pos", []) self.considerError(lastError, 'r_pos') return (_G_apply_610, self.currentError) @@ -2081,11 +2081,11 @@ def rule_def_c_pos(self): _locals = {'self': self} self.locals['def_c_pos'] = _locals def _G_or_611(): - self._trace('', (10712, 10717), self.input.position) + self._trace('', (10714, 10719), self.input.position) _G_apply_612, lastError = self._apply(self.rule_base, "base", []) self.considerError(lastError, None) _locals['b'] = _G_apply_612 - self._trace('', (10719, 10726), self.input.position) + self._trace('', (10721, 10728), self.input.position) _G_apply_613, lastError = self._apply(self.rule_offset, "offset", []) self.considerError(lastError, None) _locals['o'] = _G_apply_613 @@ -2093,14 +2093,14 @@ def _G_or_611(): self.considerError(lastError, None) return (_G_python_615, self.currentError) def _G_or_616(): - self._trace('', (10811, 10815), self.input.position) + self._trace('', (10813, 10817), self.input.position) _G_exactly_617, lastError = self.exactly('*') self.considerError(lastError, None) - self._trace('', (10815, 10819), self.input.position) + self._trace('', (10817, 10821), self.input.position) _G_apply_618, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) _locals['b'] = _G_apply_618 - self._trace('', (10821, 10828), self.input.position) + self._trace('', (10823, 10830), self.input.position) _G_apply_619, lastError = self._apply(self.rule_offset, "offset", []) self.considerError(lastError, None) _locals['o'] = _G_apply_619 @@ -2116,12 +2116,12 @@ def rule_def_g_pos(self): _locals = {'self': self} self.locals['def_g_pos'] = _locals def _G_or_623(): - self._trace('', (10916, 10919), self.input.position) + self._trace('', (10918, 10921), self.input.position) _G_apply_624, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_624, self.currentError) def _G_or_625(): - self._trace('', (10920, 10923), self.input.position) + self._trace('', (10922, 10925), self.input.position) _G_exactly_626, lastError = self.exactly('?') self.considerError(lastError, None) _G_python_627, lastError = (None), None @@ -2139,12 +2139,12 @@ def rule_def_m_pos(self): _locals = {'self': self} self.locals['def_m_pos'] = _locals def _G_or_631(): - self._trace('', (10985, 10988), self.input.position) + self._trace('', (10987, 10990), self.input.position) _G_apply_632, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_632, self.currentError) def _G_or_633(): - self._trace('', (10989, 10992), self.input.position) + self._trace('', (10991, 10994), self.input.position) _G_exactly_634, lastError = self.exactly('?') self.considerError(lastError, None) _G_python_635, lastError = (None), None @@ -2161,11 +2161,11 @@ def _G_or_633(): def rule_def_n_pos(self): _locals = {'self': self} self.locals['def_n_pos'] = _locals - self._trace('', (11052, 11057), self.input.position) + self._trace('', (11054, 11059), self.input.position) _G_apply_638, lastError = self._apply(self.rule_base, "base", []) self.considerError(lastError, 'def_n_pos') _locals['b'] = _G_apply_638 - self._trace('', (11059, 11066), self.input.position) + self._trace('', (11061, 11068), self.input.position) _G_apply_639, lastError = self._apply(self.rule_offset, "offset", []) self.considerError(lastError, 'def_n_pos') _locals['o'] = _G_apply_639 @@ -2178,19 +2178,19 @@ def rule_def_p_pos(self): _locals = {'self': self} self.locals['def_p_pos'] = _locals def _G_or_642(): - self._trace('', (11156, 11162), self.input.position) + self._trace('', (11158, 11164), self.input.position) _G_apply_643, lastError = self._apply(self.rule_term13, "term13", []) self.considerError(lastError, None) return (_G_apply_643, self.currentError) def _G_or_644(): - self._trace('', (11163, 11167), self.input.position) + self._trace('', (11165, 11169), self.input.position) _G_apply_645, lastError = self._apply(self.rule_aa13, "aa13", []) self.considerError(lastError, None) return (_G_apply_645, self.currentError) _G_or_646, lastError = self._or([_G_or_642, _G_or_644]) self.considerError(lastError, 'def_p_pos') _locals['aa'] = _G_or_646 - self._trace('', (11171, 11175), self.input.position) + self._trace('', (11173, 11177), self.input.position) _G_apply_647, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, 'def_p_pos') _locals['pos'] = _G_apply_647 @@ -2202,11 +2202,11 @@ def _G_or_644(): def rule_def_r_pos(self): _locals = {'self': self} self.locals['def_r_pos'] = _locals - self._trace('', (11257, 11262), self.input.position) + self._trace('', (11259, 11264), self.input.position) _G_apply_650, lastError = self._apply(self.rule_base, "base", []) self.considerError(lastError, 'def_r_pos') _locals['b'] = _G_apply_650 - self._trace('', (11264, 11271), self.input.position) + self._trace('', (11266, 11273), self.input.position) _G_apply_651, lastError = self._apply(self.rule_offset, "offset", []) self.considerError(lastError, 'def_r_pos') _locals['o'] = _G_apply_651 @@ -2218,11 +2218,11 @@ def rule_def_r_pos(self): def rule_fs(self): _locals = {'self': self} self.locals['fs'] = _locals - self._trace('', (11675, 11680), self.input.position) + self._trace('', (11677, 11682), self.input.position) _G_exactly_653, lastError = self.exactly('fs') self.considerError(lastError, 'fs') def _G_or_654(): - self._trace('', (11682, 11689), self.input.position) + self._trace('', (11684, 11691), self.input.position) _G_apply_655, lastError = self._apply(self.rule_aa13_fs, "aa13_fs", []) self.considerError(lastError, None) return (_G_apply_655, self.currentError) @@ -2241,11 +2241,11 @@ def _G_or_656(): def rule_ext(self): _locals = {'self': self} self.locals['ext'] = _locals - self._trace('', (11713, 11719), self.input.position) + self._trace('', (11715, 11721), self.input.position) _G_exactly_661, lastError = self.exactly('ext') self.considerError(lastError, 'ext') def _G_or_662(): - self._trace('', (11721, 11729), self.input.position) + self._trace('', (11723, 11731), self.input.position) _G_apply_663, lastError = self._apply(self.rule_aa13_ext, "aa13_ext", []) self.considerError(lastError, None) return (_G_apply_663, self.currentError) @@ -2265,10 +2265,10 @@ def _G_or_664(): def rule_aa13_fs(self): _locals = {'self': self} self.locals['aa13_fs'] = _locals - self._trace('', (11779, 11786), self.input.position) + self._trace('', (11781, 11788), self.input.position) _G_apply_669, lastError = self._apply(self.rule_term13, "term13", []) self.considerError(lastError, 'aa13_fs') - self._trace('', (11786, 11799), self.input.position) + self._trace('', (11788, 11801), self.input.position) _G_apply_670, lastError = self._apply(self.rule_fsext_offset, "fsext_offset", []) self.considerError(lastError, 'aa13_fs') _locals['n'] = _G_apply_670 @@ -2281,11 +2281,11 @@ def rule_aa13_ext(self): _locals = {'self': self} self.locals['aa13_ext'] = _locals def _G_or_672(): - self._trace('', (11817, 11824), self.input.position) + self._trace('', (11819, 11826), self.input.position) _G_apply_673, lastError = self._apply(self.rule_term13, "term13", []) self.considerError(lastError, None) _locals['aat'] = _G_apply_673 - self._trace('', (11828, 11841), self.input.position) + self._trace('', (11830, 11843), self.input.position) _G_apply_674, lastError = self._apply(self.rule_fsext_offset, "fsext_offset", []) self.considerError(lastError, None) _locals['n'] = _G_apply_674 @@ -2294,7 +2294,7 @@ def _G_or_672(): return (_G_python_675, self.currentError) def _G_or_676(): def _G_or_677(): - self._trace('', (11868, 11872), self.input.position) + self._trace('', (11870, 11874), self.input.position) _G_apply_678, lastError = self._apply(self.rule_aa13, "aa13", []) self.considerError(lastError, None) return (_G_apply_678, self.currentError) @@ -2305,7 +2305,7 @@ def _G_or_679(): _G_or_681, lastError = self._or([_G_or_677, _G_or_679]) self.considerError(lastError, None) _locals['aat'] = _G_or_681 - self._trace('', (11889, 11894), self.input.position) + self._trace('', (11891, 11896), self.input.position) _G_apply_682, lastError = self._apply(self.rule_nnum, "nnum", []) self.considerError(lastError, None) _locals['n'] = _G_apply_682 @@ -2321,12 +2321,12 @@ def rule_fsext_offset(self): _locals = {'self': self} self.locals['fsext_offset'] = _locals def _G_or_685(): - self._trace('', (11923, 11927), self.input.position) + self._trace('', (11925, 11929), self.input.position) _G_apply_686, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_686, self.currentError) def _G_or_687(): - self._trace('', (11928, 11931), self.input.position) + self._trace('', (11930, 11933), self.input.position) _G_exactly_688, lastError = self.exactly('?') self.considerError(lastError, None) return (_G_exactly_688, self.currentError) @@ -2344,7 +2344,7 @@ def rule_dna_seq(self): self.locals['dna_seq'] = _locals def _G_consumedby_692(): def _G_many1_693(): - self._trace('', (11976, 11979), self.input.position) + self._trace('', (11978, 11981), self.input.position) _G_apply_694, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_694, self.currentError) @@ -2361,7 +2361,7 @@ def rule_rna_seq(self): self.locals['rna_seq'] = _locals def _G_consumedby_697(): def _G_many1_698(): - self._trace('', (11993, 11996), self.input.position) + self._trace('', (11995, 11998), self.input.position) _G_apply_699, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_699, self.currentError) @@ -2378,7 +2378,7 @@ def rule_aat13_seq(self): self.locals['aat13_seq'] = _locals def _G_or_702(): def _G_consumedby_703(): - self._trace('', (12012, 12020), self.input.position) + self._trace('', (12014, 12022), self.input.position) _G_apply_704, lastError = self._apply(self.rule_aat3_seq, "aat3_seq", []) self.considerError(lastError, None) return (_G_apply_704, self.currentError) @@ -2387,7 +2387,7 @@ def _G_consumedby_703(): return (_G_consumedby_705, self.currentError) def _G_or_706(): def _G_consumedby_707(): - self._trace('', (12025, 12033), self.input.position) + self._trace('', (12027, 12035), self.input.position) _G_apply_708, lastError = self._apply(self.rule_aat1_seq, "aat1_seq", []) self.considerError(lastError, None) return (_G_apply_708, self.currentError) @@ -2404,7 +2404,7 @@ def rule_aat1_seq(self): self.locals['aat1_seq'] = _locals def _G_or_711(): def _G_consumedby_712(): - self._trace('', (12047, 12052), self.input.position) + self._trace('', (12049, 12054), self.input.position) _G_apply_713, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) return (_G_apply_713, self.currentError) @@ -2414,14 +2414,14 @@ def _G_consumedby_712(): def _G_or_715(): def _G_consumedby_716(): def _G_many1_717(): - self._trace('', (12057, 12060), self.input.position) + self._trace('', (12059, 12062), self.input.position) _G_apply_718, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) return (_G_apply_718, self.currentError) _G_many1_719, lastError = self.many(_G_many1_717, _G_many1_717()) self.considerError(lastError, None) def _G_optional_720(): - self._trace('', (12061, 12067), self.input.position) + self._trace('', (12063, 12069), self.input.position) _G_apply_721, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) return (_G_apply_721, self.currentError) @@ -2443,7 +2443,7 @@ def rule_aat3_seq(self): self.locals['aat3_seq'] = _locals def _G_or_726(): def _G_consumedby_727(): - self._trace('', (12082, 12087), self.input.position) + self._trace('', (12084, 12089), self.input.position) _G_apply_728, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) return (_G_apply_728, self.currentError) @@ -2453,14 +2453,14 @@ def _G_consumedby_727(): def _G_or_730(): def _G_consumedby_731(): def _G_many1_732(): - self._trace('', (12092, 12095), self.input.position) + self._trace('', (12094, 12097), self.input.position) _G_apply_733, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) return (_G_apply_733, self.currentError) _G_many1_734, lastError = self.many(_G_many1_732, _G_many1_732()) self.considerError(lastError, None) def _G_optional_735(): - self._trace('', (12096, 12102), self.input.position) + self._trace('', (12098, 12104), self.input.position) _G_apply_736, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) return (_G_apply_736, self.currentError) @@ -2482,7 +2482,7 @@ def rule_aa13_seq(self): self.locals['aa13_seq'] = _locals def _G_or_741(): def _G_consumedby_742(): - self._trace('', (12117, 12124), self.input.position) + self._trace('', (12119, 12126), self.input.position) _G_apply_743, lastError = self._apply(self.rule_aa3_seq, "aa3_seq", []) self.considerError(lastError, None) return (_G_apply_743, self.currentError) @@ -2491,7 +2491,7 @@ def _G_consumedby_742(): return (_G_consumedby_744, self.currentError) def _G_or_745(): def _G_consumedby_746(): - self._trace('', (12129, 12136), self.input.position) + self._trace('', (12131, 12138), self.input.position) _G_apply_747, lastError = self._apply(self.rule_aa1_seq, "aa1_seq", []) self.considerError(lastError, None) return (_G_apply_747, self.currentError) @@ -2508,7 +2508,7 @@ def rule_aa1_seq(self): self.locals['aa1_seq'] = _locals def _G_consumedby_750(): def _G_many1_751(): - self._trace('', (12149, 12152), self.input.position) + self._trace('', (12151, 12154), self.input.position) _G_apply_752, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) return (_G_apply_752, self.currentError) @@ -2525,7 +2525,7 @@ def rule_aa3_seq(self): self.locals['aa3_seq'] = _locals def _G_consumedby_755(): def _G_many1_756(): - self._trace('', (12166, 12169), self.input.position) + self._trace('', (12168, 12171), self.input.position) _G_apply_757, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) return (_G_apply_757, self.currentError) @@ -2558,12 +2558,12 @@ def rule_aa13(self): _locals = {'self': self} self.locals['aa13'] = _locals def _G_or_767(): - self._trace('', (12250, 12254), self.input.position) + self._trace('', (12252, 12256), self.input.position) _G_apply_768, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) return (_G_apply_768, self.currentError) def _G_or_769(): - self._trace('', (12256, 12260), self.input.position) + self._trace('', (12258, 12262), self.input.position) _G_apply_770, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) return (_G_apply_770, self.currentError) @@ -2576,122 +2576,122 @@ def rule_aa3(self): _locals = {'self': self} self.locals['aa3'] = _locals def _G_or_772(): - self._trace('', (12266, 12272), self.input.position) + self._trace('', (12268, 12274), self.input.position) _G_exactly_773, lastError = self.exactly('Ala') self.considerError(lastError, None) return (_G_exactly_773, self.currentError) def _G_or_774(): - self._trace('', (12273, 12278), self.input.position) + self._trace('', (12275, 12280), self.input.position) _G_exactly_775, lastError = self.exactly('Cys') self.considerError(lastError, None) return (_G_exactly_775, self.currentError) def _G_or_776(): - self._trace('', (12279, 12284), self.input.position) + self._trace('', (12281, 12286), self.input.position) _G_exactly_777, lastError = self.exactly('Asp') self.considerError(lastError, None) return (_G_exactly_777, self.currentError) def _G_or_778(): - self._trace('', (12285, 12290), self.input.position) + self._trace('', (12287, 12292), self.input.position) _G_exactly_779, lastError = self.exactly('Glu') self.considerError(lastError, None) return (_G_exactly_779, self.currentError) def _G_or_780(): - self._trace('', (12291, 12296), self.input.position) + self._trace('', (12293, 12298), self.input.position) _G_exactly_781, lastError = self.exactly('Phe') self.considerError(lastError, None) return (_G_exactly_781, self.currentError) def _G_or_782(): - self._trace('', (12297, 12302), self.input.position) + self._trace('', (12299, 12304), self.input.position) _G_exactly_783, lastError = self.exactly('Gly') self.considerError(lastError, None) return (_G_exactly_783, self.currentError) def _G_or_784(): - self._trace('', (12303, 12308), self.input.position) + self._trace('', (12305, 12310), self.input.position) _G_exactly_785, lastError = self.exactly('His') self.considerError(lastError, None) return (_G_exactly_785, self.currentError) def _G_or_786(): - self._trace('', (12309, 12314), self.input.position) + self._trace('', (12311, 12316), self.input.position) _G_exactly_787, lastError = self.exactly('Ile') self.considerError(lastError, None) return (_G_exactly_787, self.currentError) def _G_or_788(): - self._trace('', (12315, 12320), self.input.position) + self._trace('', (12317, 12322), self.input.position) _G_exactly_789, lastError = self.exactly('Lys') self.considerError(lastError, None) return (_G_exactly_789, self.currentError) def _G_or_790(): - self._trace('', (12321, 12326), self.input.position) + self._trace('', (12323, 12328), self.input.position) _G_exactly_791, lastError = self.exactly('Leu') self.considerError(lastError, None) return (_G_exactly_791, self.currentError) def _G_or_792(): - self._trace('', (12327, 12332), self.input.position) + self._trace('', (12329, 12334), self.input.position) _G_exactly_793, lastError = self.exactly('Met') self.considerError(lastError, None) return (_G_exactly_793, self.currentError) def _G_or_794(): - self._trace('', (12333, 12338), self.input.position) + self._trace('', (12335, 12340), self.input.position) _G_exactly_795, lastError = self.exactly('Asn') self.considerError(lastError, None) return (_G_exactly_795, self.currentError) def _G_or_796(): - self._trace('', (12339, 12344), self.input.position) + self._trace('', (12341, 12346), self.input.position) _G_exactly_797, lastError = self.exactly('Pro') self.considerError(lastError, None) return (_G_exactly_797, self.currentError) def _G_or_798(): - self._trace('', (12345, 12350), self.input.position) + self._trace('', (12347, 12352), self.input.position) _G_exactly_799, lastError = self.exactly('Gln') self.considerError(lastError, None) return (_G_exactly_799, self.currentError) def _G_or_800(): - self._trace('', (12351, 12356), self.input.position) + self._trace('', (12353, 12358), self.input.position) _G_exactly_801, lastError = self.exactly('Arg') self.considerError(lastError, None) return (_G_exactly_801, self.currentError) def _G_or_802(): - self._trace('', (12357, 12362), self.input.position) + self._trace('', (12359, 12364), self.input.position) _G_exactly_803, lastError = self.exactly('Ser') self.considerError(lastError, None) return (_G_exactly_803, self.currentError) def _G_or_804(): - self._trace('', (12363, 12368), self.input.position) + self._trace('', (12365, 12370), self.input.position) _G_exactly_805, lastError = self.exactly('Thr') self.considerError(lastError, None) return (_G_exactly_805, self.currentError) def _G_or_806(): - self._trace('', (12369, 12374), self.input.position) + self._trace('', (12371, 12376), self.input.position) _G_exactly_807, lastError = self.exactly('Val') self.considerError(lastError, None) return (_G_exactly_807, self.currentError) def _G_or_808(): - self._trace('', (12375, 12380), self.input.position) + self._trace('', (12377, 12382), self.input.position) _G_exactly_809, lastError = self.exactly('Trp') self.considerError(lastError, None) return (_G_exactly_809, self.currentError) def _G_or_810(): - self._trace('', (12381, 12386), self.input.position) + self._trace('', (12383, 12388), self.input.position) _G_exactly_811, lastError = self.exactly('Tyr') self.considerError(lastError, None) return (_G_exactly_811, self.currentError) def _G_or_812(): - self._trace('', (12388, 12394), self.input.position) + self._trace('', (12390, 12396), self.input.position) _G_exactly_813, lastError = self.exactly('Asx') self.considerError(lastError, None) return (_G_exactly_813, self.currentError) def _G_or_814(): - self._trace('', (12396, 12402), self.input.position) + self._trace('', (12398, 12404), self.input.position) _G_exactly_815, lastError = self.exactly('Glx') self.considerError(lastError, None) return (_G_exactly_815, self.currentError) def _G_or_816(): - self._trace('', (12404, 12410), self.input.position) + self._trace('', (12406, 12412), self.input.position) _G_exactly_817, lastError = self.exactly('Xaa') self.considerError(lastError, None) return (_G_exactly_817, self.currentError) def _G_or_818(): - self._trace('', (12412, 12418), self.input.position) + self._trace('', (12414, 12420), self.input.position) _G_exactly_819, lastError = self.exactly('Sec') self.considerError(lastError, None) return (_G_exactly_819, self.currentError) @@ -2704,12 +2704,12 @@ def rule_aat1(self): _locals = {'self': self} self.locals['aat1'] = _locals def _G_or_821(): - self._trace('', (12425, 12431), self.input.position) + self._trace('', (12427, 12433), self.input.position) _G_apply_822, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) return (_G_apply_822, self.currentError) def _G_or_823(): - self._trace('', (12433, 12437), self.input.position) + self._trace('', (12435, 12439), self.input.position) _G_apply_824, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) return (_G_apply_824, self.currentError) @@ -2722,12 +2722,12 @@ def rule_aat13(self): _locals = {'self': self} self.locals['aat13'] = _locals def _G_or_826(): - self._trace('', (12445, 12450), self.input.position) + self._trace('', (12447, 12452), self.input.position) _G_apply_827, lastError = self._apply(self.rule_aat3, "aat3", []) self.considerError(lastError, None) return (_G_apply_827, self.currentError) def _G_or_828(): - self._trace('', (12452, 12457), self.input.position) + self._trace('', (12454, 12459), self.input.position) _G_apply_829, lastError = self._apply(self.rule_aat1, "aat1", []) self.considerError(lastError, None) return (_G_apply_829, self.currentError) @@ -2740,12 +2740,12 @@ def rule_aat3(self): _locals = {'self': self} self.locals['aat3'] = _locals def _G_or_831(): - self._trace('', (12464, 12470), self.input.position) + self._trace('', (12466, 12472), self.input.position) _G_apply_832, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) return (_G_apply_832, self.currentError) def _G_or_833(): - self._trace('', (12472, 12476), self.input.position) + self._trace('', (12474, 12478), self.input.position) _G_apply_834, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) return (_G_apply_834, self.currentError) @@ -2757,7 +2757,7 @@ def _G_or_833(): def rule_dna(self): _locals = {'self': self} self.locals['dna'] = _locals - self._trace('', (12482, 12492), self.input.position) + self._trace('', (12484, 12494), self.input.position) _G_apply_836, lastError = self._apply(self.rule_dna_iupac, "dna_iupac", []) self.considerError(lastError, 'dna') return (_G_apply_836, self.currentError) @@ -2800,7 +2800,7 @@ def _G_pred_844(): def rule_rna(self): _locals = {'self': self} self.locals['rna'] = _locals - self._trace('', (12621, 12631), self.input.position) + self._trace('', (12623, 12633), self.input.position) _G_apply_849, lastError = self._apply(self.rule_rna_iupac, "rna_iupac", []) self.considerError(lastError, 'rna') return (_G_apply_849, self.currentError) @@ -2844,12 +2844,12 @@ def rule_term13(self): _locals = {'self': self} self.locals['term13'] = _locals def _G_or_862(): - self._trace('', (12730, 12736), self.input.position) + self._trace('', (12732, 12738), self.input.position) _G_apply_863, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) return (_G_apply_863, self.currentError) def _G_or_864(): - self._trace('', (12738, 12744), self.input.position) + self._trace('', (12740, 12746), self.input.position) _G_apply_865, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) return (_G_apply_865, self.currentError) @@ -2861,7 +2861,7 @@ def _G_or_864(): def rule_term3(self): _locals = {'self': self} self.locals['term3'] = _locals - self._trace('', (12752, 12758), self.input.position) + self._trace('', (12754, 12760), self.input.position) _G_exactly_867, lastError = self.exactly('Ter') self.considerError(lastError, 'term3') return (_G_exactly_867, self.currentError) @@ -2870,7 +2870,7 @@ def rule_term3(self): def rule_base(self): _locals = {'self': self} self.locals['base'] = _locals - self._trace('', (12842, 12847), self.input.position) + self._trace('', (12844, 12849), self.input.position) _G_apply_868, lastError = self._apply(self.rule_snum, "snum", []) self.considerError(lastError, 'base') return (_G_apply_868, self.currentError) @@ -2880,10 +2880,10 @@ def rule_nnum(self): _locals = {'self': self} self.locals['nnum'] = _locals def _G_consumedby_869(): - self._trace('', (12856, 12859), self.input.position) + self._trace('', (12858, 12861), self.input.position) _G_exactly_870, lastError = self.exactly('-') self.considerError(lastError, None) - self._trace('', (12859, 12863), self.input.position) + self._trace('', (12861, 12865), self.input.position) _G_apply_871, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_871, self.currentError) @@ -2900,7 +2900,7 @@ def rule_num(self): self.locals['num'] = _locals def _G_consumedby_875(): def _G_many1_876(): - self._trace('', (12884, 12889), self.input.position) + self._trace('', (12886, 12891), self.input.position) _G_apply_877, lastError = self._apply(self.rule_digit, "digit", []) self.considerError(lastError, None) return (_G_apply_877, self.currentError) @@ -2919,7 +2919,7 @@ def rule_offset(self): _locals = {'self': self} self.locals['offset'] = _locals def _G_or_881(): - self._trace('', (12912, 12917), self.input.position) + self._trace('', (12914, 12919), self.input.position) _G_apply_882, lastError = self._apply(self.rule_snum, "snum", []) self.considerError(lastError, None) return (_G_apply_882, self.currentError) @@ -2954,7 +2954,7 @@ def rule_snum(self): self.locals['snum'] = _locals def _G_consumedby_892(): def _G_optional_893(): - self._trace('', (12961, 12963), self.input.position) + self._trace('', (12963, 12965), self.input.position) _G_apply_894, lastError = self._apply(self.rule_pm, "pm", []) self.considerError(lastError, None) return (_G_apply_894, self.currentError) @@ -2962,7 +2962,7 @@ def _G_optional_895(): return (None, self.input.nullError()) _G_or_896, lastError = self._or([_G_optional_893, _G_optional_895]) self.considerError(lastError, None) - self._trace('', (12964, 12968), self.input.position) + self._trace('', (12966, 12970), self.input.position) _G_apply_897, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_897, self.currentError) @@ -2978,31 +2978,31 @@ def rule_accn(self): _locals = {'self': self} self.locals['accn'] = _locals def _G_consumedby_900(): - self._trace('', (13072, 13078), self.input.position) + self._trace('', (13074, 13080), self.input.position) _G_apply_901, lastError = self._apply(self.rule_letter, "letter", []) self.considerError(lastError, None) def _G_optional_902(): def _G_many1_903(): def _G_or_904(): - self._trace('', (13081, 13094), self.input.position) + self._trace('', (13083, 13096), self.input.position) _G_apply_905, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) self.considerError(lastError, None) return (_G_apply_905, self.currentError) def _G_or_906(): def _G_or_907(): - self._trace('', (13098, 13101), self.input.position) + self._trace('', (13100, 13103), self.input.position) _G_exactly_908, lastError = self.exactly('-') self.considerError(lastError, None) return (_G_exactly_908, self.currentError) def _G_or_909(): - self._trace('', (13102, 13105), self.input.position) + self._trace('', (13104, 13107), self.input.position) _G_exactly_910, lastError = self.exactly('_') self.considerError(lastError, None) return (_G_exactly_910, self.currentError) _G_or_911, lastError = self._or([_G_or_907, _G_or_909]) self.considerError(lastError, None) def _G_lookahead_912(): - self._trace('', (13109, 13122), self.input.position) + self._trace('', (13111, 13124), self.input.position) _G_apply_913, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) self.considerError(lastError, None) return (_G_apply_913, self.currentError) @@ -3020,11 +3020,11 @@ def _G_optional_917(): _G_or_918, lastError = self._or([_G_optional_902, _G_optional_917]) self.considerError(lastError, None) def _G_optional_919(): - self._trace('', (13128, 13131), self.input.position) + self._trace('', (13130, 13133), self.input.position) _G_exactly_920, lastError = self.exactly('.') self.considerError(lastError, None) def _G_many1_921(): - self._trace('', (13131, 13137), self.input.position) + self._trace('', (13133, 13139), self.input.position) _G_apply_922, lastError = self._apply(self.rule_digit, "digit", []) self.considerError(lastError, None) return (_G_apply_922, self.currentError) @@ -3045,7 +3045,7 @@ def rule_opt_gene_expr(self): _locals = {'self': self} self.locals['opt_gene_expr'] = _locals def _G_or_927(): - self._trace('', (13159, 13169), self.input.position) + self._trace('', (13161, 13171), self.input.position) _G_apply_928, lastError = self._apply(self.rule_paren_gene, "paren_gene", []) self.considerError(lastError, None) return (_G_apply_928, self.currentError) @@ -3064,14 +3064,14 @@ def _G_or_929(): def rule_paren_gene(self): _locals = {'self': self} self.locals['paren_gene'] = _locals - self._trace('', (13205, 13209), self.input.position) + self._trace('', (13207, 13211), self.input.position) _G_exactly_934, lastError = self.exactly('(') self.considerError(lastError, 'paren_gene') - self._trace('', (13209, 13221), self.input.position) + self._trace('', (13211, 13223), self.input.position) _G_apply_935, lastError = self._apply(self.rule_gene_symbol, "gene_symbol", []) self.considerError(lastError, 'paren_gene') _locals['symbol'] = _G_apply_935 - self._trace('', (13228, 13232), self.input.position) + self._trace('', (13230, 13234), self.input.position) _G_exactly_936, lastError = self.exactly(')') self.considerError(lastError, 'paren_gene') _G_python_938, lastError = eval(self._G_expr_937, self.globals, _locals), None @@ -3083,30 +3083,30 @@ def rule_gene_symbol(self): _locals = {'self': self} self.locals['gene_symbol'] = _locals def _G_consumedby_939(): - self._trace('', (13258, 13264), self.input.position) + self._trace('', (13260, 13266), self.input.position) _G_apply_940, lastError = self._apply(self.rule_letter, "letter", []) self.considerError(lastError, None) def _G_many1_941(): def _G_or_942(): - self._trace('', (13266, 13279), self.input.position) + self._trace('', (13268, 13281), self.input.position) _G_apply_943, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) self.considerError(lastError, None) return (_G_apply_943, self.currentError) def _G_or_944(): def _G_or_945(): - self._trace('', (13283, 13286), self.input.position) + self._trace('', (13285, 13288), self.input.position) _G_exactly_946, lastError = self.exactly('-') self.considerError(lastError, None) return (_G_exactly_946, self.currentError) def _G_or_947(): - self._trace('', (13287, 13290), self.input.position) + self._trace('', (13289, 13292), self.input.position) _G_exactly_948, lastError = self.exactly('_') self.considerError(lastError, None) return (_G_exactly_948, self.currentError) _G_or_949, lastError = self._or([_G_or_945, _G_or_947]) self.considerError(lastError, None) def _G_lookahead_950(): - self._trace('', (13294, 13307), self.input.position) + self._trace('', (13296, 13309), self.input.position) _G_apply_951, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) self.considerError(lastError, None) return (_G_apply_951, self.currentError) From c15c552cdb538d08021b0ecc5b6a00f13b3f9dfe Mon Sep 17 00:00:00 2001 From: Andreas Prlic Date: Mon, 11 Dec 2023 15:50:53 -0800 Subject: [PATCH 03/25] feat(test): minor addition to test to make sure the breakpoints are uncertain --- tests/test_hgvs_sequencevariant.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/test_hgvs_sequencevariant.py b/tests/test_hgvs_sequencevariant.py index 00ed8360..fa4ef705 100644 --- a/tests/test_hgvs_sequencevariant.py +++ b/tests/test_hgvs_sequencevariant.py @@ -105,8 +105,10 @@ def test_uncertain(self): self.assertEqual(vs, str(v)) self.assertEqual(v.posedit.pos.start.start.base, 90136803) self.assertEqual(v.posedit.pos.start.end.base, 90144453) + self.assertEqual(v.posedit.pos.start.uncertain, True) self.assertEqual(v.posedit.pos.end.start.base, 90159675) self.assertEqual(v.posedit.pos.end.end.base, 90261231) + self.assertEqual(v.posedit.pos.end.uncertain, True) self.assertEqual(type(v.posedit.edit).__name__, "Dup") vs2 = "NC_000009.11:g.(?_108337304)_(108337428_?)del" From 8a4341aa7e62324f23e829fcfa37ab9679eb259a Mon Sep 17 00:00:00 2001 From: Andreas Prlic Date: Mon, 11 Dec 2023 23:45:39 -0800 Subject: [PATCH 04/25] feat(g_to_c): this adds support for g_to_c of uncertain coordinates. Since the behavior is a bit unspecified, we fall back to the inner (confident) interval of the uncertain range for this projection. --- src/hgvs/alignmentmapper.py | 15 +++++-- src/hgvs/location.py | 12 ++++++ src/hgvs/validator.py | 11 +++-- src/hgvs/variantmapper.py | 11 ++++- tests/data/cache-py3.hdp | Bin 921577 -> 1112736 bytes tests/test_hgvs_sequencevariant.py | 63 +++++++++++++++++++---------- 6 files changed, 82 insertions(+), 30 deletions(-) diff --git a/src/hgvs/alignmentmapper.py b/src/hgvs/alignmentmapper.py index ac3e2b45..ccf9b8fc 100644 --- a/src/hgvs/alignmentmapper.py +++ b/src/hgvs/alignmentmapper.py @@ -159,10 +159,17 @@ def g_to_n(self, g_interval, strict_bounds=None): if strict_bounds is None: strict_bounds = global_config.mapping.strict_bounds - grs, gre = ( - g_interval.start.base - 1 - self.gc_offset, - g_interval.end.base - 1 - self.gc_offset, - ) + # in case of uncertain ranges, we fall back to the inner (more confident) interval + if g_interval.start.uncertain: + grs = g_interval.start.end.base - 1 - self.gc_offset + else: + grs = g_interval.start.base - 1 - self.gc_offset + + if g_interval.end.uncertain: + gre = g_interval.end.start.base - 1 - self.gc_offset + else: + gre = g_interval.end.base - 1 - self.gc_offset + # frs, fre = (f)orward (r)na (s)tart & (e)nd; forward w.r.t. genome frs, frs_offset, frs_cigar = self.cigarmapper.map_ref_to_tgt( pos=grs, end="start", strict_bounds=strict_bounds diff --git a/src/hgvs/location.py b/src/hgvs/location.py index b6e88e1e..1b3295c7 100644 --- a/src/hgvs/location.py +++ b/src/hgvs/location.py @@ -76,6 +76,16 @@ def __lt__(lhs, rhs): assert type(lhs) == type(rhs), "Cannot compare coordinates of different representations" if lhs.uncertain or rhs.uncertain: raise HGVSUnsupportedOperationError("Cannot compare coordinates of uncertain positions") + + if lhs.base is None and rhs.base is None: + raise HGVSUnsupportedOperationError("Cannot compare two positions without bases") + + # imprecise positions can be on both sides of an interval + # This is weird, but because an unknown breakpoint can be expressed on both sides + # with a ? character we need to support that both options are true + if lhs.base is None or rhs.base is None: + return True + return lhs.base < rhs.base @@ -326,9 +336,11 @@ def validate(self): (res, msg) = self.end.validate() if res != ValidationLevel.VALID: return (res, msg) + # Check start less than or equal to end if not self.start or not self.end: return (ValidationLevel.VALID, None) + try: if self.start <= self.end: return (ValidationLevel.VALID, None) diff --git a/src/hgvs/validator.py b/src/hgvs/validator.py index ae1baace..67b78d90 100644 --- a/src/hgvs/validator.py +++ b/src/hgvs/validator.py @@ -148,9 +148,14 @@ def _ref_is_valid(self, var): else: var_ref_seq = getattr(var.posedit.edit, "ref", None) or None var_n = self.vm.c_to_n(var) if var.type == "c" else var - ref_checks.append( - (var_n.ac, var_n.posedit.pos.start.base, var_n.posedit.pos.end.base, var_ref_seq) - ) + if var_n.posedit.pos.start.uncertain or var_n.posedit.pos.end.uncertain: + ref_checks.append( + (var_n.ac, None, None, var_ref_seq) + ) + else: + ref_checks.append( + (var_n.ac, var_n.posedit.pos.start.base, var_n.posedit.pos.end.base, var_ref_seq) + ) for ac, var_ref_start, var_ref_end, var_ref_seq in ref_checks: if var_ref_start is None or var_ref_end is None or not var_ref_seq: diff --git a/src/hgvs/variantmapper.py b/src/hgvs/variantmapper.py index 17d6b145..45e5da0c 100644 --- a/src/hgvs/variantmapper.py +++ b/src/hgvs/variantmapper.py @@ -483,8 +483,15 @@ def _replace_reference(self, var): else: pos = var.posedit.pos - seq_start = pos.start.base - 1 - seq_end = pos.end.base + if pos.start.uncertain: + seq_start = pos.start.end.base - 1 + else: + seq_start = pos.start.base - 1 + + if pos.end.uncertain: + seq_end = pos.end.start.base + else: + seq_end = pos.end.base # When strict_bounds is False and an error occurs, return # variant as-is diff --git a/tests/data/cache-py3.hdp b/tests/data/cache-py3.hdp index e7ed304c4ce67c901eece222d8d9475b312ba12f..0229a8e1e8345cea26d66bd16681a076868fe820 100644 GIT binary patch delta 184760 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

T7pEXCv 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 GR1W~ty%87y diff --git a/tests/test_hgvs_sequencevariant.py b/tests/test_hgvs_sequencevariant.py index fa4ef705..a6ea6bd2 100644 --- a/tests/test_hgvs_sequencevariant.py +++ b/tests/test_hgvs_sequencevariant.py @@ -5,6 +5,8 @@ import unittest import pytest + +from hgvs.exceptions import HGVSParseError from support import CACHE import hgvs @@ -22,42 +24,47 @@ def test_gene_formatting(parser): @pytest.mark.quick @pytest.mark.models class Test_SequenceVariant(unittest.TestCase): + + @classmethod + def setUpClass(cls): + cls.hdp = hgvs.dataproviders.uta.connect( + mode=os.environ.get("HGVS_CACHE_MODE", "run"), cache=CACHE + ) + cls.vm = hgvs.variantmapper.VariantMapper(cls.hdp) + cls.hp = hgvs.parser.Parser() + + def test_SequenceVariant(self): var = hgvs.sequencevariant.SequenceVariant(ac="AC", type="B", posedit="1234DE>FG") self.assertEqual(str(var), "AC:B.1234DE>FG") def test_fill_ref(self): - hp = hgvs.parser.Parser() - hdp = hgvs.dataproviders.uta.connect( - mode=os.environ.get("HGVS_CACHE_MODE", "run"), cache=CACHE - ) # fill reference for sequence variants - var = hp.parse_hgvs_variant("NM_001166478.1:c.31_32del").fill_ref(hdp) + var = self.hp.parse_hgvs_variant("NM_001166478.1:c.31_32del").fill_ref(self.hdp) self.assertEqual(var.format({"max_ref_length": None}), "NM_001166478.1:c.31_32delTT") - var = hp.parse_hgvs_variant("NM_001166478.1:c.31_32del2").fill_ref(hdp) + var = self.hp.parse_hgvs_variant("NM_001166478.1:c.31_32del2").fill_ref(self.hdp) self.assertEqual(var.format({"max_ref_length": None}), "NM_001166478.1:c.31_32delTT") - var = hp.parse_hgvs_variant("NM_001166478.1:c.2_7delinsTTTAGA").fill_ref(hdp) + var = self.hp.parse_hgvs_variant("NM_001166478.1:c.2_7delinsTTTAGA").fill_ref(self.hdp) self.assertEqual( var.format({"max_ref_length": None}), "NM_001166478.1:c.2_7delTGAAGAinsTTTAGA" ) - var = hp.parse_hgvs_variant("NM_001166478.1:c.35_36dup").fill_ref(hdp) + var = self.hp.parse_hgvs_variant("NM_001166478.1:c.35_36dup").fill_ref(self.hdp) self.assertEqual(var.format({"max_ref_length": None}), "NM_001166478.1:c.35_36dupTC") - var = hp.parse_hgvs_variant("NM_001166478.1:c.18_19insACT").fill_ref(hdp) + var = self.hp.parse_hgvs_variant("NM_001166478.1:c.18_19insACT").fill_ref(self.hdp) self.assertEqual(var.format({"max_ref_length": None}), "NM_001166478.1:c.18_19insACT") - var = hp.parse_hgvs_variant("NM_001166478.1:c.31=").fill_ref(hdp) + var = self.hp.parse_hgvs_variant("NM_001166478.1:c.31=").fill_ref(self.hdp) self.assertEqual(var.format({"max_ref_length": None}), "NM_001166478.1:c.31T=") def test_format(self): - hp = hgvs.parser.Parser() # Global default settings - var = hp.parse_hgvs_variant("NP_001628.1:p.Gly528Arg") + var = self.hp.parse_hgvs_variant("NP_001628.1:p.Gly528Arg") self.assertEqual(str(var), "NP_001628.1:p.Gly528Arg") self.assertEqual(var.format(), "NP_001628.1:p.Gly528Arg") @@ -70,7 +77,7 @@ def test_format(self): conf = {"p_3_letter": False} self.assertEqual(var.format(conf), "NP_001628.1:p.G528R") - var = hp.parse_hgvs_variant("NP_001628.1:p.Gly528Ter") + var = self.hp.parse_hgvs_variant("NP_001628.1:p.Gly528Ter") conf = {"p_term_asterisk": True} self.assertEqual(var.format(conf), "NP_001628.1:p.Gly528*") self.assertEqual(var.format(), "NP_001628.1:p.Gly528Ter") @@ -79,29 +86,28 @@ def test_format(self): self.assertEqual(var.format(), "NP_001628.1:p.Gly528Ter") # Remove reference sequence - var = hp.parse_hgvs_variant("NM_001166478.1:c.31_32delTT") + var = self.hp.parse_hgvs_variant("NM_001166478.1:c.31_32delTT") self.assertEqual(str(var), "NM_001166478.1:c.31_32del") self.assertEqual(var.format(conf={"max_ref_length": 1}), "NM_001166478.1:c.31_32del") self.assertEqual(var.format(conf={"max_ref_length": 2}), "NM_001166478.1:c.31_32delTT") self.assertEqual(var.format(conf={"max_ref_length": None}), "NM_001166478.1:c.31_32delTT") - var = hp.parse_hgvs_variant("NM_001166478.1:c.31_32del2") + var = self.hp.parse_hgvs_variant("NM_001166478.1:c.31_32del2") self.assertEqual(str(var), "NM_001166478.1:c.31_32del") self.assertEqual(var.format(conf={"max_ref_length": None}), "NM_001166478.1:c.31_32del2") - var = hp.parse_hgvs_variant("NM_001166478.1:c.31_32delTTinsAA") + var = self.hp.parse_hgvs_variant("NM_001166478.1:c.31_32delTTinsAA") self.assertEqual(str(var), "NM_001166478.1:c.31_32delinsAA") - var = hp.parse_hgvs_variant("NM_001166478.1:c.35_36dupTC") + var = self.hp.parse_hgvs_variant("NM_001166478.1:c.35_36dupTC") self.assertEqual(str(var), "NM_001166478.1:c.35_36dup") - var = hp.parse_hgvs_variant("NM_001166478.1:c.31T=") + var = self.hp.parse_hgvs_variant("NM_001166478.1:c.31T=") self.assertEqual(str(var), "NM_001166478.1:c.31=") self.assertEqual(var.format(conf={"max_ref_length": None}), "NM_001166478.1:c.31T=") def test_uncertain(self): - hp = hgvs.parser.Parser() vs = "NC_000005.9:g.(90136803_90144453)_(90159675_90261231)dup" - v = hp.parse(vs) + v = self.hp.parse(vs) self.assertEqual(vs, str(v)) self.assertEqual(v.posedit.pos.start.start.base, 90136803) self.assertEqual(v.posedit.pos.start.end.base, 90144453) @@ -112,7 +118,7 @@ def test_uncertain(self): self.assertEqual(type(v.posedit.edit).__name__, "Dup") vs2 = "NC_000009.11:g.(?_108337304)_(108337428_?)del" - v2 = hp.parse(vs2) + v2 = self.hp.parse(vs2) self.assertEqual(vs2, str(v2)) self.assertEqual(v2.posedit.pos.start.start.base, None) self.assertEqual(v2.posedit.pos.start.uncertain, True) @@ -122,6 +128,21 @@ def test_uncertain(self): self.assertEqual(v2.posedit.pos.end.uncertain, True) self.assertEqual(type(v2.posedit.edit).__name__, "NARefAlt") + def test_uncertain_projection_confidence(self): + + data = [ + ("NC_000005.9:g.(90136803_90144453)_(90159675_90261231)dup", "NM_032119.3:c.17020-1_17856+1dup"), + ("NC_000019.9:g.(11211022_11213339)_(11217364_11218067)dup", "NM_000527.5:c.191-1_817+1dup"), + ("NC_000009.11:g.(?_108337304)_(108337428_?)del", "NM_001079802.1:c.-10_105+10del") + ] + + for hgvs_g, hgvs_c in data: + var_g = self.hp.parse(hgvs_g) + self.assertEqual(hgvs_g, str(var_g)) + + acc = hgvs_c.split(":")[0] + var_c = self.vm.g_to_c(var_g, acc) + self.assertEqual(hgvs_c, str(var_c)) if __name__ == "__main__": From 2e4ae22606ef1e5e07927ab14fefb60372edbd7a Mon Sep 17 00:00:00 2001 From: Reece Hart Date: Thu, 18 Jan 2024 20:38:29 -0800 Subject: [PATCH 05/25] update CODEOWNERS to @biocommons/maintainers --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index a923afcf..5a8e735e 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @reece +* @biocommons/maintainers From 82d7331f8770aa8b07ace0cff96c633e997837b1 Mon Sep 17 00:00:00 2001 From: Reece Hart Date: Tue, 30 Jan 2024 21:22:36 -0800 Subject: [PATCH 06/25] use shared stale action configuration --- .github/workflows/stale.yml | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 17bac5d3..0829446d 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -2,29 +2,10 @@ name: 'Close stale issues and PRs' on: + workflow_dispatch: schedule: - cron: '1 1 * * *' jobs: stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v8 - with: - exempt-all-milestones: true - exempt-issue-labels: bug,keep-alive - exempt-pr-labels: bug,keep-alive - - days-before-issue-close: 7 - days-before-issue-stale: 90 - stale-issue-label: stale - stale-issue-message: 'This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 7 days.' - close-issue-label: closed-by-stale - close-issue-message: 'This issue was closed because it has been stalled for 7 days with no activity.' - - days-before-pr-close: 7 - days-before-pr-stale: 30 - stale-pr-label: stale - stale-pr-message: 'This PR is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days.' - close-pr-label: closed-by-stale - close-pr-message: 'This PR was closed because it has been stalled for 7 days with no activity.' + uses: biocommons/actions/.github/workflows/stale.yml@main From a045165f4845c2805f8c3e7ea8d85127ec7775ad Mon Sep 17 00:00:00 2001 From: Reece Hart Date: Tue, 30 Jan 2024 21:44:03 -0800 Subject: [PATCH 07/25] import and standardize issue templates from biocommons.example --- .../{bug_report.md => bug-report.md} | 0 ...{feature_request.md => feature-request.md} | 0 .github/ISSUE_TEMPLATE/project-proposal.md | 34 +++++++++++++++++++ 3 files changed, 34 insertions(+) rename .github/ISSUE_TEMPLATE/{bug_report.md => bug-report.md} (100%) rename .github/ISSUE_TEMPLATE/{feature_request.md => feature-request.md} (100%) create mode 100644 .github/ISSUE_TEMPLATE/project-proposal.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug-report.md similarity index 100% rename from .github/ISSUE_TEMPLATE/bug_report.md rename to .github/ISSUE_TEMPLATE/bug-report.md diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature-request.md similarity index 100% rename from .github/ISSUE_TEMPLATE/feature_request.md rename to .github/ISSUE_TEMPLATE/feature-request.md diff --git a/.github/ISSUE_TEMPLATE/project-proposal.md b/.github/ISSUE_TEMPLATE/project-proposal.md new file mode 100644 index 00000000..01cb99d9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/project-proposal.md @@ -0,0 +1,34 @@ +--- +name: Project Proposal +about: Create a proposal for an intern or GSoC project +title: 'Project: ...' +labels: 'project' +assignees: '' + +--- + +### Summary + +1-3 sentence summary of project. + +See Background. + +## Value + +Why is this project meaningful? + +## Required and Desired Skills + +- Python +- Relational database design, SQL + +## Expected Outcomes + +- **Headline**. Description... +- **Headline**. Description... + +## Potential Mentors + +- @reece + +## Background From 43a556c07f613c4ea8d3dfb745e4416a25eadff8 Mon Sep 17 00:00:00 2001 From: Reece Hart Date: Tue, 30 Jan 2024 21:53:41 -0800 Subject: [PATCH 08/25] add standardized github labels and update action --- .github/labels.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/labels.yml b/.github/labels.yml index f67e6aeb..5d145048 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -31,6 +31,10 @@ description: "exempt issue from staleness checks" from_name: "keep alive" +- name: "project proposal" + color: "d876e3" + description: "project proposal for interns and GSoC students" + - name: "question" color: "d876e3" description: "Further information is requested" From 3ea0c5c9bd0f1c50f7ea225e324b15bbb4c3228d Mon Sep 17 00:00:00 2001 From: Reece Hart Date: Tue, 30 Jan 2024 22:02:21 -0800 Subject: [PATCH 09/25] expose clearer name for label sync action --- .github/workflows/labels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 40d0f447..8bdad116 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -1,4 +1,4 @@ -name: github +name: Synchronize labels on: push: From 1e2a433508c5b049bd60414c55c7744ee3e4f124 Mon Sep 17 00:00:00 2001 From: Reece Hart Date: Wed, 31 Jan 2024 17:58:00 -0800 Subject: [PATCH 10/25] remove .github/ISSUE_TEMPLATE (in order to use templates in .github repo instead) --- .github/ISSUE_TEMPLATE/bug-report.md | 24 --------------- .github/ISSUE_TEMPLATE/feature-request.md | 20 ------------- .github/ISSUE_TEMPLATE/project-proposal.md | 34 ---------------------- 3 files changed, 78 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug-report.md delete mode 100644 .github/ISSUE_TEMPLATE/feature-request.md delete mode 100644 .github/ISSUE_TEMPLATE/project-proposal.md diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md deleted file mode 100644 index 74514987..00000000 --- a/.github/ISSUE_TEMPLATE/bug-report.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md deleted file mode 100644 index bbcbbe7d..00000000 --- a/.github/ISSUE_TEMPLATE/feature-request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: '' -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/project-proposal.md b/.github/ISSUE_TEMPLATE/project-proposal.md deleted file mode 100644 index 01cb99d9..00000000 --- a/.github/ISSUE_TEMPLATE/project-proposal.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -name: Project Proposal -about: Create a proposal for an intern or GSoC project -title: 'Project: ...' -labels: 'project' -assignees: '' - ---- - -### Summary - -1-3 sentence summary of project. - -See Background. - -## Value - -Why is this project meaningful? - -## Required and Desired Skills - -- Python -- Relational database design, SQL - -## Expected Outcomes - -- **Headline**. Description... -- **Headline**. Description... - -## Potential Mentors - -- @reece - -## Background From 0c4c5d7311691e194e402a7200a71af25917fb6c Mon Sep 17 00:00:00 2001 From: Reece Hart Date: Wed, 31 Jan 2024 20:27:22 -0800 Subject: [PATCH 11/25] migrate to endbug/label-sync with biocommons-wide label config --- .github/labels.yml | 60 ++---------------------------------- .github/workflows/labels.yml | 28 ++++++++++------- 2 files changed, 19 insertions(+), 69 deletions(-) diff --git a/.github/labels.yml b/.github/labels.yml index 5d145048..070fda80 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -1,59 +1,3 @@ -- name: "bug" - color: "d73a4a" - description: "Something isn't working" +# file must contain an array, which may be empty -- name: "documentation" - color: "0075ca" - description: "Improvements or additions to documentation" - -- name: "duplicate" - color: "cfd3d7" - description: "This issue or pull request already exists" - -- name: "enhancement" - color: "a2eeef" - description: "New feature or request" - -- name: "good first issue" - color: "7057ff" - description: "Good for newcomers" - -- name: "help wanted" - color: "008672" - description: "Extra attention is needed" - -- name: "invalid" - color: "e4e669" - description: "This doesn't seem right" - -- name: "keep alive" - color: "666666" - description: "exempt issue from staleness checks" - from_name: "keep alive" - -- name: "project proposal" - color: "d876e3" - description: "project proposal for interns and GSoC students" - -- name: "question" - color: "d876e3" - description: "Further information is requested" - -- name: "rfc" - color: "d876e3" - description: "Request for comments" - -- name: "stale" - color: "777777" - description: "Issue is stale and subject to automatic closing" - from_name: "Stale" - -- name: "stale closed" - color: "444444" - description: "Issue was closed automatically due to inactivity" - from_name: "stale-closed" - -- name: "won't fix" - color: "ffffff" - description: "This will not be worked on" - from_name: wontfix \ No newline at end of file +[] diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 8bdad116..52c578c3 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -1,6 +1,6 @@ -name: Synchronize labels - +name: Sync labels on: + workflow_dispatch: push: branches: - 'main' @@ -8,16 +8,22 @@ on: - '.github/labels.yml' - '.github/workflows/labels.yml' +permissions: + issues: write + jobs: - labeler: + labels: runs-on: ubuntu-latest + steps: - - - name: Checkout - uses: actions/checkout@v3 - - - name: Run Labeler - uses: crazy-max/ghaction-github-labeler@v4 + - uses: actions/checkout@v4 with: - github-token: ${{ secrets.GITHUB_TOKEN }} - yaml-file: .github/labels.yml + sparse-checkout: .github/labels.yml + + - uses: EndBug/label-sync@v2 + with: + config-file: | + https://raw.githubusercontent.com/biocommons/.github/main/etc/labels.yml + .github/labels.yml + + delete-other-labels: false \ No newline at end of file From 4a44582ca430bf5175dfb7b97774badedd221411 Mon Sep 17 00:00:00 2001 From: Dave Lawrence Date: Wed, 7 Feb 2024 17:00:34 +1030 Subject: [PATCH 12/25] #688 - remove __future__ usage --- sbin/conf-to-vars | 2 -- src/hgvs/__init__.py | 2 -- src/hgvs/alignmentmapper.py | 2 -- src/hgvs/assemblymapper.py | 2 -- src/hgvs/config.py | 2 -- src/hgvs/dataproviders/interface.py | 2 -- src/hgvs/dataproviders/seqfetcher.py | 2 -- src/hgvs/dataproviders/uta.py | 2 -- src/hgvs/decorators/deprecated.py | 2 -- src/hgvs/decorators/lru_cache.py | 2 -- src/hgvs/edit.py | 2 -- src/hgvs/exceptions.py | 2 -- src/hgvs/hgvsposition.py | 2 -- src/hgvs/intervalmapper.py | 2 -- src/hgvs/location.py | 2 -- src/hgvs/normalizer.py | 2 -- src/hgvs/parser.py | 2 -- src/hgvs/posedit.py | 2 -- src/hgvs/projector.py | 2 -- src/hgvs/sequencevariant.py | 2 -- src/hgvs/shell.py | 2 -- src/hgvs/transcriptmapper.py | 2 -- src/hgvs/utils/__init__.py | 2 -- src/hgvs/utils/altseq_to_hgvsp.py | 2 -- src/hgvs/utils/altseqbuilder.py | 2 -- src/hgvs/utils/context.py | 2 -- src/hgvs/utils/norm.py | 2 -- src/hgvs/utils/orderedenum.py | 2 -- src/hgvs/validator.py | 2 -- src/hgvs/variantmapper.py | 2 -- tests/bin/build-ref-repl | 2 -- tests/bin/connpool-stress-test | 2 -- tests/fx-test/test_variant_length.py | 2 -- tests/issues/test_02xx.py | 2 -- tests/issues/test_03xx.py | 2 -- tests/issues/test_04xx.py | 2 -- tests/issues/test_05xx.py | 2 -- tests/support/crosschecker.py | 2 -- tests/support/mock_input_source.py | 2 -- tests/test_clinvar.py | 2 -- tests/test_hgvs_alignmentmapper.py | 2 -- tests/test_hgvs_assemblymapper.py | 2 -- tests/test_hgvs_dataproviders_uta.py | 2 -- tests/test_hgvs_edit.py | 2 -- tests/test_hgvs_grammar.py | 2 -- tests/test_hgvs_grammar_full.py | 2 -- tests/test_hgvs_hgvsposition.py | 2 -- tests/test_hgvs_location.py | 2 -- tests/test_hgvs_normalizer.py | 2 -- tests/test_hgvs_parser.py | 2 -- tests/test_hgvs_posedit.py | 2 -- tests/test_hgvs_projector.py | 2 -- tests/test_hgvs_sequencevariant.py | 2 -- tests/test_hgvs_validator.py | 2 -- tests/test_hgvs_variantmapper.py | 2 -- tests/test_hgvs_variantmapper_cp_altseqbuilder.py | 2 -- tests/test_hgvs_variantmapper_cp_real.py | 2 -- tests/test_hgvs_variantmapper_cp_sanity.py | 2 -- tests/test_hgvs_variantmapper_gcp.py | 2 -- tests/test_hgvs_variantmapper_near_discrepancies.py | 2 -- 60 files changed, 120 deletions(-) diff --git a/sbin/conf-to-vars b/sbin/conf-to-vars index e5e045bd..d0128a47 100755 --- a/sbin/conf-to-vars +++ b/sbin/conf-to-vars @@ -1,7 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function - __doc__ = """ Print conf file as variable assignments. diff --git a/src/hgvs/__init__.py b/src/hgvs/__init__.py index 81704bd6..5b821237 100644 --- a/src/hgvs/__init__.py +++ b/src/hgvs/__init__.py @@ -49,8 +49,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import logging import re import sys diff --git a/src/hgvs/alignmentmapper.py b/src/hgvs/alignmentmapper.py index ccf9b8fc..badedef3 100644 --- a/src/hgvs/alignmentmapper.py +++ b/src/hgvs/alignmentmapper.py @@ -27,8 +27,6 @@ # -from __future__ import absolute_import, division, print_function, unicode_literals - from bioutils.coordinates import strand_int_to_pm from six.moves import range diff --git a/src/hgvs/assemblymapper.py b/src/hgvs/assemblymapper.py index dcc5e0a6..e14e07ba 100644 --- a/src/hgvs/assemblymapper.py +++ b/src/hgvs/assemblymapper.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import logging import hgvs diff --git a/src/hgvs/config.py b/src/hgvs/config.py index 75790992..175043d7 100644 --- a/src/hgvs/config.py +++ b/src/hgvs/config.py @@ -27,8 +27,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import logging import re from configparser import ConfigParser, ExtendedInterpolation diff --git a/src/hgvs/dataproviders/interface.py b/src/hgvs/dataproviders/interface.py index fcdbd563..838ba080 100644 --- a/src/hgvs/dataproviders/interface.py +++ b/src/hgvs/dataproviders/interface.py @@ -3,8 +3,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import abc import os diff --git a/src/hgvs/dataproviders/seqfetcher.py b/src/hgvs/dataproviders/seqfetcher.py index f9d1870e..56a8823c 100644 --- a/src/hgvs/dataproviders/seqfetcher.py +++ b/src/hgvs/dataproviders/seqfetcher.py @@ -3,8 +3,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import logging import os diff --git a/src/hgvs/dataproviders/uta.py b/src/hgvs/dataproviders/uta.py index 2a9c1342..609ed88a 100644 --- a/src/hgvs/dataproviders/uta.py +++ b/src/hgvs/dataproviders/uta.py @@ -4,8 +4,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import contextlib import inspect import logging diff --git a/src/hgvs/decorators/deprecated.py b/src/hgvs/decorators/deprecated.py index a7f375d1..cc64f2b4 100644 --- a/src/hgvs/decorators/deprecated.py +++ b/src/hgvs/decorators/deprecated.py @@ -4,8 +4,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import collections import warnings diff --git a/src/hgvs/decorators/lru_cache.py b/src/hgvs/decorators/lru_cache.py index fe752604..6f3e50c3 100644 --- a/src/hgvs/decorators/lru_cache.py +++ b/src/hgvs/decorators/lru_cache.py @@ -11,8 +11,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - from collections import namedtuple from functools import update_wrapper from threading import RLock diff --git a/src/hgvs/edit.py b/src/hgvs/edit.py index a6b95f7a..694dc99c 100644 --- a/src/hgvs/edit.py +++ b/src/hgvs/edit.py @@ -9,8 +9,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import attr import six from bioutils.sequences import aa1_to_aa3, aa_to_aa1 diff --git a/src/hgvs/exceptions.py b/src/hgvs/exceptions.py index a9e5fc47..c5d21040 100644 --- a/src/hgvs/exceptions.py +++ b/src/hgvs/exceptions.py @@ -3,8 +3,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - class HGVSError(Exception): pass diff --git a/src/hgvs/hgvsposition.py b/src/hgvs/hgvsposition.py index eb9a16ca..14e3c25a 100644 --- a/src/hgvs/hgvsposition.py +++ b/src/hgvs/hgvsposition.py @@ -3,8 +3,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import attr diff --git a/src/hgvs/intervalmapper.py b/src/hgvs/intervalmapper.py index 3669fca6..ea15aba3 100644 --- a/src/hgvs/intervalmapper.py +++ b/src/hgvs/intervalmapper.py @@ -42,8 +42,6 @@ start_i and minimal end_i. """ -from __future__ import absolute_import, division, print_function, unicode_literals - import logging import re diff --git a/src/hgvs/location.py b/src/hgvs/location.py index 1b3295c7..0c21dd94 100644 --- a/src/hgvs/location.py +++ b/src/hgvs/location.py @@ -15,8 +15,6 @@ * :class:`Interval` -- an interval of Positions """ -from __future__ import absolute_import, division, print_function, unicode_literals - from functools import total_ordering import attr diff --git a/src/hgvs/normalizer.py b/src/hgvs/normalizer.py index b8c3c09a..ebe731ba 100644 --- a/src/hgvs/normalizer.py +++ b/src/hgvs/normalizer.py @@ -2,8 +2,6 @@ """hgvs.normalizer """ -from __future__ import absolute_import, division, print_function, unicode_literals - import copy import logging diff --git a/src/hgvs/parser.py b/src/hgvs/parser.py index 9e26220a..101927e8 100644 --- a/src/hgvs/parser.py +++ b/src/hgvs/parser.py @@ -4,8 +4,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import copy import logging import re diff --git a/src/hgvs/posedit.py b/src/hgvs/posedit.py index 07cc981e..b841da2f 100644 --- a/src/hgvs/posedit.py +++ b/src/hgvs/posedit.py @@ -3,8 +3,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import attr from hgvs.enums import ValidationLevel diff --git a/src/hgvs/projector.py b/src/hgvs/projector.py index ac827689..74679087 100644 --- a/src/hgvs/projector.py +++ b/src/hgvs/projector.py @@ -4,8 +4,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import copy import hgvs diff --git a/src/hgvs/sequencevariant.py b/src/hgvs/sequencevariant.py index c49e29ea..698ab373 100644 --- a/src/hgvs/sequencevariant.py +++ b/src/hgvs/sequencevariant.py @@ -1,8 +1,6 @@ # -*- coding: utf-8 -*- """ represents simple sequence-based variants """ -from __future__ import absolute_import, division, print_function, unicode_literals - import attr import hgvs.variantmapper diff --git a/src/hgvs/shell.py b/src/hgvs/shell.py index 2d4da673..234219f4 100755 --- a/src/hgvs/shell.py +++ b/src/hgvs/shell.py @@ -2,8 +2,6 @@ """start IPython shell with hgvs initialized. Intended to be used for experimenting, debugging, and generating bug reports.""" -from __future__ import absolute_import, division, print_function, unicode_literals - import logging import os diff --git a/src/hgvs/transcriptmapper.py b/src/hgvs/transcriptmapper.py index 6e622305..09210e0f 100644 --- a/src/hgvs/transcriptmapper.py +++ b/src/hgvs/transcriptmapper.py @@ -4,8 +4,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import logging from bioutils.coordinates import strand_int_to_pm diff --git a/src/hgvs/utils/__init__.py b/src/hgvs/utils/__init__.py index 58a9730e..c1a9b5a6 100644 --- a/src/hgvs/utils/__init__.py +++ b/src/hgvs/utils/__init__.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import re diff --git a/src/hgvs/utils/altseq_to_hgvsp.py b/src/hgvs/utils/altseq_to_hgvsp.py index 699fe9cf..99cd141b 100644 --- a/src/hgvs/utils/altseq_to_hgvsp.py +++ b/src/hgvs/utils/altseq_to_hgvsp.py @@ -5,8 +5,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - from six.moves import range import hgvs diff --git a/src/hgvs/utils/altseqbuilder.py b/src/hgvs/utils/altseqbuilder.py index ccf6f518..9c00dc98 100644 --- a/src/hgvs/utils/altseqbuilder.py +++ b/src/hgvs/utils/altseqbuilder.py @@ -6,8 +6,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import logging import math diff --git a/src/hgvs/utils/context.py b/src/hgvs/utils/context.py index 5a8a7dfa..a29fe3eb 100644 --- a/src/hgvs/utils/context.py +++ b/src/hgvs/utils/context.py @@ -23,8 +23,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import re from bioutils.sequences import complement diff --git a/src/hgvs/utils/norm.py b/src/hgvs/utils/norm.py index c67a807b..8f8497f3 100644 --- a/src/hgvs/utils/norm.py +++ b/src/hgvs/utils/norm.py @@ -5,8 +5,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - from collections import namedtuple from six.moves import range diff --git a/src/hgvs/utils/orderedenum.py b/src/hgvs/utils/orderedenum.py index e78b14dd..2ce7db93 100644 --- a/src/hgvs/utils/orderedenum.py +++ b/src/hgvs/utils/orderedenum.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - from enum import Enum diff --git a/src/hgvs/validator.py b/src/hgvs/validator.py index 67b78d90..bc0ca8ed 100644 --- a/src/hgvs/validator.py +++ b/src/hgvs/validator.py @@ -3,8 +3,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import logging import hgvs diff --git a/src/hgvs/variantmapper.py b/src/hgvs/variantmapper.py index 45e5da0c..63bdfd3d 100644 --- a/src/hgvs/variantmapper.py +++ b/src/hgvs/variantmapper.py @@ -3,8 +3,6 @@ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import copy import logging diff --git a/tests/bin/build-ref-repl b/tests/bin/build-ref-repl index 16927532..0e902b31 100755 --- a/tests/bin/build-ref-repl +++ b/tests/bin/build-ref-repl @@ -1,8 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - """Builds reference replacement test sets""" import logging diff --git a/tests/bin/connpool-stress-test b/tests/bin/connpool-stress-test index 516a71c6..0f04e094 100755 --- a/tests/bin/connpool-stress-test +++ b/tests/bin/connpool-stress-test @@ -10,8 +10,6 @@ With 0.4.5a4.post0, it runs until terminated (several runs of at least two minut https://github.com/biocommons/hgvs/issues/321/ """ -from __future__ import absolute_import, division, print_function, unicode_literals - import gzip import logging import random diff --git a/tests/fx-test/test_variant_length.py b/tests/fx-test/test_variant_length.py index 54d641d1..5b42e9a1 100644 --- a/tests/fx-test/test_variant_length.py +++ b/tests/fx-test/test_variant_length.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import unittest diff --git a/tests/issues/test_02xx.py b/tests/issues/test_02xx.py index b804dbb3..3a631ee6 100644 --- a/tests/issues/test_02xx.py +++ b/tests/issues/test_02xx.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import unittest diff --git a/tests/issues/test_03xx.py b/tests/issues/test_03xx.py index 349584af..e030ced8 100644 --- a/tests/issues/test_03xx.py +++ b/tests/issues/test_03xx.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import unittest diff --git a/tests/issues/test_04xx.py b/tests/issues/test_04xx.py index 221be5d3..47e165ba 100644 --- a/tests/issues/test_04xx.py +++ b/tests/issues/test_04xx.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import unittest diff --git a/tests/issues/test_05xx.py b/tests/issues/test_05xx.py index 0679b81c..962d75b8 100644 --- a/tests/issues/test_05xx.py +++ b/tests/issues/test_05xx.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import unittest diff --git a/tests/support/crosschecker.py b/tests/support/crosschecker.py index cd428eea..68d1510e 100644 --- a/tests/support/crosschecker.py +++ b/tests/support/crosschecker.py @@ -1,5 +1,3 @@ -from __future__ import absolute_import, division, print_function, unicode_literals - import itertools from six.moves import map diff --git a/tests/support/mock_input_source.py b/tests/support/mock_input_source.py index 184fbb49..5378aded 100644 --- a/tests/support/mock_input_source.py +++ b/tests/support/mock_input_source.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import csv # Mock test input source diff --git a/tests/test_clinvar.py b/tests/test_clinvar.py index 64d6b621..942d931f 100644 --- a/tests/test_clinvar.py +++ b/tests/test_clinvar.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import csv import gzip import io diff --git a/tests/test_hgvs_alignmentmapper.py b/tests/test_hgvs_alignmentmapper.py index bdff4e81..341cc2ef 100644 --- a/tests/test_hgvs_alignmentmapper.py +++ b/tests/test_hgvs_alignmentmapper.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import unittest diff --git a/tests/test_hgvs_assemblymapper.py b/tests/test_hgvs_assemblymapper.py index d2730104..460ea299 100644 --- a/tests/test_hgvs_assemblymapper.py +++ b/tests/test_hgvs_assemblymapper.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import unittest diff --git a/tests/test_hgvs_dataproviders_uta.py b/tests/test_hgvs_dataproviders_uta.py index bf7ec847..f6e785cf 100644 --- a/tests/test_hgvs_dataproviders_uta.py +++ b/tests/test_hgvs_dataproviders_uta.py @@ -1,8 +1,6 @@ # -*- coding: utf-8 -*- """Tests uta postgresql client""" -from __future__ import absolute_import, division, print_function, unicode_literals - import os import re import unittest diff --git a/tests/test_hgvs_edit.py b/tests/test_hgvs_edit.py index 105be9b4..a5e49d5b 100644 --- a/tests/test_hgvs_edit.py +++ b/tests/test_hgvs_edit.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import unittest import pytest diff --git a/tests/test_hgvs_grammar.py b/tests/test_hgvs_grammar.py index 7c904a71..7492fe2c 100644 --- a/tests/test_hgvs_grammar.py +++ b/tests/test_hgvs_grammar.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import unittest import pytest diff --git a/tests/test_hgvs_grammar_full.py b/tests/test_hgvs_grammar_full.py index 5a0cd78c..d515325c 100644 --- a/tests/test_hgvs_grammar_full.py +++ b/tests/test_hgvs_grammar_full.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import pprint import re diff --git a/tests/test_hgvs_hgvsposition.py b/tests/test_hgvs_hgvsposition.py index 10ba0380..6883ffdb 100644 --- a/tests/test_hgvs_hgvsposition.py +++ b/tests/test_hgvs_hgvsposition.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import unittest import pytest diff --git a/tests/test_hgvs_location.py b/tests/test_hgvs_location.py index 2e75f2e8..3bc4e2db 100644 --- a/tests/test_hgvs_location.py +++ b/tests/test_hgvs_location.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import unittest import pytest diff --git a/tests/test_hgvs_normalizer.py b/tests/test_hgvs_normalizer.py index 65d9ab91..fbae6e99 100644 --- a/tests/test_hgvs_normalizer.py +++ b/tests/test_hgvs_normalizer.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import unittest diff --git a/tests/test_hgvs_parser.py b/tests/test_hgvs_parser.py index 5e296c43..a8b83046 100644 --- a/tests/test_hgvs_parser.py +++ b/tests/test_hgvs_parser.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import hashlib import os import pprint diff --git a/tests/test_hgvs_posedit.py b/tests/test_hgvs_posedit.py index a119f4f6..8f50060b 100644 --- a/tests/test_hgvs_posedit.py +++ b/tests/test_hgvs_posedit.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import unittest import pytest diff --git a/tests/test_hgvs_projector.py b/tests/test_hgvs_projector.py index 1c22357b..a7701d6a 100644 --- a/tests/test_hgvs_projector.py +++ b/tests/test_hgvs_projector.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import unittest diff --git a/tests/test_hgvs_sequencevariant.py b/tests/test_hgvs_sequencevariant.py index a6ea6bd2..40d4bbbc 100644 --- a/tests/test_hgvs_sequencevariant.py +++ b/tests/test_hgvs_sequencevariant.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import unittest diff --git a/tests/test_hgvs_validator.py b/tests/test_hgvs_validator.py index 59dc6f7a..0726b013 100644 --- a/tests/test_hgvs_validator.py +++ b/tests/test_hgvs_validator.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import unittest diff --git a/tests/test_hgvs_variantmapper.py b/tests/test_hgvs_variantmapper.py index 63a61ce6..795770bb 100644 --- a/tests/test_hgvs_variantmapper.py +++ b/tests/test_hgvs_variantmapper.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import unittest diff --git a/tests/test_hgvs_variantmapper_cp_altseqbuilder.py b/tests/test_hgvs_variantmapper_cp_altseqbuilder.py index 7c4ade40..21f16cb0 100644 --- a/tests/test_hgvs_variantmapper_cp_altseqbuilder.py +++ b/tests/test_hgvs_variantmapper_cp_altseqbuilder.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import unittest diff --git a/tests/test_hgvs_variantmapper_cp_real.py b/tests/test_hgvs_variantmapper_cp_real.py index 5bd4c601..64419e43 100644 --- a/tests/test_hgvs_variantmapper_cp_real.py +++ b/tests/test_hgvs_variantmapper_cp_real.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import re import unittest diff --git a/tests/test_hgvs_variantmapper_cp_sanity.py b/tests/test_hgvs_variantmapper_cp_sanity.py index 02a01c73..6367d6c5 100644 --- a/tests/test_hgvs_variantmapper_cp_sanity.py +++ b/tests/test_hgvs_variantmapper_cp_sanity.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - # # Tests for conversion of hgvs tags # diff --git a/tests/test_hgvs_variantmapper_gcp.py b/tests/test_hgvs_variantmapper_gcp.py index 368d8f42..d59eb588 100644 --- a/tests/test_hgvs_variantmapper_gcp.py +++ b/tests/test_hgvs_variantmapper_gcp.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import re import sys diff --git a/tests/test_hgvs_variantmapper_near_discrepancies.py b/tests/test_hgvs_variantmapper_near_discrepancies.py index 84bed3d8..7a663222 100644 --- a/tests/test_hgvs_variantmapper_near_discrepancies.py +++ b/tests/test_hgvs_variantmapper_near_discrepancies.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, division, print_function, unicode_literals - import os import pytest From 6056847b165235c02042c68ae72aad46cd7df255 Mon Sep 17 00:00:00 2001 From: Dave Lawrence Date: Fri, 9 Feb 2024 10:39:58 +1030 Subject: [PATCH 13/25] #695 - Remove top level code environment scripts from modules --- src/hgvs/extras/babelfish.py | 48 ------------------------------ src/hgvs/utils/cigarmapper.py | 6 ---- tests/support/mock_input_source.py | 8 ----- 3 files changed, 62 deletions(-) diff --git a/src/hgvs/extras/babelfish.py b/src/hgvs/extras/babelfish.py index b1a7b49d..c1b387d3 100644 --- a/src/hgvs/extras/babelfish.py +++ b/src/hgvs/extras/babelfish.py @@ -106,51 +106,3 @@ def vcf_to_g_hgvs(self, chrom, position, ref, alt): ) n = Normalizer(self.hdp) return n.normalize(var_g) - - -if __name__ == "__main__": - """ - 49949___ 400 410 420 - |123456789|123456789| - NC_000006.12 GACCAGAAAGAAAAATAAAAC - - """ - - import hgvs.easy - import hgvs.normalizer - - babelfish38 = Babelfish(hgvs.easy.hdp, assembly_name="GRCh38") - hnl = hgvs.normalizer.Normalizer( - hgvs.easy.hdp, cross_boundaries=False, shuffle_direction=5, validate=False - ) - - def _h2v(h): - return babelfish38.hgvs_to_vcf(hgvs.easy.parser.parse(h)) - - def _vp(h): - v = hgvs.easy.parser.parse(h) - vl = hnl.normalize(v) - return (v, vl) - - for h in ( - # Non-variation - "NC_000006.12:g.49949407=", - # SNV - "NC_000006.12:g.49949407A>T", - # delins - "NC_000006.12:g.49949413_49949414delinsCC", - # del - "NC_000006.12:g.49949415del", - "NC_000006.12:g.49949413del", - "NC_000006.12:g.49949414del", - "NC_000006.12:g.49949413_49949414del", - # ins - "NC_000006.12:g.49949413_49949414insC", - "NC_000006.12:g.49949414_49949415insC", - "NC_000006.12:g.49949414_49949415insCC", - # ins (dup) - "NC_000006.12:g.49949413_49949414insA", - "NC_000006.12:g.49949414_49949415insA", - "NC_000006.12:g.49949414_49949415insAA", - ): - print('assert _h2v("{h}") == {res}'.format(res=str(_h2v(h)), h=h)) diff --git a/src/hgvs/utils/cigarmapper.py b/src/hgvs/utils/cigarmapper.py index 454f3131..4708a377 100644 --- a/src/hgvs/utils/cigarmapper.py +++ b/src/hgvs/utils/cigarmapper.py @@ -139,9 +139,3 @@ def _parse_cigar(cigar): ref_pos.append(ref_cur) tgt_pos.append(tgt_cur) return ref_pos, tgt_pos, cigar_op - - -if __name__ == "__main__": - # cigar = "2=2N=X=2N=I=2N=D=" - cigar = "3=2N=X=3N=I=D=" - cm = CIGARMapper(cigar) diff --git a/tests/support/mock_input_source.py b/tests/support/mock_input_source.py index 5378aded..90a2dd6a 100644 --- a/tests/support/mock_input_source.py +++ b/tests/support/mock_input_source.py @@ -76,14 +76,6 @@ def _read_input(self, in_file): return result - -def main(): - pass - - -if __name__ == "__main__": - main() - # # Copyright 2018 HGVS Contributors (https://github.com/biocommons/hgvs) # From cce1c6f6a38332354906886590ff1fca4bd0a624 Mon Sep 17 00:00:00 2001 From: Reece Hart Date: Mon, 12 Feb 2024 21:04:13 -0800 Subject: [PATCH 14/25] update stale action to use stale.yml from worfklow-template --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 0829446d..d7a6cd4e 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -8,4 +8,4 @@ on: jobs: stale: - uses: biocommons/actions/.github/workflows/stale.yml@main + uses: biocommons/.github/.github/workflows/stale.yml@main From 261245a140a38947c35c5579b1672852f9ad0a24 Mon Sep 17 00:00:00 2001 From: Andreas Prlic Date: Mon, 19 Feb 2024 23:19:27 -0800 Subject: [PATCH 15/25] feat(imprecise hgvs_c): adding support to create imprecise hgvs_c s. --- src/hgvs/alignmentmapper.py | 27 +++++++++++++++++++++------ src/hgvs/location.py | 10 ++++++---- src/hgvs/posedit.py | 7 ++++++- tests/test_hgvs_sequencevariant.py | 19 ++++++++++++++----- 4 files changed, 47 insertions(+), 16 deletions(-) diff --git a/src/hgvs/alignmentmapper.py b/src/hgvs/alignmentmapper.py index badedef3..8c31041d 100644 --- a/src/hgvs/alignmentmapper.py +++ b/src/hgvs/alignmentmapper.py @@ -27,6 +27,10 @@ # +from __future__ import absolute_import, division, print_function, unicode_literals + +from typing import Optional + from bioutils.coordinates import strand_int_to_pm from six.moves import range @@ -39,6 +43,7 @@ HGVSInvalidIntervalError, HGVSUsageError, ) +from hgvs.location import Interval, BaseOffsetInterval from hgvs.utils import build_tx_cigar from hgvs.utils.cigarmapper import CIGARMapper @@ -151,7 +156,7 @@ def __str__(self): ) ) - def g_to_n(self, g_interval, strict_bounds=None): + def g_to_n(self, g_interval: Interval, strict_bounds:Optional[bool]=None)->BaseOffsetInterval: """convert a genomic (g.) interval to a transcript cDNA (n.) interval""" if strict_bounds is None: @@ -181,17 +186,24 @@ def g_to_n(self, g_interval, strict_bounds=None): frs_offset, fre_offset = -fre_offset, -frs_offset # The returned interval would be uncertain when locating at alignment gaps + # of if the initial interval was uncertain return hgvs.location.BaseOffsetInterval( start=hgvs.location.BaseOffsetPosition( - base=_zbc_to_hgvs(frs), offset=frs_offset, datum=Datum.SEQ_START + base=_zbc_to_hgvs(frs), + offset=frs_offset, + datum=Datum.SEQ_START, + uncertain=g_interval.start.uncertain ), end=hgvs.location.BaseOffsetPosition( - base=_zbc_to_hgvs(fre), offset=fre_offset, datum=Datum.SEQ_START + base=_zbc_to_hgvs(fre), + offset=fre_offset, + datum=Datum.SEQ_START, + uncertain=g_interval.end.uncertain ), uncertain=frs_cigar in "DI" or fre_cigar in "DI", ) - def n_to_g(self, n_interval, strict_bounds=None): + def n_to_g(self, n_interval, strict_bounds=None) ->Interval: """convert a transcript (n.) interval to a genomic (g.) interval""" if strict_bounds is None: @@ -223,7 +235,7 @@ def n_to_g(self, n_interval, strict_bounds=None): uncertain=grs_cigar in "DI" or gre_cigar in "DI", ) - def n_to_c(self, n_interval, strict_bounds=None): + def n_to_c(self, n_interval:Interval, strict_bounds:Optional[bool]=None): """convert a transcript cDNA (n.) interval to a transcript CDS (c.) interval""" if strict_bounds is None: @@ -253,7 +265,10 @@ def pos_n_to_c(pos): else: c = pos.base - self.cds_end_i c_datum = Datum.CDS_END - return hgvs.location.BaseOffsetPosition(base=c, offset=pos.offset, datum=c_datum) + return hgvs.location.BaseOffsetPosition(base=c, + offset=pos.offset, + datum=c_datum, + uncertain=pos.uncertain) c_interval = hgvs.location.BaseOffsetInterval( start=pos_n_to_c(n_interval.start), diff --git a/src/hgvs/location.py b/src/hgvs/location.py index 0c21dd94..4c82d3f7 100644 --- a/src/hgvs/location.py +++ b/src/hgvs/location.py @@ -77,7 +77,7 @@ def __lt__(lhs, rhs): if lhs.base is None and rhs.base is None: raise HGVSUnsupportedOperationError("Cannot compare two positions without bases") - + # imprecise positions can be on both sides of an interval # This is weird, but because an unknown breakpoint can be expressed on both sides # with a ? character we need to support that both options are true @@ -199,9 +199,11 @@ def __sub__(lhs, rhs): def __eq__(lhs, rhs): assert type(lhs) == type(rhs), "Cannot compare coordinates of different representations" - if lhs.uncertain or rhs.uncertain: - raise HGVSUnsupportedOperationError("Cannot compare coordinates of uncertain positions") - return lhs.datum == rhs.datum and lhs.base == rhs.base and lhs.offset == rhs.offset + + return (lhs.datum == rhs.datum and + lhs.base == rhs.base and + lhs.offset == rhs.offset and + lhs.uncertain == rhs.uncertain) def __lt__(lhs, rhs): assert type(lhs) == type(rhs), "Cannot compare coordinates of different representations" diff --git a/src/hgvs/posedit.py b/src/hgvs/posedit.py index b841da2f..43403f26 100644 --- a/src/hgvs/posedit.py +++ b/src/hgvs/posedit.py @@ -7,6 +7,7 @@ from hgvs.enums import ValidationLevel from hgvs.exceptions import HGVSUnsupportedOperationError +from hgvs.location import Interval @attr.s(slots=True, repr=False) @@ -98,7 +99,11 @@ def validate(self): # Check del length if self.edit.type in ["del", "delins"]: ref_len = self.edit.ref_n - if ref_len is not None and ref_len != self.pos.end - self.pos.start + 1: + if (ref_len is not None and + not ( isinstance(self.pos.start, Interval) or + isinstance(self.pos.end, Interval) + ) and + ref_len != self.pos.end - self.pos.start + 1): return ( ValidationLevel.ERROR, "Length implied by coordinates must equal sequence deletion length", diff --git a/tests/test_hgvs_sequencevariant.py b/tests/test_hgvs_sequencevariant.py index 40d4bbbc..19a8c587 100644 --- a/tests/test_hgvs_sequencevariant.py +++ b/tests/test_hgvs_sequencevariant.py @@ -129,16 +129,25 @@ def test_uncertain(self): def test_uncertain_projection_confidence(self): data = [ - ("NC_000005.9:g.(90136803_90144453)_(90159675_90261231)dup", "NM_032119.3:c.17020-1_17856+1dup"), - ("NC_000019.9:g.(11211022_11213339)_(11217364_11218067)dup", "NM_000527.5:c.191-1_817+1dup"), - ("NC_000009.11:g.(?_108337304)_(108337428_?)del", "NM_001079802.1:c.-10_105+10del") + ("NC_000005.9:g.(90136803_90144453)_(90159675_90261231)dup", + "NM_032119.3:n.(17116-1)_(17952+1)dup", + "NM_032119.3:c.(17020-1)_(17856+1)dup"), + + ("NC_000019.9:g.(11211022_11213339)_(11217364_11218067)dup", + "NM_000527.5:n.(277-1)_(903+1)dup", + "NM_000527.5:c.(191-1)_(817+1)dup"), + + ("NC_000009.11:g.(?_108337304)_(108337428_?)del", + "NM_001079802.1:n.(207)_(321+10)del", + "NM_001079802.1:c.(-10)_(105+10)del"), ] - for hgvs_g, hgvs_c in data: + for hgvs_g, hgvs_n, hgvs_c in data: var_g = self.hp.parse(hgvs_g) self.assertEqual(hgvs_g, str(var_g)) - acc = hgvs_c.split(":")[0] + var_n = self.vm.g_to_n(var_g, acc) + self.assertEqual(hgvs_n, str(var_n)) var_c = self.vm.g_to_c(var_g, acc) self.assertEqual(hgvs_c, str(var_c)) From 609244adcf0f55efd3d8985523dc73c876b4ec7b Mon Sep 17 00:00:00 2001 From: Andreas Prlic Date: Wed, 21 Feb 2024 08:08:32 -0800 Subject: [PATCH 16/25] feat(imprecise g_to_c): g_to_c now works. c_to_g not working yet. Requires parser modifications still. This PR contains unit tests that are still broken, but should parse once we got the c. parsing figured out. (plus some more potential modifications in the alignment mapper). --- src/hgvs/_data/hgvs.pymeta | 9 +- src/hgvs/alignmentmapper.py | 10 +- src/hgvs/generated/hgvs_grammar.py | 1380 ++++++++++++++-------------- src/hgvs/location.py | 29 +- src/hgvs/variantmapper.py | 11 +- tests/data/grammar_test.tsv | 17 +- tests/test_hgvs_sequencevariant.py | 58 +- 7 files changed, 800 insertions(+), 714 deletions(-) diff --git a/src/hgvs/_data/hgvs.pymeta b/src/hgvs/_data/hgvs.pymeta index 0c84c3e6..ee8e393d 100644 --- a/src/hgvs/_data/hgvs.pymeta +++ b/src/hgvs/_data/hgvs.pymeta @@ -122,7 +122,7 @@ pro_ident = '=' -> hgvs.edit.AARefAlt(ref='',alt='' # potentially indefinite/uncertain intervals c_interval = def_c_interval | '(' def_c_interval:iv ')' -> iv._set_uncertain() -g_interval = def_g_uncertain_interval:iv | ('(' def_g_interval:iv ')' -> iv._set_uncertain()) | def_g_interval +g_interval = uncertain_g_interval:iv | ('(' def_g_interval:iv ')' -> iv._set_uncertain()) | def_g_interval m_interval = def_m_interval | '(' def_m_interval:iv ')' -> iv._set_uncertain() n_interval = def_n_interval | '(' def_n_interval:iv ')' -> iv._set_uncertain() p_interval = def_p_interval | '(' def_p_interval:iv ')' -> iv._set_uncertain() @@ -137,9 +137,10 @@ def_c_interval = (c_pos:start '_' c_pos:end -> hgvs.location.BaseOffsetInterval( def_n_interval = (n_pos:start '_' n_pos:end -> hgvs.location.BaseOffsetInterval(start,end)) | (n_pos:start -> hgvs.location.BaseOffsetInterval(start,copy.deepcopy(start))) # indefinite ranges -def_g_uncertain_interval = '(' def_g_interval:ivl_start ')' '_' '(' def_g_interval:ivl_end ')' -> hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end._set_uncertain()) - | def_g_interval:ivl_start '_' '(' def_g_interval:ivl_end ')' -> hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end._set_uncertain()) - | '(' def_g_interval:ivl_start ')' '_' def_g_interval:ivl_end -> hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end._set_uncertain()) +uncertain_g_interval = '(' def_g_interval:ivl_start ')' '_' '(' def_g_interval:ivl_end ')' -> hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end._set_uncertain()) + | def_g_interval:ivl_start '_' '(' def_g_interval:ivl_end ')' -> hgvs.location.Interval(start=ivl_start, end=ivl_end._set_uncertain()) + | '(' def_g_interval:ivl_start ')' '_' def_g_interval:ivl_end -> hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end) + # positions c_pos = def_c_pos #| '(' def_c_pos:pos ')' -> pos._set_uncertain() diff --git a/src/hgvs/alignmentmapper.py b/src/hgvs/alignmentmapper.py index 8c31041d..f2af1509 100644 --- a/src/hgvs/alignmentmapper.py +++ b/src/hgvs/alignmentmapper.py @@ -166,12 +166,18 @@ def g_to_n(self, g_interval: Interval, strict_bounds:Optional[bool]=None)->BaseO if g_interval.start.uncertain: grs = g_interval.start.end.base - 1 - self.gc_offset else: - grs = g_interval.start.base - 1 - self.gc_offset + if isinstance(g_interval.start, Interval): + grs = g_interval.start.start.base - 1 - self.gc_offset + else: + grs = g_interval.start.base - 1 - self.gc_offset if g_interval.end.uncertain: gre = g_interval.end.start.base - 1 - self.gc_offset else: - gre = g_interval.end.base - 1 - self.gc_offset + if isinstance(g_interval.end, Interval): + gre = g_interval.end.end.base - 1 - self.gc_offset + else: + gre = g_interval.end.base - 1 - self.gc_offset # frs, fre = (f)orward (r)na (s)tart & (e)nd; forward w.r.t. genome frs, frs_offset, frs_cigar = self.cigarmapper.map_ref_to_tgt( diff --git a/src/hgvs/generated/hgvs_grammar.py b/src/hgvs/generated/hgvs_grammar.py index e3c1c258..dcc89812 100644 --- a/src/hgvs/generated/hgvs_grammar.py +++ b/src/hgvs/generated/hgvs_grammar.py @@ -3,9 +3,9 @@ # Changes will be overwritten by the generation script. # Generated by: sbin/generate_parser.py # Grammar file: src/hgvs/_data/hgvs.pymeta -# Grammar hash: 9391d543da30300646420cd012dbd929 +# Grammar hash: 8d20020e49d946797f6dc49429fef938 # Parsley version: 1.3 -# Python version: 3.11.4 (main, Jul 25 2023, 17:07:07) [Clang 14.0.3 (clang-1403.0.22.14.1)] +# Python version: 3.8.7 (default, Sep 30 2022, 13:36:26) # -------------------------------------------------- def createParserClass(GrammarBase, ruleGlobals): @@ -1623,27 +1623,27 @@ def rule_g_interval(self): _locals = {'self': self} self.locals['g_interval'] = _locals def _G_or_480(): - self._trace('', (8319, 8344), self.input.position) - _G_apply_481, lastError = self._apply(self.rule_def_g_uncertain_interval, "def_g_uncertain_interval", []) + self._trace('', (8319, 8340), self.input.position) + _G_apply_481, lastError = self._apply(self.rule_uncertain_g_interval, "uncertain_g_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_481 return (_G_apply_481, self.currentError) def _G_or_482(): - self._trace('', (8351, 8354), self.input.position) + self._trace('', (8347, 8350), self.input.position) _G_exactly_483, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8354, 8369), self.input.position) + self._trace('', (8350, 8365), self.input.position) _G_apply_484, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_484 - self._trace('', (8372, 8376), self.input.position) + self._trace('', (8368, 8372), self.input.position) _G_exactly_485, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_486, lastError = eval(self._G_expr_477, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_486, self.currentError) def _G_or_487(): - self._trace('', (8402, 8417), self.input.position) + self._trace('', (8398, 8413), self.input.position) _G_apply_488, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) return (_G_apply_488, self.currentError) @@ -1656,19 +1656,19 @@ def rule_m_interval(self): _locals = {'self': self} self.locals['m_interval'] = _locals def _G_or_490(): - self._trace('', (8430, 8445), self.input.position) + self._trace('', (8426, 8441), self.input.position) _G_apply_491, lastError = self._apply(self.rule_def_m_interval, "def_m_interval", []) self.considerError(lastError, None) return (_G_apply_491, self.currentError) def _G_or_492(): - self._trace('', (8447, 8451), self.input.position) + self._trace('', (8443, 8447), self.input.position) _G_exactly_493, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8451, 8466), self.input.position) + self._trace('', (8447, 8462), self.input.position) _G_apply_494, lastError = self._apply(self.rule_def_m_interval, "def_m_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_494 - self._trace('', (8469, 8473), self.input.position) + self._trace('', (8465, 8469), self.input.position) _G_exactly_495, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_496, lastError = eval(self._G_expr_477, self.globals, _locals), None @@ -1683,19 +1683,19 @@ def rule_n_interval(self): _locals = {'self': self} self.locals['n_interval'] = _locals def _G_or_498(): - self._trace('', (8509, 8524), self.input.position) + self._trace('', (8505, 8520), self.input.position) _G_apply_499, lastError = self._apply(self.rule_def_n_interval, "def_n_interval", []) self.considerError(lastError, None) return (_G_apply_499, self.currentError) def _G_or_500(): - self._trace('', (8526, 8530), self.input.position) + self._trace('', (8522, 8526), self.input.position) _G_exactly_501, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8530, 8545), self.input.position) + self._trace('', (8526, 8541), self.input.position) _G_apply_502, lastError = self._apply(self.rule_def_n_interval, "def_n_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_502 - self._trace('', (8548, 8552), self.input.position) + self._trace('', (8544, 8548), self.input.position) _G_exactly_503, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_504, lastError = eval(self._G_expr_477, self.globals, _locals), None @@ -1710,19 +1710,19 @@ def rule_p_interval(self): _locals = {'self': self} self.locals['p_interval'] = _locals def _G_or_506(): - self._trace('', (8588, 8603), self.input.position) + self._trace('', (8584, 8599), self.input.position) _G_apply_507, lastError = self._apply(self.rule_def_p_interval, "def_p_interval", []) self.considerError(lastError, None) return (_G_apply_507, self.currentError) def _G_or_508(): - self._trace('', (8605, 8609), self.input.position) + self._trace('', (8601, 8605), self.input.position) _G_exactly_509, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8609, 8624), self.input.position) + self._trace('', (8605, 8620), self.input.position) _G_apply_510, lastError = self._apply(self.rule_def_p_interval, "def_p_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_510 - self._trace('', (8627, 8631), self.input.position) + self._trace('', (8623, 8627), self.input.position) _G_exactly_511, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_512, lastError = eval(self._G_expr_477, self.globals, _locals), None @@ -1737,19 +1737,19 @@ def rule_r_interval(self): _locals = {'self': self} self.locals['r_interval'] = _locals def _G_or_514(): - self._trace('', (8667, 8682), self.input.position) + self._trace('', (8663, 8678), self.input.position) _G_apply_515, lastError = self._apply(self.rule_def_r_interval, "def_r_interval", []) self.considerError(lastError, None) return (_G_apply_515, self.currentError) def _G_or_516(): - self._trace('', (8684, 8688), self.input.position) + self._trace('', (8680, 8684), self.input.position) _G_exactly_517, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8688, 8703), self.input.position) + self._trace('', (8684, 8699), self.input.position) _G_apply_518, lastError = self._apply(self.rule_def_r_interval, "def_r_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_518 - self._trace('', (8706, 8710), self.input.position) + self._trace('', (8702, 8706), self.input.position) _G_exactly_519, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_520, lastError = eval(self._G_expr_477, self.globals, _locals), None @@ -1764,14 +1764,14 @@ def rule_def_g_interval(self): _locals = {'self': self} self.locals['def_g_interval'] = _locals def _G_or_522(): - self._trace('', (8774, 8779), self.input.position) + self._trace('', (8770, 8775), self.input.position) _G_apply_523, lastError = self._apply(self.rule_g_pos, "g_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_523 - self._trace('', (8785, 8789), self.input.position) + self._trace('', (8781, 8785), self.input.position) _G_exactly_524, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (8789, 8795), self.input.position) + self._trace('', (8785, 8791), self.input.position) _G_apply_525, lastError = self._apply(self.rule_g_pos, "g_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_525 @@ -1779,7 +1779,7 @@ def _G_or_522(): self.considerError(lastError, None) return (_G_python_527, self.currentError) def _G_or_528(): - self._trace('', (8841, 8846), self.input.position) + self._trace('', (8837, 8842), self.input.position) _G_apply_529, lastError = self._apply(self.rule_g_pos, "g_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_529 @@ -1795,14 +1795,14 @@ def rule_def_m_interval(self): _locals = {'self': self} self.locals['def_m_interval'] = _locals def _G_or_533(): - self._trace('', (8926, 8931), self.input.position) + self._trace('', (8922, 8927), self.input.position) _G_apply_534, lastError = self._apply(self.rule_m_pos, "m_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_534 - self._trace('', (8937, 8941), self.input.position) + self._trace('', (8933, 8937), self.input.position) _G_exactly_535, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (8941, 8947), self.input.position) + self._trace('', (8937, 8943), self.input.position) _G_apply_536, lastError = self._apply(self.rule_m_pos, "m_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_536 @@ -1810,7 +1810,7 @@ def _G_or_533(): self.considerError(lastError, None) return (_G_python_537, self.currentError) def _G_or_538(): - self._trace('', (8993, 8998), self.input.position) + self._trace('', (8989, 8994), self.input.position) _G_apply_539, lastError = self._apply(self.rule_m_pos, "m_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_539 @@ -1826,14 +1826,14 @@ def rule_def_p_interval(self): _locals = {'self': self} self.locals['def_p_interval'] = _locals def _G_or_542(): - self._trace('', (9078, 9083), self.input.position) + self._trace('', (9074, 9079), self.input.position) _G_apply_543, lastError = self._apply(self.rule_p_pos, "p_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_543 - self._trace('', (9089, 9093), self.input.position) + self._trace('', (9085, 9089), self.input.position) _G_exactly_544, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9093, 9099), self.input.position) + self._trace('', (9089, 9095), self.input.position) _G_apply_545, lastError = self._apply(self.rule_p_pos, "p_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_545 @@ -1841,7 +1841,7 @@ def _G_or_542(): self.considerError(lastError, None) return (_G_python_546, self.currentError) def _G_or_547(): - self._trace('', (9145, 9150), self.input.position) + self._trace('', (9141, 9146), self.input.position) _G_apply_548, lastError = self._apply(self.rule_p_pos, "p_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_548 @@ -1857,14 +1857,14 @@ def rule_def_r_interval(self): _locals = {'self': self} self.locals['def_r_interval'] = _locals def _G_or_551(): - self._trace('', (9230, 9235), self.input.position) + self._trace('', (9226, 9231), self.input.position) _G_apply_552, lastError = self._apply(self.rule_r_pos, "r_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_552 - self._trace('', (9241, 9245), self.input.position) + self._trace('', (9237, 9241), self.input.position) _G_exactly_553, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9245, 9251), self.input.position) + self._trace('', (9241, 9247), self.input.position) _G_apply_554, lastError = self._apply(self.rule_r_pos, "r_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_554 @@ -1872,7 +1872,7 @@ def _G_or_551(): self.considerError(lastError, None) return (_G_python_555, self.currentError) def _G_or_556(): - self._trace('', (9297, 9302), self.input.position) + self._trace('', (9293, 9298), self.input.position) _G_apply_557, lastError = self._apply(self.rule_r_pos, "r_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_557 @@ -1888,14 +1888,14 @@ def rule_def_c_interval(self): _locals = {'self': self} self.locals['def_c_interval'] = _locals def _G_or_560(): - self._trace('', (9382, 9387), self.input.position) + self._trace('', (9378, 9383), self.input.position) _G_apply_561, lastError = self._apply(self.rule_c_pos, "c_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_561 - self._trace('', (9393, 9397), self.input.position) + self._trace('', (9389, 9393), self.input.position) _G_exactly_562, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9397, 9403), self.input.position) + self._trace('', (9393, 9399), self.input.position) _G_apply_563, lastError = self._apply(self.rule_c_pos, "c_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_563 @@ -1903,7 +1903,7 @@ def _G_or_560(): self.considerError(lastError, None) return (_G_python_565, self.currentError) def _G_or_566(): - self._trace('', (9459, 9464), self.input.position) + self._trace('', (9455, 9460), self.input.position) _G_apply_567, lastError = self._apply(self.rule_c_pos, "c_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_567 @@ -1919,14 +1919,14 @@ def rule_def_n_interval(self): _locals = {'self': self} self.locals['def_n_interval'] = _locals def _G_or_571(): - self._trace('', (9554, 9559), self.input.position) + self._trace('', (9550, 9555), self.input.position) _G_apply_572, lastError = self._apply(self.rule_n_pos, "n_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_572 - self._trace('', (9565, 9569), self.input.position) + self._trace('', (9561, 9565), self.input.position) _G_exactly_573, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9569, 9575), self.input.position) + self._trace('', (9565, 9571), self.input.position) _G_apply_574, lastError = self._apply(self.rule_n_pos, "n_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_574 @@ -1934,7 +1934,7 @@ def _G_or_571(): self.considerError(lastError, None) return (_G_python_575, self.currentError) def _G_or_576(): - self._trace('', (9631, 9636), self.input.position) + self._trace('', (9627, 9632), self.input.position) _G_apply_577, lastError = self._apply(self.rule_n_pos, "n_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_577 @@ -1946,1182 +1946,1182 @@ def _G_or_576(): return (_G_or_579, self.currentError) - def rule_def_g_uncertain_interval(self): + def rule_uncertain_g_interval(self): _locals = {'self': self} - self.locals['def_g_uncertain_interval'] = _locals + self.locals['uncertain_g_interval'] = _locals def _G_or_580(): - self._trace('', (9755, 9759), self.input.position) + self._trace('', (9747, 9751), self.input.position) _G_exactly_581, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (9759, 9774), self.input.position) + self._trace('', (9751, 9766), self.input.position) _G_apply_582, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['ivl_start'] = _G_apply_582 - self._trace('', (9784, 9788), self.input.position) + self._trace('', (9776, 9780), self.input.position) _G_exactly_583, lastError = self.exactly(')') self.considerError(lastError, None) - self._trace('', (9788, 9792), self.input.position) + self._trace('', (9780, 9784), self.input.position) _G_exactly_584, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9792, 9796), self.input.position) + self._trace('', (9784, 9788), self.input.position) _G_exactly_585, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (9796, 9811), self.input.position) + self._trace('', (9788, 9803), self.input.position) _G_apply_586, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['ivl_end'] = _G_apply_586 - self._trace('', (9819, 9823), self.input.position) + self._trace('', (9811, 9815), self.input.position) _G_exactly_587, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_589, lastError = eval(self._G_expr_588, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_589, self.currentError) def _G_or_590(): - self._trace('', (9939, 9954), self.input.position) + self._trace('', (9931, 9946), self.input.position) _G_apply_591, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['ivl_start'] = _G_apply_591 - self._trace('', (9964, 9968), self.input.position) + self._trace('', (9956, 9960), self.input.position) _G_exactly_592, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9968, 9972), self.input.position) + self._trace('', (9960, 9964), self.input.position) _G_exactly_593, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (9972, 9987), self.input.position) + self._trace('', (9964, 9979), self.input.position) _G_apply_594, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['ivl_end'] = _G_apply_594 - self._trace('', (9995, 9999), self.input.position) + self._trace('', (9987, 9991), self.input.position) _G_exactly_595, lastError = self.exactly(')') self.considerError(lastError, None) - _G_python_596, lastError = eval(self._G_expr_588, self.globals, _locals), None + _G_python_597, lastError = eval(self._G_expr_596, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_596, self.currentError) - def _G_or_597(): - self._trace('', (10115, 10119), self.input.position) - _G_exactly_598, lastError = self.exactly('(') + return (_G_python_597, self.currentError) + def _G_or_598(): + self._trace('', (10090, 10094), self.input.position) + _G_exactly_599, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (10119, 10134), self.input.position) - _G_apply_599, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) + self._trace('', (10094, 10109), self.input.position) + _G_apply_600, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) - _locals['ivl_start'] = _G_apply_599 - self._trace('', (10144, 10148), self.input.position) - _G_exactly_600, lastError = self.exactly(')') + _locals['ivl_start'] = _G_apply_600 + self._trace('', (10119, 10123), self.input.position) + _G_exactly_601, lastError = self.exactly(')') self.considerError(lastError, None) - self._trace('', (10148, 10152), self.input.position) - _G_exactly_601, lastError = self.exactly('_') + self._trace('', (10123, 10127), self.input.position) + _G_exactly_602, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (10152, 10167), self.input.position) - _G_apply_602, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) + self._trace('', (10127, 10142), self.input.position) + _G_apply_603, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) - _locals['ivl_end'] = _G_apply_602 - _G_python_603, lastError = eval(self._G_expr_588, self.globals, _locals), None + _locals['ivl_end'] = _G_apply_603 + _G_python_605, lastError = eval(self._G_expr_604, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_603, self.currentError) - _G_or_604, lastError = self._or([_G_or_580, _G_or_590, _G_or_597]) - self.considerError(lastError, 'def_g_uncertain_interval') - return (_G_or_604, self.currentError) + return (_G_python_605, self.currentError) + _G_or_606, lastError = self._or([_G_or_580, _G_or_590, _G_or_598]) + self.considerError(lastError, 'uncertain_g_interval') + return (_G_or_606, self.currentError) def rule_c_pos(self): _locals = {'self': self} self.locals['c_pos'] = _locals - self._trace('', (10286, 10296), self.input.position) - _G_apply_605, lastError = self._apply(self.rule_def_c_pos, "def_c_pos", []) + self._trace('', (10245, 10255), self.input.position) + _G_apply_607, lastError = self._apply(self.rule_def_c_pos, "def_c_pos", []) self.considerError(lastError, 'c_pos') - return (_G_apply_605, self.currentError) + return (_G_apply_607, self.currentError) def rule_g_pos(self): _locals = {'self': self} self.locals['g_pos'] = _locals - self._trace('', (10353, 10363), self.input.position) - _G_apply_606, lastError = self._apply(self.rule_def_g_pos, "def_g_pos", []) + self._trace('', (10312, 10322), self.input.position) + _G_apply_608, lastError = self._apply(self.rule_def_g_pos, "def_g_pos", []) self.considerError(lastError, 'g_pos') - return (_G_apply_606, self.currentError) + return (_G_apply_608, self.currentError) def rule_m_pos(self): _locals = {'self': self} self.locals['m_pos'] = _locals - self._trace('', (10420, 10430), self.input.position) - _G_apply_607, lastError = self._apply(self.rule_def_m_pos, "def_m_pos", []) + self._trace('', (10379, 10389), self.input.position) + _G_apply_609, lastError = self._apply(self.rule_def_m_pos, "def_m_pos", []) self.considerError(lastError, 'm_pos') - return (_G_apply_607, self.currentError) + return (_G_apply_609, self.currentError) def rule_n_pos(self): _locals = {'self': self} self.locals['n_pos'] = _locals - self._trace('', (10487, 10497), self.input.position) - _G_apply_608, lastError = self._apply(self.rule_def_n_pos, "def_n_pos", []) + self._trace('', (10446, 10456), self.input.position) + _G_apply_610, lastError = self._apply(self.rule_def_n_pos, "def_n_pos", []) self.considerError(lastError, 'n_pos') - return (_G_apply_608, self.currentError) + return (_G_apply_610, self.currentError) def rule_p_pos(self): _locals = {'self': self} self.locals['p_pos'] = _locals - self._trace('', (10554, 10564), self.input.position) - _G_apply_609, lastError = self._apply(self.rule_def_p_pos, "def_p_pos", []) + self._trace('', (10513, 10523), self.input.position) + _G_apply_611, lastError = self._apply(self.rule_def_p_pos, "def_p_pos", []) self.considerError(lastError, 'p_pos') - return (_G_apply_609, self.currentError) + return (_G_apply_611, self.currentError) def rule_r_pos(self): _locals = {'self': self} self.locals['r_pos'] = _locals - self._trace('', (10621, 10631), self.input.position) - _G_apply_610, lastError = self._apply(self.rule_def_r_pos, "def_r_pos", []) + self._trace('', (10580, 10590), self.input.position) + _G_apply_612, lastError = self._apply(self.rule_def_r_pos, "def_r_pos", []) self.considerError(lastError, 'r_pos') - return (_G_apply_610, self.currentError) + return (_G_apply_612, self.currentError) def rule_def_c_pos(self): _locals = {'self': self} self.locals['def_c_pos'] = _locals - def _G_or_611(): - self._trace('', (10714, 10719), self.input.position) - _G_apply_612, lastError = self._apply(self.rule_base, "base", []) + def _G_or_613(): + self._trace('', (10673, 10678), self.input.position) + _G_apply_614, lastError = self._apply(self.rule_base, "base", []) self.considerError(lastError, None) - _locals['b'] = _G_apply_612 - self._trace('', (10721, 10728), self.input.position) - _G_apply_613, lastError = self._apply(self.rule_offset, "offset", []) + _locals['b'] = _G_apply_614 + self._trace('', (10680, 10687), self.input.position) + _G_apply_615, lastError = self._apply(self.rule_offset, "offset", []) self.considerError(lastError, None) - _locals['o'] = _G_apply_613 - _G_python_615, lastError = eval(self._G_expr_614, self.globals, _locals), None + _locals['o'] = _G_apply_615 + _G_python_617, lastError = eval(self._G_expr_616, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_615, self.currentError) - def _G_or_616(): - self._trace('', (10813, 10817), self.input.position) - _G_exactly_617, lastError = self.exactly('*') + return (_G_python_617, self.currentError) + def _G_or_618(): + self._trace('', (10772, 10776), self.input.position) + _G_exactly_619, lastError = self.exactly('*') self.considerError(lastError, None) - self._trace('', (10817, 10821), self.input.position) - _G_apply_618, lastError = self._apply(self.rule_num, "num", []) + self._trace('', (10776, 10780), self.input.position) + _G_apply_620, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) - _locals['b'] = _G_apply_618 - self._trace('', (10823, 10830), self.input.position) - _G_apply_619, lastError = self._apply(self.rule_offset, "offset", []) + _locals['b'] = _G_apply_620 + self._trace('', (10782, 10789), self.input.position) + _G_apply_621, lastError = self._apply(self.rule_offset, "offset", []) self.considerError(lastError, None) - _locals['o'] = _G_apply_619 - _G_python_621, lastError = eval(self._G_expr_620, self.globals, _locals), None + _locals['o'] = _G_apply_621 + _G_python_623, lastError = eval(self._G_expr_622, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_621, self.currentError) - _G_or_622, lastError = self._or([_G_or_611, _G_or_616]) + return (_G_python_623, self.currentError) + _G_or_624, lastError = self._or([_G_or_613, _G_or_618]) self.considerError(lastError, 'def_c_pos') - return (_G_or_622, self.currentError) + return (_G_or_624, self.currentError) def rule_def_g_pos(self): _locals = {'self': self} self.locals['def_g_pos'] = _locals - def _G_or_623(): - self._trace('', (10918, 10921), self.input.position) - _G_apply_624, lastError = self._apply(self.rule_num, "num", []) - self.considerError(lastError, None) - return (_G_apply_624, self.currentError) def _G_or_625(): - self._trace('', (10922, 10925), self.input.position) - _G_exactly_626, lastError = self.exactly('?') + self._trace('', (10877, 10880), self.input.position) + _G_apply_626, lastError = self._apply(self.rule_num, "num", []) + self.considerError(lastError, None) + return (_G_apply_626, self.currentError) + def _G_or_627(): + self._trace('', (10881, 10884), self.input.position) + _G_exactly_628, lastError = self.exactly('?') self.considerError(lastError, None) - _G_python_627, lastError = (None), None + _G_python_629, lastError = (None), None self.considerError(lastError, None) - return (_G_python_627, self.currentError) - _G_or_628, lastError = self._or([_G_or_623, _G_or_625]) + return (_G_python_629, self.currentError) + _G_or_630, lastError = self._or([_G_or_625, _G_or_627]) self.considerError(lastError, 'def_g_pos') - _locals['pos'] = _G_or_628 - _G_python_630, lastError = eval(self._G_expr_629, self.globals, _locals), None + _locals['pos'] = _G_or_630 + _G_python_632, lastError = eval(self._G_expr_631, self.globals, _locals), None self.considerError(lastError, 'def_g_pos') - return (_G_python_630, self.currentError) + return (_G_python_632, self.currentError) def rule_def_m_pos(self): _locals = {'self': self} self.locals['def_m_pos'] = _locals - def _G_or_631(): - self._trace('', (10987, 10990), self.input.position) - _G_apply_632, lastError = self._apply(self.rule_num, "num", []) - self.considerError(lastError, None) - return (_G_apply_632, self.currentError) def _G_or_633(): - self._trace('', (10991, 10994), self.input.position) - _G_exactly_634, lastError = self.exactly('?') + self._trace('', (10946, 10949), self.input.position) + _G_apply_634, lastError = self._apply(self.rule_num, "num", []) + self.considerError(lastError, None) + return (_G_apply_634, self.currentError) + def _G_or_635(): + self._trace('', (10950, 10953), self.input.position) + _G_exactly_636, lastError = self.exactly('?') self.considerError(lastError, None) - _G_python_635, lastError = (None), None + _G_python_637, lastError = (None), None self.considerError(lastError, None) - return (_G_python_635, self.currentError) - _G_or_636, lastError = self._or([_G_or_631, _G_or_633]) + return (_G_python_637, self.currentError) + _G_or_638, lastError = self._or([_G_or_633, _G_or_635]) self.considerError(lastError, 'def_m_pos') - _locals['pos'] = _G_or_636 - _G_python_637, lastError = eval(self._G_expr_629, self.globals, _locals), None + _locals['pos'] = _G_or_638 + _G_python_639, lastError = eval(self._G_expr_631, self.globals, _locals), None self.considerError(lastError, 'def_m_pos') - return (_G_python_637, self.currentError) + return (_G_python_639, self.currentError) def rule_def_n_pos(self): _locals = {'self': self} self.locals['def_n_pos'] = _locals - self._trace('', (11054, 11059), self.input.position) - _G_apply_638, lastError = self._apply(self.rule_base, "base", []) + self._trace('', (11013, 11018), self.input.position) + _G_apply_640, lastError = self._apply(self.rule_base, "base", []) self.considerError(lastError, 'def_n_pos') - _locals['b'] = _G_apply_638 - self._trace('', (11061, 11068), self.input.position) - _G_apply_639, lastError = self._apply(self.rule_offset, "offset", []) + _locals['b'] = _G_apply_640 + self._trace('', (11020, 11027), self.input.position) + _G_apply_641, lastError = self._apply(self.rule_offset, "offset", []) self.considerError(lastError, 'def_n_pos') - _locals['o'] = _G_apply_639 - _G_python_641, lastError = eval(self._G_expr_640, self.globals, _locals), None + _locals['o'] = _G_apply_641 + _G_python_643, lastError = eval(self._G_expr_642, self.globals, _locals), None self.considerError(lastError, 'def_n_pos') - return (_G_python_641, self.currentError) + return (_G_python_643, self.currentError) def rule_def_p_pos(self): _locals = {'self': self} self.locals['def_p_pos'] = _locals - def _G_or_642(): - self._trace('', (11158, 11164), self.input.position) - _G_apply_643, lastError = self._apply(self.rule_term13, "term13", []) - self.considerError(lastError, None) - return (_G_apply_643, self.currentError) def _G_or_644(): - self._trace('', (11165, 11169), self.input.position) - _G_apply_645, lastError = self._apply(self.rule_aa13, "aa13", []) + self._trace('', (11117, 11123), self.input.position) + _G_apply_645, lastError = self._apply(self.rule_term13, "term13", []) self.considerError(lastError, None) return (_G_apply_645, self.currentError) - _G_or_646, lastError = self._or([_G_or_642, _G_or_644]) + def _G_or_646(): + self._trace('', (11124, 11128), self.input.position) + _G_apply_647, lastError = self._apply(self.rule_aa13, "aa13", []) + self.considerError(lastError, None) + return (_G_apply_647, self.currentError) + _G_or_648, lastError = self._or([_G_or_644, _G_or_646]) self.considerError(lastError, 'def_p_pos') - _locals['aa'] = _G_or_646 - self._trace('', (11173, 11177), self.input.position) - _G_apply_647, lastError = self._apply(self.rule_num, "num", []) + _locals['aa'] = _G_or_648 + self._trace('', (11132, 11136), self.input.position) + _G_apply_649, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, 'def_p_pos') - _locals['pos'] = _G_apply_647 - _G_python_649, lastError = eval(self._G_expr_648, self.globals, _locals), None + _locals['pos'] = _G_apply_649 + _G_python_651, lastError = eval(self._G_expr_650, self.globals, _locals), None self.considerError(lastError, 'def_p_pos') - return (_G_python_649, self.currentError) + return (_G_python_651, self.currentError) def rule_def_r_pos(self): _locals = {'self': self} self.locals['def_r_pos'] = _locals - self._trace('', (11259, 11264), self.input.position) - _G_apply_650, lastError = self._apply(self.rule_base, "base", []) + self._trace('', (11218, 11223), self.input.position) + _G_apply_652, lastError = self._apply(self.rule_base, "base", []) self.considerError(lastError, 'def_r_pos') - _locals['b'] = _G_apply_650 - self._trace('', (11266, 11273), self.input.position) - _G_apply_651, lastError = self._apply(self.rule_offset, "offset", []) + _locals['b'] = _G_apply_652 + self._trace('', (11225, 11232), self.input.position) + _G_apply_653, lastError = self._apply(self.rule_offset, "offset", []) self.considerError(lastError, 'def_r_pos') - _locals['o'] = _G_apply_651 - _G_python_652, lastError = eval(self._G_expr_640, self.globals, _locals), None + _locals['o'] = _G_apply_653 + _G_python_654, lastError = eval(self._G_expr_642, self.globals, _locals), None self.considerError(lastError, 'def_r_pos') - return (_G_python_652, self.currentError) + return (_G_python_654, self.currentError) def rule_fs(self): _locals = {'self': self} self.locals['fs'] = _locals - self._trace('', (11677, 11682), self.input.position) - _G_exactly_653, lastError = self.exactly('fs') + self._trace('', (11636, 11641), self.input.position) + _G_exactly_655, lastError = self.exactly('fs') self.considerError(lastError, 'fs') - def _G_or_654(): - self._trace('', (11684, 11691), self.input.position) - _G_apply_655, lastError = self._apply(self.rule_aa13_fs, "aa13_fs", []) - self.considerError(lastError, None) - return (_G_apply_655, self.currentError) def _G_or_656(): - _G_python_657, lastError = (None), None + self._trace('', (11643, 11650), self.input.position) + _G_apply_657, lastError = self._apply(self.rule_aa13_fs, "aa13_fs", []) + self.considerError(lastError, None) + return (_G_apply_657, self.currentError) + def _G_or_658(): + _G_python_659, lastError = (None), None self.considerError(lastError, None) - return (_G_python_657, self.currentError) - _G_or_658, lastError = self._or([_G_or_654, _G_or_656]) + return (_G_python_659, self.currentError) + _G_or_660, lastError = self._or([_G_or_656, _G_or_658]) self.considerError(lastError, 'fs') - _locals['n'] = _G_or_658 - _G_python_660, lastError = eval(self._G_expr_659, self.globals, _locals), None + _locals['n'] = _G_or_660 + _G_python_662, lastError = eval(self._G_expr_661, self.globals, _locals), None self.considerError(lastError, 'fs') - return (_G_python_660, self.currentError) + return (_G_python_662, self.currentError) def rule_ext(self): _locals = {'self': self} self.locals['ext'] = _locals - self._trace('', (11715, 11721), self.input.position) - _G_exactly_661, lastError = self.exactly('ext') + self._trace('', (11674, 11680), self.input.position) + _G_exactly_663, lastError = self.exactly('ext') self.considerError(lastError, 'ext') - def _G_or_662(): - self._trace('', (11723, 11731), self.input.position) - _G_apply_663, lastError = self._apply(self.rule_aa13_ext, "aa13_ext", []) - self.considerError(lastError, None) - return (_G_apply_663, self.currentError) def _G_or_664(): - _G_python_665, lastError = ((None, None)), None + self._trace('', (11682, 11690), self.input.position) + _G_apply_665, lastError = self._apply(self.rule_aa13_ext, "aa13_ext", []) + self.considerError(lastError, None) + return (_G_apply_665, self.currentError) + def _G_or_666(): + _G_python_667, lastError = ((None, None)), None self.considerError(lastError, None) - return (_G_python_665, self.currentError) - _G_or_666, lastError = self._or([_G_or_662, _G_or_664]) + return (_G_python_667, self.currentError) + _G_or_668, lastError = self._or([_G_or_664, _G_or_666]) self.considerError(lastError, 'ext') - _locals['aat'] = _G_or_666[0] - _locals['n'] = _G_or_666[1] - _G_python_668, lastError = eval(self._G_expr_667, self.globals, _locals), None + _locals['aat'] = _G_or_668[0] + _locals['n'] = _G_or_668[1] + _G_python_670, lastError = eval(self._G_expr_669, self.globals, _locals), None self.considerError(lastError, 'ext') - return (_G_python_668, self.currentError) + return (_G_python_670, self.currentError) def rule_aa13_fs(self): _locals = {'self': self} self.locals['aa13_fs'] = _locals - self._trace('', (11781, 11788), self.input.position) - _G_apply_669, lastError = self._apply(self.rule_term13, "term13", []) + self._trace('', (11740, 11747), self.input.position) + _G_apply_671, lastError = self._apply(self.rule_term13, "term13", []) self.considerError(lastError, 'aa13_fs') - self._trace('', (11788, 11801), self.input.position) - _G_apply_670, lastError = self._apply(self.rule_fsext_offset, "fsext_offset", []) + self._trace('', (11747, 11760), self.input.position) + _G_apply_672, lastError = self._apply(self.rule_fsext_offset, "fsext_offset", []) self.considerError(lastError, 'aa13_fs') - _locals['n'] = _G_apply_670 - _G_python_671, lastError = eval(self._G_expr_659, self.globals, _locals), None + _locals['n'] = _G_apply_672 + _G_python_673, lastError = eval(self._G_expr_661, self.globals, _locals), None self.considerError(lastError, 'aa13_fs') - return (_G_python_671, self.currentError) + return (_G_python_673, self.currentError) def rule_aa13_ext(self): _locals = {'self': self} self.locals['aa13_ext'] = _locals - def _G_or_672(): - self._trace('', (11819, 11826), self.input.position) - _G_apply_673, lastError = self._apply(self.rule_term13, "term13", []) - self.considerError(lastError, None) - _locals['aat'] = _G_apply_673 - self._trace('', (11830, 11843), self.input.position) - _G_apply_674, lastError = self._apply(self.rule_fsext_offset, "fsext_offset", []) - self.considerError(lastError, None) - _locals['n'] = _G_apply_674 - _G_python_675, lastError = eval(self._G_expr_667, self.globals, _locals), None - self.considerError(lastError, None) - return (_G_python_675, self.currentError) - def _G_or_676(): - def _G_or_677(): - self._trace('', (11870, 11874), self.input.position) - _G_apply_678, lastError = self._apply(self.rule_aa13, "aa13", []) - self.considerError(lastError, None) - return (_G_apply_678, self.currentError) + def _G_or_674(): + self._trace('', (11778, 11785), self.input.position) + _G_apply_675, lastError = self._apply(self.rule_term13, "term13", []) + self.considerError(lastError, None) + _locals['aat'] = _G_apply_675 + self._trace('', (11789, 11802), self.input.position) + _G_apply_676, lastError = self._apply(self.rule_fsext_offset, "fsext_offset", []) + self.considerError(lastError, None) + _locals['n'] = _G_apply_676 + _G_python_677, lastError = eval(self._G_expr_669, self.globals, _locals), None + self.considerError(lastError, None) + return (_G_python_677, self.currentError) + def _G_or_678(): def _G_or_679(): - _G_python_680, lastError = (None), None + self._trace('', (11829, 11833), self.input.position) + _G_apply_680, lastError = self._apply(self.rule_aa13, "aa13", []) self.considerError(lastError, None) - return (_G_python_680, self.currentError) - _G_or_681, lastError = self._or([_G_or_677, _G_or_679]) + return (_G_apply_680, self.currentError) + def _G_or_681(): + _G_python_682, lastError = (None), None + self.considerError(lastError, None) + return (_G_python_682, self.currentError) + _G_or_683, lastError = self._or([_G_or_679, _G_or_681]) self.considerError(lastError, None) - _locals['aat'] = _G_or_681 - self._trace('', (11891, 11896), self.input.position) - _G_apply_682, lastError = self._apply(self.rule_nnum, "nnum", []) + _locals['aat'] = _G_or_683 + self._trace('', (11850, 11855), self.input.position) + _G_apply_684, lastError = self._apply(self.rule_nnum, "nnum", []) self.considerError(lastError, None) - _locals['n'] = _G_apply_682 - _G_python_683, lastError = eval(self._G_expr_667, self.globals, _locals), None + _locals['n'] = _G_apply_684 + _G_python_685, lastError = eval(self._G_expr_669, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_683, self.currentError) - _G_or_684, lastError = self._or([_G_or_672, _G_or_676]) + return (_G_python_685, self.currentError) + _G_or_686, lastError = self._or([_G_or_674, _G_or_678]) self.considerError(lastError, 'aa13_ext') - return (_G_or_684, self.currentError) + return (_G_or_686, self.currentError) def rule_fsext_offset(self): _locals = {'self': self} self.locals['fsext_offset'] = _locals - def _G_or_685(): - self._trace('', (11925, 11929), self.input.position) - _G_apply_686, lastError = self._apply(self.rule_num, "num", []) - self.considerError(lastError, None) - return (_G_apply_686, self.currentError) def _G_or_687(): - self._trace('', (11930, 11933), self.input.position) - _G_exactly_688, lastError = self.exactly('?') + self._trace('', (11884, 11888), self.input.position) + _G_apply_688, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) - return (_G_exactly_688, self.currentError) + return (_G_apply_688, self.currentError) def _G_or_689(): - _G_python_690, lastError = (None), None + self._trace('', (11889, 11892), self.input.position) + _G_exactly_690, lastError = self.exactly('?') self.considerError(lastError, None) - return (_G_python_690, self.currentError) - _G_or_691, lastError = self._or([_G_or_685, _G_or_687, _G_or_689]) + return (_G_exactly_690, self.currentError) + def _G_or_691(): + _G_python_692, lastError = (None), None + self.considerError(lastError, None) + return (_G_python_692, self.currentError) + _G_or_693, lastError = self._or([_G_or_687, _G_or_689, _G_or_691]) self.considerError(lastError, 'fsext_offset') - return (_G_or_691, self.currentError) + return (_G_or_693, self.currentError) def rule_dna_seq(self): _locals = {'self': self} self.locals['dna_seq'] = _locals - def _G_consumedby_692(): - def _G_many1_693(): - self._trace('', (11978, 11981), self.input.position) - _G_apply_694, lastError = self._apply(self.rule_dna, "dna", []) + def _G_consumedby_694(): + def _G_many1_695(): + self._trace('', (11937, 11940), self.input.position) + _G_apply_696, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) - return (_G_apply_694, self.currentError) - _G_many1_695, lastError = self.many(_G_many1_693, _G_many1_693()) + return (_G_apply_696, self.currentError) + _G_many1_697, lastError = self.many(_G_many1_695, _G_many1_695()) self.considerError(lastError, None) - return (_G_many1_695, self.currentError) - _G_consumedby_696, lastError = self.consumedby(_G_consumedby_692) + return (_G_many1_697, self.currentError) + _G_consumedby_698, lastError = self.consumedby(_G_consumedby_694) self.considerError(lastError, 'dna_seq') - return (_G_consumedby_696, self.currentError) + return (_G_consumedby_698, self.currentError) def rule_rna_seq(self): _locals = {'self': self} self.locals['rna_seq'] = _locals - def _G_consumedby_697(): - def _G_many1_698(): - self._trace('', (11995, 11998), self.input.position) - _G_apply_699, lastError = self._apply(self.rule_rna, "rna", []) + def _G_consumedby_699(): + def _G_many1_700(): + self._trace('', (11954, 11957), self.input.position) + _G_apply_701, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) - return (_G_apply_699, self.currentError) - _G_many1_700, lastError = self.many(_G_many1_698, _G_many1_698()) + return (_G_apply_701, self.currentError) + _G_many1_702, lastError = self.many(_G_many1_700, _G_many1_700()) self.considerError(lastError, None) - return (_G_many1_700, self.currentError) - _G_consumedby_701, lastError = self.consumedby(_G_consumedby_697) + return (_G_many1_702, self.currentError) + _G_consumedby_703, lastError = self.consumedby(_G_consumedby_699) self.considerError(lastError, 'rna_seq') - return (_G_consumedby_701, self.currentError) + return (_G_consumedby_703, self.currentError) def rule_aat13_seq(self): _locals = {'self': self} self.locals['aat13_seq'] = _locals - def _G_or_702(): - def _G_consumedby_703(): - self._trace('', (12014, 12022), self.input.position) - _G_apply_704, lastError = self._apply(self.rule_aat3_seq, "aat3_seq", []) + def _G_or_704(): + def _G_consumedby_705(): + self._trace('', (11973, 11981), self.input.position) + _G_apply_706, lastError = self._apply(self.rule_aat3_seq, "aat3_seq", []) self.considerError(lastError, None) - return (_G_apply_704, self.currentError) - _G_consumedby_705, lastError = self.consumedby(_G_consumedby_703) - self.considerError(lastError, None) - return (_G_consumedby_705, self.currentError) - def _G_or_706(): - def _G_consumedby_707(): - self._trace('', (12027, 12035), self.input.position) - _G_apply_708, lastError = self._apply(self.rule_aat1_seq, "aat1_seq", []) + return (_G_apply_706, self.currentError) + _G_consumedby_707, lastError = self.consumedby(_G_consumedby_705) + self.considerError(lastError, None) + return (_G_consumedby_707, self.currentError) + def _G_or_708(): + def _G_consumedby_709(): + self._trace('', (11986, 11994), self.input.position) + _G_apply_710, lastError = self._apply(self.rule_aat1_seq, "aat1_seq", []) self.considerError(lastError, None) - return (_G_apply_708, self.currentError) - _G_consumedby_709, lastError = self.consumedby(_G_consumedby_707) + return (_G_apply_710, self.currentError) + _G_consumedby_711, lastError = self.consumedby(_G_consumedby_709) self.considerError(lastError, None) - return (_G_consumedby_709, self.currentError) - _G_or_710, lastError = self._or([_G_or_702, _G_or_706]) + return (_G_consumedby_711, self.currentError) + _G_or_712, lastError = self._or([_G_or_704, _G_or_708]) self.considerError(lastError, 'aat13_seq') - return (_G_or_710, self.currentError) + return (_G_or_712, self.currentError) def rule_aat1_seq(self): _locals = {'self': self} self.locals['aat1_seq'] = _locals - def _G_or_711(): - def _G_consumedby_712(): - self._trace('', (12049, 12054), self.input.position) - _G_apply_713, lastError = self._apply(self.rule_term1, "term1", []) + def _G_or_713(): + def _G_consumedby_714(): + self._trace('', (12008, 12013), self.input.position) + _G_apply_715, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) - return (_G_apply_713, self.currentError) - _G_consumedby_714, lastError = self.consumedby(_G_consumedby_712) - self.considerError(lastError, None) - return (_G_consumedby_714, self.currentError) - def _G_or_715(): - def _G_consumedby_716(): - def _G_many1_717(): - self._trace('', (12059, 12062), self.input.position) - _G_apply_718, lastError = self._apply(self.rule_aa1, "aa1", []) + return (_G_apply_715, self.currentError) + _G_consumedby_716, lastError = self.consumedby(_G_consumedby_714) + self.considerError(lastError, None) + return (_G_consumedby_716, self.currentError) + def _G_or_717(): + def _G_consumedby_718(): + def _G_many1_719(): + self._trace('', (12018, 12021), self.input.position) + _G_apply_720, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) - return (_G_apply_718, self.currentError) - _G_many1_719, lastError = self.many(_G_many1_717, _G_many1_717()) + return (_G_apply_720, self.currentError) + _G_many1_721, lastError = self.many(_G_many1_719, _G_many1_719()) self.considerError(lastError, None) - def _G_optional_720(): - self._trace('', (12063, 12069), self.input.position) - _G_apply_721, lastError = self._apply(self.rule_term1, "term1", []) - self.considerError(lastError, None) - return (_G_apply_721, self.currentError) def _G_optional_722(): + self._trace('', (12022, 12028), self.input.position) + _G_apply_723, lastError = self._apply(self.rule_term1, "term1", []) + self.considerError(lastError, None) + return (_G_apply_723, self.currentError) + def _G_optional_724(): return (None, self.input.nullError()) - _G_or_723, lastError = self._or([_G_optional_720, _G_optional_722]) + _G_or_725, lastError = self._or([_G_optional_722, _G_optional_724]) self.considerError(lastError, None) - return (_G_or_723, self.currentError) - _G_consumedby_724, lastError = self.consumedby(_G_consumedby_716) + return (_G_or_725, self.currentError) + _G_consumedby_726, lastError = self.consumedby(_G_consumedby_718) self.considerError(lastError, None) - return (_G_consumedby_724, self.currentError) - _G_or_725, lastError = self._or([_G_or_711, _G_or_715]) + return (_G_consumedby_726, self.currentError) + _G_or_727, lastError = self._or([_G_or_713, _G_or_717]) self.considerError(lastError, 'aat1_seq') - return (_G_or_725, self.currentError) + return (_G_or_727, self.currentError) def rule_aat3_seq(self): _locals = {'self': self} self.locals['aat3_seq'] = _locals - def _G_or_726(): - def _G_consumedby_727(): - self._trace('', (12084, 12089), self.input.position) - _G_apply_728, lastError = self._apply(self.rule_term3, "term3", []) + def _G_or_728(): + def _G_consumedby_729(): + self._trace('', (12043, 12048), self.input.position) + _G_apply_730, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) - return (_G_apply_728, self.currentError) - _G_consumedby_729, lastError = self.consumedby(_G_consumedby_727) - self.considerError(lastError, None) - return (_G_consumedby_729, self.currentError) - def _G_or_730(): - def _G_consumedby_731(): - def _G_many1_732(): - self._trace('', (12094, 12097), self.input.position) - _G_apply_733, lastError = self._apply(self.rule_aa3, "aa3", []) + return (_G_apply_730, self.currentError) + _G_consumedby_731, lastError = self.consumedby(_G_consumedby_729) + self.considerError(lastError, None) + return (_G_consumedby_731, self.currentError) + def _G_or_732(): + def _G_consumedby_733(): + def _G_many1_734(): + self._trace('', (12053, 12056), self.input.position) + _G_apply_735, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) - return (_G_apply_733, self.currentError) - _G_many1_734, lastError = self.many(_G_many1_732, _G_many1_732()) + return (_G_apply_735, self.currentError) + _G_many1_736, lastError = self.many(_G_many1_734, _G_many1_734()) self.considerError(lastError, None) - def _G_optional_735(): - self._trace('', (12098, 12104), self.input.position) - _G_apply_736, lastError = self._apply(self.rule_term3, "term3", []) - self.considerError(lastError, None) - return (_G_apply_736, self.currentError) def _G_optional_737(): + self._trace('', (12057, 12063), self.input.position) + _G_apply_738, lastError = self._apply(self.rule_term3, "term3", []) + self.considerError(lastError, None) + return (_G_apply_738, self.currentError) + def _G_optional_739(): return (None, self.input.nullError()) - _G_or_738, lastError = self._or([_G_optional_735, _G_optional_737]) + _G_or_740, lastError = self._or([_G_optional_737, _G_optional_739]) self.considerError(lastError, None) - return (_G_or_738, self.currentError) - _G_consumedby_739, lastError = self.consumedby(_G_consumedby_731) + return (_G_or_740, self.currentError) + _G_consumedby_741, lastError = self.consumedby(_G_consumedby_733) self.considerError(lastError, None) - return (_G_consumedby_739, self.currentError) - _G_or_740, lastError = self._or([_G_or_726, _G_or_730]) + return (_G_consumedby_741, self.currentError) + _G_or_742, lastError = self._or([_G_or_728, _G_or_732]) self.considerError(lastError, 'aat3_seq') - return (_G_or_740, self.currentError) + return (_G_or_742, self.currentError) def rule_aa13_seq(self): _locals = {'self': self} self.locals['aa13_seq'] = _locals - def _G_or_741(): - def _G_consumedby_742(): - self._trace('', (12119, 12126), self.input.position) - _G_apply_743, lastError = self._apply(self.rule_aa3_seq, "aa3_seq", []) + def _G_or_743(): + def _G_consumedby_744(): + self._trace('', (12078, 12085), self.input.position) + _G_apply_745, lastError = self._apply(self.rule_aa3_seq, "aa3_seq", []) self.considerError(lastError, None) - return (_G_apply_743, self.currentError) - _G_consumedby_744, lastError = self.consumedby(_G_consumedby_742) - self.considerError(lastError, None) - return (_G_consumedby_744, self.currentError) - def _G_or_745(): - def _G_consumedby_746(): - self._trace('', (12131, 12138), self.input.position) - _G_apply_747, lastError = self._apply(self.rule_aa1_seq, "aa1_seq", []) + return (_G_apply_745, self.currentError) + _G_consumedby_746, lastError = self.consumedby(_G_consumedby_744) + self.considerError(lastError, None) + return (_G_consumedby_746, self.currentError) + def _G_or_747(): + def _G_consumedby_748(): + self._trace('', (12090, 12097), self.input.position) + _G_apply_749, lastError = self._apply(self.rule_aa1_seq, "aa1_seq", []) self.considerError(lastError, None) - return (_G_apply_747, self.currentError) - _G_consumedby_748, lastError = self.consumedby(_G_consumedby_746) + return (_G_apply_749, self.currentError) + _G_consumedby_750, lastError = self.consumedby(_G_consumedby_748) self.considerError(lastError, None) - return (_G_consumedby_748, self.currentError) - _G_or_749, lastError = self._or([_G_or_741, _G_or_745]) + return (_G_consumedby_750, self.currentError) + _G_or_751, lastError = self._or([_G_or_743, _G_or_747]) self.considerError(lastError, 'aa13_seq') - return (_G_or_749, self.currentError) + return (_G_or_751, self.currentError) def rule_aa1_seq(self): _locals = {'self': self} self.locals['aa1_seq'] = _locals - def _G_consumedby_750(): - def _G_many1_751(): - self._trace('', (12151, 12154), self.input.position) - _G_apply_752, lastError = self._apply(self.rule_aa1, "aa1", []) + def _G_consumedby_752(): + def _G_many1_753(): + self._trace('', (12110, 12113), self.input.position) + _G_apply_754, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) - return (_G_apply_752, self.currentError) - _G_many1_753, lastError = self.many(_G_many1_751, _G_many1_751()) + return (_G_apply_754, self.currentError) + _G_many1_755, lastError = self.many(_G_many1_753, _G_many1_753()) self.considerError(lastError, None) - return (_G_many1_753, self.currentError) - _G_consumedby_754, lastError = self.consumedby(_G_consumedby_750) + return (_G_many1_755, self.currentError) + _G_consumedby_756, lastError = self.consumedby(_G_consumedby_752) self.considerError(lastError, 'aa1_seq') - return (_G_consumedby_754, self.currentError) + return (_G_consumedby_756, self.currentError) def rule_aa3_seq(self): _locals = {'self': self} self.locals['aa3_seq'] = _locals - def _G_consumedby_755(): - def _G_many1_756(): - self._trace('', (12168, 12171), self.input.position) - _G_apply_757, lastError = self._apply(self.rule_aa3, "aa3", []) + def _G_consumedby_757(): + def _G_many1_758(): + self._trace('', (12127, 12130), self.input.position) + _G_apply_759, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) - return (_G_apply_757, self.currentError) - _G_many1_758, lastError = self.many(_G_many1_756, _G_many1_756()) + return (_G_apply_759, self.currentError) + _G_many1_760, lastError = self.many(_G_many1_758, _G_many1_758()) self.considerError(lastError, None) - return (_G_many1_758, self.currentError) - _G_consumedby_759, lastError = self.consumedby(_G_consumedby_755) + return (_G_many1_760, self.currentError) + _G_consumedby_761, lastError = self.consumedby(_G_consumedby_757) self.considerError(lastError, 'aa3_seq') - return (_G_consumedby_759, self.currentError) + return (_G_consumedby_761, self.currentError) def rule_aa1(self): _locals = {'self': self} self.locals['aa1'] = _locals - _G_apply_760, lastError = self._apply(self.rule_anything, "anything", []) + _G_apply_762, lastError = self._apply(self.rule_anything, "anything", []) self.considerError(lastError, 'aa1') - _locals['x'] = _G_apply_760 - def _G_pred_761(): - _G_python_763, lastError = eval(self._G_expr_762, self.globals, _locals), None + _locals['x'] = _G_apply_762 + def _G_pred_763(): + _G_python_765, lastError = eval(self._G_expr_764, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_763, self.currentError) - _G_pred_764, lastError = self.pred(_G_pred_761) + return (_G_python_765, self.currentError) + _G_pred_766, lastError = self.pred(_G_pred_763) self.considerError(lastError, 'aa1') - _G_python_766, lastError = eval(self._G_expr_765, self.globals, _locals), None + _G_python_768, lastError = eval(self._G_expr_767, self.globals, _locals), None self.considerError(lastError, 'aa1') - return (_G_python_766, self.currentError) + return (_G_python_768, self.currentError) def rule_aa13(self): _locals = {'self': self} self.locals['aa13'] = _locals - def _G_or_767(): - self._trace('', (12252, 12256), self.input.position) - _G_apply_768, lastError = self._apply(self.rule_aa3, "aa3", []) - self.considerError(lastError, None) - return (_G_apply_768, self.currentError) def _G_or_769(): - self._trace('', (12258, 12262), self.input.position) - _G_apply_770, lastError = self._apply(self.rule_aa1, "aa1", []) + self._trace('', (12211, 12215), self.input.position) + _G_apply_770, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) return (_G_apply_770, self.currentError) - _G_or_771, lastError = self._or([_G_or_767, _G_or_769]) + def _G_or_771(): + self._trace('', (12217, 12221), self.input.position) + _G_apply_772, lastError = self._apply(self.rule_aa1, "aa1", []) + self.considerError(lastError, None) + return (_G_apply_772, self.currentError) + _G_or_773, lastError = self._or([_G_or_769, _G_or_771]) self.considerError(lastError, 'aa13') - return (_G_or_771, self.currentError) + return (_G_or_773, self.currentError) def rule_aa3(self): _locals = {'self': self} self.locals['aa3'] = _locals - def _G_or_772(): - self._trace('', (12268, 12274), self.input.position) - _G_exactly_773, lastError = self.exactly('Ala') - self.considerError(lastError, None) - return (_G_exactly_773, self.currentError) def _G_or_774(): - self._trace('', (12275, 12280), self.input.position) - _G_exactly_775, lastError = self.exactly('Cys') + self._trace('', (12227, 12233), self.input.position) + _G_exactly_775, lastError = self.exactly('Ala') self.considerError(lastError, None) return (_G_exactly_775, self.currentError) def _G_or_776(): - self._trace('', (12281, 12286), self.input.position) - _G_exactly_777, lastError = self.exactly('Asp') + self._trace('', (12234, 12239), self.input.position) + _G_exactly_777, lastError = self.exactly('Cys') self.considerError(lastError, None) return (_G_exactly_777, self.currentError) def _G_or_778(): - self._trace('', (12287, 12292), self.input.position) - _G_exactly_779, lastError = self.exactly('Glu') + self._trace('', (12240, 12245), self.input.position) + _G_exactly_779, lastError = self.exactly('Asp') self.considerError(lastError, None) return (_G_exactly_779, self.currentError) def _G_or_780(): - self._trace('', (12293, 12298), self.input.position) - _G_exactly_781, lastError = self.exactly('Phe') + self._trace('', (12246, 12251), self.input.position) + _G_exactly_781, lastError = self.exactly('Glu') self.considerError(lastError, None) return (_G_exactly_781, self.currentError) def _G_or_782(): - self._trace('', (12299, 12304), self.input.position) - _G_exactly_783, lastError = self.exactly('Gly') + self._trace('', (12252, 12257), self.input.position) + _G_exactly_783, lastError = self.exactly('Phe') self.considerError(lastError, None) return (_G_exactly_783, self.currentError) def _G_or_784(): - self._trace('', (12305, 12310), self.input.position) - _G_exactly_785, lastError = self.exactly('His') + self._trace('', (12258, 12263), self.input.position) + _G_exactly_785, lastError = self.exactly('Gly') self.considerError(lastError, None) return (_G_exactly_785, self.currentError) def _G_or_786(): - self._trace('', (12311, 12316), self.input.position) - _G_exactly_787, lastError = self.exactly('Ile') + self._trace('', (12264, 12269), self.input.position) + _G_exactly_787, lastError = self.exactly('His') self.considerError(lastError, None) return (_G_exactly_787, self.currentError) def _G_or_788(): - self._trace('', (12317, 12322), self.input.position) - _G_exactly_789, lastError = self.exactly('Lys') + self._trace('', (12270, 12275), self.input.position) + _G_exactly_789, lastError = self.exactly('Ile') self.considerError(lastError, None) return (_G_exactly_789, self.currentError) def _G_or_790(): - self._trace('', (12323, 12328), self.input.position) - _G_exactly_791, lastError = self.exactly('Leu') + self._trace('', (12276, 12281), self.input.position) + _G_exactly_791, lastError = self.exactly('Lys') self.considerError(lastError, None) return (_G_exactly_791, self.currentError) def _G_or_792(): - self._trace('', (12329, 12334), self.input.position) - _G_exactly_793, lastError = self.exactly('Met') + self._trace('', (12282, 12287), self.input.position) + _G_exactly_793, lastError = self.exactly('Leu') self.considerError(lastError, None) return (_G_exactly_793, self.currentError) def _G_or_794(): - self._trace('', (12335, 12340), self.input.position) - _G_exactly_795, lastError = self.exactly('Asn') + self._trace('', (12288, 12293), self.input.position) + _G_exactly_795, lastError = self.exactly('Met') self.considerError(lastError, None) return (_G_exactly_795, self.currentError) def _G_or_796(): - self._trace('', (12341, 12346), self.input.position) - _G_exactly_797, lastError = self.exactly('Pro') + self._trace('', (12294, 12299), self.input.position) + _G_exactly_797, lastError = self.exactly('Asn') self.considerError(lastError, None) return (_G_exactly_797, self.currentError) def _G_or_798(): - self._trace('', (12347, 12352), self.input.position) - _G_exactly_799, lastError = self.exactly('Gln') + self._trace('', (12300, 12305), self.input.position) + _G_exactly_799, lastError = self.exactly('Pro') self.considerError(lastError, None) return (_G_exactly_799, self.currentError) def _G_or_800(): - self._trace('', (12353, 12358), self.input.position) - _G_exactly_801, lastError = self.exactly('Arg') + self._trace('', (12306, 12311), self.input.position) + _G_exactly_801, lastError = self.exactly('Gln') self.considerError(lastError, None) return (_G_exactly_801, self.currentError) def _G_or_802(): - self._trace('', (12359, 12364), self.input.position) - _G_exactly_803, lastError = self.exactly('Ser') + self._trace('', (12312, 12317), self.input.position) + _G_exactly_803, lastError = self.exactly('Arg') self.considerError(lastError, None) return (_G_exactly_803, self.currentError) def _G_or_804(): - self._trace('', (12365, 12370), self.input.position) - _G_exactly_805, lastError = self.exactly('Thr') + self._trace('', (12318, 12323), self.input.position) + _G_exactly_805, lastError = self.exactly('Ser') self.considerError(lastError, None) return (_G_exactly_805, self.currentError) def _G_or_806(): - self._trace('', (12371, 12376), self.input.position) - _G_exactly_807, lastError = self.exactly('Val') + self._trace('', (12324, 12329), self.input.position) + _G_exactly_807, lastError = self.exactly('Thr') self.considerError(lastError, None) return (_G_exactly_807, self.currentError) def _G_or_808(): - self._trace('', (12377, 12382), self.input.position) - _G_exactly_809, lastError = self.exactly('Trp') + self._trace('', (12330, 12335), self.input.position) + _G_exactly_809, lastError = self.exactly('Val') self.considerError(lastError, None) return (_G_exactly_809, self.currentError) def _G_or_810(): - self._trace('', (12383, 12388), self.input.position) - _G_exactly_811, lastError = self.exactly('Tyr') + self._trace('', (12336, 12341), self.input.position) + _G_exactly_811, lastError = self.exactly('Trp') self.considerError(lastError, None) return (_G_exactly_811, self.currentError) def _G_or_812(): - self._trace('', (12390, 12396), self.input.position) - _G_exactly_813, lastError = self.exactly('Asx') + self._trace('', (12342, 12347), self.input.position) + _G_exactly_813, lastError = self.exactly('Tyr') self.considerError(lastError, None) return (_G_exactly_813, self.currentError) def _G_or_814(): - self._trace('', (12398, 12404), self.input.position) - _G_exactly_815, lastError = self.exactly('Glx') + self._trace('', (12349, 12355), self.input.position) + _G_exactly_815, lastError = self.exactly('Asx') self.considerError(lastError, None) return (_G_exactly_815, self.currentError) def _G_or_816(): - self._trace('', (12406, 12412), self.input.position) - _G_exactly_817, lastError = self.exactly('Xaa') + self._trace('', (12357, 12363), self.input.position) + _G_exactly_817, lastError = self.exactly('Glx') self.considerError(lastError, None) return (_G_exactly_817, self.currentError) def _G_or_818(): - self._trace('', (12414, 12420), self.input.position) - _G_exactly_819, lastError = self.exactly('Sec') + self._trace('', (12365, 12371), self.input.position) + _G_exactly_819, lastError = self.exactly('Xaa') self.considerError(lastError, None) return (_G_exactly_819, self.currentError) - _G_or_820, lastError = self._or([_G_or_772, _G_or_774, _G_or_776, _G_or_778, _G_or_780, _G_or_782, _G_or_784, _G_or_786, _G_or_788, _G_or_790, _G_or_792, _G_or_794, _G_or_796, _G_or_798, _G_or_800, _G_or_802, _G_or_804, _G_or_806, _G_or_808, _G_or_810, _G_or_812, _G_or_814, _G_or_816, _G_or_818]) + def _G_or_820(): + self._trace('', (12373, 12379), self.input.position) + _G_exactly_821, lastError = self.exactly('Sec') + self.considerError(lastError, None) + return (_G_exactly_821, self.currentError) + _G_or_822, lastError = self._or([_G_or_774, _G_or_776, _G_or_778, _G_or_780, _G_or_782, _G_or_784, _G_or_786, _G_or_788, _G_or_790, _G_or_792, _G_or_794, _G_or_796, _G_or_798, _G_or_800, _G_or_802, _G_or_804, _G_or_806, _G_or_808, _G_or_810, _G_or_812, _G_or_814, _G_or_816, _G_or_818, _G_or_820]) self.considerError(lastError, 'aa3') - return (_G_or_820, self.currentError) + return (_G_or_822, self.currentError) def rule_aat1(self): _locals = {'self': self} self.locals['aat1'] = _locals - def _G_or_821(): - self._trace('', (12427, 12433), self.input.position) - _G_apply_822, lastError = self._apply(self.rule_term1, "term1", []) - self.considerError(lastError, None) - return (_G_apply_822, self.currentError) def _G_or_823(): - self._trace('', (12435, 12439), self.input.position) - _G_apply_824, lastError = self._apply(self.rule_aa1, "aa1", []) + self._trace('', (12386, 12392), self.input.position) + _G_apply_824, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) return (_G_apply_824, self.currentError) - _G_or_825, lastError = self._or([_G_or_821, _G_or_823]) + def _G_or_825(): + self._trace('', (12394, 12398), self.input.position) + _G_apply_826, lastError = self._apply(self.rule_aa1, "aa1", []) + self.considerError(lastError, None) + return (_G_apply_826, self.currentError) + _G_or_827, lastError = self._or([_G_or_823, _G_or_825]) self.considerError(lastError, 'aat1') - return (_G_or_825, self.currentError) + return (_G_or_827, self.currentError) def rule_aat13(self): _locals = {'self': self} self.locals['aat13'] = _locals - def _G_or_826(): - self._trace('', (12447, 12452), self.input.position) - _G_apply_827, lastError = self._apply(self.rule_aat3, "aat3", []) - self.considerError(lastError, None) - return (_G_apply_827, self.currentError) def _G_or_828(): - self._trace('', (12454, 12459), self.input.position) - _G_apply_829, lastError = self._apply(self.rule_aat1, "aat1", []) + self._trace('', (12406, 12411), self.input.position) + _G_apply_829, lastError = self._apply(self.rule_aat3, "aat3", []) self.considerError(lastError, None) return (_G_apply_829, self.currentError) - _G_or_830, lastError = self._or([_G_or_826, _G_or_828]) + def _G_or_830(): + self._trace('', (12413, 12418), self.input.position) + _G_apply_831, lastError = self._apply(self.rule_aat1, "aat1", []) + self.considerError(lastError, None) + return (_G_apply_831, self.currentError) + _G_or_832, lastError = self._or([_G_or_828, _G_or_830]) self.considerError(lastError, 'aat13') - return (_G_or_830, self.currentError) + return (_G_or_832, self.currentError) def rule_aat3(self): _locals = {'self': self} self.locals['aat3'] = _locals - def _G_or_831(): - self._trace('', (12466, 12472), self.input.position) - _G_apply_832, lastError = self._apply(self.rule_term3, "term3", []) - self.considerError(lastError, None) - return (_G_apply_832, self.currentError) def _G_or_833(): - self._trace('', (12474, 12478), self.input.position) - _G_apply_834, lastError = self._apply(self.rule_aa3, "aa3", []) + self._trace('', (12425, 12431), self.input.position) + _G_apply_834, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) return (_G_apply_834, self.currentError) - _G_or_835, lastError = self._or([_G_or_831, _G_or_833]) + def _G_or_835(): + self._trace('', (12433, 12437), self.input.position) + _G_apply_836, lastError = self._apply(self.rule_aa3, "aa3", []) + self.considerError(lastError, None) + return (_G_apply_836, self.currentError) + _G_or_837, lastError = self._or([_G_or_833, _G_or_835]) self.considerError(lastError, 'aat3') - return (_G_or_835, self.currentError) + return (_G_or_837, self.currentError) def rule_dna(self): _locals = {'self': self} self.locals['dna'] = _locals - self._trace('', (12484, 12494), self.input.position) - _G_apply_836, lastError = self._apply(self.rule_dna_iupac, "dna_iupac", []) + self._trace('', (12443, 12453), self.input.position) + _G_apply_838, lastError = self._apply(self.rule_dna_iupac, "dna_iupac", []) self.considerError(lastError, 'dna') - return (_G_apply_836, self.currentError) + return (_G_apply_838, self.currentError) def rule_dna_iupac(self): _locals = {'self': self} self.locals['dna_iupac'] = _locals - _G_apply_837, lastError = self._apply(self.rule_anything, "anything", []) + _G_apply_839, lastError = self._apply(self.rule_anything, "anything", []) self.considerError(lastError, 'dna_iupac') - _locals['x'] = _G_apply_837 - def _G_pred_838(): - _G_python_840, lastError = eval(self._G_expr_839, self.globals, _locals), None + _locals['x'] = _G_apply_839 + def _G_pred_840(): + _G_python_842, lastError = eval(self._G_expr_841, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_840, self.currentError) - _G_pred_841, lastError = self.pred(_G_pred_838) + return (_G_python_842, self.currentError) + _G_pred_843, lastError = self.pred(_G_pred_840) self.considerError(lastError, 'dna_iupac') - _G_python_842, lastError = eval(self._G_expr_765, self.globals, _locals), None + _G_python_844, lastError = eval(self._G_expr_767, self.globals, _locals), None self.considerError(lastError, 'dna_iupac') - return (_G_python_842, self.currentError) + return (_G_python_844, self.currentError) def rule_na_iupac(self): _locals = {'self': self} self.locals['na_iupac'] = _locals - _G_apply_843, lastError = self._apply(self.rule_anything, "anything", []) + _G_apply_845, lastError = self._apply(self.rule_anything, "anything", []) self.considerError(lastError, 'na_iupac') - _locals['x'] = _G_apply_843 - def _G_pred_844(): - _G_python_846, lastError = eval(self._G_expr_845, self.globals, _locals), None + _locals['x'] = _G_apply_845 + def _G_pred_846(): + _G_python_848, lastError = eval(self._G_expr_847, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_846, self.currentError) - _G_pred_847, lastError = self.pred(_G_pred_844) + return (_G_python_848, self.currentError) + _G_pred_849, lastError = self.pred(_G_pred_846) self.considerError(lastError, 'na_iupac') - _G_python_848, lastError = eval(self._G_expr_765, self.globals, _locals), None + _G_python_850, lastError = eval(self._G_expr_767, self.globals, _locals), None self.considerError(lastError, 'na_iupac') - return (_G_python_848, self.currentError) + return (_G_python_850, self.currentError) def rule_rna(self): _locals = {'self': self} self.locals['rna'] = _locals - self._trace('', (12623, 12633), self.input.position) - _G_apply_849, lastError = self._apply(self.rule_rna_iupac, "rna_iupac", []) + self._trace('', (12582, 12592), self.input.position) + _G_apply_851, lastError = self._apply(self.rule_rna_iupac, "rna_iupac", []) self.considerError(lastError, 'rna') - return (_G_apply_849, self.currentError) + return (_G_apply_851, self.currentError) def rule_rna_iupac(self): _locals = {'self': self} self.locals['rna_iupac'] = _locals - _G_apply_850, lastError = self._apply(self.rule_anything, "anything", []) + _G_apply_852, lastError = self._apply(self.rule_anything, "anything", []) self.considerError(lastError, 'rna_iupac') - _locals['x'] = _G_apply_850 - def _G_pred_851(): - _G_python_853, lastError = eval(self._G_expr_852, self.globals, _locals), None + _locals['x'] = _G_apply_852 + def _G_pred_853(): + _G_python_855, lastError = eval(self._G_expr_854, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_853, self.currentError) - _G_pred_854, lastError = self.pred(_G_pred_851) + return (_G_python_855, self.currentError) + _G_pred_856, lastError = self.pred(_G_pred_853) self.considerError(lastError, 'rna_iupac') - _G_python_855, lastError = eval(self._G_expr_765, self.globals, _locals), None + _G_python_857, lastError = eval(self._G_expr_767, self.globals, _locals), None self.considerError(lastError, 'rna_iupac') - return (_G_python_855, self.currentError) + return (_G_python_857, self.currentError) def rule_term1(self): _locals = {'self': self} self.locals['term1'] = _locals - _G_apply_856, lastError = self._apply(self.rule_anything, "anything", []) + _G_apply_858, lastError = self._apply(self.rule_anything, "anything", []) self.considerError(lastError, 'term1') - _locals['x'] = _G_apply_856 - def _G_pred_857(): - _G_python_859, lastError = eval(self._G_expr_858, self.globals, _locals), None + _locals['x'] = _G_apply_858 + def _G_pred_859(): + _G_python_861, lastError = eval(self._G_expr_860, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_859, self.currentError) - _G_pred_860, lastError = self.pred(_G_pred_857) + return (_G_python_861, self.currentError) + _G_pred_862, lastError = self.pred(_G_pred_859) self.considerError(lastError, 'term1') - _G_python_861, lastError = eval(self._G_expr_765, self.globals, _locals), None + _G_python_863, lastError = eval(self._G_expr_767, self.globals, _locals), None self.considerError(lastError, 'term1') - return (_G_python_861, self.currentError) + return (_G_python_863, self.currentError) def rule_term13(self): _locals = {'self': self} self.locals['term13'] = _locals - def _G_or_862(): - self._trace('', (12732, 12738), self.input.position) - _G_apply_863, lastError = self._apply(self.rule_term3, "term3", []) - self.considerError(lastError, None) - return (_G_apply_863, self.currentError) def _G_or_864(): - self._trace('', (12740, 12746), self.input.position) - _G_apply_865, lastError = self._apply(self.rule_term1, "term1", []) + self._trace('', (12691, 12697), self.input.position) + _G_apply_865, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) return (_G_apply_865, self.currentError) - _G_or_866, lastError = self._or([_G_or_862, _G_or_864]) + def _G_or_866(): + self._trace('', (12699, 12705), self.input.position) + _G_apply_867, lastError = self._apply(self.rule_term1, "term1", []) + self.considerError(lastError, None) + return (_G_apply_867, self.currentError) + _G_or_868, lastError = self._or([_G_or_864, _G_or_866]) self.considerError(lastError, 'term13') - return (_G_or_866, self.currentError) + return (_G_or_868, self.currentError) def rule_term3(self): _locals = {'self': self} self.locals['term3'] = _locals - self._trace('', (12754, 12760), self.input.position) - _G_exactly_867, lastError = self.exactly('Ter') + self._trace('', (12713, 12719), self.input.position) + _G_exactly_869, lastError = self.exactly('Ter') self.considerError(lastError, 'term3') - return (_G_exactly_867, self.currentError) + return (_G_exactly_869, self.currentError) def rule_base(self): _locals = {'self': self} self.locals['base'] = _locals - self._trace('', (12844, 12849), self.input.position) - _G_apply_868, lastError = self._apply(self.rule_snum, "snum", []) + self._trace('', (12803, 12808), self.input.position) + _G_apply_870, lastError = self._apply(self.rule_snum, "snum", []) self.considerError(lastError, 'base') - return (_G_apply_868, self.currentError) + return (_G_apply_870, self.currentError) def rule_nnum(self): _locals = {'self': self} self.locals['nnum'] = _locals - def _G_consumedby_869(): - self._trace('', (12858, 12861), self.input.position) - _G_exactly_870, lastError = self.exactly('-') + def _G_consumedby_871(): + self._trace('', (12817, 12820), self.input.position) + _G_exactly_872, lastError = self.exactly('-') self.considerError(lastError, None) - self._trace('', (12861, 12865), self.input.position) - _G_apply_871, lastError = self._apply(self.rule_num, "num", []) + self._trace('', (12820, 12824), self.input.position) + _G_apply_873, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) - return (_G_apply_871, self.currentError) - _G_consumedby_872, lastError = self.consumedby(_G_consumedby_869) + return (_G_apply_873, self.currentError) + _G_consumedby_874, lastError = self.consumedby(_G_consumedby_871) self.considerError(lastError, 'nnum') - _locals['x'] = _G_consumedby_872 - _G_python_874, lastError = eval(self._G_expr_873, self.globals, _locals), None + _locals['x'] = _G_consumedby_874 + _G_python_876, lastError = eval(self._G_expr_875, self.globals, _locals), None self.considerError(lastError, 'nnum') - return (_G_python_874, self.currentError) + return (_G_python_876, self.currentError) def rule_num(self): _locals = {'self': self} self.locals['num'] = _locals - def _G_consumedby_875(): - def _G_many1_876(): - self._trace('', (12886, 12891), self.input.position) - _G_apply_877, lastError = self._apply(self.rule_digit, "digit", []) + def _G_consumedby_877(): + def _G_many1_878(): + self._trace('', (12845, 12850), self.input.position) + _G_apply_879, lastError = self._apply(self.rule_digit, "digit", []) self.considerError(lastError, None) - return (_G_apply_877, self.currentError) - _G_many1_878, lastError = self.many(_G_many1_876, _G_many1_876()) + return (_G_apply_879, self.currentError) + _G_many1_880, lastError = self.many(_G_many1_878, _G_many1_878()) self.considerError(lastError, None) - return (_G_many1_878, self.currentError) - _G_consumedby_879, lastError = self.consumedby(_G_consumedby_875) + return (_G_many1_880, self.currentError) + _G_consumedby_881, lastError = self.consumedby(_G_consumedby_877) self.considerError(lastError, 'num') - _locals['x'] = _G_consumedby_879 - _G_python_880, lastError = eval(self._G_expr_873, self.globals, _locals), None + _locals['x'] = _G_consumedby_881 + _G_python_882, lastError = eval(self._G_expr_875, self.globals, _locals), None self.considerError(lastError, 'num') - return (_G_python_880, self.currentError) + return (_G_python_882, self.currentError) def rule_offset(self): _locals = {'self': self} self.locals['offset'] = _locals - def _G_or_881(): - self._trace('', (12914, 12919), self.input.position) - _G_apply_882, lastError = self._apply(self.rule_snum, "snum", []) - self.considerError(lastError, None) - return (_G_apply_882, self.currentError) def _G_or_883(): - _G_python_884, lastError = (0), None + self._trace('', (12873, 12878), self.input.position) + _G_apply_884, lastError = self._apply(self.rule_snum, "snum", []) + self.considerError(lastError, None) + return (_G_apply_884, self.currentError) + def _G_or_885(): + _G_python_886, lastError = (0), None self.considerError(lastError, None) - return (_G_python_884, self.currentError) - _G_or_885, lastError = self._or([_G_or_881, _G_or_883]) + return (_G_python_886, self.currentError) + _G_or_887, lastError = self._or([_G_or_883, _G_or_885]) self.considerError(lastError, 'offset') - return (_G_or_885, self.currentError) + return (_G_or_887, self.currentError) def rule_pm(self): _locals = {'self': self} self.locals['pm'] = _locals - _G_apply_886, lastError = self._apply(self.rule_anything, "anything", []) + _G_apply_888, lastError = self._apply(self.rule_anything, "anything", []) self.considerError(lastError, 'pm') - _locals['x'] = _G_apply_886 - def _G_pred_887(): - _G_python_889, lastError = eval(self._G_expr_888, self.globals, _locals), None + _locals['x'] = _G_apply_888 + def _G_pred_889(): + _G_python_891, lastError = eval(self._G_expr_890, self.globals, _locals), None self.considerError(lastError, None) - return (_G_python_889, self.currentError) - _G_pred_890, lastError = self.pred(_G_pred_887) + return (_G_python_891, self.currentError) + _G_pred_892, lastError = self.pred(_G_pred_889) self.considerError(lastError, 'pm') - _G_python_891, lastError = eval(self._G_expr_765, self.globals, _locals), None + _G_python_893, lastError = eval(self._G_expr_767, self.globals, _locals), None self.considerError(lastError, 'pm') - return (_G_python_891, self.currentError) + return (_G_python_893, self.currentError) def rule_snum(self): _locals = {'self': self} self.locals['snum'] = _locals - def _G_consumedby_892(): - def _G_optional_893(): - self._trace('', (12963, 12965), self.input.position) - _G_apply_894, lastError = self._apply(self.rule_pm, "pm", []) - self.considerError(lastError, None) - return (_G_apply_894, self.currentError) + def _G_consumedby_894(): def _G_optional_895(): + self._trace('', (12922, 12924), self.input.position) + _G_apply_896, lastError = self._apply(self.rule_pm, "pm", []) + self.considerError(lastError, None) + return (_G_apply_896, self.currentError) + def _G_optional_897(): return (None, self.input.nullError()) - _G_or_896, lastError = self._or([_G_optional_893, _G_optional_895]) + _G_or_898, lastError = self._or([_G_optional_895, _G_optional_897]) self.considerError(lastError, None) - self._trace('', (12966, 12970), self.input.position) - _G_apply_897, lastError = self._apply(self.rule_num, "num", []) + self._trace('', (12925, 12929), self.input.position) + _G_apply_899, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) - return (_G_apply_897, self.currentError) - _G_consumedby_898, lastError = self.consumedby(_G_consumedby_892) + return (_G_apply_899, self.currentError) + _G_consumedby_900, lastError = self.consumedby(_G_consumedby_894) self.considerError(lastError, 'snum') - _locals['x'] = _G_consumedby_898 - _G_python_899, lastError = eval(self._G_expr_873, self.globals, _locals), None + _locals['x'] = _G_consumedby_900 + _G_python_901, lastError = eval(self._G_expr_875, self.globals, _locals), None self.considerError(lastError, 'snum') - return (_G_python_899, self.currentError) + return (_G_python_901, self.currentError) def rule_accn(self): _locals = {'self': self} self.locals['accn'] = _locals - def _G_consumedby_900(): - self._trace('', (13074, 13080), self.input.position) - _G_apply_901, lastError = self._apply(self.rule_letter, "letter", []) - self.considerError(lastError, None) - def _G_optional_902(): - def _G_many1_903(): - def _G_or_904(): - self._trace('', (13083, 13096), self.input.position) - _G_apply_905, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) - self.considerError(lastError, None) - return (_G_apply_905, self.currentError) + def _G_consumedby_902(): + self._trace('', (13033, 13039), self.input.position) + _G_apply_903, lastError = self._apply(self.rule_letter, "letter", []) + self.considerError(lastError, None) + def _G_optional_904(): + def _G_many1_905(): def _G_or_906(): - def _G_or_907(): - self._trace('', (13100, 13103), self.input.position) - _G_exactly_908, lastError = self.exactly('-') - self.considerError(lastError, None) - return (_G_exactly_908, self.currentError) + self._trace('', (13042, 13055), self.input.position) + _G_apply_907, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) + self.considerError(lastError, None) + return (_G_apply_907, self.currentError) + def _G_or_908(): def _G_or_909(): - self._trace('', (13104, 13107), self.input.position) - _G_exactly_910, lastError = self.exactly('_') + self._trace('', (13059, 13062), self.input.position) + _G_exactly_910, lastError = self.exactly('-') self.considerError(lastError, None) return (_G_exactly_910, self.currentError) - _G_or_911, lastError = self._or([_G_or_907, _G_or_909]) + def _G_or_911(): + self._trace('', (13063, 13066), self.input.position) + _G_exactly_912, lastError = self.exactly('_') + self.considerError(lastError, None) + return (_G_exactly_912, self.currentError) + _G_or_913, lastError = self._or([_G_or_909, _G_or_911]) self.considerError(lastError, None) - def _G_lookahead_912(): - self._trace('', (13111, 13124), self.input.position) - _G_apply_913, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) + def _G_lookahead_914(): + self._trace('', (13070, 13083), self.input.position) + _G_apply_915, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) self.considerError(lastError, None) - return (_G_apply_913, self.currentError) - _G_lookahead_914, lastError = self.lookahead(_G_lookahead_912) + return (_G_apply_915, self.currentError) + _G_lookahead_916, lastError = self.lookahead(_G_lookahead_914) self.considerError(lastError, None) - return (_G_lookahead_914, self.currentError) - _G_or_915, lastError = self._or([_G_or_904, _G_or_906]) + return (_G_lookahead_916, self.currentError) + _G_or_917, lastError = self._or([_G_or_906, _G_or_908]) self.considerError(lastError, None) - return (_G_or_915, self.currentError) - _G_many1_916, lastError = self.many(_G_many1_903, _G_many1_903()) + return (_G_or_917, self.currentError) + _G_many1_918, lastError = self.many(_G_many1_905, _G_many1_905()) self.considerError(lastError, None) - return (_G_many1_916, self.currentError) - def _G_optional_917(): + return (_G_many1_918, self.currentError) + def _G_optional_919(): return (None, self.input.nullError()) - _G_or_918, lastError = self._or([_G_optional_902, _G_optional_917]) + _G_or_920, lastError = self._or([_G_optional_904, _G_optional_919]) self.considerError(lastError, None) - def _G_optional_919(): - self._trace('', (13130, 13133), self.input.position) - _G_exactly_920, lastError = self.exactly('.') + def _G_optional_921(): + self._trace('', (13089, 13092), self.input.position) + _G_exactly_922, lastError = self.exactly('.') self.considerError(lastError, None) - def _G_many1_921(): - self._trace('', (13133, 13139), self.input.position) - _G_apply_922, lastError = self._apply(self.rule_digit, "digit", []) + def _G_many1_923(): + self._trace('', (13092, 13098), self.input.position) + _G_apply_924, lastError = self._apply(self.rule_digit, "digit", []) self.considerError(lastError, None) - return (_G_apply_922, self.currentError) - _G_many1_923, lastError = self.many(_G_many1_921, _G_many1_921()) + return (_G_apply_924, self.currentError) + _G_many1_925, lastError = self.many(_G_many1_923, _G_many1_923()) self.considerError(lastError, None) - return (_G_many1_923, self.currentError) - def _G_optional_924(): + return (_G_many1_925, self.currentError) + def _G_optional_926(): return (None, self.input.nullError()) - _G_or_925, lastError = self._or([_G_optional_919, _G_optional_924]) + _G_or_927, lastError = self._or([_G_optional_921, _G_optional_926]) self.considerError(lastError, None) - return (_G_or_925, self.currentError) - _G_consumedby_926, lastError = self.consumedby(_G_consumedby_900) + return (_G_or_927, self.currentError) + _G_consumedby_928, lastError = self.consumedby(_G_consumedby_902) self.considerError(lastError, 'accn') - return (_G_consumedby_926, self.currentError) + return (_G_consumedby_928, self.currentError) def rule_opt_gene_expr(self): _locals = {'self': self} self.locals['opt_gene_expr'] = _locals - def _G_or_927(): - self._trace('', (13161, 13171), self.input.position) - _G_apply_928, lastError = self._apply(self.rule_paren_gene, "paren_gene", []) - self.considerError(lastError, None) - return (_G_apply_928, self.currentError) def _G_or_929(): - _G_python_930, lastError = (None), None + self._trace('', (13120, 13130), self.input.position) + _G_apply_930, lastError = self._apply(self.rule_paren_gene, "paren_gene", []) + self.considerError(lastError, None) + return (_G_apply_930, self.currentError) + def _G_or_931(): + _G_python_932, lastError = (None), None self.considerError(lastError, None) - return (_G_python_930, self.currentError) - _G_or_931, lastError = self._or([_G_or_927, _G_or_929]) + return (_G_python_932, self.currentError) + _G_or_933, lastError = self._or([_G_or_929, _G_or_931]) self.considerError(lastError, 'opt_gene_expr') - _locals['gene'] = _G_or_931 - _G_python_933, lastError = eval(self._G_expr_932, self.globals, _locals), None + _locals['gene'] = _G_or_933 + _G_python_935, lastError = eval(self._G_expr_934, self.globals, _locals), None self.considerError(lastError, 'opt_gene_expr') - return (_G_python_933, self.currentError) + return (_G_python_935, self.currentError) def rule_paren_gene(self): _locals = {'self': self} self.locals['paren_gene'] = _locals - self._trace('', (13207, 13211), self.input.position) - _G_exactly_934, lastError = self.exactly('(') + self._trace('', (13166, 13170), self.input.position) + _G_exactly_936, lastError = self.exactly('(') self.considerError(lastError, 'paren_gene') - self._trace('', (13211, 13223), self.input.position) - _G_apply_935, lastError = self._apply(self.rule_gene_symbol, "gene_symbol", []) + self._trace('', (13170, 13182), self.input.position) + _G_apply_937, lastError = self._apply(self.rule_gene_symbol, "gene_symbol", []) self.considerError(lastError, 'paren_gene') - _locals['symbol'] = _G_apply_935 - self._trace('', (13230, 13234), self.input.position) - _G_exactly_936, lastError = self.exactly(')') + _locals['symbol'] = _G_apply_937 + self._trace('', (13189, 13193), self.input.position) + _G_exactly_938, lastError = self.exactly(')') self.considerError(lastError, 'paren_gene') - _G_python_938, lastError = eval(self._G_expr_937, self.globals, _locals), None + _G_python_940, lastError = eval(self._G_expr_939, self.globals, _locals), None self.considerError(lastError, 'paren_gene') - return (_G_python_938, self.currentError) + return (_G_python_940, self.currentError) def rule_gene_symbol(self): _locals = {'self': self} self.locals['gene_symbol'] = _locals - def _G_consumedby_939(): - self._trace('', (13260, 13266), self.input.position) - _G_apply_940, lastError = self._apply(self.rule_letter, "letter", []) - self.considerError(lastError, None) - def _G_many1_941(): - def _G_or_942(): - self._trace('', (13268, 13281), self.input.position) - _G_apply_943, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) - self.considerError(lastError, None) - return (_G_apply_943, self.currentError) + def _G_consumedby_941(): + self._trace('', (13219, 13225), self.input.position) + _G_apply_942, lastError = self._apply(self.rule_letter, "letter", []) + self.considerError(lastError, None) + def _G_many1_943(): def _G_or_944(): - def _G_or_945(): - self._trace('', (13285, 13288), self.input.position) - _G_exactly_946, lastError = self.exactly('-') - self.considerError(lastError, None) - return (_G_exactly_946, self.currentError) + self._trace('', (13227, 13240), self.input.position) + _G_apply_945, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) + self.considerError(lastError, None) + return (_G_apply_945, self.currentError) + def _G_or_946(): def _G_or_947(): - self._trace('', (13289, 13292), self.input.position) - _G_exactly_948, lastError = self.exactly('_') + self._trace('', (13244, 13247), self.input.position) + _G_exactly_948, lastError = self.exactly('-') self.considerError(lastError, None) return (_G_exactly_948, self.currentError) - _G_or_949, lastError = self._or([_G_or_945, _G_or_947]) + def _G_or_949(): + self._trace('', (13248, 13251), self.input.position) + _G_exactly_950, lastError = self.exactly('_') + self.considerError(lastError, None) + return (_G_exactly_950, self.currentError) + _G_or_951, lastError = self._or([_G_or_947, _G_or_949]) self.considerError(lastError, None) - def _G_lookahead_950(): - self._trace('', (13296, 13309), self.input.position) - _G_apply_951, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) + def _G_lookahead_952(): + self._trace('', (13255, 13268), self.input.position) + _G_apply_953, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) self.considerError(lastError, None) - return (_G_apply_951, self.currentError) - _G_lookahead_952, lastError = self.lookahead(_G_lookahead_950) + return (_G_apply_953, self.currentError) + _G_lookahead_954, lastError = self.lookahead(_G_lookahead_952) self.considerError(lastError, None) - return (_G_lookahead_952, self.currentError) - _G_or_953, lastError = self._or([_G_or_942, _G_or_944]) + return (_G_lookahead_954, self.currentError) + _G_or_955, lastError = self._or([_G_or_944, _G_or_946]) self.considerError(lastError, None) - return (_G_or_953, self.currentError) - _G_many1_954, lastError = self.many(_G_many1_941, _G_many1_941()) + return (_G_or_955, self.currentError) + _G_many1_956, lastError = self.many(_G_many1_943, _G_many1_943()) self.considerError(lastError, None) - return (_G_many1_954, self.currentError) - _G_consumedby_955, lastError = self.consumedby(_G_consumedby_939) + return (_G_many1_956, self.currentError) + _G_consumedby_957, lastError = self.consumedby(_G_consumedby_941) self.considerError(lastError, 'gene_symbol') - return (_G_consumedby_955, self.currentError) + return (_G_consumedby_957, self.currentError) _G_expr_20 = compile('hgvs.sequencevariant.SequenceVariant(ac=ac, gene=gene, type=type, posedit=posedit)', '', 'eval') @@ -3154,23 +3154,25 @@ def _G_lookahead_950(): _G_expr_564 = compile('hgvs.location.BaseOffsetInterval(start,end)', '', 'eval') _G_expr_568 = compile('hgvs.location.BaseOffsetInterval(start,copy.deepcopy(start))', '', 'eval') _G_expr_588 = compile('hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end._set_uncertain())', '', 'eval') - _G_expr_614 = compile('hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.CDS_START)', '', 'eval') - _G_expr_620 = compile('hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.CDS_END)', '', 'eval') - _G_expr_629 = compile('hgvs.location.SimplePosition(pos)', '', 'eval') - _G_expr_640 = compile('hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.SEQ_START)', '', 'eval') - _G_expr_648 = compile('hgvs.location.AAPosition(pos,bioutils.sequences.aa_to_aa1(aa))', '', 'eval') - _G_expr_659 = compile('n', '', 'eval') - _G_expr_667 = compile('(aat, n)', '', 'eval') - _G_expr_762 = compile("x in 'ACDEFGHIKLMNPQRSTVWYBZXU'", '', 'eval') - _G_expr_765 = compile('x', '', 'eval') - _G_expr_839 = compile("x in 'ACGTRYMKWSBDHVNacgtrymkwsbdhvn'", '', 'eval') - _G_expr_845 = compile("x in 'ACGTURYMKWSBDHVNacgturymkwsbdhvn'", '', 'eval') - _G_expr_852 = compile("x in 'ACGURYMKWSBDHVNacgurymkwsbdhvn'", '', 'eval') - _G_expr_858 = compile("x in 'X*'", '', 'eval') - _G_expr_873 = compile('int(x)', '', 'eval') - _G_expr_888 = compile("x in '-+'", '', 'eval') - _G_expr_932 = compile('gene', '', 'eval') - _G_expr_937 = compile('symbol', '', 'eval') + _G_expr_596 = compile('hgvs.location.Interval(start=ivl_start, end=ivl_end._set_uncertain())', '', 'eval') + _G_expr_604 = compile('hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end)', '', 'eval') + _G_expr_616 = compile('hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.CDS_START)', '', 'eval') + _G_expr_622 = compile('hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.CDS_END)', '', 'eval') + _G_expr_631 = compile('hgvs.location.SimplePosition(pos)', '', 'eval') + _G_expr_642 = compile('hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.SEQ_START)', '', 'eval') + _G_expr_650 = compile('hgvs.location.AAPosition(pos,bioutils.sequences.aa_to_aa1(aa))', '', 'eval') + _G_expr_661 = compile('n', '', 'eval') + _G_expr_669 = compile('(aat, n)', '', 'eval') + _G_expr_764 = compile("x in 'ACDEFGHIKLMNPQRSTVWYBZXU'", '', 'eval') + _G_expr_767 = compile('x', '', 'eval') + _G_expr_841 = compile("x in 'ACGTRYMKWSBDHVNacgtrymkwsbdhvn'", '', 'eval') + _G_expr_847 = compile("x in 'ACGTURYMKWSBDHVNacgturymkwsbdhvn'", '', 'eval') + _G_expr_854 = compile("x in 'ACGURYMKWSBDHVNacgurymkwsbdhvn'", '', 'eval') + _G_expr_860 = compile("x in 'X*'", '', 'eval') + _G_expr_875 = compile('int(x)', '', 'eval') + _G_expr_890 = compile("x in '-+'", '', 'eval') + _G_expr_934 = compile('gene', '', 'eval') + _G_expr_939 = compile('symbol', '', 'eval') if Grammar.globals is not None: Grammar.globals = Grammar.globals.copy() Grammar.globals.update(ruleGlobals) diff --git a/src/hgvs/location.py b/src/hgvs/location.py index 4c82d3f7..25e88d75 100644 --- a/src/hgvs/location.py +++ b/src/hgvs/location.py @@ -143,7 +143,7 @@ def validate(self): ) return (ValidationLevel.VALID, None) - def __str__(self): + def _format_pos(self)->str: self.validate() base_str = ( "?" @@ -156,6 +156,10 @@ def __str__(self): "+?" if self.offset is None else "" if self.offset == 0 else "%+d" % self.offset ) pos = base_str + offset_str + return pos + + def __str__(self): + pos = self._format_pos() return "(" + pos + ")" if self.uncertain else pos def format(self, conf): @@ -382,11 +386,32 @@ def is_uncertain(self): @attr.s(slots=True, repr=False) class BaseOffsetInterval(Interval): """BaseOffsetInterval isa Interval of BaseOffsetPositions. The only - additional functionality over Interval is to ensure that the dutum + additional functionality over Interval is to ensure that the datum of end and start are compatible. """ + def format(self, conf=None): + if self.start is None: + return "" + if self.end is None or self.start == self.end: + return self.start.format(conf) + + s = self.start._format_pos() + if self.start.is_uncertain: + s_str = f'(?_{s})' + else: + s_str = s + e = self.end._format_pos() + if self.end.is_uncertain: + e_str = f'({e}_?)' + else: + e_str = e + iv = s_str + "_" + e_str + return "(" + iv + ")" if self.uncertain else iv + + __str__ = format + def __attrs_post_init__(self): # #330: In a post-ter interval like *87_91, the * binds only # to the start. This means that the start.datum is CDS_END, diff --git a/src/hgvs/variantmapper.py b/src/hgvs/variantmapper.py index 63bdfd3d..8dc03a3f 100644 --- a/src/hgvs/variantmapper.py +++ b/src/hgvs/variantmapper.py @@ -21,6 +21,7 @@ from hgvs.decorators.lru_cache import lru_cache from hgvs.enums import PrevalidationLevel from hgvs.exceptions import HGVSInvalidVariantError, HGVSUnsupportedOperationError +from hgvs.location import Interval from hgvs.utils.reftranscriptdata import RefTranscriptData _logger = logging.getLogger(__name__) @@ -484,12 +485,18 @@ def _replace_reference(self, var): if pos.start.uncertain: seq_start = pos.start.end.base - 1 else: - seq_start = pos.start.base - 1 + if isinstance(pos.start, Interval): + seq_start = pos.start.start.base -1 + else: + seq_start = pos.start.base - 1 if pos.end.uncertain: seq_end = pos.end.start.base else: - seq_end = pos.end.base + if isinstance(pos.end, Interval): + seq_end = pos.end.end.base + else: + seq_end = pos.end.base # When strict_bounds is False and an error occurs, return # variant as-is diff --git a/tests/data/grammar_test.tsv b/tests/data/grammar_test.tsv index 9bd975ef..ea73614b 100644 --- a/tests/data/grammar_test.tsv +++ b/tests/data/grammar_test.tsv @@ -104,14 +104,15 @@ def_c_interval 1_10|1|1+2_10-2 True list def_c_pos 1|11+1|9-3|-1|*10 True list def_c_pos X|11_12|10* False list def_g_interval 2_10|2 True list -def_g_uncertain_interval (1_10)_(21_30) True one -def_g_uncertain_interval (?_10)_(21_?) True one -def_g_uncertain_interval (1_?)_(?_30) True one -def_g_uncertain_interval 1_(21_30) True one -def_g_uncertain_interval (1_10)_21 True one -def_g_uncertain_interval ?_(21_30) True one -def_g_uncertain_interval (1_10)_? True one -def_g_uncertain_interval (1_10)_(21_30)_(41_50) False one +uncertain_g_interval (1_10)_(21_30) True one +uncertain_g_interval (?_10)_(21_?) True one +uncertain_g_interval (1_?)_(?_30) True one +uncertain_g_interval 1_(21_30) True one +uncertain_g_interval (1_10)_21 True one +uncertain_g_interval ?_(21_30) True one +uncertain_g_interval (1_10)_? True one +uncertain_g_interval 10_(21_?) True one +uncertain_g_interval (1_10)_(21_30)_(41_50) False one def_g_pos 2 True list def_g_pos ? True one def_g_pos A|2?|*1|-2 False list diff --git a/tests/test_hgvs_sequencevariant.py b/tests/test_hgvs_sequencevariant.py index 19a8c587..d87b4d50 100644 --- a/tests/test_hgvs_sequencevariant.py +++ b/tests/test_hgvs_sequencevariant.py @@ -126,20 +126,42 @@ def test_uncertain(self): self.assertEqual(v2.posedit.pos.end.uncertain, True) self.assertEqual(type(v2.posedit.edit).__name__, "NARefAlt") - def test_uncertain_projection_confidence(self): + def test_partial_uncertain_projection(self): + data = [ + ("NC_000009.11:g.108337304_(108337428_?)del", False, True, + "NM_001079802.1:n.207_(321+10_?)del", + "NM_001079802.1:c.-10_(105+10_?)del"), + + ("NC_000009.11:g.(?_108337304)_108337428del", True, False, + "NM_001079802.1:n.(?_207)_321+10del", + "NM_001079802.1:c.(?_-10)_105+10del"), + ] + + for hgvs_g, start_uncertain, stop_uncertain, hgvs_n, hgvs_c in data: + var_g = self.hp.parse(hgvs_g) + self.assertEqual(var_g.posedit.pos.start.uncertain, start_uncertain) + self.assertEqual(var_g.posedit.pos.end.uncertain, stop_uncertain) + self.assertEqual(hgvs_g, str(var_g)) + acc = hgvs_c.split(":")[0] + var_n = self.vm.g_to_n(var_g, acc) + self.assertEqual(hgvs_n, str(var_n)) + var_c = self.vm.g_to_c(var_g, acc) + self.assertEqual(hgvs_c, str(var_c)) + + def test_uncertain_projection_g_to_c_confidence(self): data = [ ("NC_000005.9:g.(90136803_90144453)_(90159675_90261231)dup", - "NM_032119.3:n.(17116-1)_(17952+1)dup", - "NM_032119.3:c.(17020-1)_(17856+1)dup"), + "NM_032119.3:n.(?_17116-1)_(17952+1_?)dup", + "NM_032119.3:c.(?_17020-1)_(17856+1_?)dup"), ("NC_000019.9:g.(11211022_11213339)_(11217364_11218067)dup", - "NM_000527.5:n.(277-1)_(903+1)dup", - "NM_000527.5:c.(191-1)_(817+1)dup"), + "NM_000527.5:n.(?_277-1)_(903+1_?)dup", + "NM_000527.5:c.(?_191-1)_(817+1_?)dup"), ("NC_000009.11:g.(?_108337304)_(108337428_?)del", - "NM_001079802.1:n.(207)_(321+10)del", - "NM_001079802.1:c.(-10)_(105+10)del"), + "NM_001079802.1:n.(?_207)_(321+10_?)del", + "NM_001079802.1:c.(?_-10)_(105+10_?)del"), ] for hgvs_g, hgvs_n, hgvs_c in data: @@ -151,6 +173,28 @@ def test_uncertain_projection_confidence(self): var_c = self.vm.g_to_c(var_g, acc) self.assertEqual(hgvs_c, str(var_c)) + def test_uncertain_projection_c_to_g_confidence(self): + data = [ + ("NC_000005.9:g.(90136803_90144453)_(90159675_90261231)dup", + "NM_032119.3:n.(?_17116-1)_(17952+1_?)dup", + "NM_032119.3:c.(?_17020-1)_(17856+1_?)dup"), + + ("NC_000019.9:g.(11211022_11213339)_(11217364_11218067)dup", + "NM_000527.5:n.(?_277-1)_(903+1_?)dup", + "NM_000527.5:c.(?_191-1)_(817+1_?)dup"), + + ("NC_000009.11:g.(?_108337304)_(108337428_?)del", + "NM_001079802.1:n.(?_207)_(321+10_?)del", + "NM_001079802.1:c.(?_-10)_(105+10_?)del"), + ] + for hgvs_g, hgvs_n, hgvs_c in data: + var_c = self.hp.parse(hgvs_c) + self.assertEqual(hgvs_c, str(var_c)) + var_n = self.vm.c_to_n(var_c) + self.assertEqual(hgvs_n, str(var_n)) + var_g = self.vm.n_to_g(var_n) + self.assertEqual(hgvs_c, str(var_c)) + if __name__ == "__main__": unittest.main() From 0364f37f43b8ae808a2699ae464fe1ced4e6038a Mon Sep 17 00:00:00 2001 From: Andreas Prlic Date: Fri, 23 Feb 2024 23:15:33 -0800 Subject: [PATCH 17/25] feat(cleanup): removing broken c_to_g unit test for imprecise events. --- tests/test_hgvs_sequencevariant.py | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/tests/test_hgvs_sequencevariant.py b/tests/test_hgvs_sequencevariant.py index d87b4d50..7dabc149 100644 --- a/tests/test_hgvs_sequencevariant.py +++ b/tests/test_hgvs_sequencevariant.py @@ -4,7 +4,6 @@ import pytest -from hgvs.exceptions import HGVSParseError from support import CACHE import hgvs @@ -173,28 +172,6 @@ def test_uncertain_projection_g_to_c_confidence(self): var_c = self.vm.g_to_c(var_g, acc) self.assertEqual(hgvs_c, str(var_c)) - def test_uncertain_projection_c_to_g_confidence(self): - data = [ - ("NC_000005.9:g.(90136803_90144453)_(90159675_90261231)dup", - "NM_032119.3:n.(?_17116-1)_(17952+1_?)dup", - "NM_032119.3:c.(?_17020-1)_(17856+1_?)dup"), - - ("NC_000019.9:g.(11211022_11213339)_(11217364_11218067)dup", - "NM_000527.5:n.(?_277-1)_(903+1_?)dup", - "NM_000527.5:c.(?_191-1)_(817+1_?)dup"), - - ("NC_000009.11:g.(?_108337304)_(108337428_?)del", - "NM_001079802.1:n.(?_207)_(321+10_?)del", - "NM_001079802.1:c.(?_-10)_(105+10_?)del"), - ] - for hgvs_g, hgvs_n, hgvs_c in data: - var_c = self.hp.parse(hgvs_c) - self.assertEqual(hgvs_c, str(var_c)) - var_n = self.vm.c_to_n(var_c) - self.assertEqual(hgvs_n, str(var_n)) - var_g = self.vm.n_to_g(var_n) - self.assertEqual(hgvs_c, str(var_c)) - if __name__ == "__main__": unittest.main() From 4c7ecbf7d7f5cafab276966764c273a2c76b8f13 Mon Sep 17 00:00:00 2001 From: Kyle Ferriter Date: Mon, 11 Mar 2024 13:35:46 -0400 Subject: [PATCH 18/25] Simplify parser to use None for single-digit intervals. Fixed format for uncertain intervals. Add test cases. --- src/hgvs/_data/hgvs.pymeta | 14 +- src/hgvs/generated/hgvs_grammar.py | 724 ++++++++++++++--------------- src/hgvs/location.py | 13 +- tests/test_hgvs_location.py | 16 +- tests/test_hgvs_sequencevariant.py | 34 ++ 5 files changed, 427 insertions(+), 374 deletions(-) diff --git a/src/hgvs/_data/hgvs.pymeta b/src/hgvs/_data/hgvs.pymeta index ee8e393d..7ba04ce6 100644 --- a/src/hgvs/_data/hgvs.pymeta +++ b/src/hgvs/_data/hgvs.pymeta @@ -2,7 +2,7 @@ # variant specification. The subset is limited to is limited to those # rules that define sequence variants precisely. It does not current # cover rules for translocations or conversions. - + # The basic structure of a HGVS sequence variant is: # :. # where is a sequence accession, determines the sequence @@ -26,7 +26,7 @@ r_variant = accn:ac opt_gene_expr:gene ':' 'r':type '.' r_posedit:posedit -> hgv ############################################################################ ## HGVS Position -- e.g., NM_01234.5:c.22+6 (without an edit) -# This is unofficial syntax +# This is unofficial syntax hgvs_position = g_hgvs_position | m_hgvs_position | c_hgvs_position | n_hgvs_position | r_hgvs_position | p_hgvs_position @@ -65,7 +65,7 @@ r_posedit = (r_interval:pos rna_edit:edit -> hgvs.posedit.PosEdit(pos=pos,edit=e p_posedit = (p_interval:pos pro_edit:edit -> hgvs.posedit.PosEdit(pos=pos,edit=edit)) | ('(' p_interval:pos pro_edit:edit ')' -> hgvs.posedit.PosEdit(pos=pos,edit=edit, uncertain=True)) | p_posedit_special -p_posedit_special = +p_posedit_special = '=':x -> hgvs.posedit.PosEdit(pos=None,edit=x,uncertain=False) | '(' '=':x ')' -> hgvs.posedit.PosEdit(pos=None,edit=x,uncertain=True) | '0':x '?' -> hgvs.posedit.PosEdit(pos=None,edit=x,uncertain=True) @@ -129,10 +129,10 @@ p_interval = def_p_interval | '(' def_p_interval:iv ')' -> iv._set_uncertain() r_interval = def_r_interval | '(' def_r_interval:iv ')' -> iv._set_uncertain() # definite intervals -def_g_interval = (g_pos:start '_' g_pos:end -> hgvs.location.Interval(start,end)) | (g_pos:start -> hgvs.location.Interval(start,copy.deepcopy(start))) -def_m_interval = (m_pos:start '_' m_pos:end -> hgvs.location.Interval(start,end)) | (m_pos:start -> hgvs.location.Interval(start,copy.deepcopy(start))) -def_p_interval = (p_pos:start '_' p_pos:end -> hgvs.location.Interval(start,end)) | (p_pos:start -> hgvs.location.Interval(start,copy.deepcopy(start))) -def_r_interval = (r_pos:start '_' r_pos:end -> hgvs.location.Interval(start,end)) | (r_pos:start -> hgvs.location.Interval(start,copy.deepcopy(start))) +def_g_interval = (g_pos:start '_' g_pos:end -> hgvs.location.Interval(start,end)) | (g_pos:start -> hgvs.location.Interval(start,None)) +def_m_interval = (m_pos:start '_' m_pos:end -> hgvs.location.Interval(start,end)) | (m_pos:start -> hgvs.location.Interval(start,None)) +def_p_interval = (p_pos:start '_' p_pos:end -> hgvs.location.Interval(start,end)) | (p_pos:start -> hgvs.location.Interval(start,None)) +def_r_interval = (r_pos:start '_' r_pos:end -> hgvs.location.Interval(start,end)) | (r_pos:start -> hgvs.location.Interval(start,None)) def_c_interval = (c_pos:start '_' c_pos:end -> hgvs.location.BaseOffsetInterval(start,end)) | (c_pos:start -> hgvs.location.BaseOffsetInterval(start,copy.deepcopy(start))) def_n_interval = (n_pos:start '_' n_pos:end -> hgvs.location.BaseOffsetInterval(start,end)) | (n_pos:start -> hgvs.location.BaseOffsetInterval(start,copy.deepcopy(start))) diff --git a/src/hgvs/generated/hgvs_grammar.py b/src/hgvs/generated/hgvs_grammar.py index dcc89812..838606c0 100644 --- a/src/hgvs/generated/hgvs_grammar.py +++ b/src/hgvs/generated/hgvs_grammar.py @@ -3,9 +3,9 @@ # Changes will be overwritten by the generation script. # Generated by: sbin/generate_parser.py # Grammar file: src/hgvs/_data/hgvs.pymeta -# Grammar hash: 8d20020e49d946797f6dc49429fef938 +# Grammar hash: 29e5254696dc8673e47771941d6a8e3e # Parsley version: 1.3 -# Python version: 3.8.7 (default, Sep 30 2022, 13:36:26) +# Python version: 3.11.7 (main, Dec 4 2023, 18:10:11) [Clang 15.0.0 (clang-1500.1.0.2.5)] # -------------------------------------------------- def createParserClass(GrammarBase, ruleGlobals): @@ -234,32 +234,32 @@ def rule_hgvs_position(self): _locals = {'self': self} self.locals['hgvs_position'] = _locals def _G_or_57(): - self._trace('', (1920, 1936), self.input.position) + self._trace('', (1919, 1935), self.input.position) _G_apply_58, lastError = self._apply(self.rule_g_hgvs_position, "g_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_58, self.currentError) def _G_or_59(): - self._trace('', (1938, 1954), self.input.position) + self._trace('', (1937, 1953), self.input.position) _G_apply_60, lastError = self._apply(self.rule_m_hgvs_position, "m_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_60, self.currentError) def _G_or_61(): - self._trace('', (1956, 1972), self.input.position) + self._trace('', (1955, 1971), self.input.position) _G_apply_62, lastError = self._apply(self.rule_c_hgvs_position, "c_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_62, self.currentError) def _G_or_63(): - self._trace('', (1974, 1990), self.input.position) + self._trace('', (1973, 1989), self.input.position) _G_apply_64, lastError = self._apply(self.rule_n_hgvs_position, "n_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_64, self.currentError) def _G_or_65(): - self._trace('', (1992, 2008), self.input.position) + self._trace('', (1991, 2007), self.input.position) _G_apply_66, lastError = self._apply(self.rule_r_hgvs_position, "r_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_66, self.currentError) def _G_or_67(): - self._trace('', (2010, 2026), self.input.position) + self._trace('', (2009, 2025), self.input.position) _G_apply_68, lastError = self._apply(self.rule_p_hgvs_position, "p_hgvs_position", []) self.considerError(lastError, None) return (_G_apply_68, self.currentError) @@ -271,25 +271,25 @@ def _G_or_67(): def rule_c_hgvs_position(self): _locals = {'self': self} self.locals['c_hgvs_position'] = _locals - self._trace('', (2045, 2050), self.input.position) + self._trace('', (2044, 2049), self.input.position) _G_apply_70, lastError = self._apply(self.rule_accn, "accn", []) self.considerError(lastError, 'c_hgvs_position') _locals['ac'] = _G_apply_70 - self._trace('', (2053, 2067), self.input.position) + self._trace('', (2052, 2066), self.input.position) _G_apply_71, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) self.considerError(lastError, 'c_hgvs_position') _locals['gene'] = _G_apply_71 - self._trace('', (2072, 2076), self.input.position) + self._trace('', (2071, 2075), self.input.position) _G_exactly_72, lastError = self.exactly(':') self.considerError(lastError, 'c_hgvs_position') - self._trace('', (2076, 2080), self.input.position) + self._trace('', (2075, 2079), self.input.position) _G_exactly_73, lastError = self.exactly('c') self.considerError(lastError, 'c_hgvs_position') _locals['type'] = _G_exactly_73 - self._trace('', (2085, 2089), self.input.position) + self._trace('', (2084, 2088), self.input.position) _G_exactly_74, lastError = self.exactly('.') self.considerError(lastError, 'c_hgvs_position') - self._trace('', (2089, 2100), self.input.position) + self._trace('', (2088, 2099), self.input.position) _G_apply_75, lastError = self._apply(self.rule_c_interval, "c_interval", []) self.considerError(lastError, 'c_hgvs_position') _locals['pos'] = _G_apply_75 @@ -301,25 +301,25 @@ def rule_c_hgvs_position(self): def rule_g_hgvs_position(self): _locals = {'self': self} self.locals['g_hgvs_position'] = _locals - self._trace('', (2194, 2199), self.input.position) + self._trace('', (2193, 2198), self.input.position) _G_apply_78, lastError = self._apply(self.rule_accn, "accn", []) self.considerError(lastError, 'g_hgvs_position') _locals['ac'] = _G_apply_78 - self._trace('', (2202, 2216), self.input.position) + self._trace('', (2201, 2215), self.input.position) _G_apply_79, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) self.considerError(lastError, 'g_hgvs_position') _locals['gene'] = _G_apply_79 - self._trace('', (2221, 2225), self.input.position) + self._trace('', (2220, 2224), self.input.position) _G_exactly_80, lastError = self.exactly(':') self.considerError(lastError, 'g_hgvs_position') - self._trace('', (2225, 2229), self.input.position) + self._trace('', (2224, 2228), self.input.position) _G_exactly_81, lastError = self.exactly('g') self.considerError(lastError, 'g_hgvs_position') _locals['type'] = _G_exactly_81 - self._trace('', (2234, 2238), self.input.position) + self._trace('', (2233, 2237), self.input.position) _G_exactly_82, lastError = self.exactly('.') self.considerError(lastError, 'g_hgvs_position') - self._trace('', (2238, 2249), self.input.position) + self._trace('', (2237, 2248), self.input.position) _G_apply_83, lastError = self._apply(self.rule_g_interval, "g_interval", []) self.considerError(lastError, 'g_hgvs_position') _locals['pos'] = _G_apply_83 @@ -331,25 +331,25 @@ def rule_g_hgvs_position(self): def rule_m_hgvs_position(self): _locals = {'self': self} self.locals['m_hgvs_position'] = _locals - self._trace('', (2343, 2348), self.input.position) + self._trace('', (2342, 2347), self.input.position) _G_apply_85, lastError = self._apply(self.rule_accn, "accn", []) self.considerError(lastError, 'm_hgvs_position') _locals['ac'] = _G_apply_85 - self._trace('', (2351, 2365), self.input.position) + self._trace('', (2350, 2364), self.input.position) _G_apply_86, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) self.considerError(lastError, 'm_hgvs_position') _locals['gene'] = _G_apply_86 - self._trace('', (2370, 2374), self.input.position) + self._trace('', (2369, 2373), self.input.position) _G_exactly_87, lastError = self.exactly(':') self.considerError(lastError, 'm_hgvs_position') - self._trace('', (2374, 2378), self.input.position) + self._trace('', (2373, 2377), self.input.position) _G_exactly_88, lastError = self.exactly('m') self.considerError(lastError, 'm_hgvs_position') _locals['type'] = _G_exactly_88 - self._trace('', (2383, 2387), self.input.position) + self._trace('', (2382, 2386), self.input.position) _G_exactly_89, lastError = self.exactly('.') self.considerError(lastError, 'm_hgvs_position') - self._trace('', (2387, 2398), self.input.position) + self._trace('', (2386, 2397), self.input.position) _G_apply_90, lastError = self._apply(self.rule_m_interval, "m_interval", []) self.considerError(lastError, 'm_hgvs_position') _locals['pos'] = _G_apply_90 @@ -361,25 +361,25 @@ def rule_m_hgvs_position(self): def rule_n_hgvs_position(self): _locals = {'self': self} self.locals['n_hgvs_position'] = _locals - self._trace('', (2492, 2497), self.input.position) + self._trace('', (2491, 2496), self.input.position) _G_apply_92, lastError = self._apply(self.rule_accn, "accn", []) self.considerError(lastError, 'n_hgvs_position') _locals['ac'] = _G_apply_92 - self._trace('', (2500, 2514), self.input.position) + self._trace('', (2499, 2513), self.input.position) _G_apply_93, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) self.considerError(lastError, 'n_hgvs_position') _locals['gene'] = _G_apply_93 - self._trace('', (2519, 2523), self.input.position) + self._trace('', (2518, 2522), self.input.position) _G_exactly_94, lastError = self.exactly(':') self.considerError(lastError, 'n_hgvs_position') - self._trace('', (2523, 2527), self.input.position) + self._trace('', (2522, 2526), self.input.position) _G_exactly_95, lastError = self.exactly('n') self.considerError(lastError, 'n_hgvs_position') _locals['type'] = _G_exactly_95 - self._trace('', (2532, 2536), self.input.position) + self._trace('', (2531, 2535), self.input.position) _G_exactly_96, lastError = self.exactly('.') self.considerError(lastError, 'n_hgvs_position') - self._trace('', (2536, 2547), self.input.position) + self._trace('', (2535, 2546), self.input.position) _G_apply_97, lastError = self._apply(self.rule_n_interval, "n_interval", []) self.considerError(lastError, 'n_hgvs_position') _locals['pos'] = _G_apply_97 @@ -391,25 +391,25 @@ def rule_n_hgvs_position(self): def rule_p_hgvs_position(self): _locals = {'self': self} self.locals['p_hgvs_position'] = _locals - self._trace('', (2641, 2646), self.input.position) + self._trace('', (2640, 2645), self.input.position) _G_apply_99, lastError = self._apply(self.rule_accn, "accn", []) self.considerError(lastError, 'p_hgvs_position') _locals['ac'] = _G_apply_99 - self._trace('', (2649, 2663), self.input.position) + self._trace('', (2648, 2662), self.input.position) _G_apply_100, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) self.considerError(lastError, 'p_hgvs_position') _locals['gene'] = _G_apply_100 - self._trace('', (2668, 2672), self.input.position) + self._trace('', (2667, 2671), self.input.position) _G_exactly_101, lastError = self.exactly(':') self.considerError(lastError, 'p_hgvs_position') - self._trace('', (2672, 2676), self.input.position) + self._trace('', (2671, 2675), self.input.position) _G_exactly_102, lastError = self.exactly('p') self.considerError(lastError, 'p_hgvs_position') _locals['type'] = _G_exactly_102 - self._trace('', (2681, 2685), self.input.position) + self._trace('', (2680, 2684), self.input.position) _G_exactly_103, lastError = self.exactly('.') self.considerError(lastError, 'p_hgvs_position') - self._trace('', (2685, 2696), self.input.position) + self._trace('', (2684, 2695), self.input.position) _G_apply_104, lastError = self._apply(self.rule_p_interval, "p_interval", []) self.considerError(lastError, 'p_hgvs_position') _locals['pos'] = _G_apply_104 @@ -421,25 +421,25 @@ def rule_p_hgvs_position(self): def rule_r_hgvs_position(self): _locals = {'self': self} self.locals['r_hgvs_position'] = _locals - self._trace('', (2790, 2795), self.input.position) + self._trace('', (2789, 2794), self.input.position) _G_apply_106, lastError = self._apply(self.rule_accn, "accn", []) self.considerError(lastError, 'r_hgvs_position') _locals['ac'] = _G_apply_106 - self._trace('', (2798, 2812), self.input.position) + self._trace('', (2797, 2811), self.input.position) _G_apply_107, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) self.considerError(lastError, 'r_hgvs_position') _locals['gene'] = _G_apply_107 - self._trace('', (2817, 2821), self.input.position) + self._trace('', (2816, 2820), self.input.position) _G_exactly_108, lastError = self.exactly(':') self.considerError(lastError, 'r_hgvs_position') - self._trace('', (2821, 2825), self.input.position) + self._trace('', (2820, 2824), self.input.position) _G_exactly_109, lastError = self.exactly('r') self.considerError(lastError, 'r_hgvs_position') _locals['type'] = _G_exactly_109 - self._trace('', (2830, 2834), self.input.position) + self._trace('', (2829, 2833), self.input.position) _G_exactly_110, lastError = self.exactly('.') self.considerError(lastError, 'r_hgvs_position') - self._trace('', (2834, 2845), self.input.position) + self._trace('', (2833, 2844), self.input.position) _G_apply_111, lastError = self._apply(self.rule_r_interval, "r_interval", []) self.considerError(lastError, 'r_hgvs_position') _locals['pos'] = _G_apply_111 @@ -451,14 +451,14 @@ def rule_r_hgvs_position(self): def rule_c_typed_posedit(self): _locals = {'self': self} self.locals['c_typed_posedit'] = _locals - self._trace('', (3249, 3253), self.input.position) + self._trace('', (3248, 3252), self.input.position) _G_exactly_113, lastError = self.exactly('c') self.considerError(lastError, 'c_typed_posedit') _locals['type'] = _G_exactly_113 - self._trace('', (3258, 3262), self.input.position) + self._trace('', (3257, 3261), self.input.position) _G_exactly_114, lastError = self.exactly('.') self.considerError(lastError, 'c_typed_posedit') - self._trace('', (3262, 3272), self.input.position) + self._trace('', (3261, 3271), self.input.position) _G_apply_115, lastError = self._apply(self.rule_c_posedit, "c_posedit", []) self.considerError(lastError, 'c_typed_posedit') _locals['posedit'] = _G_apply_115 @@ -470,14 +470,14 @@ def rule_c_typed_posedit(self): def rule_g_typed_posedit(self): _locals = {'self': self} self.locals['g_typed_posedit'] = _locals - self._trace('', (3357, 3361), self.input.position) + self._trace('', (3356, 3360), self.input.position) _G_exactly_118, lastError = self.exactly('g') self.considerError(lastError, 'g_typed_posedit') _locals['type'] = _G_exactly_118 - self._trace('', (3366, 3370), self.input.position) + self._trace('', (3365, 3369), self.input.position) _G_exactly_119, lastError = self.exactly('.') self.considerError(lastError, 'g_typed_posedit') - self._trace('', (3370, 3380), self.input.position) + self._trace('', (3369, 3379), self.input.position) _G_apply_120, lastError = self._apply(self.rule_g_posedit, "g_posedit", []) self.considerError(lastError, 'g_typed_posedit') _locals['posedit'] = _G_apply_120 @@ -489,14 +489,14 @@ def rule_g_typed_posedit(self): def rule_m_typed_posedit(self): _locals = {'self': self} self.locals['m_typed_posedit'] = _locals - self._trace('', (3465, 3469), self.input.position) + self._trace('', (3464, 3468), self.input.position) _G_exactly_122, lastError = self.exactly('m') self.considerError(lastError, 'm_typed_posedit') _locals['type'] = _G_exactly_122 - self._trace('', (3474, 3478), self.input.position) + self._trace('', (3473, 3477), self.input.position) _G_exactly_123, lastError = self.exactly('.') self.considerError(lastError, 'm_typed_posedit') - self._trace('', (3478, 3488), self.input.position) + self._trace('', (3477, 3487), self.input.position) _G_apply_124, lastError = self._apply(self.rule_m_posedit, "m_posedit", []) self.considerError(lastError, 'm_typed_posedit') _locals['posedit'] = _G_apply_124 @@ -508,14 +508,14 @@ def rule_m_typed_posedit(self): def rule_n_typed_posedit(self): _locals = {'self': self} self.locals['n_typed_posedit'] = _locals - self._trace('', (3573, 3577), self.input.position) + self._trace('', (3572, 3576), self.input.position) _G_exactly_126, lastError = self.exactly('n') self.considerError(lastError, 'n_typed_posedit') _locals['type'] = _G_exactly_126 - self._trace('', (3582, 3586), self.input.position) + self._trace('', (3581, 3585), self.input.position) _G_exactly_127, lastError = self.exactly('.') self.considerError(lastError, 'n_typed_posedit') - self._trace('', (3586, 3596), self.input.position) + self._trace('', (3585, 3595), self.input.position) _G_apply_128, lastError = self._apply(self.rule_n_posedit, "n_posedit", []) self.considerError(lastError, 'n_typed_posedit') _locals['posedit'] = _G_apply_128 @@ -527,14 +527,14 @@ def rule_n_typed_posedit(self): def rule_p_typed_posedit(self): _locals = {'self': self} self.locals['p_typed_posedit'] = _locals - self._trace('', (3681, 3685), self.input.position) + self._trace('', (3680, 3684), self.input.position) _G_exactly_130, lastError = self.exactly('p') self.considerError(lastError, 'p_typed_posedit') _locals['type'] = _G_exactly_130 - self._trace('', (3690, 3694), self.input.position) + self._trace('', (3689, 3693), self.input.position) _G_exactly_131, lastError = self.exactly('.') self.considerError(lastError, 'p_typed_posedit') - self._trace('', (3694, 3704), self.input.position) + self._trace('', (3693, 3703), self.input.position) _G_apply_132, lastError = self._apply(self.rule_p_posedit, "p_posedit", []) self.considerError(lastError, 'p_typed_posedit') _locals['posedit'] = _G_apply_132 @@ -546,14 +546,14 @@ def rule_p_typed_posedit(self): def rule_r_typed_posedit(self): _locals = {'self': self} self.locals['r_typed_posedit'] = _locals - self._trace('', (3789, 3793), self.input.position) + self._trace('', (3788, 3792), self.input.position) _G_exactly_134, lastError = self.exactly('r') self.considerError(lastError, 'r_typed_posedit') _locals['type'] = _G_exactly_134 - self._trace('', (3798, 3802), self.input.position) + self._trace('', (3797, 3801), self.input.position) _G_exactly_135, lastError = self.exactly('.') self.considerError(lastError, 'r_typed_posedit') - self._trace('', (3802, 3812), self.input.position) + self._trace('', (3801, 3811), self.input.position) _G_apply_136, lastError = self._apply(self.rule_r_posedit, "r_posedit", []) self.considerError(lastError, 'r_typed_posedit') _locals['posedit'] = _G_apply_136 @@ -565,11 +565,11 @@ def rule_r_typed_posedit(self): def rule_c_posedit(self): _locals = {'self': self} self.locals['c_posedit'] = _locals - self._trace('', (4010, 4021), self.input.position) + self._trace('', (4009, 4020), self.input.position) _G_apply_138, lastError = self._apply(self.rule_c_interval, "c_interval", []) self.considerError(lastError, 'c_posedit') _locals['pos'] = _G_apply_138 - self._trace('', (4025, 4034), self.input.position) + self._trace('', (4024, 4033), self.input.position) _G_apply_139, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) self.considerError(lastError, 'c_posedit') _locals['edit'] = _G_apply_139 @@ -581,11 +581,11 @@ def rule_c_posedit(self): def rule_g_posedit(self): _locals = {'self': self} self.locals['g_posedit'] = _locals - self._trace('', (4094, 4105), self.input.position) + self._trace('', (4093, 4104), self.input.position) _G_apply_142, lastError = self._apply(self.rule_g_interval, "g_interval", []) self.considerError(lastError, 'g_posedit') _locals['pos'] = _G_apply_142 - self._trace('', (4109, 4118), self.input.position) + self._trace('', (4108, 4117), self.input.position) _G_apply_143, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) self.considerError(lastError, 'g_posedit') _locals['edit'] = _G_apply_143 @@ -597,11 +597,11 @@ def rule_g_posedit(self): def rule_m_posedit(self): _locals = {'self': self} self.locals['m_posedit'] = _locals - self._trace('', (4178, 4189), self.input.position) + self._trace('', (4177, 4188), self.input.position) _G_apply_145, lastError = self._apply(self.rule_m_interval, "m_interval", []) self.considerError(lastError, 'm_posedit') _locals['pos'] = _G_apply_145 - self._trace('', (4193, 4202), self.input.position) + self._trace('', (4192, 4201), self.input.position) _G_apply_146, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) self.considerError(lastError, 'm_posedit') _locals['edit'] = _G_apply_146 @@ -613,11 +613,11 @@ def rule_m_posedit(self): def rule_n_posedit(self): _locals = {'self': self} self.locals['n_posedit'] = _locals - self._trace('', (4262, 4273), self.input.position) + self._trace('', (4261, 4272), self.input.position) _G_apply_148, lastError = self._apply(self.rule_n_interval, "n_interval", []) self.considerError(lastError, 'n_posedit') _locals['pos'] = _G_apply_148 - self._trace('', (4277, 4286), self.input.position) + self._trace('', (4276, 4285), self.input.position) _G_apply_149, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) self.considerError(lastError, 'n_posedit') _locals['edit'] = _G_apply_149 @@ -630,11 +630,11 @@ def rule_r_posedit(self): _locals = {'self': self} self.locals['r_posedit'] = _locals def _G_or_151(): - self._trace('', (4348, 4358), self.input.position) + self._trace('', (4347, 4357), self.input.position) _G_apply_152, lastError = self._apply(self.rule_r_interval, "r_interval", []) self.considerError(lastError, None) _locals['pos'] = _G_apply_152 - self._trace('', (4362, 4371), self.input.position) + self._trace('', (4361, 4370), self.input.position) _G_apply_153, lastError = self._apply(self.rule_rna_edit, "rna_edit", []) self.considerError(lastError, None) _locals['edit'] = _G_apply_153 @@ -642,18 +642,18 @@ def _G_or_151(): self.considerError(lastError, None) return (_G_python_154, self.currentError) def _G_or_155(): - self._trace('', (4427, 4430), self.input.position) + self._trace('', (4426, 4429), self.input.position) _G_exactly_156, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (4430, 4441), self.input.position) + self._trace('', (4429, 4440), self.input.position) _G_apply_157, lastError = self._apply(self.rule_r_interval, "r_interval", []) self.considerError(lastError, None) _locals['pos'] = _G_apply_157 - self._trace('', (4445, 4454), self.input.position) + self._trace('', (4444, 4453), self.input.position) _G_apply_158, lastError = self._apply(self.rule_rna_edit, "rna_edit", []) self.considerError(lastError, None) _locals['edit'] = _G_apply_158 - self._trace('', (4459, 4463), self.input.position) + self._trace('', (4458, 4462), self.input.position) _G_exactly_159, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_161, lastError = eval(self._G_expr_160, self.globals, _locals), None @@ -668,11 +668,11 @@ def rule_p_posedit(self): _locals = {'self': self} self.locals['p_posedit'] = _locals def _G_or_163(): - self._trace('', (4540, 4550), self.input.position) + self._trace('', (4539, 4549), self.input.position) _G_apply_164, lastError = self._apply(self.rule_p_interval, "p_interval", []) self.considerError(lastError, None) _locals['pos'] = _G_apply_164 - self._trace('', (4554, 4563), self.input.position) + self._trace('', (4553, 4562), self.input.position) _G_apply_165, lastError = self._apply(self.rule_pro_edit, "pro_edit", []) self.considerError(lastError, None) _locals['edit'] = _G_apply_165 @@ -680,25 +680,25 @@ def _G_or_163(): self.considerError(lastError, None) return (_G_python_166, self.currentError) def _G_or_167(): - self._trace('', (4619, 4622), self.input.position) + self._trace('', (4618, 4621), self.input.position) _G_exactly_168, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (4622, 4633), self.input.position) + self._trace('', (4621, 4632), self.input.position) _G_apply_169, lastError = self._apply(self.rule_p_interval, "p_interval", []) self.considerError(lastError, None) _locals['pos'] = _G_apply_169 - self._trace('', (4637, 4646), self.input.position) + self._trace('', (4636, 4645), self.input.position) _G_apply_170, lastError = self._apply(self.rule_pro_edit, "pro_edit", []) self.considerError(lastError, None) _locals['edit'] = _G_apply_170 - self._trace('', (4651, 4655), self.input.position) + self._trace('', (4650, 4654), self.input.position) _G_exactly_171, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_172, lastError = eval(self._G_expr_160, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_172, self.currentError) def _G_or_173(): - self._trace('', (4720, 4738), self.input.position) + self._trace('', (4719, 4737), self.input.position) _G_apply_174, lastError = self._apply(self.rule_p_posedit_special, "p_posedit_special", []) self.considerError(lastError, None) return (_G_apply_174, self.currentError) @@ -711,7 +711,7 @@ def rule_p_posedit_special(self): _locals = {'self': self} self.locals['p_posedit_special'] = _locals def _G_or_176(): - self._trace('', (4758, 4769), self.input.position) + self._trace('', (4757, 4767), self.input.position) _G_exactly_177, lastError = self.exactly('=') self.considerError(lastError, None) _locals['x'] = _G_exactly_177 @@ -719,32 +719,32 @@ def _G_or_176(): self.considerError(lastError, None) return (_G_python_179, self.currentError) def _G_or_180(): - self._trace('', (4831, 4835), self.input.position) + self._trace('', (4829, 4833), self.input.position) _G_exactly_181, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (4835, 4839), self.input.position) + self._trace('', (4833, 4837), self.input.position) _G_exactly_182, lastError = self.exactly('=') self.considerError(lastError, None) _locals['x'] = _G_exactly_182 - self._trace('', (4841, 4845), self.input.position) + self._trace('', (4839, 4843), self.input.position) _G_exactly_183, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_185, lastError = eval(self._G_expr_184, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_185, self.currentError) def _G_or_186(): - self._trace('', (4904, 4908), self.input.position) + self._trace('', (4902, 4906), self.input.position) _G_exactly_187, lastError = self.exactly('0') self.considerError(lastError, None) _locals['x'] = _G_exactly_187 - self._trace('', (4910, 4914), self.input.position) + self._trace('', (4908, 4912), self.input.position) _G_exactly_188, lastError = self.exactly('?') self.considerError(lastError, None) _G_python_189, lastError = eval(self._G_expr_184, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_189, self.currentError) def _G_or_190(): - self._trace('', (4973, 4977), self.input.position) + self._trace('', (4971, 4975), self.input.position) _G_exactly_191, lastError = self.exactly('0') self.considerError(lastError, None) _locals['x'] = _G_exactly_191 @@ -752,7 +752,7 @@ def _G_or_190(): self.considerError(lastError, None) return (_G_python_192, self.currentError) def _G_or_193(): - self._trace('', (5039, 5043), self.input.position) + self._trace('', (5037, 5041), self.input.position) _G_exactly_194, lastError = self.exactly('?') self.considerError(lastError, None) _locals['x'] = _G_exactly_194 @@ -768,19 +768,19 @@ def rule_dna_edit_mu(self): _locals = {'self': self} self.locals['dna_edit_mu'] = _locals def _G_or_197(): - self._trace('', (5394, 5403), self.input.position) + self._trace('', (5392, 5401), self.input.position) _G_apply_198, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) self.considerError(lastError, None) return (_G_apply_198, self.currentError) def _G_or_199(): - self._trace('', (5405, 5409), self.input.position) + self._trace('', (5403, 5407), self.input.position) _G_exactly_200, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (5409, 5418), self.input.position) + self._trace('', (5407, 5416), self.input.position) _G_apply_201, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) self.considerError(lastError, None) _locals['edit'] = _G_apply_201 - self._trace('', (5423, 5427), self.input.position) + self._trace('', (5421, 5425), self.input.position) _G_exactly_202, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_204, lastError = eval(self._G_expr_203, self.globals, _locals), None @@ -795,47 +795,47 @@ def rule_dna_edit(self): _locals = {'self': self} self.locals['dna_edit'] = _locals def _G_or_206(): - self._trace('', (5465, 5475), self.input.position) + self._trace('', (5463, 5473), self.input.position) _G_apply_207, lastError = self._apply(self.rule_dna_ident, "dna_ident", []) self.considerError(lastError, None) return (_G_apply_207, self.currentError) def _G_or_208(): - self._trace('', (5477, 5487), self.input.position) + self._trace('', (5475, 5485), self.input.position) _G_apply_209, lastError = self._apply(self.rule_dna_subst, "dna_subst", []) self.considerError(lastError, None) return (_G_apply_209, self.currentError) def _G_or_210(): - self._trace('', (5489, 5500), self.input.position) + self._trace('', (5487, 5498), self.input.position) _G_apply_211, lastError = self._apply(self.rule_dna_delins, "dna_delins", []) self.considerError(lastError, None) return (_G_apply_211, self.currentError) def _G_or_212(): - self._trace('', (5502, 5510), self.input.position) + self._trace('', (5500, 5508), self.input.position) _G_apply_213, lastError = self._apply(self.rule_dna_ins, "dna_ins", []) self.considerError(lastError, None) return (_G_apply_213, self.currentError) def _G_or_214(): - self._trace('', (5512, 5520), self.input.position) + self._trace('', (5510, 5518), self.input.position) _G_apply_215, lastError = self._apply(self.rule_dna_del, "dna_del", []) self.considerError(lastError, None) return (_G_apply_215, self.currentError) def _G_or_216(): - self._trace('', (5522, 5530), self.input.position) + self._trace('', (5520, 5528), self.input.position) _G_apply_217, lastError = self._apply(self.rule_dna_dup, "dna_dup", []) self.considerError(lastError, None) return (_G_apply_217, self.currentError) def _G_or_218(): - self._trace('', (5532, 5540), self.input.position) + self._trace('', (5530, 5538), self.input.position) _G_apply_219, lastError = self._apply(self.rule_dna_inv, "dna_inv", []) self.considerError(lastError, None) return (_G_apply_219, self.currentError) def _G_or_220(): - self._trace('', (5542, 5550), self.input.position) + self._trace('', (5540, 5548), self.input.position) _G_apply_221, lastError = self._apply(self.rule_dna_con, "dna_con", []) self.considerError(lastError, None) return (_G_apply_221, self.currentError) def _G_or_222(): - self._trace('', (5552, 5561), self.input.position) + self._trace('', (5550, 5559), self.input.position) _G_apply_223, lastError = self._apply(self.rule_dna_copy, "dna_copy", []) self.considerError(lastError, None) return (_G_apply_223, self.currentError) @@ -849,7 +849,7 @@ def rule_dna_ident(self): self.locals['dna_ident'] = _locals def _G_consumedby_225(): def _G_many_226(): - self._trace('', (5576, 5579), self.input.position) + self._trace('', (5574, 5577), self.input.position) _G_apply_227, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_227, self.currentError) @@ -859,7 +859,7 @@ def _G_many_226(): _G_consumedby_229, lastError = self.consumedby(_G_consumedby_225) self.considerError(lastError, 'dna_ident') _locals['ref'] = _G_consumedby_229 - self._trace('', (5585, 5589), self.input.position) + self._trace('', (5583, 5587), self.input.position) _G_exactly_230, lastError = self.exactly('=') self.considerError(lastError, 'dna_ident') _G_python_232, lastError = eval(self._G_expr_231, self.globals, _locals), None @@ -870,14 +870,14 @@ def _G_many_226(): def rule_dna_subst(self): _locals = {'self': self} self.locals['dna_subst'] = _locals - self._trace('', (5651, 5655), self.input.position) + self._trace('', (5649, 5653), self.input.position) _G_apply_233, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, 'dna_subst') _locals['ref'] = _G_apply_233 - self._trace('', (5659, 5663), self.input.position) + self._trace('', (5657, 5661), self.input.position) _G_exactly_234, lastError = self.exactly('>') self.considerError(lastError, 'dna_subst') - self._trace('', (5663, 5667), self.input.position) + self._trace('', (5661, 5665), self.input.position) _G_apply_235, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, 'dna_subst') _locals['alt'] = _G_apply_235 @@ -889,12 +889,12 @@ def rule_dna_subst(self): def rule_dna_delins(self): _locals = {'self': self} self.locals['dna_delins'] = _locals - self._trace('', (5728, 5734), self.input.position) + self._trace('', (5726, 5732), self.input.position) _G_exactly_238, lastError = self.exactly('del') self.considerError(lastError, 'dna_delins') def _G_or_239(): def _G_consumedby_240(): - self._trace('', (5737, 5740), self.input.position) + self._trace('', (5735, 5738), self.input.position) _G_apply_241, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_241, self.currentError) @@ -904,7 +904,7 @@ def _G_consumedby_240(): def _G_or_243(): def _G_consumedby_244(): def _G_many_245(): - self._trace('', (5743, 5746), self.input.position) + self._trace('', (5741, 5744), self.input.position) _G_apply_246, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_246, self.currentError) @@ -917,12 +917,12 @@ def _G_many_245(): _G_or_249, lastError = self._or([_G_or_239, _G_or_243]) self.considerError(lastError, 'dna_delins') _locals['ref'] = _G_or_249 - self._trace('', (5753, 5759), self.input.position) + self._trace('', (5751, 5757), self.input.position) _G_exactly_250, lastError = self.exactly('ins') self.considerError(lastError, 'dna_delins') def _G_consumedby_251(): def _G_many1_252(): - self._trace('', (5761, 5764), self.input.position) + self._trace('', (5759, 5762), self.input.position) _G_apply_253, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_253, self.currentError) @@ -940,12 +940,12 @@ def _G_many1_252(): def rule_dna_del(self): _locals = {'self': self} self.locals['dna_del'] = _locals - self._trace('', (5823, 5829), self.input.position) + self._trace('', (5821, 5827), self.input.position) _G_exactly_257, lastError = self.exactly('del') self.considerError(lastError, 'dna_del') def _G_or_258(): def _G_consumedby_259(): - self._trace('', (5832, 5835), self.input.position) + self._trace('', (5830, 5833), self.input.position) _G_apply_260, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_260, self.currentError) @@ -955,7 +955,7 @@ def _G_consumedby_259(): def _G_or_262(): def _G_consumedby_263(): def _G_many_264(): - self._trace('', (5838, 5841), self.input.position) + self._trace('', (5836, 5839), self.input.position) _G_apply_265, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_265, self.currentError) @@ -976,12 +976,12 @@ def _G_many_264(): def rule_dna_ins(self): _locals = {'self': self} self.locals['dna_ins'] = _locals - self._trace('', (5901, 5907), self.input.position) + self._trace('', (5899, 5905), self.input.position) _G_exactly_271, lastError = self.exactly('ins') self.considerError(lastError, 'dna_ins') def _G_consumedby_272(): def _G_many1_273(): - self._trace('', (5909, 5912), self.input.position) + self._trace('', (5907, 5910), self.input.position) _G_apply_274, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_274, self.currentError) @@ -999,12 +999,12 @@ def _G_many1_273(): def rule_dna_dup(self): _locals = {'self': self} self.locals['dna_dup'] = _locals - self._trace('', (5979, 5985), self.input.position) + self._trace('', (5977, 5983), self.input.position) _G_exactly_279, lastError = self.exactly('dup') self.considerError(lastError, 'dna_dup') def _G_consumedby_280(): def _G_many_281(): - self._trace('', (5987, 5990), self.input.position) + self._trace('', (5985, 5988), self.input.position) _G_apply_282, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_282, self.currentError) @@ -1022,12 +1022,12 @@ def _G_many_281(): def rule_dna_inv(self): _locals = {'self': self} self.locals['dna_inv'] = _locals - self._trace('', (6043, 6049), self.input.position) + self._trace('', (6041, 6047), self.input.position) _G_exactly_287, lastError = self.exactly('inv') self.considerError(lastError, 'dna_inv') def _G_or_288(): def _G_consumedby_289(): - self._trace('', (6052, 6055), self.input.position) + self._trace('', (6050, 6053), self.input.position) _G_apply_290, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_290, self.currentError) @@ -1037,7 +1037,7 @@ def _G_consumedby_289(): def _G_or_292(): def _G_consumedby_293(): def _G_many_294(): - self._trace('', (6058, 6061), self.input.position) + self._trace('', (6056, 6059), self.input.position) _G_apply_295, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_295, self.currentError) @@ -1058,10 +1058,10 @@ def _G_many_294(): def rule_dna_con(self): _locals = {'self': self} self.locals['dna_con'] = _locals - self._trace('', (6108, 6114), self.input.position) + self._trace('', (6106, 6112), self.input.position) _G_exactly_301, lastError = self.exactly('con') self.considerError(lastError, 'dna_con') - self._trace('', (6114, 6128), self.input.position) + self._trace('', (6112, 6126), self.input.position) _G_apply_302, lastError = self._apply(self.rule_hgvs_position, "hgvs_position", []) self.considerError(lastError, 'dna_con') _locals['pos'] = _G_apply_302 @@ -1073,10 +1073,10 @@ def rule_dna_con(self): def rule_dna_copy(self): _locals = {'self': self} self.locals['dna_copy'] = _locals - self._trace('', (6218, 6225), self.input.position) + self._trace('', (6216, 6223), self.input.position) _G_exactly_305, lastError = self.exactly('copy') self.considerError(lastError, 'dna_copy') - self._trace('', (6225, 6229), self.input.position) + self._trace('', (6223, 6227), self.input.position) _G_apply_306, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, 'dna_copy') _locals['n'] = _G_apply_306 @@ -1089,19 +1089,19 @@ def rule_rna_edit_mu(self): _locals = {'self': self} self.locals['rna_edit_mu'] = _locals def _G_or_309(): - self._trace('', (6274, 6283), self.input.position) + self._trace('', (6272, 6281), self.input.position) _G_apply_310, lastError = self._apply(self.rule_rna_edit, "rna_edit", []) self.considerError(lastError, None) return (_G_apply_310, self.currentError) def _G_or_311(): - self._trace('', (6285, 6289), self.input.position) + self._trace('', (6283, 6287), self.input.position) _G_exactly_312, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (6289, 6298), self.input.position) + self._trace('', (6287, 6296), self.input.position) _G_apply_313, lastError = self._apply(self.rule_rna_edit, "rna_edit", []) self.considerError(lastError, None) _locals['edit'] = _G_apply_313 - self._trace('', (6303, 6307), self.input.position) + self._trace('', (6301, 6305), self.input.position) _G_exactly_314, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_315, lastError = eval(self._G_expr_203, self.globals, _locals), None @@ -1116,42 +1116,42 @@ def rule_rna_edit(self): _locals = {'self': self} self.locals['rna_edit'] = _locals def _G_or_317(): - self._trace('', (6345, 6355), self.input.position) + self._trace('', (6343, 6353), self.input.position) _G_apply_318, lastError = self._apply(self.rule_rna_ident, "rna_ident", []) self.considerError(lastError, None) return (_G_apply_318, self.currentError) def _G_or_319(): - self._trace('', (6357, 6367), self.input.position) + self._trace('', (6355, 6365), self.input.position) _G_apply_320, lastError = self._apply(self.rule_rna_subst, "rna_subst", []) self.considerError(lastError, None) return (_G_apply_320, self.currentError) def _G_or_321(): - self._trace('', (6369, 6380), self.input.position) + self._trace('', (6367, 6378), self.input.position) _G_apply_322, lastError = self._apply(self.rule_rna_delins, "rna_delins", []) self.considerError(lastError, None) return (_G_apply_322, self.currentError) def _G_or_323(): - self._trace('', (6382, 6390), self.input.position) + self._trace('', (6380, 6388), self.input.position) _G_apply_324, lastError = self._apply(self.rule_rna_ins, "rna_ins", []) self.considerError(lastError, None) return (_G_apply_324, self.currentError) def _G_or_325(): - self._trace('', (6392, 6400), self.input.position) + self._trace('', (6390, 6398), self.input.position) _G_apply_326, lastError = self._apply(self.rule_rna_del, "rna_del", []) self.considerError(lastError, None) return (_G_apply_326, self.currentError) def _G_or_327(): - self._trace('', (6402, 6410), self.input.position) + self._trace('', (6400, 6408), self.input.position) _G_apply_328, lastError = self._apply(self.rule_rna_dup, "rna_dup", []) self.considerError(lastError, None) return (_G_apply_328, self.currentError) def _G_or_329(): - self._trace('', (6412, 6420), self.input.position) + self._trace('', (6410, 6418), self.input.position) _G_apply_330, lastError = self._apply(self.rule_rna_inv, "rna_inv", []) self.considerError(lastError, None) return (_G_apply_330, self.currentError) def _G_or_331(): - self._trace('', (6422, 6430), self.input.position) + self._trace('', (6420, 6428), self.input.position) _G_apply_332, lastError = self._apply(self.rule_rna_con, "rna_con", []) self.considerError(lastError, None) return (_G_apply_332, self.currentError) @@ -1165,7 +1165,7 @@ def rule_rna_ident(self): self.locals['rna_ident'] = _locals def _G_consumedby_334(): def _G_many_335(): - self._trace('', (6445, 6448), self.input.position) + self._trace('', (6443, 6446), self.input.position) _G_apply_336, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_336, self.currentError) @@ -1175,7 +1175,7 @@ def _G_many_335(): _G_consumedby_338, lastError = self.consumedby(_G_consumedby_334) self.considerError(lastError, 'rna_ident') _locals['ref'] = _G_consumedby_338 - self._trace('', (6454, 6458), self.input.position) + self._trace('', (6452, 6456), self.input.position) _G_exactly_339, lastError = self.exactly('=') self.considerError(lastError, 'rna_ident') _G_python_340, lastError = eval(self._G_expr_231, self.globals, _locals), None @@ -1186,14 +1186,14 @@ def _G_many_335(): def rule_rna_subst(self): _locals = {'self': self} self.locals['rna_subst'] = _locals - self._trace('', (6527, 6531), self.input.position) + self._trace('', (6525, 6529), self.input.position) _G_apply_341, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, 'rna_subst') _locals['ref'] = _G_apply_341 - self._trace('', (6535, 6539), self.input.position) + self._trace('', (6533, 6537), self.input.position) _G_exactly_342, lastError = self.exactly('>') self.considerError(lastError, 'rna_subst') - self._trace('', (6539, 6543), self.input.position) + self._trace('', (6537, 6541), self.input.position) _G_apply_343, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, 'rna_subst') _locals['alt'] = _G_apply_343 @@ -1205,12 +1205,12 @@ def rule_rna_subst(self): def rule_rna_delins(self): _locals = {'self': self} self.locals['rna_delins'] = _locals - self._trace('', (6611, 6617), self.input.position) + self._trace('', (6609, 6615), self.input.position) _G_exactly_345, lastError = self.exactly('del') self.considerError(lastError, 'rna_delins') def _G_or_346(): def _G_consumedby_347(): - self._trace('', (6620, 6623), self.input.position) + self._trace('', (6618, 6621), self.input.position) _G_apply_348, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_348, self.currentError) @@ -1220,7 +1220,7 @@ def _G_consumedby_347(): def _G_or_350(): def _G_consumedby_351(): def _G_many_352(): - self._trace('', (6626, 6629), self.input.position) + self._trace('', (6624, 6627), self.input.position) _G_apply_353, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_353, self.currentError) @@ -1233,12 +1233,12 @@ def _G_many_352(): _G_or_356, lastError = self._or([_G_or_346, _G_or_350]) self.considerError(lastError, 'rna_delins') _locals['ref'] = _G_or_356 - self._trace('', (6636, 6642), self.input.position) + self._trace('', (6634, 6640), self.input.position) _G_exactly_357, lastError = self.exactly('ins') self.considerError(lastError, 'rna_delins') def _G_consumedby_358(): def _G_many1_359(): - self._trace('', (6644, 6647), self.input.position) + self._trace('', (6642, 6645), self.input.position) _G_apply_360, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_360, self.currentError) @@ -1256,12 +1256,12 @@ def _G_many1_359(): def rule_rna_del(self): _locals = {'self': self} self.locals['rna_del'] = _locals - self._trace('', (6706, 6712), self.input.position) + self._trace('', (6704, 6710), self.input.position) _G_exactly_364, lastError = self.exactly('del') self.considerError(lastError, 'rna_del') def _G_or_365(): def _G_consumedby_366(): - self._trace('', (6715, 6718), self.input.position) + self._trace('', (6713, 6716), self.input.position) _G_apply_367, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_367, self.currentError) @@ -1271,7 +1271,7 @@ def _G_consumedby_366(): def _G_or_369(): def _G_consumedby_370(): def _G_many_371(): - self._trace('', (6721, 6724), self.input.position) + self._trace('', (6719, 6722), self.input.position) _G_apply_372, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_372, self.currentError) @@ -1292,12 +1292,12 @@ def _G_many_371(): def rule_rna_ins(self): _locals = {'self': self} self.locals['rna_ins'] = _locals - self._trace('', (6791, 6797), self.input.position) + self._trace('', (6789, 6795), self.input.position) _G_exactly_377, lastError = self.exactly('ins') self.considerError(lastError, 'rna_ins') def _G_consumedby_378(): def _G_many1_379(): - self._trace('', (6799, 6802), self.input.position) + self._trace('', (6797, 6800), self.input.position) _G_apply_380, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_380, self.currentError) @@ -1315,12 +1315,12 @@ def _G_many1_379(): def rule_rna_dup(self): _locals = {'self': self} self.locals['rna_dup'] = _locals - self._trace('', (6876, 6882), self.input.position) + self._trace('', (6874, 6880), self.input.position) _G_exactly_384, lastError = self.exactly('dup') self.considerError(lastError, 'rna_dup') def _G_consumedby_385(): def _G_many_386(): - self._trace('', (6884, 6887), self.input.position) + self._trace('', (6882, 6885), self.input.position) _G_apply_387, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_387, self.currentError) @@ -1338,12 +1338,12 @@ def _G_many_386(): def rule_rna_inv(self): _locals = {'self': self} self.locals['rna_inv'] = _locals - self._trace('', (6947, 6953), self.input.position) + self._trace('', (6945, 6951), self.input.position) _G_exactly_391, lastError = self.exactly('inv') self.considerError(lastError, 'rna_inv') def _G_or_392(): def _G_consumedby_393(): - self._trace('', (6956, 6959), self.input.position) + self._trace('', (6954, 6957), self.input.position) _G_apply_394, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_394, self.currentError) @@ -1353,7 +1353,7 @@ def _G_consumedby_393(): def _G_or_396(): def _G_consumedby_397(): def _G_many_398(): - self._trace('', (6962, 6965), self.input.position) + self._trace('', (6960, 6963), self.input.position) _G_apply_399, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_399, self.currentError) @@ -1374,10 +1374,10 @@ def _G_many_398(): def rule_rna_con(self): _locals = {'self': self} self.locals['rna_con'] = _locals - self._trace('', (7019, 7025), self.input.position) + self._trace('', (7017, 7023), self.input.position) _G_exactly_404, lastError = self.exactly('con') self.considerError(lastError, 'rna_con') - self._trace('', (7025, 7039), self.input.position) + self._trace('', (7023, 7037), self.input.position) _G_apply_405, lastError = self._apply(self.rule_hgvs_position, "hgvs_position", []) self.considerError(lastError, 'rna_con') _locals['pos'] = _G_apply_405 @@ -1390,19 +1390,19 @@ def rule_pro_edit_mu(self): _locals = {'self': self} self.locals['pro_edit_mu'] = _locals def _G_or_407(): - self._trace('', (7138, 7147), self.input.position) + self._trace('', (7136, 7145), self.input.position) _G_apply_408, lastError = self._apply(self.rule_pro_edit, "pro_edit", []) self.considerError(lastError, None) return (_G_apply_408, self.currentError) def _G_or_409(): - self._trace('', (7149, 7153), self.input.position) + self._trace('', (7147, 7151), self.input.position) _G_exactly_410, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (7153, 7162), self.input.position) + self._trace('', (7151, 7160), self.input.position) _G_apply_411, lastError = self._apply(self.rule_pro_edit, "pro_edit", []) self.considerError(lastError, None) _locals['edit'] = _G_apply_411 - self._trace('', (7167, 7171), self.input.position) + self._trace('', (7165, 7169), self.input.position) _G_exactly_412, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_413, lastError = eval(self._G_expr_203, self.globals, _locals), None @@ -1417,42 +1417,42 @@ def rule_pro_edit(self): _locals = {'self': self} self.locals['pro_edit'] = _locals def _G_or_415(): - self._trace('', (7209, 7216), self.input.position) + self._trace('', (7207, 7214), self.input.position) _G_apply_416, lastError = self._apply(self.rule_pro_fs, "pro_fs", []) self.considerError(lastError, None) return (_G_apply_416, self.currentError) def _G_or_417(): - self._trace('', (7218, 7226), self.input.position) + self._trace('', (7216, 7224), self.input.position) _G_apply_418, lastError = self._apply(self.rule_pro_ext, "pro_ext", []) self.considerError(lastError, None) return (_G_apply_418, self.currentError) def _G_or_419(): - self._trace('', (7228, 7238), self.input.position) + self._trace('', (7226, 7236), self.input.position) _G_apply_420, lastError = self._apply(self.rule_pro_subst, "pro_subst", []) self.considerError(lastError, None) return (_G_apply_420, self.currentError) def _G_or_421(): - self._trace('', (7240, 7251), self.input.position) + self._trace('', (7238, 7249), self.input.position) _G_apply_422, lastError = self._apply(self.rule_pro_delins, "pro_delins", []) self.considerError(lastError, None) return (_G_apply_422, self.currentError) def _G_or_423(): - self._trace('', (7253, 7261), self.input.position) + self._trace('', (7251, 7259), self.input.position) _G_apply_424, lastError = self._apply(self.rule_pro_ins, "pro_ins", []) self.considerError(lastError, None) return (_G_apply_424, self.currentError) def _G_or_425(): - self._trace('', (7263, 7271), self.input.position) + self._trace('', (7261, 7269), self.input.position) _G_apply_426, lastError = self._apply(self.rule_pro_del, "pro_del", []) self.considerError(lastError, None) return (_G_apply_426, self.currentError) def _G_or_427(): - self._trace('', (7273, 7281), self.input.position) + self._trace('', (7271, 7279), self.input.position) _G_apply_428, lastError = self._apply(self.rule_pro_dup, "pro_dup", []) self.considerError(lastError, None) return (_G_apply_428, self.currentError) def _G_or_429(): - self._trace('', (7283, 7293), self.input.position) + self._trace('', (7281, 7291), self.input.position) _G_apply_430, lastError = self._apply(self.rule_pro_ident, "pro_ident", []) self.considerError(lastError, None) return (_G_apply_430, self.currentError) @@ -1465,12 +1465,12 @@ def rule_pro_subst(self): _locals = {'self': self} self.locals['pro_subst'] = _locals def _G_or_432(): - self._trace('', (7308, 7313), self.input.position) + self._trace('', (7306, 7311), self.input.position) _G_apply_433, lastError = self._apply(self.rule_aat13, "aat13", []) self.considerError(lastError, None) return (_G_apply_433, self.currentError) def _G_or_434(): - self._trace('', (7314, 7317), self.input.position) + self._trace('', (7312, 7315), self.input.position) _G_exactly_435, lastError = self.exactly('?') self.considerError(lastError, None) return (_G_exactly_435, self.currentError) @@ -1485,10 +1485,10 @@ def _G_or_434(): def rule_pro_delins(self): _locals = {'self': self} self.locals['pro_delins'] = _locals - self._trace('', (7386, 7395), self.input.position) + self._trace('', (7384, 7393), self.input.position) _G_exactly_439, lastError = self.exactly('delins') self.considerError(lastError, 'pro_delins') - self._trace('', (7395, 7405), self.input.position) + self._trace('', (7393, 7403), self.input.position) _G_apply_440, lastError = self._apply(self.rule_aat13_seq, "aat13_seq", []) self.considerError(lastError, 'pro_delins') _locals['alt'] = _G_apply_440 @@ -1500,7 +1500,7 @@ def rule_pro_delins(self): def rule_pro_del(self): _locals = {'self': self} self.locals['pro_del'] = _locals - self._trace('', (7469, 7475), self.input.position) + self._trace('', (7467, 7473), self.input.position) _G_exactly_443, lastError = self.exactly('del') self.considerError(lastError, 'pro_del') _G_python_445, lastError = eval(self._G_expr_444, self.globals, _locals), None @@ -1511,10 +1511,10 @@ def rule_pro_del(self): def rule_pro_ins(self): _locals = {'self': self} self.locals['pro_ins'] = _locals - self._trace('', (7553, 7559), self.input.position) + self._trace('', (7551, 7557), self.input.position) _G_exactly_446, lastError = self.exactly('ins') self.considerError(lastError, 'pro_ins') - self._trace('', (7559, 7569), self.input.position) + self._trace('', (7557, 7567), self.input.position) _G_apply_447, lastError = self._apply(self.rule_aat13_seq, "aat13_seq", []) self.considerError(lastError, 'pro_ins') _locals['alt'] = _G_apply_447 @@ -1526,7 +1526,7 @@ def rule_pro_ins(self): def rule_pro_dup(self): _locals = {'self': self} self.locals['pro_dup'] = _locals - self._trace('', (7638, 7644), self.input.position) + self._trace('', (7636, 7642), self.input.position) _G_exactly_450, lastError = self.exactly('dup') self.considerError(lastError, 'pro_dup') _G_python_452, lastError = eval(self._G_expr_451, self.globals, _locals), None @@ -1538,7 +1538,7 @@ def rule_pro_fs(self): _locals = {'self': self} self.locals['pro_fs'] = _locals def _G_or_453(): - self._trace('', (7710, 7715), self.input.position) + self._trace('', (7708, 7713), self.input.position) _G_apply_454, lastError = self._apply(self.rule_aat13, "aat13", []) self.considerError(lastError, None) return (_G_apply_454, self.currentError) @@ -1549,7 +1549,7 @@ def _G_or_455(): _G_or_457, lastError = self._or([_G_or_453, _G_or_455]) self.considerError(lastError, 'pro_fs') _locals['alt'] = _G_or_457 - self._trace('', (7730, 7733), self.input.position) + self._trace('', (7728, 7731), self.input.position) _G_apply_458, lastError = self._apply(self.rule_fs, "fs", []) self.considerError(lastError, 'pro_fs') _locals['length'] = _G_apply_458 @@ -1562,7 +1562,7 @@ def rule_pro_ext(self): _locals = {'self': self} self.locals['pro_ext'] = _locals def _G_optional_461(): - self._trace('', (7803, 7809), self.input.position) + self._trace('', (7801, 7807), self.input.position) _G_apply_462, lastError = self._apply(self.rule_aat13, "aat13", []) self.considerError(lastError, None) return (_G_apply_462, self.currentError) @@ -1571,7 +1571,7 @@ def _G_optional_463(): _G_or_464, lastError = self._or([_G_optional_461, _G_optional_463]) self.considerError(lastError, 'pro_ext') _locals['alt'] = _G_or_464 - self._trace('', (7814, 7818), self.input.position) + self._trace('', (7812, 7816), self.input.position) _G_apply_465, lastError = self._apply(self.rule_ext, "ext", []) self.considerError(lastError, 'pro_ext') _locals['aaterm'] = _G_apply_465[0] @@ -1584,7 +1584,7 @@ def _G_optional_463(): def rule_pro_ident(self): _locals = {'self': self} self.locals['pro_ident'] = _locals - self._trace('', (7914, 7918), self.input.position) + self._trace('', (7912, 7916), self.input.position) _G_exactly_468, lastError = self.exactly('=') self.considerError(lastError, 'pro_ident') _G_python_470, lastError = eval(self._G_expr_469, self.globals, _locals), None @@ -1596,19 +1596,19 @@ def rule_c_interval(self): _locals = {'self': self} self.locals['c_interval'] = _locals def _G_or_471(): - self._trace('', (8240, 8255), self.input.position) + self._trace('', (8238, 8253), self.input.position) _G_apply_472, lastError = self._apply(self.rule_def_c_interval, "def_c_interval", []) self.considerError(lastError, None) return (_G_apply_472, self.currentError) def _G_or_473(): - self._trace('', (8257, 8261), self.input.position) + self._trace('', (8255, 8259), self.input.position) _G_exactly_474, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8261, 8276), self.input.position) + self._trace('', (8259, 8274), self.input.position) _G_apply_475, lastError = self._apply(self.rule_def_c_interval, "def_c_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_475 - self._trace('', (8279, 8283), self.input.position) + self._trace('', (8277, 8281), self.input.position) _G_exactly_476, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_478, lastError = eval(self._G_expr_477, self.globals, _locals), None @@ -1623,27 +1623,27 @@ def rule_g_interval(self): _locals = {'self': self} self.locals['g_interval'] = _locals def _G_or_480(): - self._trace('', (8319, 8340), self.input.position) + self._trace('', (8317, 8338), self.input.position) _G_apply_481, lastError = self._apply(self.rule_uncertain_g_interval, "uncertain_g_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_481 return (_G_apply_481, self.currentError) def _G_or_482(): - self._trace('', (8347, 8350), self.input.position) + self._trace('', (8345, 8348), self.input.position) _G_exactly_483, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8350, 8365), self.input.position) + self._trace('', (8348, 8363), self.input.position) _G_apply_484, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_484 - self._trace('', (8368, 8372), self.input.position) + self._trace('', (8366, 8370), self.input.position) _G_exactly_485, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_486, lastError = eval(self._G_expr_477, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_486, self.currentError) def _G_or_487(): - self._trace('', (8398, 8413), self.input.position) + self._trace('', (8396, 8411), self.input.position) _G_apply_488, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) return (_G_apply_488, self.currentError) @@ -1656,19 +1656,19 @@ def rule_m_interval(self): _locals = {'self': self} self.locals['m_interval'] = _locals def _G_or_490(): - self._trace('', (8426, 8441), self.input.position) + self._trace('', (8424, 8439), self.input.position) _G_apply_491, lastError = self._apply(self.rule_def_m_interval, "def_m_interval", []) self.considerError(lastError, None) return (_G_apply_491, self.currentError) def _G_or_492(): - self._trace('', (8443, 8447), self.input.position) + self._trace('', (8441, 8445), self.input.position) _G_exactly_493, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8447, 8462), self.input.position) + self._trace('', (8445, 8460), self.input.position) _G_apply_494, lastError = self._apply(self.rule_def_m_interval, "def_m_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_494 - self._trace('', (8465, 8469), self.input.position) + self._trace('', (8463, 8467), self.input.position) _G_exactly_495, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_496, lastError = eval(self._G_expr_477, self.globals, _locals), None @@ -1683,19 +1683,19 @@ def rule_n_interval(self): _locals = {'self': self} self.locals['n_interval'] = _locals def _G_or_498(): - self._trace('', (8505, 8520), self.input.position) + self._trace('', (8503, 8518), self.input.position) _G_apply_499, lastError = self._apply(self.rule_def_n_interval, "def_n_interval", []) self.considerError(lastError, None) return (_G_apply_499, self.currentError) def _G_or_500(): - self._trace('', (8522, 8526), self.input.position) + self._trace('', (8520, 8524), self.input.position) _G_exactly_501, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8526, 8541), self.input.position) + self._trace('', (8524, 8539), self.input.position) _G_apply_502, lastError = self._apply(self.rule_def_n_interval, "def_n_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_502 - self._trace('', (8544, 8548), self.input.position) + self._trace('', (8542, 8546), self.input.position) _G_exactly_503, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_504, lastError = eval(self._G_expr_477, self.globals, _locals), None @@ -1710,19 +1710,19 @@ def rule_p_interval(self): _locals = {'self': self} self.locals['p_interval'] = _locals def _G_or_506(): - self._trace('', (8584, 8599), self.input.position) + self._trace('', (8582, 8597), self.input.position) _G_apply_507, lastError = self._apply(self.rule_def_p_interval, "def_p_interval", []) self.considerError(lastError, None) return (_G_apply_507, self.currentError) def _G_or_508(): - self._trace('', (8601, 8605), self.input.position) + self._trace('', (8599, 8603), self.input.position) _G_exactly_509, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8605, 8620), self.input.position) + self._trace('', (8603, 8618), self.input.position) _G_apply_510, lastError = self._apply(self.rule_def_p_interval, "def_p_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_510 - self._trace('', (8623, 8627), self.input.position) + self._trace('', (8621, 8625), self.input.position) _G_exactly_511, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_512, lastError = eval(self._G_expr_477, self.globals, _locals), None @@ -1737,19 +1737,19 @@ def rule_r_interval(self): _locals = {'self': self} self.locals['r_interval'] = _locals def _G_or_514(): - self._trace('', (8663, 8678), self.input.position) + self._trace('', (8661, 8676), self.input.position) _G_apply_515, lastError = self._apply(self.rule_def_r_interval, "def_r_interval", []) self.considerError(lastError, None) return (_G_apply_515, self.currentError) def _G_or_516(): - self._trace('', (8680, 8684), self.input.position) + self._trace('', (8678, 8682), self.input.position) _G_exactly_517, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (8684, 8699), self.input.position) + self._trace('', (8682, 8697), self.input.position) _G_apply_518, lastError = self._apply(self.rule_def_r_interval, "def_r_interval", []) self.considerError(lastError, None) _locals['iv'] = _G_apply_518 - self._trace('', (8702, 8706), self.input.position) + self._trace('', (8700, 8704), self.input.position) _G_exactly_519, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_520, lastError = eval(self._G_expr_477, self.globals, _locals), None @@ -1764,14 +1764,14 @@ def rule_def_g_interval(self): _locals = {'self': self} self.locals['def_g_interval'] = _locals def _G_or_522(): - self._trace('', (8770, 8775), self.input.position) + self._trace('', (8768, 8773), self.input.position) _G_apply_523, lastError = self._apply(self.rule_g_pos, "g_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_523 - self._trace('', (8781, 8785), self.input.position) + self._trace('', (8779, 8783), self.input.position) _G_exactly_524, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (8785, 8791), self.input.position) + self._trace('', (8783, 8789), self.input.position) _G_apply_525, lastError = self._apply(self.rule_g_pos, "g_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_525 @@ -1779,7 +1779,7 @@ def _G_or_522(): self.considerError(lastError, None) return (_G_python_527, self.currentError) def _G_or_528(): - self._trace('', (8837, 8842), self.input.position) + self._trace('', (8835, 8840), self.input.position) _G_apply_529, lastError = self._apply(self.rule_g_pos, "g_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_529 @@ -1795,14 +1795,14 @@ def rule_def_m_interval(self): _locals = {'self': self} self.locals['def_m_interval'] = _locals def _G_or_533(): - self._trace('', (8922, 8927), self.input.position) + self._trace('', (8904, 8909), self.input.position) _G_apply_534, lastError = self._apply(self.rule_m_pos, "m_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_534 - self._trace('', (8933, 8937), self.input.position) + self._trace('', (8915, 8919), self.input.position) _G_exactly_535, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (8937, 8943), self.input.position) + self._trace('', (8919, 8925), self.input.position) _G_apply_536, lastError = self._apply(self.rule_m_pos, "m_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_536 @@ -1810,7 +1810,7 @@ def _G_or_533(): self.considerError(lastError, None) return (_G_python_537, self.currentError) def _G_or_538(): - self._trace('', (8989, 8994), self.input.position) + self._trace('', (8971, 8976), self.input.position) _G_apply_539, lastError = self._apply(self.rule_m_pos, "m_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_539 @@ -1826,14 +1826,14 @@ def rule_def_p_interval(self): _locals = {'self': self} self.locals['def_p_interval'] = _locals def _G_or_542(): - self._trace('', (9074, 9079), self.input.position) + self._trace('', (9040, 9045), self.input.position) _G_apply_543, lastError = self._apply(self.rule_p_pos, "p_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_543 - self._trace('', (9085, 9089), self.input.position) + self._trace('', (9051, 9055), self.input.position) _G_exactly_544, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9089, 9095), self.input.position) + self._trace('', (9055, 9061), self.input.position) _G_apply_545, lastError = self._apply(self.rule_p_pos, "p_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_545 @@ -1841,7 +1841,7 @@ def _G_or_542(): self.considerError(lastError, None) return (_G_python_546, self.currentError) def _G_or_547(): - self._trace('', (9141, 9146), self.input.position) + self._trace('', (9107, 9112), self.input.position) _G_apply_548, lastError = self._apply(self.rule_p_pos, "p_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_548 @@ -1857,14 +1857,14 @@ def rule_def_r_interval(self): _locals = {'self': self} self.locals['def_r_interval'] = _locals def _G_or_551(): - self._trace('', (9226, 9231), self.input.position) + self._trace('', (9176, 9181), self.input.position) _G_apply_552, lastError = self._apply(self.rule_r_pos, "r_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_552 - self._trace('', (9237, 9241), self.input.position) + self._trace('', (9187, 9191), self.input.position) _G_exactly_553, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9241, 9247), self.input.position) + self._trace('', (9191, 9197), self.input.position) _G_apply_554, lastError = self._apply(self.rule_r_pos, "r_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_554 @@ -1872,7 +1872,7 @@ def _G_or_551(): self.considerError(lastError, None) return (_G_python_555, self.currentError) def _G_or_556(): - self._trace('', (9293, 9298), self.input.position) + self._trace('', (9243, 9248), self.input.position) _G_apply_557, lastError = self._apply(self.rule_r_pos, "r_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_557 @@ -1888,14 +1888,14 @@ def rule_def_c_interval(self): _locals = {'self': self} self.locals['def_c_interval'] = _locals def _G_or_560(): - self._trace('', (9378, 9383), self.input.position) + self._trace('', (9312, 9317), self.input.position) _G_apply_561, lastError = self._apply(self.rule_c_pos, "c_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_561 - self._trace('', (9389, 9393), self.input.position) + self._trace('', (9323, 9327), self.input.position) _G_exactly_562, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9393, 9399), self.input.position) + self._trace('', (9327, 9333), self.input.position) _G_apply_563, lastError = self._apply(self.rule_c_pos, "c_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_563 @@ -1903,7 +1903,7 @@ def _G_or_560(): self.considerError(lastError, None) return (_G_python_565, self.currentError) def _G_or_566(): - self._trace('', (9455, 9460), self.input.position) + self._trace('', (9389, 9394), self.input.position) _G_apply_567, lastError = self._apply(self.rule_c_pos, "c_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_567 @@ -1919,14 +1919,14 @@ def rule_def_n_interval(self): _locals = {'self': self} self.locals['def_n_interval'] = _locals def _G_or_571(): - self._trace('', (9550, 9555), self.input.position) + self._trace('', (9484, 9489), self.input.position) _G_apply_572, lastError = self._apply(self.rule_n_pos, "n_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_572 - self._trace('', (9561, 9565), self.input.position) + self._trace('', (9495, 9499), self.input.position) _G_exactly_573, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9565, 9571), self.input.position) + self._trace('', (9499, 9505), self.input.position) _G_apply_574, lastError = self._apply(self.rule_n_pos, "n_pos", []) self.considerError(lastError, None) _locals['end'] = _G_apply_574 @@ -1934,7 +1934,7 @@ def _G_or_571(): self.considerError(lastError, None) return (_G_python_575, self.currentError) def _G_or_576(): - self._trace('', (9627, 9632), self.input.position) + self._trace('', (9561, 9566), self.input.position) _G_apply_577, lastError = self._apply(self.rule_n_pos, "n_pos", []) self.considerError(lastError, None) _locals['start'] = _G_apply_577 @@ -1950,68 +1950,68 @@ def rule_uncertain_g_interval(self): _locals = {'self': self} self.locals['uncertain_g_interval'] = _locals def _G_or_580(): - self._trace('', (9747, 9751), self.input.position) + self._trace('', (9681, 9685), self.input.position) _G_exactly_581, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (9751, 9766), self.input.position) + self._trace('', (9685, 9700), self.input.position) _G_apply_582, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['ivl_start'] = _G_apply_582 - self._trace('', (9776, 9780), self.input.position) + self._trace('', (9710, 9714), self.input.position) _G_exactly_583, lastError = self.exactly(')') self.considerError(lastError, None) - self._trace('', (9780, 9784), self.input.position) + self._trace('', (9714, 9718), self.input.position) _G_exactly_584, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9784, 9788), self.input.position) + self._trace('', (9718, 9722), self.input.position) _G_exactly_585, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (9788, 9803), self.input.position) + self._trace('', (9722, 9737), self.input.position) _G_apply_586, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['ivl_end'] = _G_apply_586 - self._trace('', (9811, 9815), self.input.position) + self._trace('', (9745, 9749), self.input.position) _G_exactly_587, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_589, lastError = eval(self._G_expr_588, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_589, self.currentError) def _G_or_590(): - self._trace('', (9931, 9946), self.input.position) + self._trace('', (9865, 9880), self.input.position) _G_apply_591, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['ivl_start'] = _G_apply_591 - self._trace('', (9956, 9960), self.input.position) + self._trace('', (9890, 9894), self.input.position) _G_exactly_592, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (9960, 9964), self.input.position) + self._trace('', (9894, 9898), self.input.position) _G_exactly_593, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (9964, 9979), self.input.position) + self._trace('', (9898, 9913), self.input.position) _G_apply_594, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['ivl_end'] = _G_apply_594 - self._trace('', (9987, 9991), self.input.position) + self._trace('', (9921, 9925), self.input.position) _G_exactly_595, lastError = self.exactly(')') self.considerError(lastError, None) _G_python_597, lastError = eval(self._G_expr_596, self.globals, _locals), None self.considerError(lastError, None) return (_G_python_597, self.currentError) def _G_or_598(): - self._trace('', (10090, 10094), self.input.position) + self._trace('', (10024, 10028), self.input.position) _G_exactly_599, lastError = self.exactly('(') self.considerError(lastError, None) - self._trace('', (10094, 10109), self.input.position) + self._trace('', (10028, 10043), self.input.position) _G_apply_600, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['ivl_start'] = _G_apply_600 - self._trace('', (10119, 10123), self.input.position) + self._trace('', (10053, 10057), self.input.position) _G_exactly_601, lastError = self.exactly(')') self.considerError(lastError, None) - self._trace('', (10123, 10127), self.input.position) + self._trace('', (10057, 10061), self.input.position) _G_exactly_602, lastError = self.exactly('_') self.considerError(lastError, None) - self._trace('', (10127, 10142), self.input.position) + self._trace('', (10061, 10076), self.input.position) _G_apply_603, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) self.considerError(lastError, None) _locals['ivl_end'] = _G_apply_603 @@ -2026,7 +2026,7 @@ def _G_or_598(): def rule_c_pos(self): _locals = {'self': self} self.locals['c_pos'] = _locals - self._trace('', (10245, 10255), self.input.position) + self._trace('', (10179, 10189), self.input.position) _G_apply_607, lastError = self._apply(self.rule_def_c_pos, "def_c_pos", []) self.considerError(lastError, 'c_pos') return (_G_apply_607, self.currentError) @@ -2035,7 +2035,7 @@ def rule_c_pos(self): def rule_g_pos(self): _locals = {'self': self} self.locals['g_pos'] = _locals - self._trace('', (10312, 10322), self.input.position) + self._trace('', (10246, 10256), self.input.position) _G_apply_608, lastError = self._apply(self.rule_def_g_pos, "def_g_pos", []) self.considerError(lastError, 'g_pos') return (_G_apply_608, self.currentError) @@ -2044,7 +2044,7 @@ def rule_g_pos(self): def rule_m_pos(self): _locals = {'self': self} self.locals['m_pos'] = _locals - self._trace('', (10379, 10389), self.input.position) + self._trace('', (10313, 10323), self.input.position) _G_apply_609, lastError = self._apply(self.rule_def_m_pos, "def_m_pos", []) self.considerError(lastError, 'm_pos') return (_G_apply_609, self.currentError) @@ -2053,7 +2053,7 @@ def rule_m_pos(self): def rule_n_pos(self): _locals = {'self': self} self.locals['n_pos'] = _locals - self._trace('', (10446, 10456), self.input.position) + self._trace('', (10380, 10390), self.input.position) _G_apply_610, lastError = self._apply(self.rule_def_n_pos, "def_n_pos", []) self.considerError(lastError, 'n_pos') return (_G_apply_610, self.currentError) @@ -2062,7 +2062,7 @@ def rule_n_pos(self): def rule_p_pos(self): _locals = {'self': self} self.locals['p_pos'] = _locals - self._trace('', (10513, 10523), self.input.position) + self._trace('', (10447, 10457), self.input.position) _G_apply_611, lastError = self._apply(self.rule_def_p_pos, "def_p_pos", []) self.considerError(lastError, 'p_pos') return (_G_apply_611, self.currentError) @@ -2071,7 +2071,7 @@ def rule_p_pos(self): def rule_r_pos(self): _locals = {'self': self} self.locals['r_pos'] = _locals - self._trace('', (10580, 10590), self.input.position) + self._trace('', (10514, 10524), self.input.position) _G_apply_612, lastError = self._apply(self.rule_def_r_pos, "def_r_pos", []) self.considerError(lastError, 'r_pos') return (_G_apply_612, self.currentError) @@ -2081,11 +2081,11 @@ def rule_def_c_pos(self): _locals = {'self': self} self.locals['def_c_pos'] = _locals def _G_or_613(): - self._trace('', (10673, 10678), self.input.position) + self._trace('', (10607, 10612), self.input.position) _G_apply_614, lastError = self._apply(self.rule_base, "base", []) self.considerError(lastError, None) _locals['b'] = _G_apply_614 - self._trace('', (10680, 10687), self.input.position) + self._trace('', (10614, 10621), self.input.position) _G_apply_615, lastError = self._apply(self.rule_offset, "offset", []) self.considerError(lastError, None) _locals['o'] = _G_apply_615 @@ -2093,14 +2093,14 @@ def _G_or_613(): self.considerError(lastError, None) return (_G_python_617, self.currentError) def _G_or_618(): - self._trace('', (10772, 10776), self.input.position) + self._trace('', (10706, 10710), self.input.position) _G_exactly_619, lastError = self.exactly('*') self.considerError(lastError, None) - self._trace('', (10776, 10780), self.input.position) + self._trace('', (10710, 10714), self.input.position) _G_apply_620, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) _locals['b'] = _G_apply_620 - self._trace('', (10782, 10789), self.input.position) + self._trace('', (10716, 10723), self.input.position) _G_apply_621, lastError = self._apply(self.rule_offset, "offset", []) self.considerError(lastError, None) _locals['o'] = _G_apply_621 @@ -2116,12 +2116,12 @@ def rule_def_g_pos(self): _locals = {'self': self} self.locals['def_g_pos'] = _locals def _G_or_625(): - self._trace('', (10877, 10880), self.input.position) + self._trace('', (10811, 10814), self.input.position) _G_apply_626, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_626, self.currentError) def _G_or_627(): - self._trace('', (10881, 10884), self.input.position) + self._trace('', (10815, 10818), self.input.position) _G_exactly_628, lastError = self.exactly('?') self.considerError(lastError, None) _G_python_629, lastError = (None), None @@ -2139,12 +2139,12 @@ def rule_def_m_pos(self): _locals = {'self': self} self.locals['def_m_pos'] = _locals def _G_or_633(): - self._trace('', (10946, 10949), self.input.position) + self._trace('', (10880, 10883), self.input.position) _G_apply_634, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_634, self.currentError) def _G_or_635(): - self._trace('', (10950, 10953), self.input.position) + self._trace('', (10884, 10887), self.input.position) _G_exactly_636, lastError = self.exactly('?') self.considerError(lastError, None) _G_python_637, lastError = (None), None @@ -2161,11 +2161,11 @@ def _G_or_635(): def rule_def_n_pos(self): _locals = {'self': self} self.locals['def_n_pos'] = _locals - self._trace('', (11013, 11018), self.input.position) + self._trace('', (10947, 10952), self.input.position) _G_apply_640, lastError = self._apply(self.rule_base, "base", []) self.considerError(lastError, 'def_n_pos') _locals['b'] = _G_apply_640 - self._trace('', (11020, 11027), self.input.position) + self._trace('', (10954, 10961), self.input.position) _G_apply_641, lastError = self._apply(self.rule_offset, "offset", []) self.considerError(lastError, 'def_n_pos') _locals['o'] = _G_apply_641 @@ -2178,19 +2178,19 @@ def rule_def_p_pos(self): _locals = {'self': self} self.locals['def_p_pos'] = _locals def _G_or_644(): - self._trace('', (11117, 11123), self.input.position) + self._trace('', (11051, 11057), self.input.position) _G_apply_645, lastError = self._apply(self.rule_term13, "term13", []) self.considerError(lastError, None) return (_G_apply_645, self.currentError) def _G_or_646(): - self._trace('', (11124, 11128), self.input.position) + self._trace('', (11058, 11062), self.input.position) _G_apply_647, lastError = self._apply(self.rule_aa13, "aa13", []) self.considerError(lastError, None) return (_G_apply_647, self.currentError) _G_or_648, lastError = self._or([_G_or_644, _G_or_646]) self.considerError(lastError, 'def_p_pos') _locals['aa'] = _G_or_648 - self._trace('', (11132, 11136), self.input.position) + self._trace('', (11066, 11070), self.input.position) _G_apply_649, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, 'def_p_pos') _locals['pos'] = _G_apply_649 @@ -2202,11 +2202,11 @@ def _G_or_646(): def rule_def_r_pos(self): _locals = {'self': self} self.locals['def_r_pos'] = _locals - self._trace('', (11218, 11223), self.input.position) + self._trace('', (11152, 11157), self.input.position) _G_apply_652, lastError = self._apply(self.rule_base, "base", []) self.considerError(lastError, 'def_r_pos') _locals['b'] = _G_apply_652 - self._trace('', (11225, 11232), self.input.position) + self._trace('', (11159, 11166), self.input.position) _G_apply_653, lastError = self._apply(self.rule_offset, "offset", []) self.considerError(lastError, 'def_r_pos') _locals['o'] = _G_apply_653 @@ -2218,11 +2218,11 @@ def rule_def_r_pos(self): def rule_fs(self): _locals = {'self': self} self.locals['fs'] = _locals - self._trace('', (11636, 11641), self.input.position) + self._trace('', (11570, 11575), self.input.position) _G_exactly_655, lastError = self.exactly('fs') self.considerError(lastError, 'fs') def _G_or_656(): - self._trace('', (11643, 11650), self.input.position) + self._trace('', (11577, 11584), self.input.position) _G_apply_657, lastError = self._apply(self.rule_aa13_fs, "aa13_fs", []) self.considerError(lastError, None) return (_G_apply_657, self.currentError) @@ -2241,11 +2241,11 @@ def _G_or_658(): def rule_ext(self): _locals = {'self': self} self.locals['ext'] = _locals - self._trace('', (11674, 11680), self.input.position) + self._trace('', (11608, 11614), self.input.position) _G_exactly_663, lastError = self.exactly('ext') self.considerError(lastError, 'ext') def _G_or_664(): - self._trace('', (11682, 11690), self.input.position) + self._trace('', (11616, 11624), self.input.position) _G_apply_665, lastError = self._apply(self.rule_aa13_ext, "aa13_ext", []) self.considerError(lastError, None) return (_G_apply_665, self.currentError) @@ -2265,10 +2265,10 @@ def _G_or_666(): def rule_aa13_fs(self): _locals = {'self': self} self.locals['aa13_fs'] = _locals - self._trace('', (11740, 11747), self.input.position) + self._trace('', (11674, 11681), self.input.position) _G_apply_671, lastError = self._apply(self.rule_term13, "term13", []) self.considerError(lastError, 'aa13_fs') - self._trace('', (11747, 11760), self.input.position) + self._trace('', (11681, 11694), self.input.position) _G_apply_672, lastError = self._apply(self.rule_fsext_offset, "fsext_offset", []) self.considerError(lastError, 'aa13_fs') _locals['n'] = _G_apply_672 @@ -2281,11 +2281,11 @@ def rule_aa13_ext(self): _locals = {'self': self} self.locals['aa13_ext'] = _locals def _G_or_674(): - self._trace('', (11778, 11785), self.input.position) + self._trace('', (11712, 11719), self.input.position) _G_apply_675, lastError = self._apply(self.rule_term13, "term13", []) self.considerError(lastError, None) _locals['aat'] = _G_apply_675 - self._trace('', (11789, 11802), self.input.position) + self._trace('', (11723, 11736), self.input.position) _G_apply_676, lastError = self._apply(self.rule_fsext_offset, "fsext_offset", []) self.considerError(lastError, None) _locals['n'] = _G_apply_676 @@ -2294,7 +2294,7 @@ def _G_or_674(): return (_G_python_677, self.currentError) def _G_or_678(): def _G_or_679(): - self._trace('', (11829, 11833), self.input.position) + self._trace('', (11763, 11767), self.input.position) _G_apply_680, lastError = self._apply(self.rule_aa13, "aa13", []) self.considerError(lastError, None) return (_G_apply_680, self.currentError) @@ -2305,7 +2305,7 @@ def _G_or_681(): _G_or_683, lastError = self._or([_G_or_679, _G_or_681]) self.considerError(lastError, None) _locals['aat'] = _G_or_683 - self._trace('', (11850, 11855), self.input.position) + self._trace('', (11784, 11789), self.input.position) _G_apply_684, lastError = self._apply(self.rule_nnum, "nnum", []) self.considerError(lastError, None) _locals['n'] = _G_apply_684 @@ -2321,12 +2321,12 @@ def rule_fsext_offset(self): _locals = {'self': self} self.locals['fsext_offset'] = _locals def _G_or_687(): - self._trace('', (11884, 11888), self.input.position) + self._trace('', (11818, 11822), self.input.position) _G_apply_688, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_688, self.currentError) def _G_or_689(): - self._trace('', (11889, 11892), self.input.position) + self._trace('', (11823, 11826), self.input.position) _G_exactly_690, lastError = self.exactly('?') self.considerError(lastError, None) return (_G_exactly_690, self.currentError) @@ -2344,7 +2344,7 @@ def rule_dna_seq(self): self.locals['dna_seq'] = _locals def _G_consumedby_694(): def _G_many1_695(): - self._trace('', (11937, 11940), self.input.position) + self._trace('', (11871, 11874), self.input.position) _G_apply_696, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_696, self.currentError) @@ -2361,7 +2361,7 @@ def rule_rna_seq(self): self.locals['rna_seq'] = _locals def _G_consumedby_699(): def _G_many1_700(): - self._trace('', (11954, 11957), self.input.position) + self._trace('', (11888, 11891), self.input.position) _G_apply_701, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_701, self.currentError) @@ -2378,7 +2378,7 @@ def rule_aat13_seq(self): self.locals['aat13_seq'] = _locals def _G_or_704(): def _G_consumedby_705(): - self._trace('', (11973, 11981), self.input.position) + self._trace('', (11907, 11915), self.input.position) _G_apply_706, lastError = self._apply(self.rule_aat3_seq, "aat3_seq", []) self.considerError(lastError, None) return (_G_apply_706, self.currentError) @@ -2387,7 +2387,7 @@ def _G_consumedby_705(): return (_G_consumedby_707, self.currentError) def _G_or_708(): def _G_consumedby_709(): - self._trace('', (11986, 11994), self.input.position) + self._trace('', (11920, 11928), self.input.position) _G_apply_710, lastError = self._apply(self.rule_aat1_seq, "aat1_seq", []) self.considerError(lastError, None) return (_G_apply_710, self.currentError) @@ -2404,7 +2404,7 @@ def rule_aat1_seq(self): self.locals['aat1_seq'] = _locals def _G_or_713(): def _G_consumedby_714(): - self._trace('', (12008, 12013), self.input.position) + self._trace('', (11942, 11947), self.input.position) _G_apply_715, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) return (_G_apply_715, self.currentError) @@ -2414,14 +2414,14 @@ def _G_consumedby_714(): def _G_or_717(): def _G_consumedby_718(): def _G_many1_719(): - self._trace('', (12018, 12021), self.input.position) + self._trace('', (11952, 11955), self.input.position) _G_apply_720, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) return (_G_apply_720, self.currentError) _G_many1_721, lastError = self.many(_G_many1_719, _G_many1_719()) self.considerError(lastError, None) def _G_optional_722(): - self._trace('', (12022, 12028), self.input.position) + self._trace('', (11956, 11962), self.input.position) _G_apply_723, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) return (_G_apply_723, self.currentError) @@ -2443,7 +2443,7 @@ def rule_aat3_seq(self): self.locals['aat3_seq'] = _locals def _G_or_728(): def _G_consumedby_729(): - self._trace('', (12043, 12048), self.input.position) + self._trace('', (11977, 11982), self.input.position) _G_apply_730, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) return (_G_apply_730, self.currentError) @@ -2453,14 +2453,14 @@ def _G_consumedby_729(): def _G_or_732(): def _G_consumedby_733(): def _G_many1_734(): - self._trace('', (12053, 12056), self.input.position) + self._trace('', (11987, 11990), self.input.position) _G_apply_735, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) return (_G_apply_735, self.currentError) _G_many1_736, lastError = self.many(_G_many1_734, _G_many1_734()) self.considerError(lastError, None) def _G_optional_737(): - self._trace('', (12057, 12063), self.input.position) + self._trace('', (11991, 11997), self.input.position) _G_apply_738, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) return (_G_apply_738, self.currentError) @@ -2482,7 +2482,7 @@ def rule_aa13_seq(self): self.locals['aa13_seq'] = _locals def _G_or_743(): def _G_consumedby_744(): - self._trace('', (12078, 12085), self.input.position) + self._trace('', (12012, 12019), self.input.position) _G_apply_745, lastError = self._apply(self.rule_aa3_seq, "aa3_seq", []) self.considerError(lastError, None) return (_G_apply_745, self.currentError) @@ -2491,7 +2491,7 @@ def _G_consumedby_744(): return (_G_consumedby_746, self.currentError) def _G_or_747(): def _G_consumedby_748(): - self._trace('', (12090, 12097), self.input.position) + self._trace('', (12024, 12031), self.input.position) _G_apply_749, lastError = self._apply(self.rule_aa1_seq, "aa1_seq", []) self.considerError(lastError, None) return (_G_apply_749, self.currentError) @@ -2508,7 +2508,7 @@ def rule_aa1_seq(self): self.locals['aa1_seq'] = _locals def _G_consumedby_752(): def _G_many1_753(): - self._trace('', (12110, 12113), self.input.position) + self._trace('', (12044, 12047), self.input.position) _G_apply_754, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) return (_G_apply_754, self.currentError) @@ -2525,7 +2525,7 @@ def rule_aa3_seq(self): self.locals['aa3_seq'] = _locals def _G_consumedby_757(): def _G_many1_758(): - self._trace('', (12127, 12130), self.input.position) + self._trace('', (12061, 12064), self.input.position) _G_apply_759, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) return (_G_apply_759, self.currentError) @@ -2558,12 +2558,12 @@ def rule_aa13(self): _locals = {'self': self} self.locals['aa13'] = _locals def _G_or_769(): - self._trace('', (12211, 12215), self.input.position) + self._trace('', (12145, 12149), self.input.position) _G_apply_770, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) return (_G_apply_770, self.currentError) def _G_or_771(): - self._trace('', (12217, 12221), self.input.position) + self._trace('', (12151, 12155), self.input.position) _G_apply_772, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) return (_G_apply_772, self.currentError) @@ -2576,122 +2576,122 @@ def rule_aa3(self): _locals = {'self': self} self.locals['aa3'] = _locals def _G_or_774(): - self._trace('', (12227, 12233), self.input.position) + self._trace('', (12161, 12167), self.input.position) _G_exactly_775, lastError = self.exactly('Ala') self.considerError(lastError, None) return (_G_exactly_775, self.currentError) def _G_or_776(): - self._trace('', (12234, 12239), self.input.position) + self._trace('', (12168, 12173), self.input.position) _G_exactly_777, lastError = self.exactly('Cys') self.considerError(lastError, None) return (_G_exactly_777, self.currentError) def _G_or_778(): - self._trace('', (12240, 12245), self.input.position) + self._trace('', (12174, 12179), self.input.position) _G_exactly_779, lastError = self.exactly('Asp') self.considerError(lastError, None) return (_G_exactly_779, self.currentError) def _G_or_780(): - self._trace('', (12246, 12251), self.input.position) + self._trace('', (12180, 12185), self.input.position) _G_exactly_781, lastError = self.exactly('Glu') self.considerError(lastError, None) return (_G_exactly_781, self.currentError) def _G_or_782(): - self._trace('', (12252, 12257), self.input.position) + self._trace('', (12186, 12191), self.input.position) _G_exactly_783, lastError = self.exactly('Phe') self.considerError(lastError, None) return (_G_exactly_783, self.currentError) def _G_or_784(): - self._trace('', (12258, 12263), self.input.position) + self._trace('', (12192, 12197), self.input.position) _G_exactly_785, lastError = self.exactly('Gly') self.considerError(lastError, None) return (_G_exactly_785, self.currentError) def _G_or_786(): - self._trace('', (12264, 12269), self.input.position) + self._trace('', (12198, 12203), self.input.position) _G_exactly_787, lastError = self.exactly('His') self.considerError(lastError, None) return (_G_exactly_787, self.currentError) def _G_or_788(): - self._trace('', (12270, 12275), self.input.position) + self._trace('', (12204, 12209), self.input.position) _G_exactly_789, lastError = self.exactly('Ile') self.considerError(lastError, None) return (_G_exactly_789, self.currentError) def _G_or_790(): - self._trace('', (12276, 12281), self.input.position) + self._trace('', (12210, 12215), self.input.position) _G_exactly_791, lastError = self.exactly('Lys') self.considerError(lastError, None) return (_G_exactly_791, self.currentError) def _G_or_792(): - self._trace('', (12282, 12287), self.input.position) + self._trace('', (12216, 12221), self.input.position) _G_exactly_793, lastError = self.exactly('Leu') self.considerError(lastError, None) return (_G_exactly_793, self.currentError) def _G_or_794(): - self._trace('', (12288, 12293), self.input.position) + self._trace('', (12222, 12227), self.input.position) _G_exactly_795, lastError = self.exactly('Met') self.considerError(lastError, None) return (_G_exactly_795, self.currentError) def _G_or_796(): - self._trace('', (12294, 12299), self.input.position) + self._trace('', (12228, 12233), self.input.position) _G_exactly_797, lastError = self.exactly('Asn') self.considerError(lastError, None) return (_G_exactly_797, self.currentError) def _G_or_798(): - self._trace('', (12300, 12305), self.input.position) + self._trace('', (12234, 12239), self.input.position) _G_exactly_799, lastError = self.exactly('Pro') self.considerError(lastError, None) return (_G_exactly_799, self.currentError) def _G_or_800(): - self._trace('', (12306, 12311), self.input.position) + self._trace('', (12240, 12245), self.input.position) _G_exactly_801, lastError = self.exactly('Gln') self.considerError(lastError, None) return (_G_exactly_801, self.currentError) def _G_or_802(): - self._trace('', (12312, 12317), self.input.position) + self._trace('', (12246, 12251), self.input.position) _G_exactly_803, lastError = self.exactly('Arg') self.considerError(lastError, None) return (_G_exactly_803, self.currentError) def _G_or_804(): - self._trace('', (12318, 12323), self.input.position) + self._trace('', (12252, 12257), self.input.position) _G_exactly_805, lastError = self.exactly('Ser') self.considerError(lastError, None) return (_G_exactly_805, self.currentError) def _G_or_806(): - self._trace('', (12324, 12329), self.input.position) + self._trace('', (12258, 12263), self.input.position) _G_exactly_807, lastError = self.exactly('Thr') self.considerError(lastError, None) return (_G_exactly_807, self.currentError) def _G_or_808(): - self._trace('', (12330, 12335), self.input.position) + self._trace('', (12264, 12269), self.input.position) _G_exactly_809, lastError = self.exactly('Val') self.considerError(lastError, None) return (_G_exactly_809, self.currentError) def _G_or_810(): - self._trace('', (12336, 12341), self.input.position) + self._trace('', (12270, 12275), self.input.position) _G_exactly_811, lastError = self.exactly('Trp') self.considerError(lastError, None) return (_G_exactly_811, self.currentError) def _G_or_812(): - self._trace('', (12342, 12347), self.input.position) + self._trace('', (12276, 12281), self.input.position) _G_exactly_813, lastError = self.exactly('Tyr') self.considerError(lastError, None) return (_G_exactly_813, self.currentError) def _G_or_814(): - self._trace('', (12349, 12355), self.input.position) + self._trace('', (12283, 12289), self.input.position) _G_exactly_815, lastError = self.exactly('Asx') self.considerError(lastError, None) return (_G_exactly_815, self.currentError) def _G_or_816(): - self._trace('', (12357, 12363), self.input.position) + self._trace('', (12291, 12297), self.input.position) _G_exactly_817, lastError = self.exactly('Glx') self.considerError(lastError, None) return (_G_exactly_817, self.currentError) def _G_or_818(): - self._trace('', (12365, 12371), self.input.position) + self._trace('', (12299, 12305), self.input.position) _G_exactly_819, lastError = self.exactly('Xaa') self.considerError(lastError, None) return (_G_exactly_819, self.currentError) def _G_or_820(): - self._trace('', (12373, 12379), self.input.position) + self._trace('', (12307, 12313), self.input.position) _G_exactly_821, lastError = self.exactly('Sec') self.considerError(lastError, None) return (_G_exactly_821, self.currentError) @@ -2704,12 +2704,12 @@ def rule_aat1(self): _locals = {'self': self} self.locals['aat1'] = _locals def _G_or_823(): - self._trace('', (12386, 12392), self.input.position) + self._trace('', (12320, 12326), self.input.position) _G_apply_824, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) return (_G_apply_824, self.currentError) def _G_or_825(): - self._trace('', (12394, 12398), self.input.position) + self._trace('', (12328, 12332), self.input.position) _G_apply_826, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) return (_G_apply_826, self.currentError) @@ -2722,12 +2722,12 @@ def rule_aat13(self): _locals = {'self': self} self.locals['aat13'] = _locals def _G_or_828(): - self._trace('', (12406, 12411), self.input.position) + self._trace('', (12340, 12345), self.input.position) _G_apply_829, lastError = self._apply(self.rule_aat3, "aat3", []) self.considerError(lastError, None) return (_G_apply_829, self.currentError) def _G_or_830(): - self._trace('', (12413, 12418), self.input.position) + self._trace('', (12347, 12352), self.input.position) _G_apply_831, lastError = self._apply(self.rule_aat1, "aat1", []) self.considerError(lastError, None) return (_G_apply_831, self.currentError) @@ -2740,12 +2740,12 @@ def rule_aat3(self): _locals = {'self': self} self.locals['aat3'] = _locals def _G_or_833(): - self._trace('', (12425, 12431), self.input.position) + self._trace('', (12359, 12365), self.input.position) _G_apply_834, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) return (_G_apply_834, self.currentError) def _G_or_835(): - self._trace('', (12433, 12437), self.input.position) + self._trace('', (12367, 12371), self.input.position) _G_apply_836, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) return (_G_apply_836, self.currentError) @@ -2757,7 +2757,7 @@ def _G_or_835(): def rule_dna(self): _locals = {'self': self} self.locals['dna'] = _locals - self._trace('', (12443, 12453), self.input.position) + self._trace('', (12377, 12387), self.input.position) _G_apply_838, lastError = self._apply(self.rule_dna_iupac, "dna_iupac", []) self.considerError(lastError, 'dna') return (_G_apply_838, self.currentError) @@ -2800,7 +2800,7 @@ def _G_pred_846(): def rule_rna(self): _locals = {'self': self} self.locals['rna'] = _locals - self._trace('', (12582, 12592), self.input.position) + self._trace('', (12516, 12526), self.input.position) _G_apply_851, lastError = self._apply(self.rule_rna_iupac, "rna_iupac", []) self.considerError(lastError, 'rna') return (_G_apply_851, self.currentError) @@ -2844,12 +2844,12 @@ def rule_term13(self): _locals = {'self': self} self.locals['term13'] = _locals def _G_or_864(): - self._trace('', (12691, 12697), self.input.position) + self._trace('', (12625, 12631), self.input.position) _G_apply_865, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) return (_G_apply_865, self.currentError) def _G_or_866(): - self._trace('', (12699, 12705), self.input.position) + self._trace('', (12633, 12639), self.input.position) _G_apply_867, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) return (_G_apply_867, self.currentError) @@ -2861,7 +2861,7 @@ def _G_or_866(): def rule_term3(self): _locals = {'self': self} self.locals['term3'] = _locals - self._trace('', (12713, 12719), self.input.position) + self._trace('', (12647, 12653), self.input.position) _G_exactly_869, lastError = self.exactly('Ter') self.considerError(lastError, 'term3') return (_G_exactly_869, self.currentError) @@ -2870,7 +2870,7 @@ def rule_term3(self): def rule_base(self): _locals = {'self': self} self.locals['base'] = _locals - self._trace('', (12803, 12808), self.input.position) + self._trace('', (12737, 12742), self.input.position) _G_apply_870, lastError = self._apply(self.rule_snum, "snum", []) self.considerError(lastError, 'base') return (_G_apply_870, self.currentError) @@ -2880,10 +2880,10 @@ def rule_nnum(self): _locals = {'self': self} self.locals['nnum'] = _locals def _G_consumedby_871(): - self._trace('', (12817, 12820), self.input.position) + self._trace('', (12751, 12754), self.input.position) _G_exactly_872, lastError = self.exactly('-') self.considerError(lastError, None) - self._trace('', (12820, 12824), self.input.position) + self._trace('', (12754, 12758), self.input.position) _G_apply_873, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_873, self.currentError) @@ -2900,7 +2900,7 @@ def rule_num(self): self.locals['num'] = _locals def _G_consumedby_877(): def _G_many1_878(): - self._trace('', (12845, 12850), self.input.position) + self._trace('', (12779, 12784), self.input.position) _G_apply_879, lastError = self._apply(self.rule_digit, "digit", []) self.considerError(lastError, None) return (_G_apply_879, self.currentError) @@ -2919,7 +2919,7 @@ def rule_offset(self): _locals = {'self': self} self.locals['offset'] = _locals def _G_or_883(): - self._trace('', (12873, 12878), self.input.position) + self._trace('', (12807, 12812), self.input.position) _G_apply_884, lastError = self._apply(self.rule_snum, "snum", []) self.considerError(lastError, None) return (_G_apply_884, self.currentError) @@ -2954,7 +2954,7 @@ def rule_snum(self): self.locals['snum'] = _locals def _G_consumedby_894(): def _G_optional_895(): - self._trace('', (12922, 12924), self.input.position) + self._trace('', (12856, 12858), self.input.position) _G_apply_896, lastError = self._apply(self.rule_pm, "pm", []) self.considerError(lastError, None) return (_G_apply_896, self.currentError) @@ -2962,7 +2962,7 @@ def _G_optional_897(): return (None, self.input.nullError()) _G_or_898, lastError = self._or([_G_optional_895, _G_optional_897]) self.considerError(lastError, None) - self._trace('', (12925, 12929), self.input.position) + self._trace('', (12859, 12863), self.input.position) _G_apply_899, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_899, self.currentError) @@ -2978,31 +2978,31 @@ def rule_accn(self): _locals = {'self': self} self.locals['accn'] = _locals def _G_consumedby_902(): - self._trace('', (13033, 13039), self.input.position) + self._trace('', (12967, 12973), self.input.position) _G_apply_903, lastError = self._apply(self.rule_letter, "letter", []) self.considerError(lastError, None) def _G_optional_904(): def _G_many1_905(): def _G_or_906(): - self._trace('', (13042, 13055), self.input.position) + self._trace('', (12976, 12989), self.input.position) _G_apply_907, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) self.considerError(lastError, None) return (_G_apply_907, self.currentError) def _G_or_908(): def _G_or_909(): - self._trace('', (13059, 13062), self.input.position) + self._trace('', (12993, 12996), self.input.position) _G_exactly_910, lastError = self.exactly('-') self.considerError(lastError, None) return (_G_exactly_910, self.currentError) def _G_or_911(): - self._trace('', (13063, 13066), self.input.position) + self._trace('', (12997, 13000), self.input.position) _G_exactly_912, lastError = self.exactly('_') self.considerError(lastError, None) return (_G_exactly_912, self.currentError) _G_or_913, lastError = self._or([_G_or_909, _G_or_911]) self.considerError(lastError, None) def _G_lookahead_914(): - self._trace('', (13070, 13083), self.input.position) + self._trace('', (13004, 13017), self.input.position) _G_apply_915, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) self.considerError(lastError, None) return (_G_apply_915, self.currentError) @@ -3020,11 +3020,11 @@ def _G_optional_919(): _G_or_920, lastError = self._or([_G_optional_904, _G_optional_919]) self.considerError(lastError, None) def _G_optional_921(): - self._trace('', (13089, 13092), self.input.position) + self._trace('', (13023, 13026), self.input.position) _G_exactly_922, lastError = self.exactly('.') self.considerError(lastError, None) def _G_many1_923(): - self._trace('', (13092, 13098), self.input.position) + self._trace('', (13026, 13032), self.input.position) _G_apply_924, lastError = self._apply(self.rule_digit, "digit", []) self.considerError(lastError, None) return (_G_apply_924, self.currentError) @@ -3045,7 +3045,7 @@ def rule_opt_gene_expr(self): _locals = {'self': self} self.locals['opt_gene_expr'] = _locals def _G_or_929(): - self._trace('', (13120, 13130), self.input.position) + self._trace('', (13054, 13064), self.input.position) _G_apply_930, lastError = self._apply(self.rule_paren_gene, "paren_gene", []) self.considerError(lastError, None) return (_G_apply_930, self.currentError) @@ -3064,14 +3064,14 @@ def _G_or_931(): def rule_paren_gene(self): _locals = {'self': self} self.locals['paren_gene'] = _locals - self._trace('', (13166, 13170), self.input.position) + self._trace('', (13100, 13104), self.input.position) _G_exactly_936, lastError = self.exactly('(') self.considerError(lastError, 'paren_gene') - self._trace('', (13170, 13182), self.input.position) + self._trace('', (13104, 13116), self.input.position) _G_apply_937, lastError = self._apply(self.rule_gene_symbol, "gene_symbol", []) self.considerError(lastError, 'paren_gene') _locals['symbol'] = _G_apply_937 - self._trace('', (13189, 13193), self.input.position) + self._trace('', (13123, 13127), self.input.position) _G_exactly_938, lastError = self.exactly(')') self.considerError(lastError, 'paren_gene') _G_python_940, lastError = eval(self._G_expr_939, self.globals, _locals), None @@ -3083,30 +3083,30 @@ def rule_gene_symbol(self): _locals = {'self': self} self.locals['gene_symbol'] = _locals def _G_consumedby_941(): - self._trace('', (13219, 13225), self.input.position) + self._trace('', (13153, 13159), self.input.position) _G_apply_942, lastError = self._apply(self.rule_letter, "letter", []) self.considerError(lastError, None) def _G_many1_943(): def _G_or_944(): - self._trace('', (13227, 13240), self.input.position) + self._trace('', (13161, 13174), self.input.position) _G_apply_945, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) self.considerError(lastError, None) return (_G_apply_945, self.currentError) def _G_or_946(): def _G_or_947(): - self._trace('', (13244, 13247), self.input.position) + self._trace('', (13178, 13181), self.input.position) _G_exactly_948, lastError = self.exactly('-') self.considerError(lastError, None) return (_G_exactly_948, self.currentError) def _G_or_949(): - self._trace('', (13248, 13251), self.input.position) + self._trace('', (13182, 13185), self.input.position) _G_exactly_950, lastError = self.exactly('_') self.considerError(lastError, None) return (_G_exactly_950, self.currentError) _G_or_951, lastError = self._or([_G_or_947, _G_or_949]) self.considerError(lastError, None) def _G_lookahead_952(): - self._trace('', (13255, 13268), self.input.position) + self._trace('', (13189, 13202), self.input.position) _G_apply_953, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) self.considerError(lastError, None) return (_G_apply_953, self.currentError) @@ -3150,7 +3150,7 @@ def _G_lookahead_952(): _G_expr_469 = compile("hgvs.edit.AARefAlt(ref='',alt='')", '', 'eval') _G_expr_477 = compile('iv._set_uncertain()', '', 'eval') _G_expr_526 = compile('hgvs.location.Interval(start,end)', '', 'eval') - _G_expr_530 = compile('hgvs.location.Interval(start,copy.deepcopy(start))', '', 'eval') + _G_expr_530 = compile('hgvs.location.Interval(start,None)', '', 'eval') _G_expr_564 = compile('hgvs.location.BaseOffsetInterval(start,end)', '', 'eval') _G_expr_568 = compile('hgvs.location.BaseOffsetInterval(start,copy.deepcopy(start))', '', 'eval') _G_expr_588 = compile('hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end._set_uncertain())', '', 'eval') diff --git a/src/hgvs/location.py b/src/hgvs/location.py index 25e88d75..b2c97201 100644 --- a/src/hgvs/location.py +++ b/src/hgvs/location.py @@ -15,6 +15,7 @@ * :class:`Interval` -- an interval of Positions """ +import copy from functools import total_ordering import attr @@ -143,7 +144,7 @@ def validate(self): ) return (ValidationLevel.VALID, None) - def _format_pos(self)->str: + def _format_pos(self) -> str: self.validate() base_str = ( "?" @@ -331,6 +332,10 @@ class Interval(object): end = attr.ib(default=None) uncertain = attr.ib(default=False) + def __attrs_post_init__(self): + if self.end is None: + self.end = copy.deepcopy(self.start) + def validate(self): if self.start: (res, msg) = self.start.validate() @@ -356,9 +361,11 @@ def validate(self): def format(self, conf=None): if self.start is None: return "" - if self.end is None or self.start == self.end: + if (self.end is None or self.start == self.end) and not self.uncertain: return self.start.format(conf) - iv = self.start.format(conf) + "_" + self.end.format(conf) + iv = self.start.format(conf) + if self.end != self.start: + iv = iv + "_" + self.end.format(conf) return "(" + iv + ")" if self.uncertain else iv __str__ = format diff --git a/tests/test_hgvs_location.py b/tests/test_hgvs_location.py index 3bc4e2db..5f7ec925 100644 --- a/tests/test_hgvs_location.py +++ b/tests/test_hgvs_location.py @@ -214,13 +214,25 @@ def sp(i): return hgvs.location.SimplePosition(i) hgvs.location.Interval(sp(10), sp(10), uncertain=True), hgvs.location.Interval(sp(30), sp(40), uncertain=True) ) - self.assertEqual("10_(30_40)", str(ival3)) + self.assertEqual("(10)_(30_40)", str(ival3)) ival4 = hgvs.location.Interval( + hgvs.location.Interval(sp(10), sp(10), uncertain=False), + hgvs.location.Interval(sp(30), sp(40), uncertain=True) + ) + self.assertEqual("10_(30_40)", str(ival4)) + + ival5 = hgvs.location.Interval( hgvs.location.Interval(sp(10), sp(20), uncertain=True), hgvs.location.Interval(sp(30), sp(30), uncertain=True) ) - self.assertEqual("(10_20)_30", str(ival4)) + self.assertEqual("(10_20)_(30)", str(ival5)) + + ival6 = hgvs.location.Interval( + hgvs.location.Interval(sp(10), sp(20), uncertain=True), + hgvs.location.Interval(sp(30), sp(30), uncertain=False) + ) + self.assertEqual("(10_20)_30", str(ival6)) if __name__ == "__main__": diff --git a/tests/test_hgvs_sequencevariant.py b/tests/test_hgvs_sequencevariant.py index 7dabc149..59550d82 100644 --- a/tests/test_hgvs_sequencevariant.py +++ b/tests/test_hgvs_sequencevariant.py @@ -125,6 +125,40 @@ def test_uncertain(self): self.assertEqual(v2.posedit.pos.end.uncertain, True) self.assertEqual(type(v2.posedit.edit).__name__, "NARefAlt") + # TODO add to parser test cases + v3s = "NC_000005.9:g.(90136803_90159675)dup" + v3 = self.hp.parse(v3s) + + # Interval itself is uncertain, but positions are certain + self.assertEqual(v3s, str(v3)) + self.assertEqual(v3.posedit.pos.uncertain, True) + self.assertEqual(v3.posedit.pos.start.uncertain, False) + self.assertEqual(v3.posedit.pos.end.uncertain, False) + self.assertEqual(v3.posedit.pos.start.base, 90136803) + self.assertEqual(v3.posedit.pos.end.base, 90159675) + + + v4s = "NC_000005.9:g.(90136803)_(90159675)dup" + v4 = self.hp.parse(v4s) + self.assertEqual(v4s, str(v4)) + self.assertEqual(v4.posedit.pos.uncertain, False) + self.assertEqual(v4.posedit.pos.start.uncertain, True) + self.assertEqual(str(v4.posedit.pos.start), "(90136803)") + self.assertEqual(str(v4.posedit.pos.end), "(90159675)") + self.assertEqual(v4.posedit.pos.end.uncertain, True) + self.assertEqual(v4.posedit.pos.start.start.base, 90136803) + self.assertEqual(v4.posedit.pos.end.start.base, 90159675) + + + # Test that the start and end positions are not the same object + v4.posedit.pos.start.end.base = 90136804 + self.assertTrue(v4.posedit.pos.start.start is not v4.posedit.pos.start.end) + self.assertEqual(v4.posedit.pos.start.end.base, 90136804) + self.assertEqual(v4.posedit.pos.start.start.base, 90136803) + + self.assertEqual("NC_000005.9:g.(90136803_90136804)_(90159675)dup", str(v4)) + + def test_partial_uncertain_projection(self): data = [ ("NC_000009.11:g.108337304_(108337428_?)del", False, True, From 8ddecd1119695b009b002de2f5a86347b07c9bd6 Mon Sep 17 00:00:00 2001 From: Andreas Prlic Date: Mon, 20 Jan 2025 08:57:08 -0800 Subject: [PATCH 19/25] updating test cache --- tests/data/cache-py3.hdp | Bin 936693 -> 42735 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/data/cache-py3.hdp b/tests/data/cache-py3.hdp index 97ad36b08f8550166cbd01a71bcb2fc20da1753b..25eb16ebd106eb5fb449e1da4e780c3395124955 100644 GIT binary patch delta 20 ccmex5)$;vWCbkBasZW+MY-D@BjHy%)0BCaw6aWAK literal 936693 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�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 Date: Mon, 20 Jan 2025 10:42:52 -0800 Subject: [PATCH 20/25] adding a unit test for the examples from #225 --- .pre-commit-config.yaml | 18 +-- examples/creating-a-variant.ipynb | 3 +- examples/hgvs-poster.ipynb | 2 +- pyproject.toml | 7 +- src/hgvs/alignmentmapper.py | 72 +++++++--- src/hgvs/location.py | 130 ++++++++++++----- src/hgvs/variantmapper.py | 85 ++++++++--- tests/data/cache-py3.hdp | Bin 42735 -> 1220363 bytes tests/test_hgvs_sequencevariant.py | 224 +++++++++++++++++++++++------ 9 files changed, 410 insertions(+), 131 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 581fa240..0a15e7e3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,14 +1,16 @@ repos: -- repo: local - hooks: - - id: pyright - name: pyright - entry: pyright - language: system - types: [python] +# - repo: local +# hooks: +# - id: pyright +# name: pyright +# entry: pyright +# language: system +# types: [python] - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.4.4 + rev: v0.9.2 hooks: - id: ruff + types_or: [ python, pyi ] - id: ruff-format + types_or: [ python, pyi ] args: [ --check ] diff --git a/examples/creating-a-variant.ipynb b/examples/creating-a-variant.ipynb index 47601b50..cb897cbb 100644 --- a/examples/creating-a-variant.ipynb +++ b/examples/creating-a-variant.ipynb @@ -123,7 +123,8 @@ "metadata": {}, "outputs": [], "source": [ - "import hgvs.edit, hgvs.posedit" + "import hgvs.edit\n", + "import hgvs.posedit" ] }, { diff --git a/examples/hgvs-poster.ipynb b/examples/hgvs-poster.ipynb index 4027d3ae..a1d6462d 100644 --- a/examples/hgvs-poster.ipynb +++ b/examples/hgvs-poster.ipynb @@ -43,7 +43,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "collapsed": false }, diff --git a/pyproject.toml b/pyproject.toml index f77889d0..7dc318d5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ keywords = [ "hgvs", "variation" ] -dynamic = ["version", "optional-dependencies"] +dynamic = ["version"] dependencies=[ "attrs >= 17.4.0", # https://github.com/biocommons/hgvs/issues/473 @@ -44,7 +44,10 @@ dependencies=[ "pre-commit ~= 3.4", "psycopg2", ] - +[project.optional-dependencies] +dev = [ + "parameterized" +] [project.urls] "Homepage" = "https://github.com/biocommons/hgvs" "Bug Tracker" = "https://github.com/biocommons/hgvs/issues" diff --git a/src/hgvs/alignmentmapper.py b/src/hgvs/alignmentmapper.py index f87e5b72..d6a0b998 100644 --- a/src/hgvs/alignmentmapper.py +++ b/src/hgvs/alignmentmapper.py @@ -26,7 +26,6 @@ # g. ... 123 124 125 126 127 128 129 130 131 132 133 ... # - from __future__ import absolute_import, division, print_function, unicode_literals from typing import Optional @@ -113,11 +112,16 @@ def __init__(self, hdp, tx_ac, alt_ac, alt_aln_method): # is that exons are adjacent. Assert that here. sorted_tx_exons = sorted(tx_exons, key=lambda e: e["ord"]) for i in range(1, len(sorted_tx_exons)): - if sorted_tx_exons[i - 1]["tx_end_i"] != sorted_tx_exons[i]["tx_start_i"]: + if ( + sorted_tx_exons[i - 1]["tx_end_i"] + != sorted_tx_exons[i]["tx_start_i"] + ): raise HGVSDataNotAvailableError( "AlignmentMapper(tx_ac={self.tx_ac}, " "alt_ac={self.alt_ac}, alt_aln_method={self.alt_aln_method}): " - "Exons {a} and {b} are not adjacent".format(self=self, a=i, b=i + 1) + "Exons {a} and {b} are not adjacent".format( + self=self, a=i, b=i + 1 + ) ) self.strand = tx_exons[0]["alt_strand"] @@ -143,9 +147,9 @@ def __init__(self, hdp, tx_ac, alt_ac, alt_aln_method): self.tgt_len = sum(tx_identity_info["lengths"]) self.cigarmapper = None - assert not ( - (self.cds_start_i is None) ^ (self.cds_end_i is None) - ), "CDS start and end must both be defined or neither defined" + assert not ((self.cds_start_i is None) ^ (self.cds_end_i is None)), ( + "CDS start and end must both be defined or neither defined" + ) def __str__(self): return ( @@ -155,7 +159,9 @@ def __str__(self): ) ) - def g_to_n(self, g_interval: Interval, strict_bounds:Optional[bool]=None)->BaseOffsetInterval: + def g_to_n( + self, g_interval: Interval, strict_bounds: Optional[bool] = None + ) -> BaseOffsetInterval: """convert a genomic (g.) interval to a transcript cDNA (n.) interval""" if strict_bounds is None: @@ -197,18 +203,18 @@ def g_to_n(self, g_interval: Interval, strict_bounds:Optional[bool]=None)->BaseO base=_zbc_to_hgvs(frs), offset=frs_offset, datum=Datum.SEQ_START, - uncertain=g_interval.start.uncertain + uncertain=g_interval.start.uncertain, ), end=hgvs.location.BaseOffsetPosition( base=_zbc_to_hgvs(fre), offset=fre_offset, datum=Datum.SEQ_START, - uncertain=g_interval.end.uncertain + uncertain=g_interval.end.uncertain, ), uncertain=frs_cigar in "DI" or fre_cigar in "DI", ) - def n_to_g(self, n_interval, strict_bounds=None) ->Interval: + def n_to_g(self, n_interval, strict_bounds=None) -> Interval: """convert a transcript (n.) interval to a genomic (g.) interval""" if strict_bounds is None: @@ -233,14 +239,32 @@ def n_to_g(self, n_interval, strict_bounds=None) ->Interval: grs, gre = grs + self.gc_offset + 1, gre + self.gc_offset + 1 gs, ge = grs + start_offset, gre + end_offset + if n_interval.start.uncertain: + start = hgvs.location.Interval( + start=hgvs.location.SimplePosition(uncertain=False), + end=hgvs.location.SimplePosition(gs, uncertain=False), + uncertain=True, + ) + else: + start = hgvs.location.SimplePosition(gs, uncertain=False) + + if n_interval.end.uncertain: + end = hgvs.location.Interval( + start=hgvs.location.SimplePosition(ge, uncertain=False), + end=hgvs.location.SimplePosition(uncertain=False), + uncertain=True, + ) + else: + end = hgvs.location.SimplePosition(ge, uncertain=False) + # The returned interval would be uncertain when locating at alignment gaps return hgvs.location.Interval( - start=hgvs.location.SimplePosition(gs, uncertain=n_interval.start.uncertain), - end=hgvs.location.SimplePosition(ge, uncertain=n_interval.end.uncertain), + start=start, + end=end, uncertain=grs_cigar in "DI" or gre_cigar in "DI", ) - def n_to_c(self, n_interval:Interval, strict_bounds:Optional[bool]=None): + def n_to_c(self, n_interval: Interval, strict_bounds: Optional[bool] = None): """convert a transcript cDNA (n.) interval to a transcript CDS (c.) interval""" if strict_bounds is None: @@ -255,7 +279,9 @@ def n_to_c(self, n_interval:Interval, strict_bounds:Optional[bool]=None): ) ) - if strict_bounds and (n_interval.start.base <= 0 or n_interval.end.base > self.tgt_len): + if strict_bounds and ( + n_interval.start.base <= 0 or n_interval.end.base > self.tgt_len + ): raise HGVSInvalidIntervalError( "The given coordinate is outside the bounds of the reference sequence." ) @@ -270,10 +296,9 @@ def pos_n_to_c(pos): else: c = pos.base - self.cds_end_i c_datum = Datum.CDS_END - return hgvs.location.BaseOffsetPosition(base=c, - offset=pos.offset, - datum=c_datum, - uncertain=pos.uncertain) + return hgvs.location.BaseOffsetPosition( + base=c, offset=pos.offset, datum=c_datum, uncertain=pos.uncertain + ) c_interval = hgvs.location.BaseOffsetInterval( start=pos_n_to_c(n_interval.start), @@ -306,9 +331,15 @@ def pos_c_to_n(pos): n -= 1 if n <= 0 or n > self.tgt_len: if strict_bounds: - raise HGVSInvalidIntervalError(f"c.{pos} coordinate is out of bounds") + raise HGVSInvalidIntervalError( + f"c.{pos} coordinate is out of bounds" + ) + return hgvs.location.BaseOffsetPosition( - base=n, offset=pos.offset, datum=Datum.SEQ_START + base=n, + offset=pos.offset, + datum=Datum.SEQ_START, + uncertain=pos.uncertain, ) n_interval = hgvs.location.BaseOffsetInterval( @@ -316,6 +347,7 @@ def pos_c_to_n(pos): end=pos_c_to_n(c_interval.end), uncertain=c_interval.uncertain, ) + return n_interval def g_to_c(self, g_interval, strict_bounds=None): diff --git a/src/hgvs/location.py b/src/hgvs/location.py index c9b9baa3..c1f476bf 100644 --- a/src/hgvs/location.py +++ b/src/hgvs/location.py @@ -43,7 +43,10 @@ def format(self, conf): def __repr__(self): return "{0}({1})".format( self.__class__.__name__, - ", ".join((a.name + "=" + str(getattr(self, a.name))) for a in self.__attrs_attrs__), + ", ".join( + (a.name + "=" + str(getattr(self, a.name))) + for a in self.__attrs_attrs__ + ), ) @property @@ -62,22 +65,31 @@ def validate(self): return (ValidationLevel.VALID, None) def __sub__(lhs, rhs): - assert type(lhs) == type(rhs), "Cannot substract coordinates of different representations" + assert type(lhs) is type(rhs), ( + "Cannot substract coordinates of different representations" + ) return lhs.base - rhs.base def __eq__(lhs, rhs): - assert type(lhs) == type(rhs), "Cannot compare coordinates of different representations" - if lhs.uncertain or rhs.uncertain: - raise HGVSUnsupportedOperationError("Cannot compare coordinates of uncertain positions") - return lhs.base == rhs.base + assert type(lhs) is type(rhs), ( + "Cannot compare coordinates of different representations" + ) + + return lhs.base == rhs.base and lhs.uncertain == rhs.uncertain def __lt__(lhs, rhs): - assert type(lhs) == type(rhs), "Cannot compare coordinates of different representations" + assert type(lhs) is type(rhs), ( + "Cannot compare coordinates of different representations" + ) if lhs.uncertain or rhs.uncertain: - raise HGVSUnsupportedOperationError("Cannot compare coordinates of uncertain positions") + raise HGVSUnsupportedOperationError( + "Cannot compare coordinates of uncertain positions" + ) if lhs.base is None and rhs.base is None: - raise HGVSUnsupportedOperationError("Cannot compare two positions without bases") + raise HGVSUnsupportedOperationError( + "Cannot compare two positions without bases" + ) # imprecise positions can be on both sides of an interval # This is weird, but because an unknown breakpoint can be expressed on both sides @@ -154,7 +166,11 @@ def _format_pos(self) -> str: else str(self.base) ) offset_str = ( - "+?" if self.offset is None else "" if self.offset == 0 else "%+d" % self.offset + "+?" + if self.offset is None + else "" + if self.offset == 0 + else "%+d" % self.offset ) pos = base_str + offset_str return pos @@ -169,7 +185,10 @@ def format(self, conf): def __repr__(self): return "{0}({1})".format( self.__class__.__name__, - ", ".join((a.name + "=" + str(getattr(self, a.name))) for a in self.__attrs_attrs__), + ", ".join( + (a.name + "=" + str(getattr(self, a.name))) + for a in self.__attrs_attrs__ + ), ) def _set_uncertain(self): @@ -188,7 +207,9 @@ def is_intronic(self): return self.offset is None or self.offset != 0 def __sub__(lhs, rhs): - assert type(lhs) == type(rhs), "Cannot substract coordinates of different representations" + assert type(lhs) is type(rhs), ( + "Cannot substract coordinates of different representations" + ) if lhs.datum != rhs.datum: raise HGVSUnsupportedOperationError( "Interval length measured from different datums is ill-defined" @@ -203,17 +224,25 @@ def __sub__(lhs, rhs): return lhs.base - rhs.base - straddles_zero def __eq__(lhs, rhs): - assert type(lhs) == type(rhs), "Cannot compare coordinates of different representations" + assert type(lhs) is type(rhs), ( + "Cannot compare coordinates of different representations" + ) - return (lhs.datum == rhs.datum and - lhs.base == rhs.base and - lhs.offset == rhs.offset and - lhs.uncertain == rhs.uncertain) + return ( + lhs.datum == rhs.datum + and lhs.base == rhs.base + and lhs.offset == rhs.offset + and lhs.uncertain == rhs.uncertain + ) def __lt__(lhs, rhs): - assert type(lhs) == type(rhs), "Cannot compare coordinates of different representations" + assert type(lhs) is type(rhs), ( + "Cannot compare coordinates of different representations" + ) if lhs.uncertain or rhs.uncertain: - raise HGVSUnsupportedOperationError("Cannot compare coordinates of uncertain positions") + raise HGVSUnsupportedOperationError( + "Cannot compare coordinates of uncertain positions" + ) if lhs.datum == rhs.datum: if lhs.base == rhs.base: return lhs.offset < rhs.offset @@ -273,7 +302,10 @@ def format(self, conf=None): def __repr__(self): return "{0}({1})".format( self.__class__.__name__, - ", ".join((a.name + "=" + str(getattr(self, a.name))) for a in self.__attrs_attrs__), + ", ".join( + (a.name + "=" + str(getattr(self, a.name))) + for a in self.__attrs_attrs__ + ), ) @property @@ -292,37 +324,59 @@ def is_uncertain(self): return self.uncertain or self.base is None or self.aa is None def __sub__(lhs, rhs): - assert type(lhs) == type(rhs), "Cannot substract coordinates of different representations" + assert type(lhs) is type(rhs), ( + "Cannot substract coordinates of different representations" + ) return lhs.base - rhs.base def __eq__(lhs, rhs): - assert type(lhs) == type(rhs), "Cannot compare coordinates of different representations" + assert type(lhs) is type(rhs), ( + "Cannot compare coordinates of different representations" + ) if lhs.uncertain or rhs.uncertain: - raise HGVSUnsupportedOperationError("Cannot compare coordinates of uncertain positions") + raise HGVSUnsupportedOperationError( + "Cannot compare coordinates of uncertain positions" + ) return lhs.base == rhs.base and lhs.aa == rhs.aa def __lt__(lhs, rhs): - assert type(lhs) == type(rhs), "Cannot compare coordinates of different representations" + assert type(lhs) is type(rhs), ( + "Cannot compare coordinates of different representations" + ) if lhs.uncertain or rhs.uncertain: - raise HGVSUnsupportedOperationError("Cannot compare coordinates of uncertain positions") + raise HGVSUnsupportedOperationError( + "Cannot compare coordinates of uncertain positions" + ) return lhs.base < rhs.base def __gt__(lhs, rhs): - assert type(lhs) == type(rhs), "Cannot compare coordinates of different representations" + assert type(lhs) is type(rhs), ( + "Cannot compare coordinates of different representations" + ) if lhs.uncertain or rhs.uncertain: - raise HGVSUnsupportedOperationError("Cannot compare coordinates of uncertain positions") + raise HGVSUnsupportedOperationError( + "Cannot compare coordinates of uncertain positions" + ) return lhs.base > rhs.base def __le__(lhs, rhs): - assert type(lhs) == type(rhs), "Cannot compare coordinates of different representations" + assert type(lhs) is type(rhs), ( + "Cannot compare coordinates of different representations" + ) if lhs.uncertain or rhs.uncertain: - raise HGVSUnsupportedOperationError("Cannot compare coordinates of uncertain positions") + raise HGVSUnsupportedOperationError( + "Cannot compare coordinates of uncertain positions" + ) return lhs.base <= rhs.base def __ge__(lhs, rhs): - assert type(lhs) == type(rhs), "Cannot compare coordinates of different representations" + assert type(lhs) is type(rhs), ( + "Cannot compare coordinates of different representations" + ) if lhs.uncertain or rhs.uncertain: - raise HGVSUnsupportedOperationError("Cannot compare coordinates of uncertain positions") + raise HGVSUnsupportedOperationError( + "Cannot compare coordinates of uncertain positions" + ) return lhs.base >= rhs.base @@ -354,7 +408,10 @@ def validate(self): if self.start <= self.end: return (ValidationLevel.VALID, None) else: - return (ValidationLevel.ERROR, "base start position must be <= end position") + return ( + ValidationLevel.ERROR, + "base start position must be <= end position", + ) except HGVSUnsupportedOperationError as err: return (ValidationLevel.WARNING, str(err)) @@ -373,7 +430,10 @@ def format(self, conf=None): def __repr__(self): return "{0}({1})".format( self.__class__.__name__, - ", ".join((a.name + "=" + str(getattr(self, a.name))) for a in self.__attrs_attrs__), + ", ".join( + (a.name + "=" + str(getattr(self, a.name))) + for a in self.__attrs_attrs__ + ), ) def _set_uncertain(self): @@ -406,12 +466,12 @@ def format(self, conf=None): s = self.start._format_pos() if self.start.is_uncertain: - s_str = f'(?_{s})' + s_str = f"(?_{s})" else: s_str = s e = self.end._format_pos() if self.end.is_uncertain: - e_str = f'({e}_?)' + e_str = f"({e}_?)" else: e_str = e iv = s_str + "_" + e_str diff --git a/src/hgvs/variantmapper.py b/src/hgvs/variantmapper.py index 39f92d69..ef7ed219 100644 --- a/src/hgvs/variantmapper.py +++ b/src/hgvs/variantmapper.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- -"""Projects variants between sequences using AlignmentMapper. - -""" +"""Projects variants between sequences using AlignmentMapper.""" import copy import logging @@ -97,7 +95,9 @@ def __init__( # ############################################################################ # g⟷t - def g_to_t(self, var_g, tx_ac, alt_aln_method=hgvs.global_config.mapping.alt_aln_method): + def g_to_t( + self, var_g, tx_ac, alt_aln_method=hgvs.global_config.mapping.alt_aln_method + ): if not (var_g.type == "g"): raise HGVSInvalidVariantError("Expected a g. variant; got " + str(var_g)) if self._validator: @@ -116,9 +116,13 @@ def g_to_t(self, var_g, tx_ac, alt_aln_method=hgvs.global_config.mapping.alt_aln ) return var_out - def t_to_g(self, var_t, alt_ac, alt_aln_method=hgvs.global_config.mapping.alt_aln_method): + def t_to_g( + self, var_t, alt_ac, alt_aln_method=hgvs.global_config.mapping.alt_aln_method + ): if var_t.type not in "cn": - raise HGVSInvalidVariantError("Expected a c. or n. variant; got " + str(var_t)) + raise HGVSInvalidVariantError( + "Expected a c. or n. variant; got " + str(var_t) + ) if self._validator: self._validator.validate(var_t) var_t.fill_ref(self.hdp) @@ -134,7 +138,9 @@ def t_to_g(self, var_t, alt_ac, alt_aln_method=hgvs.global_config.mapping.alt_al # ############################################################################ # g⟷n - def g_to_n(self, var_g, tx_ac, alt_aln_method=hgvs.global_config.mapping.alt_aln_method): + def g_to_n( + self, var_g, tx_ac, alt_aln_method=hgvs.global_config.mapping.alt_aln_method + ): """Given a parsed g. variant, return a n. variant on the specified transcript using the specified alignment method (default is "splign" from NCBI). @@ -160,7 +166,9 @@ def g_to_n(self, var_g, tx_ac, alt_aln_method=hgvs.global_config.mapping.alt_aln and not hgvs.global_config.mapping.strict_bounds and not mapper.g_interval_is_inbounds(var_g.posedit.pos) ): - _logger.info("Renormalizing out-of-bounds minus strand variant on genomic sequence") + _logger.info( + "Renormalizing out-of-bounds minus strand variant on genomic sequence" + ) var_g = self.left_normalizer.normalize(var_g) var_g.fill_ref(self.hdp) @@ -196,7 +204,9 @@ def g_to_n(self, var_g, tx_ac, alt_aln_method=hgvs.global_config.mapping.alt_aln self._update_gene_symbol(var_n, var_g.gene) return var_n - def n_to_g(self, var_n, alt_ac, alt_aln_method=hgvs.global_config.mapping.alt_aln_method): + def n_to_g( + self, var_n, alt_ac, alt_aln_method=hgvs.global_config.mapping.alt_aln_method + ): """Given a parsed n. variant, return a g. variant on the specified transcript using the specified alignment method (default is "splign" from NCBI). @@ -241,7 +251,9 @@ def n_to_g(self, var_n, alt_ac, alt_aln_method=hgvs.global_config.mapping.alt_al # ############################################################################ # g⟷c - def g_to_c(self, var_g, tx_ac, alt_aln_method=hgvs.global_config.mapping.alt_aln_method): + def g_to_c( + self, var_g, tx_ac, alt_aln_method=hgvs.global_config.mapping.alt_aln_method + ): """Given a parsed g. variant, return a c. variant on the specified transcript using the specified alignment method (default is "splign" from NCBI). @@ -290,7 +302,9 @@ def g_to_c(self, var_g, tx_ac, alt_aln_method=hgvs.global_config.mapping.alt_aln self._update_gene_symbol(var_c, var_g.gene) return var_c - def c_to_g(self, var_c, alt_ac, alt_aln_method=hgvs.global_config.mapping.alt_aln_method): + def c_to_g( + self, var_c, alt_ac, alt_aln_method=hgvs.global_config.mapping.alt_aln_method + ): """Given a parsed c. variant, return a g. variant on the specified transcript using the specified alignment method (default is "splign" from NCBI). @@ -429,7 +443,9 @@ def c_to_p(self, var_c, pro_ac=None): """ if not (var_c.type == "c"): - raise HGVSInvalidVariantError("Expected a cDNA (c.) variant; got " + str(var_c)) + raise HGVSInvalidVariantError( + "Expected a cDNA (c.) variant; got " + str(var_c) + ) if self._validator: self._validator.validate(var_c) reference_data = RefTranscriptData(self.hdp, var_c.ac, pro_ac) @@ -460,17 +476,25 @@ def _replace_reference(self, var): """fetch reference sequence for variant and update (in-place) if necessary""" if var.type not in "cgmnr": - raise HGVSUnsupportedOperationError("Can only update references for type c, g, m, n, r") + raise HGVSUnsupportedOperationError( + "Can only update references for type c, g, m, n, r" + ) if var.posedit.edit.type in ("ins", "con"): # these types have no reference sequence (zero-width), so return as-is return var pos = var.posedit.pos - if (isinstance(pos.start, hgvs.location.BaseOffsetPosition) and pos.start.offset != 0) or ( - isinstance(pos.end, hgvs.location.BaseOffsetPosition) and pos.end.offset != 0 + if ( + isinstance(pos.start, hgvs.location.BaseOffsetPosition) + and pos.start.offset != 0 + ) or ( + isinstance(pos.end, hgvs.location.BaseOffsetPosition) + and pos.end.offset != 0 ): - _logger.info("Can't update reference sequence for intronic variant {}".format(var)) + _logger.info( + "Can't update reference sequence for intronic variant {}".format(var) + ) return var # For c. variants, we need coords on underlying sequences @@ -483,15 +507,22 @@ def _replace_reference(self, var): pos = var.posedit.pos if pos.start.uncertain: - seq_start = pos.start.end.base - 1 + # pos can be either a BaseOffsetPosition or an Interval + if isinstance(pos.start, Interval): + seq_start = pos.start.end.base - 1 + else: + seq_start = pos.start.base - 1 else: if isinstance(pos.start, Interval): - seq_start = pos.start.start.base -1 + seq_start = pos.start.start.base - 1 else: seq_start = pos.start.base - 1 if pos.end.uncertain: - seq_end = pos.end.start.base + if isinstance(pos.end, Interval): + seq_end = pos.end.start.base + else: + seq_end = pos.end.base else: if isinstance(pos.end, Interval): seq_end = pos.end.end.base @@ -514,7 +545,9 @@ def _replace_reference(self, var): edit = var.posedit.edit if edit.ref != seq: _logger.debug( - "Replaced reference sequence in {var} with {seq}".format(var=var, seq=seq) + "Replaced reference sequence in {var} with {seq}".format( + var=var, seq=seq + ) ) edit.ref = seq @@ -566,7 +599,9 @@ def _convert_edit_check_strand(strand, edit_in): ref = reverse_complement(edit_in.ref) edit_out = hgvs.edit.Inv(ref=ref) else: - raise NotImplementedError("Only NARefAlt/Dup/Inv types are currently implemented") + raise NotImplementedError( + "Only NARefAlt/Dup/Inv types are currently implemented" + ) return edit_out def _get_altered_sequence(self, strand, interval, var): @@ -588,12 +623,16 @@ def _get_altered_sequence(self, strand, interval, var): elif edit.type == "dup": seq.insert(pos_end, "".join(seq[pos_start:pos_end])) elif edit.type == "inv": - seq[pos_start:pos_end] = list(reverse_complement("".join(seq[pos_start:pos_end]))) + seq[pos_start:pos_end] = list( + reverse_complement("".join(seq[pos_start:pos_end])) + ) elif edit.type == "identity": pass else: raise HGVSUnsupportedOperationError( - "Getting altered sequence for {type} is unsupported".format(type=edit.type) + "Getting altered sequence for {type} is unsupported".format( + type=edit.type + ) ) seq = "".join(seq) diff --git a/tests/data/cache-py3.hdp b/tests/data/cache-py3.hdp index 25eb16ebd106eb5fb449e1da4e780c3395124955..aa65c9ebaa8971dc6bf953c72ac7dbe9d89bae85 100644 GIT binary patch literal 1220363 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

lTkw@_@pNYY*w{M(Bpi?3{&zZ=S4A_W&o`qwjj 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") def test_fill_ref(self): - # fill reference for sequence variants var = self.hp.parse_hgvs_variant("NM_001166478.1:c.31_32del").fill_ref(self.hdp) - self.assertEqual(var.format({"max_ref_length": None}), "NM_001166478.1:c.31_32delTT") + self.assertEqual( + var.format({"max_ref_length": None}), "NM_001166478.1:c.31_32delTT" + ) - var = self.hp.parse_hgvs_variant("NM_001166478.1:c.31_32del2").fill_ref(self.hdp) - self.assertEqual(var.format({"max_ref_length": None}), "NM_001166478.1:c.31_32delTT") + var = self.hp.parse_hgvs_variant("NM_001166478.1:c.31_32del2").fill_ref( + self.hdp + ) + self.assertEqual( + var.format({"max_ref_length": None}), "NM_001166478.1:c.31_32delTT" + ) - var = self.hp.parse_hgvs_variant("NM_001166478.1:c.2_7delinsTTTAGA").fill_ref(self.hdp) + var = self.hp.parse_hgvs_variant("NM_001166478.1:c.2_7delinsTTTAGA").fill_ref( + self.hdp + ) self.assertEqual( - var.format({"max_ref_length": None}), "NM_001166478.1:c.2_7delTGAAGAinsTTTAGA" + var.format({"max_ref_length": None}), + "NM_001166478.1:c.2_7delTGAAGAinsTTTAGA", ) var = self.hp.parse_hgvs_variant("NM_001166478.1:c.35_36dup").fill_ref(self.hdp) - self.assertEqual(var.format({"max_ref_length": None}), "NM_001166478.1:c.35_36dupTC") + self.assertEqual( + var.format({"max_ref_length": None}), "NM_001166478.1:c.35_36dupTC" + ) - var = self.hp.parse_hgvs_variant("NM_001166478.1:c.18_19insACT").fill_ref(self.hdp) - self.assertEqual(var.format({"max_ref_length": None}), "NM_001166478.1:c.18_19insACT") + var = self.hp.parse_hgvs_variant("NM_001166478.1:c.18_19insACT").fill_ref( + self.hdp + ) + self.assertEqual( + var.format({"max_ref_length": None}), "NM_001166478.1:c.18_19insACT" + ) var = self.hp.parse_hgvs_variant("NM_001166478.1:c.31=").fill_ref(self.hdp) self.assertEqual(var.format({"max_ref_length": None}), "NM_001166478.1:c.31T=") def test_format(self): - # Global default settings var = self.hp.parse_hgvs_variant("NP_001628.1:p.Gly528Arg") self.assertEqual(str(var), "NP_001628.1:p.Gly528Arg") @@ -85,13 +99,21 @@ def test_format(self): # Remove reference sequence var = self.hp.parse_hgvs_variant("NM_001166478.1:c.31_32delTT") self.assertEqual(str(var), "NM_001166478.1:c.31_32del") - self.assertEqual(var.format(conf={"max_ref_length": 1}), "NM_001166478.1:c.31_32del") - self.assertEqual(var.format(conf={"max_ref_length": 2}), "NM_001166478.1:c.31_32delTT") - self.assertEqual(var.format(conf={"max_ref_length": None}), "NM_001166478.1:c.31_32delTT") + self.assertEqual( + var.format(conf={"max_ref_length": 1}), "NM_001166478.1:c.31_32del" + ) + self.assertEqual( + var.format(conf={"max_ref_length": 2}), "NM_001166478.1:c.31_32delTT" + ) + self.assertEqual( + var.format(conf={"max_ref_length": None}), "NM_001166478.1:c.31_32delTT" + ) var = self.hp.parse_hgvs_variant("NM_001166478.1:c.31_32del2") self.assertEqual(str(var), "NM_001166478.1:c.31_32del") - self.assertEqual(var.format(conf={"max_ref_length": None}), "NM_001166478.1:c.31_32del2") + self.assertEqual( + var.format(conf={"max_ref_length": None}), "NM_001166478.1:c.31_32del2" + ) var = self.hp.parse_hgvs_variant("NM_001166478.1:c.31_32delTTinsAA") self.assertEqual(str(var), "NM_001166478.1:c.31_32delinsAA") @@ -99,10 +121,11 @@ def test_format(self): self.assertEqual(str(var), "NM_001166478.1:c.35_36dup") var = self.hp.parse_hgvs_variant("NM_001166478.1:c.31T=") self.assertEqual(str(var), "NM_001166478.1:c.31=") - self.assertEqual(var.format(conf={"max_ref_length": None}), "NM_001166478.1:c.31T=") + self.assertEqual( + var.format(conf={"max_ref_length": None}), "NM_001166478.1:c.31T=" + ) def test_uncertain(self): - vs = "NC_000005.9:g.(90136803_90144453)_(90159675_90261231)dup" v = self.hp.parse(vs) self.assertEqual(vs, str(v)) @@ -137,7 +160,6 @@ def test_uncertain(self): self.assertEqual(v3.posedit.pos.start.base, 90136803) self.assertEqual(v3.posedit.pos.end.base, 90159675) - v4s = "NC_000005.9:g.(90136803)_(90159675)dup" v4 = self.hp.parse(v4s) self.assertEqual(v4s, str(v4)) @@ -149,7 +171,6 @@ def test_uncertain(self): self.assertEqual(v4.posedit.pos.start.start.base, 90136803) self.assertEqual(v4.posedit.pos.end.start.base, 90159675) - # Test that the start and end positions are not the same object v4.posedit.pos.start.end.base = 90136804 self.assertTrue(v4.posedit.pos.start.start is not v4.posedit.pos.start.end) @@ -158,16 +179,22 @@ def test_uncertain(self): self.assertEqual("NC_000005.9:g.(90136803_90136804)_(90159675)dup", str(v4)) - def test_partial_uncertain_projection(self): data = [ - ("NC_000009.11:g.108337304_(108337428_?)del", False, True, - "NM_001079802.1:n.207_(321+10_?)del", - "NM_001079802.1:c.-10_(105+10_?)del"), - - ("NC_000009.11:g.(?_108337304)_108337428del", True, False, - "NM_001079802.1:n.(?_207)_321+10del", - "NM_001079802.1:c.(?_-10)_105+10del"), + ( + "NC_000009.11:g.108337304_(108337428_?)del", + False, + True, + "NM_001079802.1:n.207_(321+10_?)del", + "NM_001079802.1:c.-10_(105+10_?)del", + ), + ( + "NC_000009.11:g.(?_108337304)_108337428del", + True, + False, + "NM_001079802.1:n.(?_207)_321+10del", + "NM_001079802.1:c.(?_-10)_105+10del", + ), ] for hgvs_g, start_uncertain, stop_uncertain, hgvs_n, hgvs_c in data: @@ -182,19 +209,22 @@ def test_partial_uncertain_projection(self): self.assertEqual(hgvs_c, str(var_c)) def test_uncertain_projection_g_to_c_confidence(self): - data = [ - ("NC_000005.9:g.(90136803_90144453)_(90159675_90261231)dup", - "NM_032119.3:n.(?_17116-1)_(17952+1_?)dup", - "NM_032119.3:c.(?_17020-1)_(17856+1_?)dup"), - - ("NC_000019.9:g.(11211022_11213339)_(11217364_11218067)dup", - "NM_000527.5:n.(?_277-1)_(903+1_?)dup", - "NM_000527.5:c.(?_191-1)_(817+1_?)dup"), - - ("NC_000009.11:g.(?_108337304)_(108337428_?)del", - "NM_001079802.1:n.(?_207)_(321+10_?)del", - "NM_001079802.1:c.(?_-10)_(105+10_?)del"), + ( + "NC_000005.9:g.(90136803_90144453)_(90159675_90261231)dup", + "NM_032119.3:n.(?_17116-1)_(17952+1_?)dup", + "NM_032119.3:c.(?_17020-1)_(17856+1_?)dup", + ), + ( + "NC_000019.9:g.(11211022_11213339)_(11217364_11218067)dup", + "NM_000527.5:n.(?_277-1)_(903+1_?)dup", + "NM_000527.5:c.(?_191-1)_(817+1_?)dup", + ), + ( + "NC_000009.11:g.(?_108337304)_(108337428_?)del", + "NM_001079802.1:n.(?_207)_(321+10_?)del", + "NM_001079802.1:c.(?_-10)_(105+10_?)del", + ), ] for hgvs_g, hgvs_n, hgvs_c in data: @@ -206,6 +236,118 @@ def test_uncertain_projection_g_to_c_confidence(self): var_c = self.vm.g_to_c(var_g, acc) self.assertEqual(hgvs_c, str(var_c)) + @parameterized.parameterized.expand( + [ + ( + 11692, + "DEL", + "NC_000023.11:g.(133661675_133661730)_(133661850_133661926)del", + "NC_000023.11:g.(?_133661730)_(133661850_?)del", + "NM_004484.3:c.(1293_1293)-76_(1413_1413)del", + "NM_004484.3:c.(?_1293)_(1413_?)del", + ), + ( + 31562, + "DEL", + "NC_000007.14:g.(16361566_16366648)_(16369693_16391969)del", + "NC_000007.14:g.(?_16366648)_(16369693_?)del", + "NM_001101426.3:c.(535_684)+6399_(535_684)+14526del", + "NM_001101426.3:c.(?_684+6399)_(684+9444_?)del", + ), + ( + 425669, + "DEL", + "NC_000002.12:g.(?_202376935)_(202377551_202464808)del", + "NC_000002.12:g.(?_202376935)_(202377551_?)del", + "NM_001204.6:c.(?_-540)_(76+1_77-1)del", + "NM_001204.6:c.(?_-540)_(76+1_?)del", + ), + ( + 425698, + "DEL", + "NC_000002.12:g.(202377551_202464808)_(202559947_?)del", + "NC_000002.12:g.(?_202464808)_(202559947_?)del", + "NM_001204.6:c.(76+1_77-1)_(*1_?)del", + "NM_001204.6:c.(?_77-1)_(*1_?)del", + ), + ( + 220591, + "DEL", + "NC_000017.11:g.(?_58709859)_(58734342_?)del", + "NC_000017.11:g.(?_58709859)_(58734342_?)del", + "NM_058216.2:c.706-?_*120del", + "NM_058216.2:c.(?_706)_(*120_?)del", + ), + ( + 251062, + "DUP", + "NC_000019.9:g.(11211022_11213339)_(11217364_11218067)dup", + "NC_000019.9:g.(?_11213339)_(11217364_?)dup", + "NM_000527.5:c.(190+1_191-1)_(817+1_818-1)dup", + "NM_000527.5:c.(?_191-1)_(817+1_?)dup", + ), + ( + 565301, + "DUP", + "NC_000001.11:g.(216073301_216078088)_(216327655_216364952)dup", + "NC_000001.11:g.(?_216078088)_(216327655_?)dup", + "NM_206933.2:c.(784+1_785-1)_(5572+1_5573-1)dup", + "NM_206933.2:c.(?_785-1)_(5572+1_?)dup", + ), + ( + 254064, + "DUP", + "NC_000012.11:g.(?_133248801)_(133257865_?)dup", + "NC_000012.11:g.(?_133248801)_(133257865_?)dup", + "NM_006231.3:c.63-?_1794+?dup1732", + "NM_006231.3:c.(?_63)_(1794_?)dup", + ), + ( + 237630, + "DUP", + "NC_000017.10:g.(?_15133094)_(15164078_?)dup", + "NC_000017.10:g.(?_15133094)_(15164078_?)dup", + "NM_000304.3:c.-34-?_*1140dup1657", + "NM_000304.3:c.(?_-34)_(*1140_?)dup", + ), + ] + ) + def test_clinvar_uncertain_ranges( + self, + clinvar_id, + event_type, + clinvar_hgvs_g, + hgvs_hgvs_g, + clinvar_hgvs_c, + hgvs_hgvs_c, + ): + """This is a unit test for the clinvar uncertain ranges described in + issue #225: https://github.com/biocommons/hgvs/issues/225. + + This test goes in a loop -> uncertain hgvs_g -> hgvs_c -> hgvs_g. + As part of this loop we lose information about the outer confidence interval, but we retain the inner confidence internval. + That's why the hgvs_g_hgvs_g value contains only the inner interval. + """ + + var_g = self.hp.parse(clinvar_hgvs_g) + self.assertEqual(clinvar_hgvs_g, str(var_g)) + + assert not var_g.posedit.pos.uncertain + assert var_g.posedit.pos.start.uncertain + + chrom_ac = var_g.ac + tx_ac = clinvar_hgvs_c.split(":")[0] + var_c = self.vm.g_to_c(var_g, tx_ac) + self.assertEqual(hgvs_hgvs_c, str(var_c)) + + # the start/stop positions are uncertain, but the whole range is not: + assert not var_c.posedit.pos.uncertain + assert var_c.posedit.pos.start.uncertain + assert var_c.posedit.pos.end.uncertain + + var_g_reverse = self.vm.c_to_g(var_c, chrom_ac) + self.assertEqual(hgvs_hgvs_g, str(var_g_reverse)) + if __name__ == "__main__": unittest.main() From 053f6861e1097c88d47b336f1ebf99b8039fd22c Mon Sep 17 00:00:00 2001 From: Andreas Prlic Date: Mon, 20 Jan 2025 12:08:56 -0800 Subject: [PATCH 21/25] installing pytest now for CI --- .github/workflows/python-package.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 0ed84026..9aba6dd4 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -69,6 +69,7 @@ jobs: - name: Test with pytest run: | + pip install pytest make test deploy: From f370655f067bf1c7dc41650b298fd4bc87b75a60 Mon Sep 17 00:00:00 2001 From: Andreas Prlic Date: Mon, 20 Jan 2025 16:44:46 -0800 Subject: [PATCH 22/25] installing pytest-cov for CI --- .github/workflows/python-package.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 9aba6dd4..f44537e8 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -70,6 +70,7 @@ jobs: - name: Test with pytest run: | pip install pytest + pip install pytest-cov make test deploy: From b6bf4b6f0006c30b4be2e58e0f9726e823a851b4 Mon Sep 17 00:00:00 2001 From: Andreas Prlic Date: Mon, 20 Jan 2025 17:05:44 -0800 Subject: [PATCH 23/25] updating test cache --- tests/data/cache-py3.hdp | Bin 1220363 -> 1474850 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/data/cache-py3.hdp b/tests/data/cache-py3.hdp index aa65c9ebaa8971dc6bf953c72ac7dbe9d89bae85..754542ddb82de8d12eddb6f2a08811677495605b 100644 GIT binary patch delta 220116 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 delta 66 zcmZ3~6xF@YtD%Llg{g(Pg{6hHg{_6Xg` Date: Mon, 20 Jan 2025 17:24:04 -0800 Subject: [PATCH 24/25] more meddling with the CI --- .github/workflows/python-package.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index f44537e8..3eae1f92 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -65,12 +65,13 @@ jobs: - name: Install dependencies run: | + pip install --upgrade setuptools + pip install pytest + pip install pytest-cov pip install -e .[dev] - name: Test with pytest run: | - pip install pytest - pip install pytest-cov make test deploy: From cd949db0800d5d4000b8527384fe7a4ab1ddbf3e Mon Sep 17 00:00:00 2001 From: Andreas Prlic Date: Mon, 20 Jan 2025 18:32:55 -0800 Subject: [PATCH 25/25] fixing grammar based on PR feedback. --- src/hgvs/_data/hgvs.pymeta | 5 +- src/hgvs/generated/hgvs_grammar.py | 4313 +++++++++++++++++----------- 2 files changed, 2582 insertions(+), 1736 deletions(-) diff --git a/src/hgvs/_data/hgvs.pymeta b/src/hgvs/_data/hgvs.pymeta index 7ba04ce6..736c9f6a 100644 --- a/src/hgvs/_data/hgvs.pymeta +++ b/src/hgvs/_data/hgvs.pymeta @@ -122,7 +122,7 @@ pro_ident = '=' -> hgvs.edit.AARefAlt(ref='',alt='' # potentially indefinite/uncertain intervals c_interval = def_c_interval | '(' def_c_interval:iv ')' -> iv._set_uncertain() -g_interval = uncertain_g_interval:iv | ('(' def_g_interval:iv ')' -> iv._set_uncertain()) | def_g_interval +g_interval = uncertain_g_interval:iv | def_g_interval m_interval = def_m_interval | '(' def_m_interval:iv ')' -> iv._set_uncertain() n_interval = def_n_interval | '(' def_n_interval:iv ')' -> iv._set_uncertain() p_interval = def_p_interval | '(' def_p_interval:iv ')' -> iv._set_uncertain() @@ -139,7 +139,8 @@ def_n_interval = (n_pos:start '_' n_pos:end -> hgvs.location.BaseOffsetInterval( # indefinite ranges uncertain_g_interval = '(' def_g_interval:ivl_start ')' '_' '(' def_g_interval:ivl_end ')' -> hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end._set_uncertain()) | def_g_interval:ivl_start '_' '(' def_g_interval:ivl_end ')' -> hgvs.location.Interval(start=ivl_start, end=ivl_end._set_uncertain()) - | '(' def_g_interval:ivl_start ')' '_' def_g_interval:ivl_end -> hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end) + | '(' def_g_interval:ivl_start ')' '_' def_g_interval:ivl_end -> hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end) + | ('(' def_g_interval:iv ')' -> iv._set_uncertain()) # positions diff --git a/src/hgvs/generated/hgvs_grammar.py b/src/hgvs/generated/hgvs_grammar.py index 838606c0..0fd318c4 100644 --- a/src/hgvs/generated/hgvs_grammar.py +++ b/src/hgvs/generated/hgvs_grammar.py @@ -3,3179 +3,4024 @@ # Changes will be overwritten by the generation script. # Generated by: sbin/generate_parser.py # Grammar file: src/hgvs/_data/hgvs.pymeta -# Grammar hash: 29e5254696dc8673e47771941d6a8e3e +# Grammar hash: e84f0c08f3981f13aa7426baf87ad45d # Parsley version: 1.3 -# Python version: 3.11.7 (main, Dec 4 2023, 18:10:11) [Clang 15.0.0 (clang-1500.1.0.2.5)] +# Python version: 3.12.5 (main, Sep 1 2024, 23:23:26) [Clang 15.0.0 (clang-1500.3.9.4)] # -------------------------------------------------- + def createParserClass(GrammarBase, ruleGlobals): if ruleGlobals is None: ruleGlobals = {} + class Grammar(GrammarBase): def rule_hgvs_variant(self): - _locals = {'self': self} - self.locals['hgvs_variant'] = _locals + _locals = {"self": self} + self.locals["hgvs_variant"] = _locals + def _G_or_1(): - self._trace('', (697, 707), self.input.position) - _G_apply_2, lastError = self._apply(self.rule_g_variant, "g_variant", []) + self._trace("", (697, 707), self.input.position) + _G_apply_2, lastError = self._apply( + self.rule_g_variant, "g_variant", [] + ) self.considerError(lastError, None) return (_G_apply_2, self.currentError) + def _G_or_3(): - self._trace('', (709, 719), self.input.position) - _G_apply_4, lastError = self._apply(self.rule_m_variant, "m_variant", []) + self._trace("", (709, 719), self.input.position) + _G_apply_4, lastError = self._apply( + self.rule_m_variant, "m_variant", [] + ) self.considerError(lastError, None) return (_G_apply_4, self.currentError) + def _G_or_5(): - self._trace('', (721, 731), self.input.position) - _G_apply_6, lastError = self._apply(self.rule_c_variant, "c_variant", []) + self._trace("", (721, 731), self.input.position) + _G_apply_6, lastError = self._apply( + self.rule_c_variant, "c_variant", [] + ) self.considerError(lastError, None) return (_G_apply_6, self.currentError) + def _G_or_7(): - self._trace('', (733, 743), self.input.position) - _G_apply_8, lastError = self._apply(self.rule_n_variant, "n_variant", []) + self._trace("", (733, 743), self.input.position) + _G_apply_8, lastError = self._apply( + self.rule_n_variant, "n_variant", [] + ) self.considerError(lastError, None) return (_G_apply_8, self.currentError) + def _G_or_9(): - self._trace('', (746, 756), self.input.position) - _G_apply_10, lastError = self._apply(self.rule_r_variant, "r_variant", []) + self._trace("", (746, 756), self.input.position) + _G_apply_10, lastError = self._apply( + self.rule_r_variant, "r_variant", [] + ) self.considerError(lastError, None) return (_G_apply_10, self.currentError) + def _G_or_11(): - self._trace('', (758, 768), self.input.position) - _G_apply_12, lastError = self._apply(self.rule_p_variant, "p_variant", []) + self._trace("", (758, 768), self.input.position) + _G_apply_12, lastError = self._apply( + self.rule_p_variant, "p_variant", [] + ) self.considerError(lastError, None) return (_G_apply_12, self.currentError) - _G_or_13, lastError = self._or([_G_or_1, _G_or_3, _G_or_5, _G_or_7, _G_or_9, _G_or_11]) - self.considerError(lastError, 'hgvs_variant') - return (_G_or_13, self.currentError) + _G_or_13, lastError = self._or( + [_G_or_1, _G_or_3, _G_or_5, _G_or_7, _G_or_9, _G_or_11] + ) + self.considerError(lastError, "hgvs_variant") + return (_G_or_13, self.currentError) def rule_c_variant(self): - _locals = {'self': self} - self.locals['c_variant'] = _locals - self._trace('', (781, 786), self.input.position) + _locals = {"self": self} + self.locals["c_variant"] = _locals + self._trace("", (781, 786), self.input.position) _G_apply_14, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, 'c_variant') - _locals['ac'] = _G_apply_14 - self._trace('', (789, 803), self.input.position) - _G_apply_15, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, 'c_variant') - _locals['gene'] = _G_apply_15 - self._trace('', (808, 812), self.input.position) - _G_exactly_16, lastError = self.exactly(':') - self.considerError(lastError, 'c_variant') - self._trace('', (812, 816), self.input.position) - _G_exactly_17, lastError = self.exactly('c') - self.considerError(lastError, 'c_variant') - _locals['type'] = _G_exactly_17 - self._trace('', (821, 825), self.input.position) - _G_exactly_18, lastError = self.exactly('.') - self.considerError(lastError, 'c_variant') - self._trace('', (825, 835), self.input.position) + self.considerError(lastError, "c_variant") + _locals["ac"] = _G_apply_14 + self._trace("", (789, 803), self.input.position) + _G_apply_15, lastError = self._apply( + self.rule_opt_gene_expr, "opt_gene_expr", [] + ) + self.considerError(lastError, "c_variant") + _locals["gene"] = _G_apply_15 + self._trace("", (808, 812), self.input.position) + _G_exactly_16, lastError = self.exactly(":") + self.considerError(lastError, "c_variant") + self._trace("", (812, 816), self.input.position) + _G_exactly_17, lastError = self.exactly("c") + self.considerError(lastError, "c_variant") + _locals["type"] = _G_exactly_17 + self._trace("", (821, 825), self.input.position) + _G_exactly_18, lastError = self.exactly(".") + self.considerError(lastError, "c_variant") + self._trace("", (825, 835), self.input.position) _G_apply_19, lastError = self._apply(self.rule_c_posedit, "c_posedit", []) - self.considerError(lastError, 'c_variant') - _locals['posedit'] = _G_apply_19 + self.considerError(lastError, "c_variant") + _locals["posedit"] = _G_apply_19 _G_python_21, lastError = eval(self._G_expr_20, self.globals, _locals), None - self.considerError(lastError, 'c_variant') + self.considerError(lastError, "c_variant") return (_G_python_21, self.currentError) - def rule_g_variant(self): - _locals = {'self': self} - self.locals['g_variant'] = _locals - self._trace('', (941, 946), self.input.position) + _locals = {"self": self} + self.locals["g_variant"] = _locals + self._trace("", (941, 946), self.input.position) _G_apply_22, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, 'g_variant') - _locals['ac'] = _G_apply_22 - self._trace('', (949, 963), self.input.position) - _G_apply_23, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, 'g_variant') - _locals['gene'] = _G_apply_23 - self._trace('', (968, 972), self.input.position) - _G_exactly_24, lastError = self.exactly(':') - self.considerError(lastError, 'g_variant') - self._trace('', (972, 976), self.input.position) - _G_exactly_25, lastError = self.exactly('g') - self.considerError(lastError, 'g_variant') - _locals['type'] = _G_exactly_25 - self._trace('', (981, 985), self.input.position) - _G_exactly_26, lastError = self.exactly('.') - self.considerError(lastError, 'g_variant') - self._trace('', (985, 995), self.input.position) + self.considerError(lastError, "g_variant") + _locals["ac"] = _G_apply_22 + self._trace("", (949, 963), self.input.position) + _G_apply_23, lastError = self._apply( + self.rule_opt_gene_expr, "opt_gene_expr", [] + ) + self.considerError(lastError, "g_variant") + _locals["gene"] = _G_apply_23 + self._trace("", (968, 972), self.input.position) + _G_exactly_24, lastError = self.exactly(":") + self.considerError(lastError, "g_variant") + self._trace("", (972, 976), self.input.position) + _G_exactly_25, lastError = self.exactly("g") + self.considerError(lastError, "g_variant") + _locals["type"] = _G_exactly_25 + self._trace("", (981, 985), self.input.position) + _G_exactly_26, lastError = self.exactly(".") + self.considerError(lastError, "g_variant") + self._trace("", (985, 995), self.input.position) _G_apply_27, lastError = self._apply(self.rule_g_posedit, "g_posedit", []) - self.considerError(lastError, 'g_variant') - _locals['posedit'] = _G_apply_27 + self.considerError(lastError, "g_variant") + _locals["posedit"] = _G_apply_27 _G_python_28, lastError = eval(self._G_expr_20, self.globals, _locals), None - self.considerError(lastError, 'g_variant') + self.considerError(lastError, "g_variant") return (_G_python_28, self.currentError) - def rule_m_variant(self): - _locals = {'self': self} - self.locals['m_variant'] = _locals - self._trace('', (1101, 1106), self.input.position) + _locals = {"self": self} + self.locals["m_variant"] = _locals + self._trace("", (1101, 1106), self.input.position) _G_apply_29, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, 'm_variant') - _locals['ac'] = _G_apply_29 - self._trace('', (1109, 1123), self.input.position) - _G_apply_30, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, 'm_variant') - _locals['gene'] = _G_apply_30 - self._trace('', (1128, 1132), self.input.position) - _G_exactly_31, lastError = self.exactly(':') - self.considerError(lastError, 'm_variant') - self._trace('', (1132, 1136), self.input.position) - _G_exactly_32, lastError = self.exactly('m') - self.considerError(lastError, 'm_variant') - _locals['type'] = _G_exactly_32 - self._trace('', (1141, 1145), self.input.position) - _G_exactly_33, lastError = self.exactly('.') - self.considerError(lastError, 'm_variant') - self._trace('', (1145, 1155), self.input.position) + self.considerError(lastError, "m_variant") + _locals["ac"] = _G_apply_29 + self._trace("", (1109, 1123), self.input.position) + _G_apply_30, lastError = self._apply( + self.rule_opt_gene_expr, "opt_gene_expr", [] + ) + self.considerError(lastError, "m_variant") + _locals["gene"] = _G_apply_30 + self._trace("", (1128, 1132), self.input.position) + _G_exactly_31, lastError = self.exactly(":") + self.considerError(lastError, "m_variant") + self._trace("", (1132, 1136), self.input.position) + _G_exactly_32, lastError = self.exactly("m") + self.considerError(lastError, "m_variant") + _locals["type"] = _G_exactly_32 + self._trace("", (1141, 1145), self.input.position) + _G_exactly_33, lastError = self.exactly(".") + self.considerError(lastError, "m_variant") + self._trace("", (1145, 1155), self.input.position) _G_apply_34, lastError = self._apply(self.rule_m_posedit, "m_posedit", []) - self.considerError(lastError, 'm_variant') - _locals['posedit'] = _G_apply_34 + self.considerError(lastError, "m_variant") + _locals["posedit"] = _G_apply_34 _G_python_35, lastError = eval(self._G_expr_20, self.globals, _locals), None - self.considerError(lastError, 'm_variant') + self.considerError(lastError, "m_variant") return (_G_python_35, self.currentError) - def rule_n_variant(self): - _locals = {'self': self} - self.locals['n_variant'] = _locals - self._trace('', (1261, 1266), self.input.position) + _locals = {"self": self} + self.locals["n_variant"] = _locals + self._trace("", (1261, 1266), self.input.position) _G_apply_36, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, 'n_variant') - _locals['ac'] = _G_apply_36 - self._trace('', (1269, 1283), self.input.position) - _G_apply_37, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, 'n_variant') - _locals['gene'] = _G_apply_37 - self._trace('', (1288, 1292), self.input.position) - _G_exactly_38, lastError = self.exactly(':') - self.considerError(lastError, 'n_variant') - self._trace('', (1292, 1296), self.input.position) - _G_exactly_39, lastError = self.exactly('n') - self.considerError(lastError, 'n_variant') - _locals['type'] = _G_exactly_39 - self._trace('', (1301, 1305), self.input.position) - _G_exactly_40, lastError = self.exactly('.') - self.considerError(lastError, 'n_variant') - self._trace('', (1305, 1315), self.input.position) + self.considerError(lastError, "n_variant") + _locals["ac"] = _G_apply_36 + self._trace("", (1269, 1283), self.input.position) + _G_apply_37, lastError = self._apply( + self.rule_opt_gene_expr, "opt_gene_expr", [] + ) + self.considerError(lastError, "n_variant") + _locals["gene"] = _G_apply_37 + self._trace("", (1288, 1292), self.input.position) + _G_exactly_38, lastError = self.exactly(":") + self.considerError(lastError, "n_variant") + self._trace("", (1292, 1296), self.input.position) + _G_exactly_39, lastError = self.exactly("n") + self.considerError(lastError, "n_variant") + _locals["type"] = _G_exactly_39 + self._trace("", (1301, 1305), self.input.position) + _G_exactly_40, lastError = self.exactly(".") + self.considerError(lastError, "n_variant") + self._trace("", (1305, 1315), self.input.position) _G_apply_41, lastError = self._apply(self.rule_n_posedit, "n_posedit", []) - self.considerError(lastError, 'n_variant') - _locals['posedit'] = _G_apply_41 + self.considerError(lastError, "n_variant") + _locals["posedit"] = _G_apply_41 _G_python_42, lastError = eval(self._G_expr_20, self.globals, _locals), None - self.considerError(lastError, 'n_variant') + self.considerError(lastError, "n_variant") return (_G_python_42, self.currentError) - def rule_p_variant(self): - _locals = {'self': self} - self.locals['p_variant'] = _locals - self._trace('', (1421, 1426), self.input.position) + _locals = {"self": self} + self.locals["p_variant"] = _locals + self._trace("", (1421, 1426), self.input.position) _G_apply_43, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, 'p_variant') - _locals['ac'] = _G_apply_43 - self._trace('', (1429, 1443), self.input.position) - _G_apply_44, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, 'p_variant') - _locals['gene'] = _G_apply_44 - self._trace('', (1448, 1452), self.input.position) - _G_exactly_45, lastError = self.exactly(':') - self.considerError(lastError, 'p_variant') - self._trace('', (1452, 1456), self.input.position) - _G_exactly_46, lastError = self.exactly('p') - self.considerError(lastError, 'p_variant') - _locals['type'] = _G_exactly_46 - self._trace('', (1461, 1465), self.input.position) - _G_exactly_47, lastError = self.exactly('.') - self.considerError(lastError, 'p_variant') - self._trace('', (1465, 1475), self.input.position) + self.considerError(lastError, "p_variant") + _locals["ac"] = _G_apply_43 + self._trace("", (1429, 1443), self.input.position) + _G_apply_44, lastError = self._apply( + self.rule_opt_gene_expr, "opt_gene_expr", [] + ) + self.considerError(lastError, "p_variant") + _locals["gene"] = _G_apply_44 + self._trace("", (1448, 1452), self.input.position) + _G_exactly_45, lastError = self.exactly(":") + self.considerError(lastError, "p_variant") + self._trace("", (1452, 1456), self.input.position) + _G_exactly_46, lastError = self.exactly("p") + self.considerError(lastError, "p_variant") + _locals["type"] = _G_exactly_46 + self._trace("", (1461, 1465), self.input.position) + _G_exactly_47, lastError = self.exactly(".") + self.considerError(lastError, "p_variant") + self._trace("", (1465, 1475), self.input.position) _G_apply_48, lastError = self._apply(self.rule_p_posedit, "p_posedit", []) - self.considerError(lastError, 'p_variant') - _locals['posedit'] = _G_apply_48 + self.considerError(lastError, "p_variant") + _locals["posedit"] = _G_apply_48 _G_python_49, lastError = eval(self._G_expr_20, self.globals, _locals), None - self.considerError(lastError, 'p_variant') + self.considerError(lastError, "p_variant") return (_G_python_49, self.currentError) - def rule_r_variant(self): - _locals = {'self': self} - self.locals['r_variant'] = _locals - self._trace('', (1581, 1586), self.input.position) + _locals = {"self": self} + self.locals["r_variant"] = _locals + self._trace("", (1581, 1586), self.input.position) _G_apply_50, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, 'r_variant') - _locals['ac'] = _G_apply_50 - self._trace('', (1589, 1603), self.input.position) - _G_apply_51, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, 'r_variant') - _locals['gene'] = _G_apply_51 - self._trace('', (1608, 1612), self.input.position) - _G_exactly_52, lastError = self.exactly(':') - self.considerError(lastError, 'r_variant') - self._trace('', (1612, 1616), self.input.position) - _G_exactly_53, lastError = self.exactly('r') - self.considerError(lastError, 'r_variant') - _locals['type'] = _G_exactly_53 - self._trace('', (1621, 1625), self.input.position) - _G_exactly_54, lastError = self.exactly('.') - self.considerError(lastError, 'r_variant') - self._trace('', (1625, 1635), self.input.position) + self.considerError(lastError, "r_variant") + _locals["ac"] = _G_apply_50 + self._trace("", (1589, 1603), self.input.position) + _G_apply_51, lastError = self._apply( + self.rule_opt_gene_expr, "opt_gene_expr", [] + ) + self.considerError(lastError, "r_variant") + _locals["gene"] = _G_apply_51 + self._trace("", (1608, 1612), self.input.position) + _G_exactly_52, lastError = self.exactly(":") + self.considerError(lastError, "r_variant") + self._trace("", (1612, 1616), self.input.position) + _G_exactly_53, lastError = self.exactly("r") + self.considerError(lastError, "r_variant") + _locals["type"] = _G_exactly_53 + self._trace("", (1621, 1625), self.input.position) + _G_exactly_54, lastError = self.exactly(".") + self.considerError(lastError, "r_variant") + self._trace("", (1625, 1635), self.input.position) _G_apply_55, lastError = self._apply(self.rule_r_posedit, "r_posedit", []) - self.considerError(lastError, 'r_variant') - _locals['posedit'] = _G_apply_55 + self.considerError(lastError, "r_variant") + _locals["posedit"] = _G_apply_55 _G_python_56, lastError = eval(self._G_expr_20, self.globals, _locals), None - self.considerError(lastError, 'r_variant') + self.considerError(lastError, "r_variant") return (_G_python_56, self.currentError) - def rule_hgvs_position(self): - _locals = {'self': self} - self.locals['hgvs_position'] = _locals + _locals = {"self": self} + self.locals["hgvs_position"] = _locals + def _G_or_57(): - self._trace('', (1919, 1935), self.input.position) - _G_apply_58, lastError = self._apply(self.rule_g_hgvs_position, "g_hgvs_position", []) + self._trace("", (1919, 1935), self.input.position) + _G_apply_58, lastError = self._apply( + self.rule_g_hgvs_position, "g_hgvs_position", [] + ) self.considerError(lastError, None) return (_G_apply_58, self.currentError) + def _G_or_59(): - self._trace('', (1937, 1953), self.input.position) - _G_apply_60, lastError = self._apply(self.rule_m_hgvs_position, "m_hgvs_position", []) + self._trace("", (1937, 1953), self.input.position) + _G_apply_60, lastError = self._apply( + self.rule_m_hgvs_position, "m_hgvs_position", [] + ) self.considerError(lastError, None) return (_G_apply_60, self.currentError) + def _G_or_61(): - self._trace('', (1955, 1971), self.input.position) - _G_apply_62, lastError = self._apply(self.rule_c_hgvs_position, "c_hgvs_position", []) + self._trace("", (1955, 1971), self.input.position) + _G_apply_62, lastError = self._apply( + self.rule_c_hgvs_position, "c_hgvs_position", [] + ) self.considerError(lastError, None) return (_G_apply_62, self.currentError) + def _G_or_63(): - self._trace('', (1973, 1989), self.input.position) - _G_apply_64, lastError = self._apply(self.rule_n_hgvs_position, "n_hgvs_position", []) + self._trace("", (1973, 1989), self.input.position) + _G_apply_64, lastError = self._apply( + self.rule_n_hgvs_position, "n_hgvs_position", [] + ) self.considerError(lastError, None) return (_G_apply_64, self.currentError) + def _G_or_65(): - self._trace('', (1991, 2007), self.input.position) - _G_apply_66, lastError = self._apply(self.rule_r_hgvs_position, "r_hgvs_position", []) + self._trace("", (1991, 2007), self.input.position) + _G_apply_66, lastError = self._apply( + self.rule_r_hgvs_position, "r_hgvs_position", [] + ) self.considerError(lastError, None) return (_G_apply_66, self.currentError) + def _G_or_67(): - self._trace('', (2009, 2025), self.input.position) - _G_apply_68, lastError = self._apply(self.rule_p_hgvs_position, "p_hgvs_position", []) + self._trace("", (2009, 2025), self.input.position) + _G_apply_68, lastError = self._apply( + self.rule_p_hgvs_position, "p_hgvs_position", [] + ) self.considerError(lastError, None) return (_G_apply_68, self.currentError) - _G_or_69, lastError = self._or([_G_or_57, _G_or_59, _G_or_61, _G_or_63, _G_or_65, _G_or_67]) - self.considerError(lastError, 'hgvs_position') - return (_G_or_69, self.currentError) + _G_or_69, lastError = self._or( + [_G_or_57, _G_or_59, _G_or_61, _G_or_63, _G_or_65, _G_or_67] + ) + self.considerError(lastError, "hgvs_position") + return (_G_or_69, self.currentError) def rule_c_hgvs_position(self): - _locals = {'self': self} - self.locals['c_hgvs_position'] = _locals - self._trace('', (2044, 2049), self.input.position) + _locals = {"self": self} + self.locals["c_hgvs_position"] = _locals + self._trace("", (2044, 2049), self.input.position) _G_apply_70, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, 'c_hgvs_position') - _locals['ac'] = _G_apply_70 - self._trace('', (2052, 2066), self.input.position) - _G_apply_71, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, 'c_hgvs_position') - _locals['gene'] = _G_apply_71 - self._trace('', (2071, 2075), self.input.position) - _G_exactly_72, lastError = self.exactly(':') - self.considerError(lastError, 'c_hgvs_position') - self._trace('', (2075, 2079), self.input.position) - _G_exactly_73, lastError = self.exactly('c') - self.considerError(lastError, 'c_hgvs_position') - _locals['type'] = _G_exactly_73 - self._trace('', (2084, 2088), self.input.position) - _G_exactly_74, lastError = self.exactly('.') - self.considerError(lastError, 'c_hgvs_position') - self._trace('', (2088, 2099), self.input.position) + self.considerError(lastError, "c_hgvs_position") + _locals["ac"] = _G_apply_70 + self._trace("", (2052, 2066), self.input.position) + _G_apply_71, lastError = self._apply( + self.rule_opt_gene_expr, "opt_gene_expr", [] + ) + self.considerError(lastError, "c_hgvs_position") + _locals["gene"] = _G_apply_71 + self._trace("", (2071, 2075), self.input.position) + _G_exactly_72, lastError = self.exactly(":") + self.considerError(lastError, "c_hgvs_position") + self._trace("", (2075, 2079), self.input.position) + _G_exactly_73, lastError = self.exactly("c") + self.considerError(lastError, "c_hgvs_position") + _locals["type"] = _G_exactly_73 + self._trace("", (2084, 2088), self.input.position) + _G_exactly_74, lastError = self.exactly(".") + self.considerError(lastError, "c_hgvs_position") + self._trace("", (2088, 2099), self.input.position) _G_apply_75, lastError = self._apply(self.rule_c_interval, "c_interval", []) - self.considerError(lastError, 'c_hgvs_position') - _locals['pos'] = _G_apply_75 + self.considerError(lastError, "c_hgvs_position") + _locals["pos"] = _G_apply_75 _G_python_77, lastError = eval(self._G_expr_76, self.globals, _locals), None - self.considerError(lastError, 'c_hgvs_position') + self.considerError(lastError, "c_hgvs_position") return (_G_python_77, self.currentError) - def rule_g_hgvs_position(self): - _locals = {'self': self} - self.locals['g_hgvs_position'] = _locals - self._trace('', (2193, 2198), self.input.position) + _locals = {"self": self} + self.locals["g_hgvs_position"] = _locals + self._trace("", (2193, 2198), self.input.position) _G_apply_78, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, 'g_hgvs_position') - _locals['ac'] = _G_apply_78 - self._trace('', (2201, 2215), self.input.position) - _G_apply_79, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, 'g_hgvs_position') - _locals['gene'] = _G_apply_79 - self._trace('', (2220, 2224), self.input.position) - _G_exactly_80, lastError = self.exactly(':') - self.considerError(lastError, 'g_hgvs_position') - self._trace('', (2224, 2228), self.input.position) - _G_exactly_81, lastError = self.exactly('g') - self.considerError(lastError, 'g_hgvs_position') - _locals['type'] = _G_exactly_81 - self._trace('', (2233, 2237), self.input.position) - _G_exactly_82, lastError = self.exactly('.') - self.considerError(lastError, 'g_hgvs_position') - self._trace('', (2237, 2248), self.input.position) + self.considerError(lastError, "g_hgvs_position") + _locals["ac"] = _G_apply_78 + self._trace("", (2201, 2215), self.input.position) + _G_apply_79, lastError = self._apply( + self.rule_opt_gene_expr, "opt_gene_expr", [] + ) + self.considerError(lastError, "g_hgvs_position") + _locals["gene"] = _G_apply_79 + self._trace("", (2220, 2224), self.input.position) + _G_exactly_80, lastError = self.exactly(":") + self.considerError(lastError, "g_hgvs_position") + self._trace("", (2224, 2228), self.input.position) + _G_exactly_81, lastError = self.exactly("g") + self.considerError(lastError, "g_hgvs_position") + _locals["type"] = _G_exactly_81 + self._trace("", (2233, 2237), self.input.position) + _G_exactly_82, lastError = self.exactly(".") + self.considerError(lastError, "g_hgvs_position") + self._trace("", (2237, 2248), self.input.position) _G_apply_83, lastError = self._apply(self.rule_g_interval, "g_interval", []) - self.considerError(lastError, 'g_hgvs_position') - _locals['pos'] = _G_apply_83 + self.considerError(lastError, "g_hgvs_position") + _locals["pos"] = _G_apply_83 _G_python_84, lastError = eval(self._G_expr_76, self.globals, _locals), None - self.considerError(lastError, 'g_hgvs_position') + self.considerError(lastError, "g_hgvs_position") return (_G_python_84, self.currentError) - def rule_m_hgvs_position(self): - _locals = {'self': self} - self.locals['m_hgvs_position'] = _locals - self._trace('', (2342, 2347), self.input.position) + _locals = {"self": self} + self.locals["m_hgvs_position"] = _locals + self._trace("", (2342, 2347), self.input.position) _G_apply_85, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, 'm_hgvs_position') - _locals['ac'] = _G_apply_85 - self._trace('', (2350, 2364), self.input.position) - _G_apply_86, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, 'm_hgvs_position') - _locals['gene'] = _G_apply_86 - self._trace('', (2369, 2373), self.input.position) - _G_exactly_87, lastError = self.exactly(':') - self.considerError(lastError, 'm_hgvs_position') - self._trace('', (2373, 2377), self.input.position) - _G_exactly_88, lastError = self.exactly('m') - self.considerError(lastError, 'm_hgvs_position') - _locals['type'] = _G_exactly_88 - self._trace('', (2382, 2386), self.input.position) - _G_exactly_89, lastError = self.exactly('.') - self.considerError(lastError, 'm_hgvs_position') - self._trace('', (2386, 2397), self.input.position) + self.considerError(lastError, "m_hgvs_position") + _locals["ac"] = _G_apply_85 + self._trace("", (2350, 2364), self.input.position) + _G_apply_86, lastError = self._apply( + self.rule_opt_gene_expr, "opt_gene_expr", [] + ) + self.considerError(lastError, "m_hgvs_position") + _locals["gene"] = _G_apply_86 + self._trace("", (2369, 2373), self.input.position) + _G_exactly_87, lastError = self.exactly(":") + self.considerError(lastError, "m_hgvs_position") + self._trace("", (2373, 2377), self.input.position) + _G_exactly_88, lastError = self.exactly("m") + self.considerError(lastError, "m_hgvs_position") + _locals["type"] = _G_exactly_88 + self._trace("", (2382, 2386), self.input.position) + _G_exactly_89, lastError = self.exactly(".") + self.considerError(lastError, "m_hgvs_position") + self._trace("", (2386, 2397), self.input.position) _G_apply_90, lastError = self._apply(self.rule_m_interval, "m_interval", []) - self.considerError(lastError, 'm_hgvs_position') - _locals['pos'] = _G_apply_90 + self.considerError(lastError, "m_hgvs_position") + _locals["pos"] = _G_apply_90 _G_python_91, lastError = eval(self._G_expr_76, self.globals, _locals), None - self.considerError(lastError, 'm_hgvs_position') + self.considerError(lastError, "m_hgvs_position") return (_G_python_91, self.currentError) - def rule_n_hgvs_position(self): - _locals = {'self': self} - self.locals['n_hgvs_position'] = _locals - self._trace('', (2491, 2496), self.input.position) + _locals = {"self": self} + self.locals["n_hgvs_position"] = _locals + self._trace("", (2491, 2496), self.input.position) _G_apply_92, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, 'n_hgvs_position') - _locals['ac'] = _G_apply_92 - self._trace('', (2499, 2513), self.input.position) - _G_apply_93, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, 'n_hgvs_position') - _locals['gene'] = _G_apply_93 - self._trace('', (2518, 2522), self.input.position) - _G_exactly_94, lastError = self.exactly(':') - self.considerError(lastError, 'n_hgvs_position') - self._trace('', (2522, 2526), self.input.position) - _G_exactly_95, lastError = self.exactly('n') - self.considerError(lastError, 'n_hgvs_position') - _locals['type'] = _G_exactly_95 - self._trace('', (2531, 2535), self.input.position) - _G_exactly_96, lastError = self.exactly('.') - self.considerError(lastError, 'n_hgvs_position') - self._trace('', (2535, 2546), self.input.position) + self.considerError(lastError, "n_hgvs_position") + _locals["ac"] = _G_apply_92 + self._trace("", (2499, 2513), self.input.position) + _G_apply_93, lastError = self._apply( + self.rule_opt_gene_expr, "opt_gene_expr", [] + ) + self.considerError(lastError, "n_hgvs_position") + _locals["gene"] = _G_apply_93 + self._trace("", (2518, 2522), self.input.position) + _G_exactly_94, lastError = self.exactly(":") + self.considerError(lastError, "n_hgvs_position") + self._trace("", (2522, 2526), self.input.position) + _G_exactly_95, lastError = self.exactly("n") + self.considerError(lastError, "n_hgvs_position") + _locals["type"] = _G_exactly_95 + self._trace("", (2531, 2535), self.input.position) + _G_exactly_96, lastError = self.exactly(".") + self.considerError(lastError, "n_hgvs_position") + self._trace("", (2535, 2546), self.input.position) _G_apply_97, lastError = self._apply(self.rule_n_interval, "n_interval", []) - self.considerError(lastError, 'n_hgvs_position') - _locals['pos'] = _G_apply_97 + self.considerError(lastError, "n_hgvs_position") + _locals["pos"] = _G_apply_97 _G_python_98, lastError = eval(self._G_expr_76, self.globals, _locals), None - self.considerError(lastError, 'n_hgvs_position') + self.considerError(lastError, "n_hgvs_position") return (_G_python_98, self.currentError) - def rule_p_hgvs_position(self): - _locals = {'self': self} - self.locals['p_hgvs_position'] = _locals - self._trace('', (2640, 2645), self.input.position) + _locals = {"self": self} + self.locals["p_hgvs_position"] = _locals + self._trace("", (2640, 2645), self.input.position) _G_apply_99, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, 'p_hgvs_position') - _locals['ac'] = _G_apply_99 - self._trace('', (2648, 2662), self.input.position) - _G_apply_100, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, 'p_hgvs_position') - _locals['gene'] = _G_apply_100 - self._trace('', (2667, 2671), self.input.position) - _G_exactly_101, lastError = self.exactly(':') - self.considerError(lastError, 'p_hgvs_position') - self._trace('', (2671, 2675), self.input.position) - _G_exactly_102, lastError = self.exactly('p') - self.considerError(lastError, 'p_hgvs_position') - _locals['type'] = _G_exactly_102 - self._trace('', (2680, 2684), self.input.position) - _G_exactly_103, lastError = self.exactly('.') - self.considerError(lastError, 'p_hgvs_position') - self._trace('', (2684, 2695), self.input.position) - _G_apply_104, lastError = self._apply(self.rule_p_interval, "p_interval", []) - self.considerError(lastError, 'p_hgvs_position') - _locals['pos'] = _G_apply_104 - _G_python_105, lastError = eval(self._G_expr_76, self.globals, _locals), None - self.considerError(lastError, 'p_hgvs_position') + self.considerError(lastError, "p_hgvs_position") + _locals["ac"] = _G_apply_99 + self._trace("", (2648, 2662), self.input.position) + _G_apply_100, lastError = self._apply( + self.rule_opt_gene_expr, "opt_gene_expr", [] + ) + self.considerError(lastError, "p_hgvs_position") + _locals["gene"] = _G_apply_100 + self._trace("", (2667, 2671), self.input.position) + _G_exactly_101, lastError = self.exactly(":") + self.considerError(lastError, "p_hgvs_position") + self._trace("", (2671, 2675), self.input.position) + _G_exactly_102, lastError = self.exactly("p") + self.considerError(lastError, "p_hgvs_position") + _locals["type"] = _G_exactly_102 + self._trace("", (2680, 2684), self.input.position) + _G_exactly_103, lastError = self.exactly(".") + self.considerError(lastError, "p_hgvs_position") + self._trace("", (2684, 2695), self.input.position) + _G_apply_104, lastError = self._apply( + self.rule_p_interval, "p_interval", [] + ) + self.considerError(lastError, "p_hgvs_position") + _locals["pos"] = _G_apply_104 + _G_python_105, lastError = ( + eval(self._G_expr_76, self.globals, _locals), + None, + ) + self.considerError(lastError, "p_hgvs_position") return (_G_python_105, self.currentError) - def rule_r_hgvs_position(self): - _locals = {'self': self} - self.locals['r_hgvs_position'] = _locals - self._trace('', (2789, 2794), self.input.position) + _locals = {"self": self} + self.locals["r_hgvs_position"] = _locals + self._trace("", (2789, 2794), self.input.position) _G_apply_106, lastError = self._apply(self.rule_accn, "accn", []) - self.considerError(lastError, 'r_hgvs_position') - _locals['ac'] = _G_apply_106 - self._trace('', (2797, 2811), self.input.position) - _G_apply_107, lastError = self._apply(self.rule_opt_gene_expr, "opt_gene_expr", []) - self.considerError(lastError, 'r_hgvs_position') - _locals['gene'] = _G_apply_107 - self._trace('', (2816, 2820), self.input.position) - _G_exactly_108, lastError = self.exactly(':') - self.considerError(lastError, 'r_hgvs_position') - self._trace('', (2820, 2824), self.input.position) - _G_exactly_109, lastError = self.exactly('r') - self.considerError(lastError, 'r_hgvs_position') - _locals['type'] = _G_exactly_109 - self._trace('', (2829, 2833), self.input.position) - _G_exactly_110, lastError = self.exactly('.') - self.considerError(lastError, 'r_hgvs_position') - self._trace('', (2833, 2844), self.input.position) - _G_apply_111, lastError = self._apply(self.rule_r_interval, "r_interval", []) - self.considerError(lastError, 'r_hgvs_position') - _locals['pos'] = _G_apply_111 - _G_python_112, lastError = eval(self._G_expr_76, self.globals, _locals), None - self.considerError(lastError, 'r_hgvs_position') + self.considerError(lastError, "r_hgvs_position") + _locals["ac"] = _G_apply_106 + self._trace("", (2797, 2811), self.input.position) + _G_apply_107, lastError = self._apply( + self.rule_opt_gene_expr, "opt_gene_expr", [] + ) + self.considerError(lastError, "r_hgvs_position") + _locals["gene"] = _G_apply_107 + self._trace("", (2816, 2820), self.input.position) + _G_exactly_108, lastError = self.exactly(":") + self.considerError(lastError, "r_hgvs_position") + self._trace("", (2820, 2824), self.input.position) + _G_exactly_109, lastError = self.exactly("r") + self.considerError(lastError, "r_hgvs_position") + _locals["type"] = _G_exactly_109 + self._trace("", (2829, 2833), self.input.position) + _G_exactly_110, lastError = self.exactly(".") + self.considerError(lastError, "r_hgvs_position") + self._trace("", (2833, 2844), self.input.position) + _G_apply_111, lastError = self._apply( + self.rule_r_interval, "r_interval", [] + ) + self.considerError(lastError, "r_hgvs_position") + _locals["pos"] = _G_apply_111 + _G_python_112, lastError = ( + eval(self._G_expr_76, self.globals, _locals), + None, + ) + self.considerError(lastError, "r_hgvs_position") return (_G_python_112, self.currentError) - def rule_c_typed_posedit(self): - _locals = {'self': self} - self.locals['c_typed_posedit'] = _locals - self._trace('', (3248, 3252), self.input.position) - _G_exactly_113, lastError = self.exactly('c') - self.considerError(lastError, 'c_typed_posedit') - _locals['type'] = _G_exactly_113 - self._trace('', (3257, 3261), self.input.position) - _G_exactly_114, lastError = self.exactly('.') - self.considerError(lastError, 'c_typed_posedit') - self._trace('', (3261, 3271), self.input.position) + _locals = {"self": self} + self.locals["c_typed_posedit"] = _locals + self._trace("", (3248, 3252), self.input.position) + _G_exactly_113, lastError = self.exactly("c") + self.considerError(lastError, "c_typed_posedit") + _locals["type"] = _G_exactly_113 + self._trace("", (3257, 3261), self.input.position) + _G_exactly_114, lastError = self.exactly(".") + self.considerError(lastError, "c_typed_posedit") + self._trace("", (3261, 3271), self.input.position) _G_apply_115, lastError = self._apply(self.rule_c_posedit, "c_posedit", []) - self.considerError(lastError, 'c_typed_posedit') - _locals['posedit'] = _G_apply_115 - _G_python_117, lastError = eval(self._G_expr_116, self.globals, _locals), None - self.considerError(lastError, 'c_typed_posedit') + self.considerError(lastError, "c_typed_posedit") + _locals["posedit"] = _G_apply_115 + _G_python_117, lastError = ( + eval(self._G_expr_116, self.globals, _locals), + None, + ) + self.considerError(lastError, "c_typed_posedit") return (_G_python_117, self.currentError) - def rule_g_typed_posedit(self): - _locals = {'self': self} - self.locals['g_typed_posedit'] = _locals - self._trace('', (3356, 3360), self.input.position) - _G_exactly_118, lastError = self.exactly('g') - self.considerError(lastError, 'g_typed_posedit') - _locals['type'] = _G_exactly_118 - self._trace('', (3365, 3369), self.input.position) - _G_exactly_119, lastError = self.exactly('.') - self.considerError(lastError, 'g_typed_posedit') - self._trace('', (3369, 3379), self.input.position) + _locals = {"self": self} + self.locals["g_typed_posedit"] = _locals + self._trace("", (3356, 3360), self.input.position) + _G_exactly_118, lastError = self.exactly("g") + self.considerError(lastError, "g_typed_posedit") + _locals["type"] = _G_exactly_118 + self._trace("", (3365, 3369), self.input.position) + _G_exactly_119, lastError = self.exactly(".") + self.considerError(lastError, "g_typed_posedit") + self._trace("", (3369, 3379), self.input.position) _G_apply_120, lastError = self._apply(self.rule_g_posedit, "g_posedit", []) - self.considerError(lastError, 'g_typed_posedit') - _locals['posedit'] = _G_apply_120 - _G_python_121, lastError = eval(self._G_expr_116, self.globals, _locals), None - self.considerError(lastError, 'g_typed_posedit') + self.considerError(lastError, "g_typed_posedit") + _locals["posedit"] = _G_apply_120 + _G_python_121, lastError = ( + eval(self._G_expr_116, self.globals, _locals), + None, + ) + self.considerError(lastError, "g_typed_posedit") return (_G_python_121, self.currentError) - def rule_m_typed_posedit(self): - _locals = {'self': self} - self.locals['m_typed_posedit'] = _locals - self._trace('', (3464, 3468), self.input.position) - _G_exactly_122, lastError = self.exactly('m') - self.considerError(lastError, 'm_typed_posedit') - _locals['type'] = _G_exactly_122 - self._trace('', (3473, 3477), self.input.position) - _G_exactly_123, lastError = self.exactly('.') - self.considerError(lastError, 'm_typed_posedit') - self._trace('', (3477, 3487), self.input.position) + _locals = {"self": self} + self.locals["m_typed_posedit"] = _locals + self._trace("", (3464, 3468), self.input.position) + _G_exactly_122, lastError = self.exactly("m") + self.considerError(lastError, "m_typed_posedit") + _locals["type"] = _G_exactly_122 + self._trace("", (3473, 3477), self.input.position) + _G_exactly_123, lastError = self.exactly(".") + self.considerError(lastError, "m_typed_posedit") + self._trace("", (3477, 3487), self.input.position) _G_apply_124, lastError = self._apply(self.rule_m_posedit, "m_posedit", []) - self.considerError(lastError, 'm_typed_posedit') - _locals['posedit'] = _G_apply_124 - _G_python_125, lastError = eval(self._G_expr_116, self.globals, _locals), None - self.considerError(lastError, 'm_typed_posedit') + self.considerError(lastError, "m_typed_posedit") + _locals["posedit"] = _G_apply_124 + _G_python_125, lastError = ( + eval(self._G_expr_116, self.globals, _locals), + None, + ) + self.considerError(lastError, "m_typed_posedit") return (_G_python_125, self.currentError) - def rule_n_typed_posedit(self): - _locals = {'self': self} - self.locals['n_typed_posedit'] = _locals - self._trace('', (3572, 3576), self.input.position) - _G_exactly_126, lastError = self.exactly('n') - self.considerError(lastError, 'n_typed_posedit') - _locals['type'] = _G_exactly_126 - self._trace('', (3581, 3585), self.input.position) - _G_exactly_127, lastError = self.exactly('.') - self.considerError(lastError, 'n_typed_posedit') - self._trace('', (3585, 3595), self.input.position) + _locals = {"self": self} + self.locals["n_typed_posedit"] = _locals + self._trace("", (3572, 3576), self.input.position) + _G_exactly_126, lastError = self.exactly("n") + self.considerError(lastError, "n_typed_posedit") + _locals["type"] = _G_exactly_126 + self._trace("", (3581, 3585), self.input.position) + _G_exactly_127, lastError = self.exactly(".") + self.considerError(lastError, "n_typed_posedit") + self._trace("", (3585, 3595), self.input.position) _G_apply_128, lastError = self._apply(self.rule_n_posedit, "n_posedit", []) - self.considerError(lastError, 'n_typed_posedit') - _locals['posedit'] = _G_apply_128 - _G_python_129, lastError = eval(self._G_expr_116, self.globals, _locals), None - self.considerError(lastError, 'n_typed_posedit') + self.considerError(lastError, "n_typed_posedit") + _locals["posedit"] = _G_apply_128 + _G_python_129, lastError = ( + eval(self._G_expr_116, self.globals, _locals), + None, + ) + self.considerError(lastError, "n_typed_posedit") return (_G_python_129, self.currentError) - def rule_p_typed_posedit(self): - _locals = {'self': self} - self.locals['p_typed_posedit'] = _locals - self._trace('', (3680, 3684), self.input.position) - _G_exactly_130, lastError = self.exactly('p') - self.considerError(lastError, 'p_typed_posedit') - _locals['type'] = _G_exactly_130 - self._trace('', (3689, 3693), self.input.position) - _G_exactly_131, lastError = self.exactly('.') - self.considerError(lastError, 'p_typed_posedit') - self._trace('', (3693, 3703), self.input.position) + _locals = {"self": self} + self.locals["p_typed_posedit"] = _locals + self._trace("", (3680, 3684), self.input.position) + _G_exactly_130, lastError = self.exactly("p") + self.considerError(lastError, "p_typed_posedit") + _locals["type"] = _G_exactly_130 + self._trace("", (3689, 3693), self.input.position) + _G_exactly_131, lastError = self.exactly(".") + self.considerError(lastError, "p_typed_posedit") + self._trace("", (3693, 3703), self.input.position) _G_apply_132, lastError = self._apply(self.rule_p_posedit, "p_posedit", []) - self.considerError(lastError, 'p_typed_posedit') - _locals['posedit'] = _G_apply_132 - _G_python_133, lastError = eval(self._G_expr_116, self.globals, _locals), None - self.considerError(lastError, 'p_typed_posedit') + self.considerError(lastError, "p_typed_posedit") + _locals["posedit"] = _G_apply_132 + _G_python_133, lastError = ( + eval(self._G_expr_116, self.globals, _locals), + None, + ) + self.considerError(lastError, "p_typed_posedit") return (_G_python_133, self.currentError) - def rule_r_typed_posedit(self): - _locals = {'self': self} - self.locals['r_typed_posedit'] = _locals - self._trace('', (3788, 3792), self.input.position) - _G_exactly_134, lastError = self.exactly('r') - self.considerError(lastError, 'r_typed_posedit') - _locals['type'] = _G_exactly_134 - self._trace('', (3797, 3801), self.input.position) - _G_exactly_135, lastError = self.exactly('.') - self.considerError(lastError, 'r_typed_posedit') - self._trace('', (3801, 3811), self.input.position) + _locals = {"self": self} + self.locals["r_typed_posedit"] = _locals + self._trace("", (3788, 3792), self.input.position) + _G_exactly_134, lastError = self.exactly("r") + self.considerError(lastError, "r_typed_posedit") + _locals["type"] = _G_exactly_134 + self._trace("", (3797, 3801), self.input.position) + _G_exactly_135, lastError = self.exactly(".") + self.considerError(lastError, "r_typed_posedit") + self._trace("", (3801, 3811), self.input.position) _G_apply_136, lastError = self._apply(self.rule_r_posedit, "r_posedit", []) - self.considerError(lastError, 'r_typed_posedit') - _locals['posedit'] = _G_apply_136 - _G_python_137, lastError = eval(self._G_expr_116, self.globals, _locals), None - self.considerError(lastError, 'r_typed_posedit') + self.considerError(lastError, "r_typed_posedit") + _locals["posedit"] = _G_apply_136 + _G_python_137, lastError = ( + eval(self._G_expr_116, self.globals, _locals), + None, + ) + self.considerError(lastError, "r_typed_posedit") return (_G_python_137, self.currentError) - def rule_c_posedit(self): - _locals = {'self': self} - self.locals['c_posedit'] = _locals - self._trace('', (4009, 4020), self.input.position) - _G_apply_138, lastError = self._apply(self.rule_c_interval, "c_interval", []) - self.considerError(lastError, 'c_posedit') - _locals['pos'] = _G_apply_138 - self._trace('', (4024, 4033), self.input.position) + _locals = {"self": self} + self.locals["c_posedit"] = _locals + self._trace("", (4009, 4020), self.input.position) + _G_apply_138, lastError = self._apply( + self.rule_c_interval, "c_interval", [] + ) + self.considerError(lastError, "c_posedit") + _locals["pos"] = _G_apply_138 + self._trace("", (4024, 4033), self.input.position) _G_apply_139, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) - self.considerError(lastError, 'c_posedit') - _locals['edit'] = _G_apply_139 - _G_python_141, lastError = eval(self._G_expr_140, self.globals, _locals), None - self.considerError(lastError, 'c_posedit') + self.considerError(lastError, "c_posedit") + _locals["edit"] = _G_apply_139 + _G_python_141, lastError = ( + eval(self._G_expr_140, self.globals, _locals), + None, + ) + self.considerError(lastError, "c_posedit") return (_G_python_141, self.currentError) - def rule_g_posedit(self): - _locals = {'self': self} - self.locals['g_posedit'] = _locals - self._trace('', (4093, 4104), self.input.position) - _G_apply_142, lastError = self._apply(self.rule_g_interval, "g_interval", []) - self.considerError(lastError, 'g_posedit') - _locals['pos'] = _G_apply_142 - self._trace('', (4108, 4117), self.input.position) + _locals = {"self": self} + self.locals["g_posedit"] = _locals + self._trace("", (4093, 4104), self.input.position) + _G_apply_142, lastError = self._apply( + self.rule_g_interval, "g_interval", [] + ) + self.considerError(lastError, "g_posedit") + _locals["pos"] = _G_apply_142 + self._trace("", (4108, 4117), self.input.position) _G_apply_143, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) - self.considerError(lastError, 'g_posedit') - _locals['edit'] = _G_apply_143 - _G_python_144, lastError = eval(self._G_expr_140, self.globals, _locals), None - self.considerError(lastError, 'g_posedit') + self.considerError(lastError, "g_posedit") + _locals["edit"] = _G_apply_143 + _G_python_144, lastError = ( + eval(self._G_expr_140, self.globals, _locals), + None, + ) + self.considerError(lastError, "g_posedit") return (_G_python_144, self.currentError) - def rule_m_posedit(self): - _locals = {'self': self} - self.locals['m_posedit'] = _locals - self._trace('', (4177, 4188), self.input.position) - _G_apply_145, lastError = self._apply(self.rule_m_interval, "m_interval", []) - self.considerError(lastError, 'm_posedit') - _locals['pos'] = _G_apply_145 - self._trace('', (4192, 4201), self.input.position) + _locals = {"self": self} + self.locals["m_posedit"] = _locals + self._trace("", (4177, 4188), self.input.position) + _G_apply_145, lastError = self._apply( + self.rule_m_interval, "m_interval", [] + ) + self.considerError(lastError, "m_posedit") + _locals["pos"] = _G_apply_145 + self._trace("", (4192, 4201), self.input.position) _G_apply_146, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) - self.considerError(lastError, 'm_posedit') - _locals['edit'] = _G_apply_146 - _G_python_147, lastError = eval(self._G_expr_140, self.globals, _locals), None - self.considerError(lastError, 'm_posedit') + self.considerError(lastError, "m_posedit") + _locals["edit"] = _G_apply_146 + _G_python_147, lastError = ( + eval(self._G_expr_140, self.globals, _locals), + None, + ) + self.considerError(lastError, "m_posedit") return (_G_python_147, self.currentError) - def rule_n_posedit(self): - _locals = {'self': self} - self.locals['n_posedit'] = _locals - self._trace('', (4261, 4272), self.input.position) - _G_apply_148, lastError = self._apply(self.rule_n_interval, "n_interval", []) - self.considerError(lastError, 'n_posedit') - _locals['pos'] = _G_apply_148 - self._trace('', (4276, 4285), self.input.position) + _locals = {"self": self} + self.locals["n_posedit"] = _locals + self._trace("", (4261, 4272), self.input.position) + _G_apply_148, lastError = self._apply( + self.rule_n_interval, "n_interval", [] + ) + self.considerError(lastError, "n_posedit") + _locals["pos"] = _G_apply_148 + self._trace("", (4276, 4285), self.input.position) _G_apply_149, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) - self.considerError(lastError, 'n_posedit') - _locals['edit'] = _G_apply_149 - _G_python_150, lastError = eval(self._G_expr_140, self.globals, _locals), None - self.considerError(lastError, 'n_posedit') + self.considerError(lastError, "n_posedit") + _locals["edit"] = _G_apply_149 + _G_python_150, lastError = ( + eval(self._G_expr_140, self.globals, _locals), + None, + ) + self.considerError(lastError, "n_posedit") return (_G_python_150, self.currentError) - def rule_r_posedit(self): - _locals = {'self': self} - self.locals['r_posedit'] = _locals + _locals = {"self": self} + self.locals["r_posedit"] = _locals + def _G_or_151(): - self._trace('', (4347, 4357), self.input.position) - _G_apply_152, lastError = self._apply(self.rule_r_interval, "r_interval", []) - self.considerError(lastError, None) - _locals['pos'] = _G_apply_152 - self._trace('', (4361, 4370), self.input.position) - _G_apply_153, lastError = self._apply(self.rule_rna_edit, "rna_edit", []) - self.considerError(lastError, None) - _locals['edit'] = _G_apply_153 - _G_python_154, lastError = eval(self._G_expr_140, self.globals, _locals), None + self._trace("", (4347, 4357), self.input.position) + _G_apply_152, lastError = self._apply( + self.rule_r_interval, "r_interval", [] + ) + self.considerError(lastError, None) + _locals["pos"] = _G_apply_152 + self._trace("", (4361, 4370), self.input.position) + _G_apply_153, lastError = self._apply( + self.rule_rna_edit, "rna_edit", [] + ) + self.considerError(lastError, None) + _locals["edit"] = _G_apply_153 + _G_python_154, lastError = ( + eval(self._G_expr_140, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_154, self.currentError) + def _G_or_155(): - self._trace('', (4426, 4429), self.input.position) - _G_exactly_156, lastError = self.exactly('(') + self._trace("", (4426, 4429), self.input.position) + _G_exactly_156, lastError = self.exactly("(") self.considerError(lastError, None) - self._trace('', (4429, 4440), self.input.position) - _G_apply_157, lastError = self._apply(self.rule_r_interval, "r_interval", []) + self._trace("", (4429, 4440), self.input.position) + _G_apply_157, lastError = self._apply( + self.rule_r_interval, "r_interval", [] + ) self.considerError(lastError, None) - _locals['pos'] = _G_apply_157 - self._trace('', (4444, 4453), self.input.position) - _G_apply_158, lastError = self._apply(self.rule_rna_edit, "rna_edit", []) + _locals["pos"] = _G_apply_157 + self._trace("", (4444, 4453), self.input.position) + _G_apply_158, lastError = self._apply( + self.rule_rna_edit, "rna_edit", [] + ) self.considerError(lastError, None) - _locals['edit'] = _G_apply_158 - self._trace('', (4458, 4462), self.input.position) - _G_exactly_159, lastError = self.exactly(')') + _locals["edit"] = _G_apply_158 + self._trace("", (4458, 4462), self.input.position) + _G_exactly_159, lastError = self.exactly(")") self.considerError(lastError, None) - _G_python_161, lastError = eval(self._G_expr_160, self.globals, _locals), None + _G_python_161, lastError = ( + eval(self._G_expr_160, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_161, self.currentError) + _G_or_162, lastError = self._or([_G_or_151, _G_or_155]) - self.considerError(lastError, 'r_posedit') + self.considerError(lastError, "r_posedit") return (_G_or_162, self.currentError) - def rule_p_posedit(self): - _locals = {'self': self} - self.locals['p_posedit'] = _locals + _locals = {"self": self} + self.locals["p_posedit"] = _locals + def _G_or_163(): - self._trace('', (4539, 4549), self.input.position) - _G_apply_164, lastError = self._apply(self.rule_p_interval, "p_interval", []) - self.considerError(lastError, None) - _locals['pos'] = _G_apply_164 - self._trace('', (4553, 4562), self.input.position) - _G_apply_165, lastError = self._apply(self.rule_pro_edit, "pro_edit", []) - self.considerError(lastError, None) - _locals['edit'] = _G_apply_165 - _G_python_166, lastError = eval(self._G_expr_140, self.globals, _locals), None + self._trace("", (4539, 4549), self.input.position) + _G_apply_164, lastError = self._apply( + self.rule_p_interval, "p_interval", [] + ) + self.considerError(lastError, None) + _locals["pos"] = _G_apply_164 + self._trace("", (4553, 4562), self.input.position) + _G_apply_165, lastError = self._apply( + self.rule_pro_edit, "pro_edit", [] + ) + self.considerError(lastError, None) + _locals["edit"] = _G_apply_165 + _G_python_166, lastError = ( + eval(self._G_expr_140, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_166, self.currentError) + def _G_or_167(): - self._trace('', (4618, 4621), self.input.position) - _G_exactly_168, lastError = self.exactly('(') + self._trace("", (4618, 4621), self.input.position) + _G_exactly_168, lastError = self.exactly("(") self.considerError(lastError, None) - self._trace('', (4621, 4632), self.input.position) - _G_apply_169, lastError = self._apply(self.rule_p_interval, "p_interval", []) + self._trace("", (4621, 4632), self.input.position) + _G_apply_169, lastError = self._apply( + self.rule_p_interval, "p_interval", [] + ) self.considerError(lastError, None) - _locals['pos'] = _G_apply_169 - self._trace('', (4636, 4645), self.input.position) - _G_apply_170, lastError = self._apply(self.rule_pro_edit, "pro_edit", []) + _locals["pos"] = _G_apply_169 + self._trace("", (4636, 4645), self.input.position) + _G_apply_170, lastError = self._apply( + self.rule_pro_edit, "pro_edit", [] + ) self.considerError(lastError, None) - _locals['edit'] = _G_apply_170 - self._trace('', (4650, 4654), self.input.position) - _G_exactly_171, lastError = self.exactly(')') + _locals["edit"] = _G_apply_170 + self._trace("", (4650, 4654), self.input.position) + _G_exactly_171, lastError = self.exactly(")") self.considerError(lastError, None) - _G_python_172, lastError = eval(self._G_expr_160, self.globals, _locals), None + _G_python_172, lastError = ( + eval(self._G_expr_160, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_172, self.currentError) + def _G_or_173(): - self._trace('', (4719, 4737), self.input.position) - _G_apply_174, lastError = self._apply(self.rule_p_posedit_special, "p_posedit_special", []) + self._trace("", (4719, 4737), self.input.position) + _G_apply_174, lastError = self._apply( + self.rule_p_posedit_special, "p_posedit_special", [] + ) self.considerError(lastError, None) return (_G_apply_174, self.currentError) + _G_or_175, lastError = self._or([_G_or_163, _G_or_167, _G_or_173]) - self.considerError(lastError, 'p_posedit') + self.considerError(lastError, "p_posedit") return (_G_or_175, self.currentError) - def rule_p_posedit_special(self): - _locals = {'self': self} - self.locals['p_posedit_special'] = _locals + _locals = {"self": self} + self.locals["p_posedit_special"] = _locals + def _G_or_176(): - self._trace('', (4757, 4767), self.input.position) - _G_exactly_177, lastError = self.exactly('=') + self._trace("", (4757, 4767), self.input.position) + _G_exactly_177, lastError = self.exactly("=") self.considerError(lastError, None) - _locals['x'] = _G_exactly_177 - _G_python_179, lastError = eval(self._G_expr_178, self.globals, _locals), None + _locals["x"] = _G_exactly_177 + _G_python_179, lastError = ( + eval(self._G_expr_178, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_179, self.currentError) + def _G_or_180(): - self._trace('', (4829, 4833), self.input.position) - _G_exactly_181, lastError = self.exactly('(') + self._trace("", (4829, 4833), self.input.position) + _G_exactly_181, lastError = self.exactly("(") self.considerError(lastError, None) - self._trace('', (4833, 4837), self.input.position) - _G_exactly_182, lastError = self.exactly('=') + self._trace("", (4833, 4837), self.input.position) + _G_exactly_182, lastError = self.exactly("=") self.considerError(lastError, None) - _locals['x'] = _G_exactly_182 - self._trace('', (4839, 4843), self.input.position) - _G_exactly_183, lastError = self.exactly(')') + _locals["x"] = _G_exactly_182 + self._trace("", (4839, 4843), self.input.position) + _G_exactly_183, lastError = self.exactly(")") self.considerError(lastError, None) - _G_python_185, lastError = eval(self._G_expr_184, self.globals, _locals), None + _G_python_185, lastError = ( + eval(self._G_expr_184, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_185, self.currentError) + def _G_or_186(): - self._trace('', (4902, 4906), self.input.position) - _G_exactly_187, lastError = self.exactly('0') + self._trace("", (4902, 4906), self.input.position) + _G_exactly_187, lastError = self.exactly("0") self.considerError(lastError, None) - _locals['x'] = _G_exactly_187 - self._trace('', (4908, 4912), self.input.position) - _G_exactly_188, lastError = self.exactly('?') + _locals["x"] = _G_exactly_187 + self._trace("", (4908, 4912), self.input.position) + _G_exactly_188, lastError = self.exactly("?") self.considerError(lastError, None) - _G_python_189, lastError = eval(self._G_expr_184, self.globals, _locals), None + _G_python_189, lastError = ( + eval(self._G_expr_184, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_189, self.currentError) + def _G_or_190(): - self._trace('', (4971, 4975), self.input.position) - _G_exactly_191, lastError = self.exactly('0') + self._trace("", (4971, 4975), self.input.position) + _G_exactly_191, lastError = self.exactly("0") self.considerError(lastError, None) - _locals['x'] = _G_exactly_191 - _G_python_192, lastError = eval(self._G_expr_178, self.globals, _locals), None + _locals["x"] = _G_exactly_191 + _G_python_192, lastError = ( + eval(self._G_expr_178, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_192, self.currentError) + def _G_or_193(): - self._trace('', (5037, 5041), self.input.position) - _G_exactly_194, lastError = self.exactly('?') + self._trace("", (5037, 5041), self.input.position) + _G_exactly_194, lastError = self.exactly("?") self.considerError(lastError, None) - _locals['x'] = _G_exactly_194 + _locals["x"] = _G_exactly_194 _G_python_195, lastError = (None), None self.considerError(lastError, None) return (_G_python_195, self.currentError) - _G_or_196, lastError = self._or([_G_or_176, _G_or_180, _G_or_186, _G_or_190, _G_or_193]) - self.considerError(lastError, 'p_posedit_special') - return (_G_or_196, self.currentError) + _G_or_196, lastError = self._or( + [_G_or_176, _G_or_180, _G_or_186, _G_or_190, _G_or_193] + ) + self.considerError(lastError, "p_posedit_special") + return (_G_or_196, self.currentError) def rule_dna_edit_mu(self): - _locals = {'self': self} - self.locals['dna_edit_mu'] = _locals + _locals = {"self": self} + self.locals["dna_edit_mu"] = _locals + def _G_or_197(): - self._trace('', (5392, 5401), self.input.position) - _G_apply_198, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) + self._trace("", (5392, 5401), self.input.position) + _G_apply_198, lastError = self._apply( + self.rule_dna_edit, "dna_edit", [] + ) self.considerError(lastError, None) return (_G_apply_198, self.currentError) + def _G_or_199(): - self._trace('', (5403, 5407), self.input.position) - _G_exactly_200, lastError = self.exactly('(') + self._trace("", (5403, 5407), self.input.position) + _G_exactly_200, lastError = self.exactly("(") self.considerError(lastError, None) - self._trace('', (5407, 5416), self.input.position) - _G_apply_201, lastError = self._apply(self.rule_dna_edit, "dna_edit", []) + self._trace("", (5407, 5416), self.input.position) + _G_apply_201, lastError = self._apply( + self.rule_dna_edit, "dna_edit", [] + ) self.considerError(lastError, None) - _locals['edit'] = _G_apply_201 - self._trace('', (5421, 5425), self.input.position) - _G_exactly_202, lastError = self.exactly(')') + _locals["edit"] = _G_apply_201 + self._trace("", (5421, 5425), self.input.position) + _G_exactly_202, lastError = self.exactly(")") self.considerError(lastError, None) - _G_python_204, lastError = eval(self._G_expr_203, self.globals, _locals), None + _G_python_204, lastError = ( + eval(self._G_expr_203, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_204, self.currentError) + _G_or_205, lastError = self._or([_G_or_197, _G_or_199]) - self.considerError(lastError, 'dna_edit_mu') + self.considerError(lastError, "dna_edit_mu") return (_G_or_205, self.currentError) - def rule_dna_edit(self): - _locals = {'self': self} - self.locals['dna_edit'] = _locals + _locals = {"self": self} + self.locals["dna_edit"] = _locals + def _G_or_206(): - self._trace('', (5463, 5473), self.input.position) - _G_apply_207, lastError = self._apply(self.rule_dna_ident, "dna_ident", []) + self._trace("", (5463, 5473), self.input.position) + _G_apply_207, lastError = self._apply( + self.rule_dna_ident, "dna_ident", [] + ) self.considerError(lastError, None) return (_G_apply_207, self.currentError) + def _G_or_208(): - self._trace('', (5475, 5485), self.input.position) - _G_apply_209, lastError = self._apply(self.rule_dna_subst, "dna_subst", []) + self._trace("", (5475, 5485), self.input.position) + _G_apply_209, lastError = self._apply( + self.rule_dna_subst, "dna_subst", [] + ) self.considerError(lastError, None) return (_G_apply_209, self.currentError) + def _G_or_210(): - self._trace('', (5487, 5498), self.input.position) - _G_apply_211, lastError = self._apply(self.rule_dna_delins, "dna_delins", []) + self._trace("", (5487, 5498), self.input.position) + _G_apply_211, lastError = self._apply( + self.rule_dna_delins, "dna_delins", [] + ) self.considerError(lastError, None) return (_G_apply_211, self.currentError) + def _G_or_212(): - self._trace('', (5500, 5508), self.input.position) + self._trace("", (5500, 5508), self.input.position) _G_apply_213, lastError = self._apply(self.rule_dna_ins, "dna_ins", []) self.considerError(lastError, None) return (_G_apply_213, self.currentError) + def _G_or_214(): - self._trace('', (5510, 5518), self.input.position) + self._trace("", (5510, 5518), self.input.position) _G_apply_215, lastError = self._apply(self.rule_dna_del, "dna_del", []) self.considerError(lastError, None) return (_G_apply_215, self.currentError) + def _G_or_216(): - self._trace('', (5520, 5528), self.input.position) + self._trace("", (5520, 5528), self.input.position) _G_apply_217, lastError = self._apply(self.rule_dna_dup, "dna_dup", []) self.considerError(lastError, None) return (_G_apply_217, self.currentError) + def _G_or_218(): - self._trace('', (5530, 5538), self.input.position) + self._trace("", (5530, 5538), self.input.position) _G_apply_219, lastError = self._apply(self.rule_dna_inv, "dna_inv", []) self.considerError(lastError, None) return (_G_apply_219, self.currentError) + def _G_or_220(): - self._trace('', (5540, 5548), self.input.position) + self._trace("", (5540, 5548), self.input.position) _G_apply_221, lastError = self._apply(self.rule_dna_con, "dna_con", []) self.considerError(lastError, None) return (_G_apply_221, self.currentError) + def _G_or_222(): - self._trace('', (5550, 5559), self.input.position) - _G_apply_223, lastError = self._apply(self.rule_dna_copy, "dna_copy", []) + self._trace("", (5550, 5559), self.input.position) + _G_apply_223, lastError = self._apply( + self.rule_dna_copy, "dna_copy", [] + ) self.considerError(lastError, None) return (_G_apply_223, self.currentError) - _G_or_224, lastError = self._or([_G_or_206, _G_or_208, _G_or_210, _G_or_212, _G_or_214, _G_or_216, _G_or_218, _G_or_220, _G_or_222]) - self.considerError(lastError, 'dna_edit') - return (_G_or_224, self.currentError) + _G_or_224, lastError = self._or( + [ + _G_or_206, + _G_or_208, + _G_or_210, + _G_or_212, + _G_or_214, + _G_or_216, + _G_or_218, + _G_or_220, + _G_or_222, + ] + ) + self.considerError(lastError, "dna_edit") + return (_G_or_224, self.currentError) def rule_dna_ident(self): - _locals = {'self': self} - self.locals['dna_ident'] = _locals + _locals = {"self": self} + self.locals["dna_ident"] = _locals + def _G_consumedby_225(): def _G_many_226(): - self._trace('', (5574, 5577), self.input.position) + self._trace("", (5574, 5577), self.input.position) _G_apply_227, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_227, self.currentError) + _G_many_228, lastError = self.many(_G_many_226) self.considerError(lastError, None) return (_G_many_228, self.currentError) + _G_consumedby_229, lastError = self.consumedby(_G_consumedby_225) - self.considerError(lastError, 'dna_ident') - _locals['ref'] = _G_consumedby_229 - self._trace('', (5583, 5587), self.input.position) - _G_exactly_230, lastError = self.exactly('=') - self.considerError(lastError, 'dna_ident') - _G_python_232, lastError = eval(self._G_expr_231, self.globals, _locals), None - self.considerError(lastError, 'dna_ident') + self.considerError(lastError, "dna_ident") + _locals["ref"] = _G_consumedby_229 + self._trace("", (5583, 5587), self.input.position) + _G_exactly_230, lastError = self.exactly("=") + self.considerError(lastError, "dna_ident") + _G_python_232, lastError = ( + eval(self._G_expr_231, self.globals, _locals), + None, + ) + self.considerError(lastError, "dna_ident") return (_G_python_232, self.currentError) - def rule_dna_subst(self): - _locals = {'self': self} - self.locals['dna_subst'] = _locals - self._trace('', (5649, 5653), self.input.position) + _locals = {"self": self} + self.locals["dna_subst"] = _locals + self._trace("", (5649, 5653), self.input.position) _G_apply_233, lastError = self._apply(self.rule_dna, "dna", []) - self.considerError(lastError, 'dna_subst') - _locals['ref'] = _G_apply_233 - self._trace('', (5657, 5661), self.input.position) - _G_exactly_234, lastError = self.exactly('>') - self.considerError(lastError, 'dna_subst') - self._trace('', (5661, 5665), self.input.position) + self.considerError(lastError, "dna_subst") + _locals["ref"] = _G_apply_233 + self._trace("", (5657, 5661), self.input.position) + _G_exactly_234, lastError = self.exactly(">") + self.considerError(lastError, "dna_subst") + self._trace("", (5661, 5665), self.input.position) _G_apply_235, lastError = self._apply(self.rule_dna, "dna", []) - self.considerError(lastError, 'dna_subst') - _locals['alt'] = _G_apply_235 - _G_python_237, lastError = eval(self._G_expr_236, self.globals, _locals), None - self.considerError(lastError, 'dna_subst') + self.considerError(lastError, "dna_subst") + _locals["alt"] = _G_apply_235 + _G_python_237, lastError = ( + eval(self._G_expr_236, self.globals, _locals), + None, + ) + self.considerError(lastError, "dna_subst") return (_G_python_237, self.currentError) - def rule_dna_delins(self): - _locals = {'self': self} - self.locals['dna_delins'] = _locals - self._trace('', (5726, 5732), self.input.position) - _G_exactly_238, lastError = self.exactly('del') - self.considerError(lastError, 'dna_delins') + _locals = {"self": self} + self.locals["dna_delins"] = _locals + self._trace("", (5726, 5732), self.input.position) + _G_exactly_238, lastError = self.exactly("del") + self.considerError(lastError, "dna_delins") + def _G_or_239(): def _G_consumedby_240(): - self._trace('', (5735, 5738), self.input.position) + self._trace("", (5735, 5738), self.input.position) _G_apply_241, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_241, self.currentError) + _G_consumedby_242, lastError = self.consumedby(_G_consumedby_240) self.considerError(lastError, None) return (_G_consumedby_242, self.currentError) + def _G_or_243(): def _G_consumedby_244(): def _G_many_245(): - self._trace('', (5741, 5744), self.input.position) + self._trace("", (5741, 5744), self.input.position) _G_apply_246, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_246, self.currentError) + _G_many_247, lastError = self.many(_G_many_245) self.considerError(lastError, None) return (_G_many_247, self.currentError) + _G_consumedby_248, lastError = self.consumedby(_G_consumedby_244) self.considerError(lastError, None) return (_G_consumedby_248, self.currentError) + _G_or_249, lastError = self._or([_G_or_239, _G_or_243]) - self.considerError(lastError, 'dna_delins') - _locals['ref'] = _G_or_249 - self._trace('', (5751, 5757), self.input.position) - _G_exactly_250, lastError = self.exactly('ins') - self.considerError(lastError, 'dna_delins') + self.considerError(lastError, "dna_delins") + _locals["ref"] = _G_or_249 + self._trace("", (5751, 5757), self.input.position) + _G_exactly_250, lastError = self.exactly("ins") + self.considerError(lastError, "dna_delins") + def _G_consumedby_251(): def _G_many1_252(): - self._trace('', (5759, 5762), self.input.position) + self._trace("", (5759, 5762), self.input.position) _G_apply_253, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_253, self.currentError) + _G_many1_254, lastError = self.many(_G_many1_252, _G_many1_252()) self.considerError(lastError, None) return (_G_many1_254, self.currentError) + _G_consumedby_255, lastError = self.consumedby(_G_consumedby_251) - self.considerError(lastError, 'dna_delins') - _locals['alt'] = _G_consumedby_255 - _G_python_256, lastError = eval(self._G_expr_236, self.globals, _locals), None - self.considerError(lastError, 'dna_delins') + self.considerError(lastError, "dna_delins") + _locals["alt"] = _G_consumedby_255 + _G_python_256, lastError = ( + eval(self._G_expr_236, self.globals, _locals), + None, + ) + self.considerError(lastError, "dna_delins") return (_G_python_256, self.currentError) - def rule_dna_del(self): - _locals = {'self': self} - self.locals['dna_del'] = _locals - self._trace('', (5821, 5827), self.input.position) - _G_exactly_257, lastError = self.exactly('del') - self.considerError(lastError, 'dna_del') + _locals = {"self": self} + self.locals["dna_del"] = _locals + self._trace("", (5821, 5827), self.input.position) + _G_exactly_257, lastError = self.exactly("del") + self.considerError(lastError, "dna_del") + def _G_or_258(): def _G_consumedby_259(): - self._trace('', (5830, 5833), self.input.position) + self._trace("", (5830, 5833), self.input.position) _G_apply_260, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_260, self.currentError) + _G_consumedby_261, lastError = self.consumedby(_G_consumedby_259) self.considerError(lastError, None) return (_G_consumedby_261, self.currentError) + def _G_or_262(): def _G_consumedby_263(): def _G_many_264(): - self._trace('', (5836, 5839), self.input.position) + self._trace("", (5836, 5839), self.input.position) _G_apply_265, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_265, self.currentError) + _G_many_266, lastError = self.many(_G_many_264) self.considerError(lastError, None) return (_G_many_266, self.currentError) + _G_consumedby_267, lastError = self.consumedby(_G_consumedby_263) self.considerError(lastError, None) return (_G_consumedby_267, self.currentError) + _G_or_268, lastError = self._or([_G_or_258, _G_or_262]) - self.considerError(lastError, 'dna_del') - _locals['ref'] = _G_or_268 - _G_python_270, lastError = eval(self._G_expr_269, self.globals, _locals), None - self.considerError(lastError, 'dna_del') + self.considerError(lastError, "dna_del") + _locals["ref"] = _G_or_268 + _G_python_270, lastError = ( + eval(self._G_expr_269, self.globals, _locals), + None, + ) + self.considerError(lastError, "dna_del") return (_G_python_270, self.currentError) - def rule_dna_ins(self): - _locals = {'self': self} - self.locals['dna_ins'] = _locals - self._trace('', (5899, 5905), self.input.position) - _G_exactly_271, lastError = self.exactly('ins') - self.considerError(lastError, 'dna_ins') + _locals = {"self": self} + self.locals["dna_ins"] = _locals + self._trace("", (5899, 5905), self.input.position) + _G_exactly_271, lastError = self.exactly("ins") + self.considerError(lastError, "dna_ins") + def _G_consumedby_272(): def _G_many1_273(): - self._trace('', (5907, 5910), self.input.position) + self._trace("", (5907, 5910), self.input.position) _G_apply_274, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_274, self.currentError) + _G_many1_275, lastError = self.many(_G_many1_273, _G_many1_273()) self.considerError(lastError, None) return (_G_many1_275, self.currentError) + _G_consumedby_276, lastError = self.consumedby(_G_consumedby_272) - self.considerError(lastError, 'dna_ins') - _locals['alt'] = _G_consumedby_276 - _G_python_278, lastError = eval(self._G_expr_277, self.globals, _locals), None - self.considerError(lastError, 'dna_ins') + self.considerError(lastError, "dna_ins") + _locals["alt"] = _G_consumedby_276 + _G_python_278, lastError = ( + eval(self._G_expr_277, self.globals, _locals), + None, + ) + self.considerError(lastError, "dna_ins") return (_G_python_278, self.currentError) - def rule_dna_dup(self): - _locals = {'self': self} - self.locals['dna_dup'] = _locals - self._trace('', (5977, 5983), self.input.position) - _G_exactly_279, lastError = self.exactly('dup') - self.considerError(lastError, 'dna_dup') + _locals = {"self": self} + self.locals["dna_dup"] = _locals + self._trace("", (5977, 5983), self.input.position) + _G_exactly_279, lastError = self.exactly("dup") + self.considerError(lastError, "dna_dup") + def _G_consumedby_280(): def _G_many_281(): - self._trace('', (5985, 5988), self.input.position) + self._trace("", (5985, 5988), self.input.position) _G_apply_282, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_282, self.currentError) + _G_many_283, lastError = self.many(_G_many_281) self.considerError(lastError, None) return (_G_many_283, self.currentError) + _G_consumedby_284, lastError = self.consumedby(_G_consumedby_280) - self.considerError(lastError, 'dna_dup') - _locals['ref'] = _G_consumedby_284 - _G_python_286, lastError = eval(self._G_expr_285, self.globals, _locals), None - self.considerError(lastError, 'dna_dup') + self.considerError(lastError, "dna_dup") + _locals["ref"] = _G_consumedby_284 + _G_python_286, lastError = ( + eval(self._G_expr_285, self.globals, _locals), + None, + ) + self.considerError(lastError, "dna_dup") return (_G_python_286, self.currentError) - def rule_dna_inv(self): - _locals = {'self': self} - self.locals['dna_inv'] = _locals - self._trace('', (6041, 6047), self.input.position) - _G_exactly_287, lastError = self.exactly('inv') - self.considerError(lastError, 'dna_inv') + _locals = {"self": self} + self.locals["dna_inv"] = _locals + self._trace("", (6041, 6047), self.input.position) + _G_exactly_287, lastError = self.exactly("inv") + self.considerError(lastError, "dna_inv") + def _G_or_288(): def _G_consumedby_289(): - self._trace('', (6050, 6053), self.input.position) + self._trace("", (6050, 6053), self.input.position) _G_apply_290, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_290, self.currentError) + _G_consumedby_291, lastError = self.consumedby(_G_consumedby_289) self.considerError(lastError, None) return (_G_consumedby_291, self.currentError) + def _G_or_292(): def _G_consumedby_293(): def _G_many_294(): - self._trace('', (6056, 6059), self.input.position) + self._trace("", (6056, 6059), self.input.position) _G_apply_295, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_295, self.currentError) + _G_many_296, lastError = self.many(_G_many_294) self.considerError(lastError, None) return (_G_many_296, self.currentError) + _G_consumedby_297, lastError = self.consumedby(_G_consumedby_293) self.considerError(lastError, None) return (_G_consumedby_297, self.currentError) + _G_or_298, lastError = self._or([_G_or_288, _G_or_292]) - self.considerError(lastError, 'dna_inv') - _locals['ref'] = _G_or_298 - _G_python_300, lastError = eval(self._G_expr_299, self.globals, _locals), None - self.considerError(lastError, 'dna_inv') + self.considerError(lastError, "dna_inv") + _locals["ref"] = _G_or_298 + _G_python_300, lastError = ( + eval(self._G_expr_299, self.globals, _locals), + None, + ) + self.considerError(lastError, "dna_inv") return (_G_python_300, self.currentError) - def rule_dna_con(self): - _locals = {'self': self} - self.locals['dna_con'] = _locals - self._trace('', (6106, 6112), self.input.position) - _G_exactly_301, lastError = self.exactly('con') - self.considerError(lastError, 'dna_con') - self._trace('', (6112, 6126), self.input.position) - _G_apply_302, lastError = self._apply(self.rule_hgvs_position, "hgvs_position", []) - self.considerError(lastError, 'dna_con') - _locals['pos'] = _G_apply_302 - _G_python_304, lastError = eval(self._G_expr_303, self.globals, _locals), None - self.considerError(lastError, 'dna_con') + _locals = {"self": self} + self.locals["dna_con"] = _locals + self._trace("", (6106, 6112), self.input.position) + _G_exactly_301, lastError = self.exactly("con") + self.considerError(lastError, "dna_con") + self._trace("", (6112, 6126), self.input.position) + _G_apply_302, lastError = self._apply( + self.rule_hgvs_position, "hgvs_position", [] + ) + self.considerError(lastError, "dna_con") + _locals["pos"] = _G_apply_302 + _G_python_304, lastError = ( + eval(self._G_expr_303, self.globals, _locals), + None, + ) + self.considerError(lastError, "dna_con") return (_G_python_304, self.currentError) - def rule_dna_copy(self): - _locals = {'self': self} - self.locals['dna_copy'] = _locals - self._trace('', (6216, 6223), self.input.position) - _G_exactly_305, lastError = self.exactly('copy') - self.considerError(lastError, 'dna_copy') - self._trace('', (6223, 6227), self.input.position) + _locals = {"self": self} + self.locals["dna_copy"] = _locals + self._trace("", (6216, 6223), self.input.position) + _G_exactly_305, lastError = self.exactly("copy") + self.considerError(lastError, "dna_copy") + self._trace("", (6223, 6227), self.input.position) _G_apply_306, lastError = self._apply(self.rule_num, "num", []) - self.considerError(lastError, 'dna_copy') - _locals['n'] = _G_apply_306 - _G_python_308, lastError = eval(self._G_expr_307, self.globals, _locals), None - self.considerError(lastError, 'dna_copy') + self.considerError(lastError, "dna_copy") + _locals["n"] = _G_apply_306 + _G_python_308, lastError = ( + eval(self._G_expr_307, self.globals, _locals), + None, + ) + self.considerError(lastError, "dna_copy") return (_G_python_308, self.currentError) - def rule_rna_edit_mu(self): - _locals = {'self': self} - self.locals['rna_edit_mu'] = _locals + _locals = {"self": self} + self.locals["rna_edit_mu"] = _locals + def _G_or_309(): - self._trace('', (6272, 6281), self.input.position) - _G_apply_310, lastError = self._apply(self.rule_rna_edit, "rna_edit", []) + self._trace("", (6272, 6281), self.input.position) + _G_apply_310, lastError = self._apply( + self.rule_rna_edit, "rna_edit", [] + ) self.considerError(lastError, None) return (_G_apply_310, self.currentError) + def _G_or_311(): - self._trace('', (6283, 6287), self.input.position) - _G_exactly_312, lastError = self.exactly('(') + self._trace("", (6283, 6287), self.input.position) + _G_exactly_312, lastError = self.exactly("(") self.considerError(lastError, None) - self._trace('', (6287, 6296), self.input.position) - _G_apply_313, lastError = self._apply(self.rule_rna_edit, "rna_edit", []) + self._trace("", (6287, 6296), self.input.position) + _G_apply_313, lastError = self._apply( + self.rule_rna_edit, "rna_edit", [] + ) self.considerError(lastError, None) - _locals['edit'] = _G_apply_313 - self._trace('', (6301, 6305), self.input.position) - _G_exactly_314, lastError = self.exactly(')') + _locals["edit"] = _G_apply_313 + self._trace("", (6301, 6305), self.input.position) + _G_exactly_314, lastError = self.exactly(")") self.considerError(lastError, None) - _G_python_315, lastError = eval(self._G_expr_203, self.globals, _locals), None + _G_python_315, lastError = ( + eval(self._G_expr_203, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_315, self.currentError) + _G_or_316, lastError = self._or([_G_or_309, _G_or_311]) - self.considerError(lastError, 'rna_edit_mu') + self.considerError(lastError, "rna_edit_mu") return (_G_or_316, self.currentError) - def rule_rna_edit(self): - _locals = {'self': self} - self.locals['rna_edit'] = _locals + _locals = {"self": self} + self.locals["rna_edit"] = _locals + def _G_or_317(): - self._trace('', (6343, 6353), self.input.position) - _G_apply_318, lastError = self._apply(self.rule_rna_ident, "rna_ident", []) + self._trace("", (6343, 6353), self.input.position) + _G_apply_318, lastError = self._apply( + self.rule_rna_ident, "rna_ident", [] + ) self.considerError(lastError, None) return (_G_apply_318, self.currentError) + def _G_or_319(): - self._trace('', (6355, 6365), self.input.position) - _G_apply_320, lastError = self._apply(self.rule_rna_subst, "rna_subst", []) + self._trace("", (6355, 6365), self.input.position) + _G_apply_320, lastError = self._apply( + self.rule_rna_subst, "rna_subst", [] + ) self.considerError(lastError, None) return (_G_apply_320, self.currentError) + def _G_or_321(): - self._trace('', (6367, 6378), self.input.position) - _G_apply_322, lastError = self._apply(self.rule_rna_delins, "rna_delins", []) + self._trace("", (6367, 6378), self.input.position) + _G_apply_322, lastError = self._apply( + self.rule_rna_delins, "rna_delins", [] + ) self.considerError(lastError, None) return (_G_apply_322, self.currentError) + def _G_or_323(): - self._trace('', (6380, 6388), self.input.position) + self._trace("", (6380, 6388), self.input.position) _G_apply_324, lastError = self._apply(self.rule_rna_ins, "rna_ins", []) self.considerError(lastError, None) return (_G_apply_324, self.currentError) + def _G_or_325(): - self._trace('', (6390, 6398), self.input.position) + self._trace("", (6390, 6398), self.input.position) _G_apply_326, lastError = self._apply(self.rule_rna_del, "rna_del", []) self.considerError(lastError, None) return (_G_apply_326, self.currentError) + def _G_or_327(): - self._trace('', (6400, 6408), self.input.position) + self._trace("", (6400, 6408), self.input.position) _G_apply_328, lastError = self._apply(self.rule_rna_dup, "rna_dup", []) self.considerError(lastError, None) return (_G_apply_328, self.currentError) + def _G_or_329(): - self._trace('', (6410, 6418), self.input.position) + self._trace("", (6410, 6418), self.input.position) _G_apply_330, lastError = self._apply(self.rule_rna_inv, "rna_inv", []) self.considerError(lastError, None) return (_G_apply_330, self.currentError) + def _G_or_331(): - self._trace('', (6420, 6428), self.input.position) + self._trace("", (6420, 6428), self.input.position) _G_apply_332, lastError = self._apply(self.rule_rna_con, "rna_con", []) self.considerError(lastError, None) return (_G_apply_332, self.currentError) - _G_or_333, lastError = self._or([_G_or_317, _G_or_319, _G_or_321, _G_or_323, _G_or_325, _G_or_327, _G_or_329, _G_or_331]) - self.considerError(lastError, 'rna_edit') - return (_G_or_333, self.currentError) + _G_or_333, lastError = self._or( + [ + _G_or_317, + _G_or_319, + _G_or_321, + _G_or_323, + _G_or_325, + _G_or_327, + _G_or_329, + _G_or_331, + ] + ) + self.considerError(lastError, "rna_edit") + return (_G_or_333, self.currentError) def rule_rna_ident(self): - _locals = {'self': self} - self.locals['rna_ident'] = _locals + _locals = {"self": self} + self.locals["rna_ident"] = _locals + def _G_consumedby_334(): def _G_many_335(): - self._trace('', (6443, 6446), self.input.position) + self._trace("", (6443, 6446), self.input.position) _G_apply_336, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_336, self.currentError) + _G_many_337, lastError = self.many(_G_many_335) self.considerError(lastError, None) return (_G_many_337, self.currentError) + _G_consumedby_338, lastError = self.consumedby(_G_consumedby_334) - self.considerError(lastError, 'rna_ident') - _locals['ref'] = _G_consumedby_338 - self._trace('', (6452, 6456), self.input.position) - _G_exactly_339, lastError = self.exactly('=') - self.considerError(lastError, 'rna_ident') - _G_python_340, lastError = eval(self._G_expr_231, self.globals, _locals), None - self.considerError(lastError, 'rna_ident') + self.considerError(lastError, "rna_ident") + _locals["ref"] = _G_consumedby_338 + self._trace("", (6452, 6456), self.input.position) + _G_exactly_339, lastError = self.exactly("=") + self.considerError(lastError, "rna_ident") + _G_python_340, lastError = ( + eval(self._G_expr_231, self.globals, _locals), + None, + ) + self.considerError(lastError, "rna_ident") return (_G_python_340, self.currentError) - def rule_rna_subst(self): - _locals = {'self': self} - self.locals['rna_subst'] = _locals - self._trace('', (6525, 6529), self.input.position) + _locals = {"self": self} + self.locals["rna_subst"] = _locals + self._trace("", (6525, 6529), self.input.position) _G_apply_341, lastError = self._apply(self.rule_rna, "rna", []) - self.considerError(lastError, 'rna_subst') - _locals['ref'] = _G_apply_341 - self._trace('', (6533, 6537), self.input.position) - _G_exactly_342, lastError = self.exactly('>') - self.considerError(lastError, 'rna_subst') - self._trace('', (6537, 6541), self.input.position) + self.considerError(lastError, "rna_subst") + _locals["ref"] = _G_apply_341 + self._trace("", (6533, 6537), self.input.position) + _G_exactly_342, lastError = self.exactly(">") + self.considerError(lastError, "rna_subst") + self._trace("", (6537, 6541), self.input.position) _G_apply_343, lastError = self._apply(self.rule_rna, "rna", []) - self.considerError(lastError, 'rna_subst') - _locals['alt'] = _G_apply_343 - _G_python_344, lastError = eval(self._G_expr_236, self.globals, _locals), None - self.considerError(lastError, 'rna_subst') + self.considerError(lastError, "rna_subst") + _locals["alt"] = _G_apply_343 + _G_python_344, lastError = ( + eval(self._G_expr_236, self.globals, _locals), + None, + ) + self.considerError(lastError, "rna_subst") return (_G_python_344, self.currentError) - def rule_rna_delins(self): - _locals = {'self': self} - self.locals['rna_delins'] = _locals - self._trace('', (6609, 6615), self.input.position) - _G_exactly_345, lastError = self.exactly('del') - self.considerError(lastError, 'rna_delins') + _locals = {"self": self} + self.locals["rna_delins"] = _locals + self._trace("", (6609, 6615), self.input.position) + _G_exactly_345, lastError = self.exactly("del") + self.considerError(lastError, "rna_delins") + def _G_or_346(): def _G_consumedby_347(): - self._trace('', (6618, 6621), self.input.position) + self._trace("", (6618, 6621), self.input.position) _G_apply_348, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_348, self.currentError) + _G_consumedby_349, lastError = self.consumedby(_G_consumedby_347) self.considerError(lastError, None) return (_G_consumedby_349, self.currentError) + def _G_or_350(): def _G_consumedby_351(): def _G_many_352(): - self._trace('', (6624, 6627), self.input.position) + self._trace("", (6624, 6627), self.input.position) _G_apply_353, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_353, self.currentError) + _G_many_354, lastError = self.many(_G_many_352) self.considerError(lastError, None) return (_G_many_354, self.currentError) + _G_consumedby_355, lastError = self.consumedby(_G_consumedby_351) self.considerError(lastError, None) return (_G_consumedby_355, self.currentError) + _G_or_356, lastError = self._or([_G_or_346, _G_or_350]) - self.considerError(lastError, 'rna_delins') - _locals['ref'] = _G_or_356 - self._trace('', (6634, 6640), self.input.position) - _G_exactly_357, lastError = self.exactly('ins') - self.considerError(lastError, 'rna_delins') + self.considerError(lastError, "rna_delins") + _locals["ref"] = _G_or_356 + self._trace("", (6634, 6640), self.input.position) + _G_exactly_357, lastError = self.exactly("ins") + self.considerError(lastError, "rna_delins") + def _G_consumedby_358(): def _G_many1_359(): - self._trace('', (6642, 6645), self.input.position) + self._trace("", (6642, 6645), self.input.position) _G_apply_360, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_360, self.currentError) + _G_many1_361, lastError = self.many(_G_many1_359, _G_many1_359()) self.considerError(lastError, None) return (_G_many1_361, self.currentError) + _G_consumedby_362, lastError = self.consumedby(_G_consumedby_358) - self.considerError(lastError, 'rna_delins') - _locals['alt'] = _G_consumedby_362 - _G_python_363, lastError = eval(self._G_expr_236, self.globals, _locals), None - self.considerError(lastError, 'rna_delins') + self.considerError(lastError, "rna_delins") + _locals["alt"] = _G_consumedby_362 + _G_python_363, lastError = ( + eval(self._G_expr_236, self.globals, _locals), + None, + ) + self.considerError(lastError, "rna_delins") return (_G_python_363, self.currentError) - def rule_rna_del(self): - _locals = {'self': self} - self.locals['rna_del'] = _locals - self._trace('', (6704, 6710), self.input.position) - _G_exactly_364, lastError = self.exactly('del') - self.considerError(lastError, 'rna_del') + _locals = {"self": self} + self.locals["rna_del"] = _locals + self._trace("", (6704, 6710), self.input.position) + _G_exactly_364, lastError = self.exactly("del") + self.considerError(lastError, "rna_del") + def _G_or_365(): def _G_consumedby_366(): - self._trace('', (6713, 6716), self.input.position) + self._trace("", (6713, 6716), self.input.position) _G_apply_367, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_367, self.currentError) + _G_consumedby_368, lastError = self.consumedby(_G_consumedby_366) self.considerError(lastError, None) return (_G_consumedby_368, self.currentError) + def _G_or_369(): def _G_consumedby_370(): def _G_many_371(): - self._trace('', (6719, 6722), self.input.position) + self._trace("", (6719, 6722), self.input.position) _G_apply_372, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_372, self.currentError) + _G_many_373, lastError = self.many(_G_many_371) self.considerError(lastError, None) return (_G_many_373, self.currentError) + _G_consumedby_374, lastError = self.consumedby(_G_consumedby_370) self.considerError(lastError, None) return (_G_consumedby_374, self.currentError) + _G_or_375, lastError = self._or([_G_or_365, _G_or_369]) - self.considerError(lastError, 'rna_del') - _locals['ref'] = _G_or_375 - _G_python_376, lastError = eval(self._G_expr_269, self.globals, _locals), None - self.considerError(lastError, 'rna_del') + self.considerError(lastError, "rna_del") + _locals["ref"] = _G_or_375 + _G_python_376, lastError = ( + eval(self._G_expr_269, self.globals, _locals), + None, + ) + self.considerError(lastError, "rna_del") return (_G_python_376, self.currentError) - def rule_rna_ins(self): - _locals = {'self': self} - self.locals['rna_ins'] = _locals - self._trace('', (6789, 6795), self.input.position) - _G_exactly_377, lastError = self.exactly('ins') - self.considerError(lastError, 'rna_ins') + _locals = {"self": self} + self.locals["rna_ins"] = _locals + self._trace("", (6789, 6795), self.input.position) + _G_exactly_377, lastError = self.exactly("ins") + self.considerError(lastError, "rna_ins") + def _G_consumedby_378(): def _G_many1_379(): - self._trace('', (6797, 6800), self.input.position) + self._trace("", (6797, 6800), self.input.position) _G_apply_380, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_380, self.currentError) + _G_many1_381, lastError = self.many(_G_many1_379, _G_many1_379()) self.considerError(lastError, None) return (_G_many1_381, self.currentError) + _G_consumedby_382, lastError = self.consumedby(_G_consumedby_378) - self.considerError(lastError, 'rna_ins') - _locals['alt'] = _G_consumedby_382 - _G_python_383, lastError = eval(self._G_expr_277, self.globals, _locals), None - self.considerError(lastError, 'rna_ins') + self.considerError(lastError, "rna_ins") + _locals["alt"] = _G_consumedby_382 + _G_python_383, lastError = ( + eval(self._G_expr_277, self.globals, _locals), + None, + ) + self.considerError(lastError, "rna_ins") return (_G_python_383, self.currentError) - def rule_rna_dup(self): - _locals = {'self': self} - self.locals['rna_dup'] = _locals - self._trace('', (6874, 6880), self.input.position) - _G_exactly_384, lastError = self.exactly('dup') - self.considerError(lastError, 'rna_dup') + _locals = {"self": self} + self.locals["rna_dup"] = _locals + self._trace("", (6874, 6880), self.input.position) + _G_exactly_384, lastError = self.exactly("dup") + self.considerError(lastError, "rna_dup") + def _G_consumedby_385(): def _G_many_386(): - self._trace('', (6882, 6885), self.input.position) + self._trace("", (6882, 6885), self.input.position) _G_apply_387, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_387, self.currentError) + _G_many_388, lastError = self.many(_G_many_386) self.considerError(lastError, None) return (_G_many_388, self.currentError) + _G_consumedby_389, lastError = self.consumedby(_G_consumedby_385) - self.considerError(lastError, 'rna_dup') - _locals['ref'] = _G_consumedby_389 - _G_python_390, lastError = eval(self._G_expr_285, self.globals, _locals), None - self.considerError(lastError, 'rna_dup') + self.considerError(lastError, "rna_dup") + _locals["ref"] = _G_consumedby_389 + _G_python_390, lastError = ( + eval(self._G_expr_285, self.globals, _locals), + None, + ) + self.considerError(lastError, "rna_dup") return (_G_python_390, self.currentError) - def rule_rna_inv(self): - _locals = {'self': self} - self.locals['rna_inv'] = _locals - self._trace('', (6945, 6951), self.input.position) - _G_exactly_391, lastError = self.exactly('inv') - self.considerError(lastError, 'rna_inv') + _locals = {"self": self} + self.locals["rna_inv"] = _locals + self._trace("", (6945, 6951), self.input.position) + _G_exactly_391, lastError = self.exactly("inv") + self.considerError(lastError, "rna_inv") + def _G_or_392(): def _G_consumedby_393(): - self._trace('', (6954, 6957), self.input.position) + self._trace("", (6954, 6957), self.input.position) _G_apply_394, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_394, self.currentError) + _G_consumedby_395, lastError = self.consumedby(_G_consumedby_393) self.considerError(lastError, None) return (_G_consumedby_395, self.currentError) + def _G_or_396(): def _G_consumedby_397(): def _G_many_398(): - self._trace('', (6960, 6963), self.input.position) + self._trace("", (6960, 6963), self.input.position) _G_apply_399, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_399, self.currentError) + _G_many_400, lastError = self.many(_G_many_398) self.considerError(lastError, None) return (_G_many_400, self.currentError) + _G_consumedby_401, lastError = self.consumedby(_G_consumedby_397) self.considerError(lastError, None) return (_G_consumedby_401, self.currentError) + _G_or_402, lastError = self._or([_G_or_392, _G_or_396]) - self.considerError(lastError, 'rna_inv') - _locals['ref'] = _G_or_402 - _G_python_403, lastError = eval(self._G_expr_299, self.globals, _locals), None - self.considerError(lastError, 'rna_inv') + self.considerError(lastError, "rna_inv") + _locals["ref"] = _G_or_402 + _G_python_403, lastError = ( + eval(self._G_expr_299, self.globals, _locals), + None, + ) + self.considerError(lastError, "rna_inv") return (_G_python_403, self.currentError) - def rule_rna_con(self): - _locals = {'self': self} - self.locals['rna_con'] = _locals - self._trace('', (7017, 7023), self.input.position) - _G_exactly_404, lastError = self.exactly('con') - self.considerError(lastError, 'rna_con') - self._trace('', (7023, 7037), self.input.position) - _G_apply_405, lastError = self._apply(self.rule_hgvs_position, "hgvs_position", []) - self.considerError(lastError, 'rna_con') - _locals['pos'] = _G_apply_405 - _G_python_406, lastError = eval(self._G_expr_303, self.globals, _locals), None - self.considerError(lastError, 'rna_con') + _locals = {"self": self} + self.locals["rna_con"] = _locals + self._trace("", (7017, 7023), self.input.position) + _G_exactly_404, lastError = self.exactly("con") + self.considerError(lastError, "rna_con") + self._trace("", (7023, 7037), self.input.position) + _G_apply_405, lastError = self._apply( + self.rule_hgvs_position, "hgvs_position", [] + ) + self.considerError(lastError, "rna_con") + _locals["pos"] = _G_apply_405 + _G_python_406, lastError = ( + eval(self._G_expr_303, self.globals, _locals), + None, + ) + self.considerError(lastError, "rna_con") return (_G_python_406, self.currentError) - def rule_pro_edit_mu(self): - _locals = {'self': self} - self.locals['pro_edit_mu'] = _locals + _locals = {"self": self} + self.locals["pro_edit_mu"] = _locals + def _G_or_407(): - self._trace('', (7136, 7145), self.input.position) - _G_apply_408, lastError = self._apply(self.rule_pro_edit, "pro_edit", []) + self._trace("", (7136, 7145), self.input.position) + _G_apply_408, lastError = self._apply( + self.rule_pro_edit, "pro_edit", [] + ) self.considerError(lastError, None) return (_G_apply_408, self.currentError) + def _G_or_409(): - self._trace('', (7147, 7151), self.input.position) - _G_exactly_410, lastError = self.exactly('(') + self._trace("", (7147, 7151), self.input.position) + _G_exactly_410, lastError = self.exactly("(") self.considerError(lastError, None) - self._trace('', (7151, 7160), self.input.position) - _G_apply_411, lastError = self._apply(self.rule_pro_edit, "pro_edit", []) + self._trace("", (7151, 7160), self.input.position) + _G_apply_411, lastError = self._apply( + self.rule_pro_edit, "pro_edit", [] + ) self.considerError(lastError, None) - _locals['edit'] = _G_apply_411 - self._trace('', (7165, 7169), self.input.position) - _G_exactly_412, lastError = self.exactly(')') + _locals["edit"] = _G_apply_411 + self._trace("", (7165, 7169), self.input.position) + _G_exactly_412, lastError = self.exactly(")") self.considerError(lastError, None) - _G_python_413, lastError = eval(self._G_expr_203, self.globals, _locals), None + _G_python_413, lastError = ( + eval(self._G_expr_203, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_413, self.currentError) + _G_or_414, lastError = self._or([_G_or_407, _G_or_409]) - self.considerError(lastError, 'pro_edit_mu') + self.considerError(lastError, "pro_edit_mu") return (_G_or_414, self.currentError) - def rule_pro_edit(self): - _locals = {'self': self} - self.locals['pro_edit'] = _locals + _locals = {"self": self} + self.locals["pro_edit"] = _locals + def _G_or_415(): - self._trace('', (7207, 7214), self.input.position) + self._trace("", (7207, 7214), self.input.position) _G_apply_416, lastError = self._apply(self.rule_pro_fs, "pro_fs", []) self.considerError(lastError, None) return (_G_apply_416, self.currentError) + def _G_or_417(): - self._trace('', (7216, 7224), self.input.position) + self._trace("", (7216, 7224), self.input.position) _G_apply_418, lastError = self._apply(self.rule_pro_ext, "pro_ext", []) self.considerError(lastError, None) return (_G_apply_418, self.currentError) + def _G_or_419(): - self._trace('', (7226, 7236), self.input.position) - _G_apply_420, lastError = self._apply(self.rule_pro_subst, "pro_subst", []) + self._trace("", (7226, 7236), self.input.position) + _G_apply_420, lastError = self._apply( + self.rule_pro_subst, "pro_subst", [] + ) self.considerError(lastError, None) return (_G_apply_420, self.currentError) + def _G_or_421(): - self._trace('', (7238, 7249), self.input.position) - _G_apply_422, lastError = self._apply(self.rule_pro_delins, "pro_delins", []) + self._trace("", (7238, 7249), self.input.position) + _G_apply_422, lastError = self._apply( + self.rule_pro_delins, "pro_delins", [] + ) self.considerError(lastError, None) return (_G_apply_422, self.currentError) + def _G_or_423(): - self._trace('', (7251, 7259), self.input.position) + self._trace("", (7251, 7259), self.input.position) _G_apply_424, lastError = self._apply(self.rule_pro_ins, "pro_ins", []) self.considerError(lastError, None) return (_G_apply_424, self.currentError) + def _G_or_425(): - self._trace('', (7261, 7269), self.input.position) + self._trace("", (7261, 7269), self.input.position) _G_apply_426, lastError = self._apply(self.rule_pro_del, "pro_del", []) self.considerError(lastError, None) return (_G_apply_426, self.currentError) + def _G_or_427(): - self._trace('', (7271, 7279), self.input.position) + self._trace("", (7271, 7279), self.input.position) _G_apply_428, lastError = self._apply(self.rule_pro_dup, "pro_dup", []) self.considerError(lastError, None) return (_G_apply_428, self.currentError) + def _G_or_429(): - self._trace('', (7281, 7291), self.input.position) - _G_apply_430, lastError = self._apply(self.rule_pro_ident, "pro_ident", []) + self._trace("", (7281, 7291), self.input.position) + _G_apply_430, lastError = self._apply( + self.rule_pro_ident, "pro_ident", [] + ) self.considerError(lastError, None) return (_G_apply_430, self.currentError) - _G_or_431, lastError = self._or([_G_or_415, _G_or_417, _G_or_419, _G_or_421, _G_or_423, _G_or_425, _G_or_427, _G_or_429]) - self.considerError(lastError, 'pro_edit') - return (_G_or_431, self.currentError) + _G_or_431, lastError = self._or( + [ + _G_or_415, + _G_or_417, + _G_or_419, + _G_or_421, + _G_or_423, + _G_or_425, + _G_or_427, + _G_or_429, + ] + ) + self.considerError(lastError, "pro_edit") + return (_G_or_431, self.currentError) def rule_pro_subst(self): - _locals = {'self': self} - self.locals['pro_subst'] = _locals + _locals = {"self": self} + self.locals["pro_subst"] = _locals + def _G_or_432(): - self._trace('', (7306, 7311), self.input.position) + self._trace("", (7306, 7311), self.input.position) _G_apply_433, lastError = self._apply(self.rule_aat13, "aat13", []) self.considerError(lastError, None) return (_G_apply_433, self.currentError) + def _G_or_434(): - self._trace('', (7312, 7315), self.input.position) - _G_exactly_435, lastError = self.exactly('?') + self._trace("", (7312, 7315), self.input.position) + _G_exactly_435, lastError = self.exactly("?") self.considerError(lastError, None) return (_G_exactly_435, self.currentError) + _G_or_436, lastError = self._or([_G_or_432, _G_or_434]) - self.considerError(lastError, 'pro_subst') - _locals['alt'] = _G_or_436 - _G_python_438, lastError = eval(self._G_expr_437, self.globals, _locals), None - self.considerError(lastError, 'pro_subst') + self.considerError(lastError, "pro_subst") + _locals["alt"] = _G_or_436 + _G_python_438, lastError = ( + eval(self._G_expr_437, self.globals, _locals), + None, + ) + self.considerError(lastError, "pro_subst") return (_G_python_438, self.currentError) - def rule_pro_delins(self): - _locals = {'self': self} - self.locals['pro_delins'] = _locals - self._trace('', (7384, 7393), self.input.position) - _G_exactly_439, lastError = self.exactly('delins') - self.considerError(lastError, 'pro_delins') - self._trace('', (7393, 7403), self.input.position) + _locals = {"self": self} + self.locals["pro_delins"] = _locals + self._trace("", (7384, 7393), self.input.position) + _G_exactly_439, lastError = self.exactly("delins") + self.considerError(lastError, "pro_delins") + self._trace("", (7393, 7403), self.input.position) _G_apply_440, lastError = self._apply(self.rule_aat13_seq, "aat13_seq", []) - self.considerError(lastError, 'pro_delins') - _locals['alt'] = _G_apply_440 - _G_python_442, lastError = eval(self._G_expr_441, self.globals, _locals), None - self.considerError(lastError, 'pro_delins') + self.considerError(lastError, "pro_delins") + _locals["alt"] = _G_apply_440 + _G_python_442, lastError = ( + eval(self._G_expr_441, self.globals, _locals), + None, + ) + self.considerError(lastError, "pro_delins") return (_G_python_442, self.currentError) - def rule_pro_del(self): - _locals = {'self': self} - self.locals['pro_del'] = _locals - self._trace('', (7467, 7473), self.input.position) - _G_exactly_443, lastError = self.exactly('del') - self.considerError(lastError, 'pro_del') - _G_python_445, lastError = eval(self._G_expr_444, self.globals, _locals), None - self.considerError(lastError, 'pro_del') + _locals = {"self": self} + self.locals["pro_del"] = _locals + self._trace("", (7467, 7473), self.input.position) + _G_exactly_443, lastError = self.exactly("del") + self.considerError(lastError, "pro_del") + _G_python_445, lastError = ( + eval(self._G_expr_444, self.globals, _locals), + None, + ) + self.considerError(lastError, "pro_del") return (_G_python_445, self.currentError) - def rule_pro_ins(self): - _locals = {'self': self} - self.locals['pro_ins'] = _locals - self._trace('', (7551, 7557), self.input.position) - _G_exactly_446, lastError = self.exactly('ins') - self.considerError(lastError, 'pro_ins') - self._trace('', (7557, 7567), self.input.position) + _locals = {"self": self} + self.locals["pro_ins"] = _locals + self._trace("", (7551, 7557), self.input.position) + _G_exactly_446, lastError = self.exactly("ins") + self.considerError(lastError, "pro_ins") + self._trace("", (7557, 7567), self.input.position) _G_apply_447, lastError = self._apply(self.rule_aat13_seq, "aat13_seq", []) - self.considerError(lastError, 'pro_ins') - _locals['alt'] = _G_apply_447 - _G_python_449, lastError = eval(self._G_expr_448, self.globals, _locals), None - self.considerError(lastError, 'pro_ins') + self.considerError(lastError, "pro_ins") + _locals["alt"] = _G_apply_447 + _G_python_449, lastError = ( + eval(self._G_expr_448, self.globals, _locals), + None, + ) + self.considerError(lastError, "pro_ins") return (_G_python_449, self.currentError) - def rule_pro_dup(self): - _locals = {'self': self} - self.locals['pro_dup'] = _locals - self._trace('', (7636, 7642), self.input.position) - _G_exactly_450, lastError = self.exactly('dup') - self.considerError(lastError, 'pro_dup') - _G_python_452, lastError = eval(self._G_expr_451, self.globals, _locals), None - self.considerError(lastError, 'pro_dup') + _locals = {"self": self} + self.locals["pro_dup"] = _locals + self._trace("", (7636, 7642), self.input.position) + _G_exactly_450, lastError = self.exactly("dup") + self.considerError(lastError, "pro_dup") + _G_python_452, lastError = ( + eval(self._G_expr_451, self.globals, _locals), + None, + ) + self.considerError(lastError, "pro_dup") return (_G_python_452, self.currentError) - def rule_pro_fs(self): - _locals = {'self': self} - self.locals['pro_fs'] = _locals + _locals = {"self": self} + self.locals["pro_fs"] = _locals + def _G_or_453(): - self._trace('', (7708, 7713), self.input.position) + self._trace("", (7708, 7713), self.input.position) _G_apply_454, lastError = self._apply(self.rule_aat13, "aat13", []) self.considerError(lastError, None) return (_G_apply_454, self.currentError) + def _G_or_455(): - _G_python_456, lastError = (''), None + _G_python_456, lastError = (""), None self.considerError(lastError, None) return (_G_python_456, self.currentError) + _G_or_457, lastError = self._or([_G_or_453, _G_or_455]) - self.considerError(lastError, 'pro_fs') - _locals['alt'] = _G_or_457 - self._trace('', (7728, 7731), self.input.position) + self.considerError(lastError, "pro_fs") + _locals["alt"] = _G_or_457 + self._trace("", (7728, 7731), self.input.position) _G_apply_458, lastError = self._apply(self.rule_fs, "fs", []) - self.considerError(lastError, 'pro_fs') - _locals['length'] = _G_apply_458 - _G_python_460, lastError = eval(self._G_expr_459, self.globals, _locals), None - self.considerError(lastError, 'pro_fs') + self.considerError(lastError, "pro_fs") + _locals["length"] = _G_apply_458 + _G_python_460, lastError = ( + eval(self._G_expr_459, self.globals, _locals), + None, + ) + self.considerError(lastError, "pro_fs") return (_G_python_460, self.currentError) - def rule_pro_ext(self): - _locals = {'self': self} - self.locals['pro_ext'] = _locals + _locals = {"self": self} + self.locals["pro_ext"] = _locals + def _G_optional_461(): - self._trace('', (7801, 7807), self.input.position) + self._trace("", (7801, 7807), self.input.position) _G_apply_462, lastError = self._apply(self.rule_aat13, "aat13", []) self.considerError(lastError, None) return (_G_apply_462, self.currentError) + def _G_optional_463(): return (None, self.input.nullError()) + _G_or_464, lastError = self._or([_G_optional_461, _G_optional_463]) - self.considerError(lastError, 'pro_ext') - _locals['alt'] = _G_or_464 - self._trace('', (7812, 7816), self.input.position) + self.considerError(lastError, "pro_ext") + _locals["alt"] = _G_or_464 + self._trace("", (7812, 7816), self.input.position) _G_apply_465, lastError = self._apply(self.rule_ext, "ext", []) - self.considerError(lastError, 'pro_ext') - _locals['aaterm'] = _G_apply_465[0] - _locals['length'] = _G_apply_465[1] - _G_python_467, lastError = eval(self._G_expr_466, self.globals, _locals), None - self.considerError(lastError, 'pro_ext') + self.considerError(lastError, "pro_ext") + _locals["aaterm"] = _G_apply_465[0] + _locals["length"] = _G_apply_465[1] + _G_python_467, lastError = ( + eval(self._G_expr_466, self.globals, _locals), + None, + ) + self.considerError(lastError, "pro_ext") return (_G_python_467, self.currentError) - def rule_pro_ident(self): - _locals = {'self': self} - self.locals['pro_ident'] = _locals - self._trace('', (7912, 7916), self.input.position) - _G_exactly_468, lastError = self.exactly('=') - self.considerError(lastError, 'pro_ident') - _G_python_470, lastError = eval(self._G_expr_469, self.globals, _locals), None - self.considerError(lastError, 'pro_ident') + _locals = {"self": self} + self.locals["pro_ident"] = _locals + self._trace("", (7912, 7916), self.input.position) + _G_exactly_468, lastError = self.exactly("=") + self.considerError(lastError, "pro_ident") + _G_python_470, lastError = ( + eval(self._G_expr_469, self.globals, _locals), + None, + ) + self.considerError(lastError, "pro_ident") return (_G_python_470, self.currentError) - def rule_c_interval(self): - _locals = {'self': self} - self.locals['c_interval'] = _locals + _locals = {"self": self} + self.locals["c_interval"] = _locals + def _G_or_471(): - self._trace('', (8238, 8253), self.input.position) - _G_apply_472, lastError = self._apply(self.rule_def_c_interval, "def_c_interval", []) + self._trace("", (8238, 8253), self.input.position) + _G_apply_472, lastError = self._apply( + self.rule_def_c_interval, "def_c_interval", [] + ) self.considerError(lastError, None) return (_G_apply_472, self.currentError) + def _G_or_473(): - self._trace('', (8255, 8259), self.input.position) - _G_exactly_474, lastError = self.exactly('(') + self._trace("", (8255, 8259), self.input.position) + _G_exactly_474, lastError = self.exactly("(") self.considerError(lastError, None) - self._trace('', (8259, 8274), self.input.position) - _G_apply_475, lastError = self._apply(self.rule_def_c_interval, "def_c_interval", []) + self._trace("", (8259, 8274), self.input.position) + _G_apply_475, lastError = self._apply( + self.rule_def_c_interval, "def_c_interval", [] + ) self.considerError(lastError, None) - _locals['iv'] = _G_apply_475 - self._trace('', (8277, 8281), self.input.position) - _G_exactly_476, lastError = self.exactly(')') + _locals["iv"] = _G_apply_475 + self._trace("", (8277, 8281), self.input.position) + _G_exactly_476, lastError = self.exactly(")") self.considerError(lastError, None) - _G_python_478, lastError = eval(self._G_expr_477, self.globals, _locals), None + _G_python_478, lastError = ( + eval(self._G_expr_477, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_478, self.currentError) + _G_or_479, lastError = self._or([_G_or_471, _G_or_473]) - self.considerError(lastError, 'c_interval') + self.considerError(lastError, "c_interval") return (_G_or_479, self.currentError) - def rule_g_interval(self): - _locals = {'self': self} - self.locals['g_interval'] = _locals + _locals = {"self": self} + self.locals["g_interval"] = _locals + def _G_or_480(): - self._trace('', (8317, 8338), self.input.position) - _G_apply_481, lastError = self._apply(self.rule_uncertain_g_interval, "uncertain_g_interval", []) + self._trace("", (8317, 8338), self.input.position) + _G_apply_481, lastError = self._apply( + self.rule_uncertain_g_interval, "uncertain_g_interval", [] + ) self.considerError(lastError, None) - _locals['iv'] = _G_apply_481 + _locals["iv"] = _G_apply_481 return (_G_apply_481, self.currentError) + def _G_or_482(): - self._trace('', (8345, 8348), self.input.position) - _G_exactly_483, lastError = self.exactly('(') - self.considerError(lastError, None) - self._trace('', (8348, 8363), self.input.position) - _G_apply_484, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) - self.considerError(lastError, None) - _locals['iv'] = _G_apply_484 - self._trace('', (8366, 8370), self.input.position) - _G_exactly_485, lastError = self.exactly(')') + self._trace("", (8343, 8359), self.input.position) + _G_apply_483, lastError = self._apply( + self.rule_def_g_interval, "def_g_interval", [] + ) self.considerError(lastError, None) - _G_python_486, lastError = eval(self._G_expr_477, self.globals, _locals), None - self.considerError(lastError, None) - return (_G_python_486, self.currentError) - def _G_or_487(): - self._trace('', (8396, 8411), self.input.position) - _G_apply_488, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) - self.considerError(lastError, None) - return (_G_apply_488, self.currentError) - _G_or_489, lastError = self._or([_G_or_480, _G_or_482, _G_or_487]) - self.considerError(lastError, 'g_interval') - return (_G_or_489, self.currentError) + return (_G_apply_483, self.currentError) + _G_or_484, lastError = self._or([_G_or_480, _G_or_482]) + self.considerError(lastError, "g_interval") + return (_G_or_484, self.currentError) def rule_m_interval(self): - _locals = {'self': self} - self.locals['m_interval'] = _locals - def _G_or_490(): - self._trace('', (8424, 8439), self.input.position) - _G_apply_491, lastError = self._apply(self.rule_def_m_interval, "def_m_interval", []) + _locals = {"self": self} + self.locals["m_interval"] = _locals + + def _G_or_485(): + self._trace("", (8372, 8387), self.input.position) + _G_apply_486, lastError = self._apply( + self.rule_def_m_interval, "def_m_interval", [] + ) self.considerError(lastError, None) - return (_G_apply_491, self.currentError) - def _G_or_492(): - self._trace('', (8441, 8445), self.input.position) - _G_exactly_493, lastError = self.exactly('(') + return (_G_apply_486, self.currentError) + + def _G_or_487(): + self._trace("", (8389, 8393), self.input.position) + _G_exactly_488, lastError = self.exactly("(") self.considerError(lastError, None) - self._trace('', (8445, 8460), self.input.position) - _G_apply_494, lastError = self._apply(self.rule_def_m_interval, "def_m_interval", []) + self._trace("", (8393, 8408), self.input.position) + _G_apply_489, lastError = self._apply( + self.rule_def_m_interval, "def_m_interval", [] + ) self.considerError(lastError, None) - _locals['iv'] = _G_apply_494 - self._trace('', (8463, 8467), self.input.position) - _G_exactly_495, lastError = self.exactly(')') + _locals["iv"] = _G_apply_489 + self._trace("", (8411, 8415), self.input.position) + _G_exactly_490, lastError = self.exactly(")") self.considerError(lastError, None) - _G_python_496, lastError = eval(self._G_expr_477, self.globals, _locals), None + _G_python_491, lastError = ( + eval(self._G_expr_477, self.globals, _locals), + None, + ) self.considerError(lastError, None) - return (_G_python_496, self.currentError) - _G_or_497, lastError = self._or([_G_or_490, _G_or_492]) - self.considerError(lastError, 'm_interval') - return (_G_or_497, self.currentError) + return (_G_python_491, self.currentError) + _G_or_492, lastError = self._or([_G_or_485, _G_or_487]) + self.considerError(lastError, "m_interval") + return (_G_or_492, self.currentError) def rule_n_interval(self): - _locals = {'self': self} - self.locals['n_interval'] = _locals - def _G_or_498(): - self._trace('', (8503, 8518), self.input.position) - _G_apply_499, lastError = self._apply(self.rule_def_n_interval, "def_n_interval", []) + _locals = {"self": self} + self.locals["n_interval"] = _locals + + def _G_or_493(): + self._trace("", (8451, 8466), self.input.position) + _G_apply_494, lastError = self._apply( + self.rule_def_n_interval, "def_n_interval", [] + ) self.considerError(lastError, None) - return (_G_apply_499, self.currentError) - def _G_or_500(): - self._trace('', (8520, 8524), self.input.position) - _G_exactly_501, lastError = self.exactly('(') + return (_G_apply_494, self.currentError) + + def _G_or_495(): + self._trace("", (8468, 8472), self.input.position) + _G_exactly_496, lastError = self.exactly("(") self.considerError(lastError, None) - self._trace('', (8524, 8539), self.input.position) - _G_apply_502, lastError = self._apply(self.rule_def_n_interval, "def_n_interval", []) + self._trace("", (8472, 8487), self.input.position) + _G_apply_497, lastError = self._apply( + self.rule_def_n_interval, "def_n_interval", [] + ) self.considerError(lastError, None) - _locals['iv'] = _G_apply_502 - self._trace('', (8542, 8546), self.input.position) - _G_exactly_503, lastError = self.exactly(')') + _locals["iv"] = _G_apply_497 + self._trace("", (8490, 8494), self.input.position) + _G_exactly_498, lastError = self.exactly(")") self.considerError(lastError, None) - _G_python_504, lastError = eval(self._G_expr_477, self.globals, _locals), None + _G_python_499, lastError = ( + eval(self._G_expr_477, self.globals, _locals), + None, + ) self.considerError(lastError, None) - return (_G_python_504, self.currentError) - _G_or_505, lastError = self._or([_G_or_498, _G_or_500]) - self.considerError(lastError, 'n_interval') - return (_G_or_505, self.currentError) + return (_G_python_499, self.currentError) + _G_or_500, lastError = self._or([_G_or_493, _G_or_495]) + self.considerError(lastError, "n_interval") + return (_G_or_500, self.currentError) def rule_p_interval(self): - _locals = {'self': self} - self.locals['p_interval'] = _locals - def _G_or_506(): - self._trace('', (8582, 8597), self.input.position) - _G_apply_507, lastError = self._apply(self.rule_def_p_interval, "def_p_interval", []) + _locals = {"self": self} + self.locals["p_interval"] = _locals + + def _G_or_501(): + self._trace("", (8530, 8545), self.input.position) + _G_apply_502, lastError = self._apply( + self.rule_def_p_interval, "def_p_interval", [] + ) self.considerError(lastError, None) - return (_G_apply_507, self.currentError) - def _G_or_508(): - self._trace('', (8599, 8603), self.input.position) - _G_exactly_509, lastError = self.exactly('(') + return (_G_apply_502, self.currentError) + + def _G_or_503(): + self._trace("", (8547, 8551), self.input.position) + _G_exactly_504, lastError = self.exactly("(") self.considerError(lastError, None) - self._trace('', (8603, 8618), self.input.position) - _G_apply_510, lastError = self._apply(self.rule_def_p_interval, "def_p_interval", []) + self._trace("", (8551, 8566), self.input.position) + _G_apply_505, lastError = self._apply( + self.rule_def_p_interval, "def_p_interval", [] + ) self.considerError(lastError, None) - _locals['iv'] = _G_apply_510 - self._trace('', (8621, 8625), self.input.position) - _G_exactly_511, lastError = self.exactly(')') + _locals["iv"] = _G_apply_505 + self._trace("", (8569, 8573), self.input.position) + _G_exactly_506, lastError = self.exactly(")") self.considerError(lastError, None) - _G_python_512, lastError = eval(self._G_expr_477, self.globals, _locals), None + _G_python_507, lastError = ( + eval(self._G_expr_477, self.globals, _locals), + None, + ) self.considerError(lastError, None) - return (_G_python_512, self.currentError) - _G_or_513, lastError = self._or([_G_or_506, _G_or_508]) - self.considerError(lastError, 'p_interval') - return (_G_or_513, self.currentError) + return (_G_python_507, self.currentError) + _G_or_508, lastError = self._or([_G_or_501, _G_or_503]) + self.considerError(lastError, "p_interval") + return (_G_or_508, self.currentError) def rule_r_interval(self): - _locals = {'self': self} - self.locals['r_interval'] = _locals - def _G_or_514(): - self._trace('', (8661, 8676), self.input.position) - _G_apply_515, lastError = self._apply(self.rule_def_r_interval, "def_r_interval", []) + _locals = {"self": self} + self.locals["r_interval"] = _locals + + def _G_or_509(): + self._trace("", (8609, 8624), self.input.position) + _G_apply_510, lastError = self._apply( + self.rule_def_r_interval, "def_r_interval", [] + ) self.considerError(lastError, None) - return (_G_apply_515, self.currentError) - def _G_or_516(): - self._trace('', (8678, 8682), self.input.position) - _G_exactly_517, lastError = self.exactly('(') + return (_G_apply_510, self.currentError) + + def _G_or_511(): + self._trace("", (8626, 8630), self.input.position) + _G_exactly_512, lastError = self.exactly("(") self.considerError(lastError, None) - self._trace('', (8682, 8697), self.input.position) - _G_apply_518, lastError = self._apply(self.rule_def_r_interval, "def_r_interval", []) + self._trace("", (8630, 8645), self.input.position) + _G_apply_513, lastError = self._apply( + self.rule_def_r_interval, "def_r_interval", [] + ) self.considerError(lastError, None) - _locals['iv'] = _G_apply_518 - self._trace('', (8700, 8704), self.input.position) - _G_exactly_519, lastError = self.exactly(')') + _locals["iv"] = _G_apply_513 + self._trace("", (8648, 8652), self.input.position) + _G_exactly_514, lastError = self.exactly(")") self.considerError(lastError, None) - _G_python_520, lastError = eval(self._G_expr_477, self.globals, _locals), None + _G_python_515, lastError = ( + eval(self._G_expr_477, self.globals, _locals), + None, + ) self.considerError(lastError, None) - return (_G_python_520, self.currentError) - _G_or_521, lastError = self._or([_G_or_514, _G_or_516]) - self.considerError(lastError, 'r_interval') - return (_G_or_521, self.currentError) + return (_G_python_515, self.currentError) + _G_or_516, lastError = self._or([_G_or_509, _G_or_511]) + self.considerError(lastError, "r_interval") + return (_G_or_516, self.currentError) def rule_def_g_interval(self): - _locals = {'self': self} - self.locals['def_g_interval'] = _locals - def _G_or_522(): - self._trace('', (8768, 8773), self.input.position) - _G_apply_523, lastError = self._apply(self.rule_g_pos, "g_pos", []) + _locals = {"self": self} + self.locals["def_g_interval"] = _locals + + def _G_or_517(): + self._trace("", (8716, 8721), self.input.position) + _G_apply_518, lastError = self._apply(self.rule_g_pos, "g_pos", []) self.considerError(lastError, None) - _locals['start'] = _G_apply_523 - self._trace('', (8779, 8783), self.input.position) - _G_exactly_524, lastError = self.exactly('_') + _locals["start"] = _G_apply_518 + self._trace("", (8727, 8731), self.input.position) + _G_exactly_519, lastError = self.exactly("_") self.considerError(lastError, None) - self._trace('', (8783, 8789), self.input.position) - _G_apply_525, lastError = self._apply(self.rule_g_pos, "g_pos", []) + self._trace("", (8731, 8737), self.input.position) + _G_apply_520, lastError = self._apply(self.rule_g_pos, "g_pos", []) self.considerError(lastError, None) - _locals['end'] = _G_apply_525 - _G_python_527, lastError = eval(self._G_expr_526, self.globals, _locals), None + _locals["end"] = _G_apply_520 + _G_python_522, lastError = ( + eval(self._G_expr_521, self.globals, _locals), + None, + ) self.considerError(lastError, None) - return (_G_python_527, self.currentError) - def _G_or_528(): - self._trace('', (8835, 8840), self.input.position) - _G_apply_529, lastError = self._apply(self.rule_g_pos, "g_pos", []) + return (_G_python_522, self.currentError) + + def _G_or_523(): + self._trace("", (8783, 8788), self.input.position) + _G_apply_524, lastError = self._apply(self.rule_g_pos, "g_pos", []) self.considerError(lastError, None) - _locals['start'] = _G_apply_529 - _G_python_531, lastError = eval(self._G_expr_530, self.globals, _locals), None + _locals["start"] = _G_apply_524 + _G_python_526, lastError = ( + eval(self._G_expr_525, self.globals, _locals), + None, + ) self.considerError(lastError, None) - return (_G_python_531, self.currentError) - _G_or_532, lastError = self._or([_G_or_522, _G_or_528]) - self.considerError(lastError, 'def_g_interval') - return (_G_or_532, self.currentError) + return (_G_python_526, self.currentError) + _G_or_527, lastError = self._or([_G_or_517, _G_or_523]) + self.considerError(lastError, "def_g_interval") + return (_G_or_527, self.currentError) def rule_def_m_interval(self): - _locals = {'self': self} - self.locals['def_m_interval'] = _locals - def _G_or_533(): - self._trace('', (8904, 8909), self.input.position) - _G_apply_534, lastError = self._apply(self.rule_m_pos, "m_pos", []) + _locals = {"self": self} + self.locals["def_m_interval"] = _locals + + def _G_or_528(): + self._trace("", (8852, 8857), self.input.position) + _G_apply_529, lastError = self._apply(self.rule_m_pos, "m_pos", []) self.considerError(lastError, None) - _locals['start'] = _G_apply_534 - self._trace('', (8915, 8919), self.input.position) - _G_exactly_535, lastError = self.exactly('_') + _locals["start"] = _G_apply_529 + self._trace("", (8863, 8867), self.input.position) + _G_exactly_530, lastError = self.exactly("_") self.considerError(lastError, None) - self._trace('', (8919, 8925), self.input.position) - _G_apply_536, lastError = self._apply(self.rule_m_pos, "m_pos", []) + self._trace("", (8867, 8873), self.input.position) + _G_apply_531, lastError = self._apply(self.rule_m_pos, "m_pos", []) self.considerError(lastError, None) - _locals['end'] = _G_apply_536 - _G_python_537, lastError = eval(self._G_expr_526, self.globals, _locals), None + _locals["end"] = _G_apply_531 + _G_python_532, lastError = ( + eval(self._G_expr_521, self.globals, _locals), + None, + ) self.considerError(lastError, None) - return (_G_python_537, self.currentError) - def _G_or_538(): - self._trace('', (8971, 8976), self.input.position) - _G_apply_539, lastError = self._apply(self.rule_m_pos, "m_pos", []) + return (_G_python_532, self.currentError) + + def _G_or_533(): + self._trace("", (8919, 8924), self.input.position) + _G_apply_534, lastError = self._apply(self.rule_m_pos, "m_pos", []) self.considerError(lastError, None) - _locals['start'] = _G_apply_539 - _G_python_540, lastError = eval(self._G_expr_530, self.globals, _locals), None + _locals["start"] = _G_apply_534 + _G_python_535, lastError = ( + eval(self._G_expr_525, self.globals, _locals), + None, + ) self.considerError(lastError, None) - return (_G_python_540, self.currentError) - _G_or_541, lastError = self._or([_G_or_533, _G_or_538]) - self.considerError(lastError, 'def_m_interval') - return (_G_or_541, self.currentError) + return (_G_python_535, self.currentError) + _G_or_536, lastError = self._or([_G_or_528, _G_or_533]) + self.considerError(lastError, "def_m_interval") + return (_G_or_536, self.currentError) def rule_def_p_interval(self): - _locals = {'self': self} - self.locals['def_p_interval'] = _locals - def _G_or_542(): - self._trace('', (9040, 9045), self.input.position) - _G_apply_543, lastError = self._apply(self.rule_p_pos, "p_pos", []) + _locals = {"self": self} + self.locals["def_p_interval"] = _locals + + def _G_or_537(): + self._trace("", (8988, 8993), self.input.position) + _G_apply_538, lastError = self._apply(self.rule_p_pos, "p_pos", []) self.considerError(lastError, None) - _locals['start'] = _G_apply_543 - self._trace('', (9051, 9055), self.input.position) - _G_exactly_544, lastError = self.exactly('_') + _locals["start"] = _G_apply_538 + self._trace("", (8999, 9003), self.input.position) + _G_exactly_539, lastError = self.exactly("_") self.considerError(lastError, None) - self._trace('', (9055, 9061), self.input.position) - _G_apply_545, lastError = self._apply(self.rule_p_pos, "p_pos", []) + self._trace("", (9003, 9009), self.input.position) + _G_apply_540, lastError = self._apply(self.rule_p_pos, "p_pos", []) self.considerError(lastError, None) - _locals['end'] = _G_apply_545 - _G_python_546, lastError = eval(self._G_expr_526, self.globals, _locals), None + _locals["end"] = _G_apply_540 + _G_python_541, lastError = ( + eval(self._G_expr_521, self.globals, _locals), + None, + ) self.considerError(lastError, None) - return (_G_python_546, self.currentError) - def _G_or_547(): - self._trace('', (9107, 9112), self.input.position) - _G_apply_548, lastError = self._apply(self.rule_p_pos, "p_pos", []) + return (_G_python_541, self.currentError) + + def _G_or_542(): + self._trace("", (9055, 9060), self.input.position) + _G_apply_543, lastError = self._apply(self.rule_p_pos, "p_pos", []) self.considerError(lastError, None) - _locals['start'] = _G_apply_548 - _G_python_549, lastError = eval(self._G_expr_530, self.globals, _locals), None + _locals["start"] = _G_apply_543 + _G_python_544, lastError = ( + eval(self._G_expr_525, self.globals, _locals), + None, + ) self.considerError(lastError, None) - return (_G_python_549, self.currentError) - _G_or_550, lastError = self._or([_G_or_542, _G_or_547]) - self.considerError(lastError, 'def_p_interval') - return (_G_or_550, self.currentError) + return (_G_python_544, self.currentError) + _G_or_545, lastError = self._or([_G_or_537, _G_or_542]) + self.considerError(lastError, "def_p_interval") + return (_G_or_545, self.currentError) def rule_def_r_interval(self): - _locals = {'self': self} - self.locals['def_r_interval'] = _locals - def _G_or_551(): - self._trace('', (9176, 9181), self.input.position) - _G_apply_552, lastError = self._apply(self.rule_r_pos, "r_pos", []) + _locals = {"self": self} + self.locals["def_r_interval"] = _locals + + def _G_or_546(): + self._trace("", (9124, 9129), self.input.position) + _G_apply_547, lastError = self._apply(self.rule_r_pos, "r_pos", []) self.considerError(lastError, None) - _locals['start'] = _G_apply_552 - self._trace('', (9187, 9191), self.input.position) - _G_exactly_553, lastError = self.exactly('_') + _locals["start"] = _G_apply_547 + self._trace("", (9135, 9139), self.input.position) + _G_exactly_548, lastError = self.exactly("_") self.considerError(lastError, None) - self._trace('', (9191, 9197), self.input.position) - _G_apply_554, lastError = self._apply(self.rule_r_pos, "r_pos", []) + self._trace("", (9139, 9145), self.input.position) + _G_apply_549, lastError = self._apply(self.rule_r_pos, "r_pos", []) self.considerError(lastError, None) - _locals['end'] = _G_apply_554 - _G_python_555, lastError = eval(self._G_expr_526, self.globals, _locals), None + _locals["end"] = _G_apply_549 + _G_python_550, lastError = ( + eval(self._G_expr_521, self.globals, _locals), + None, + ) self.considerError(lastError, None) - return (_G_python_555, self.currentError) - def _G_or_556(): - self._trace('', (9243, 9248), self.input.position) - _G_apply_557, lastError = self._apply(self.rule_r_pos, "r_pos", []) + return (_G_python_550, self.currentError) + + def _G_or_551(): + self._trace("", (9191, 9196), self.input.position) + _G_apply_552, lastError = self._apply(self.rule_r_pos, "r_pos", []) self.considerError(lastError, None) - _locals['start'] = _G_apply_557 - _G_python_558, lastError = eval(self._G_expr_530, self.globals, _locals), None + _locals["start"] = _G_apply_552 + _G_python_553, lastError = ( + eval(self._G_expr_525, self.globals, _locals), + None, + ) self.considerError(lastError, None) - return (_G_python_558, self.currentError) - _G_or_559, lastError = self._or([_G_or_551, _G_or_556]) - self.considerError(lastError, 'def_r_interval') - return (_G_or_559, self.currentError) + return (_G_python_553, self.currentError) + _G_or_554, lastError = self._or([_G_or_546, _G_or_551]) + self.considerError(lastError, "def_r_interval") + return (_G_or_554, self.currentError) def rule_def_c_interval(self): - _locals = {'self': self} - self.locals['def_c_interval'] = _locals - def _G_or_560(): - self._trace('', (9312, 9317), self.input.position) - _G_apply_561, lastError = self._apply(self.rule_c_pos, "c_pos", []) + _locals = {"self": self} + self.locals["def_c_interval"] = _locals + + def _G_or_555(): + self._trace("", (9260, 9265), self.input.position) + _G_apply_556, lastError = self._apply(self.rule_c_pos, "c_pos", []) self.considerError(lastError, None) - _locals['start'] = _G_apply_561 - self._trace('', (9323, 9327), self.input.position) - _G_exactly_562, lastError = self.exactly('_') + _locals["start"] = _G_apply_556 + self._trace("", (9271, 9275), self.input.position) + _G_exactly_557, lastError = self.exactly("_") self.considerError(lastError, None) - self._trace('', (9327, 9333), self.input.position) - _G_apply_563, lastError = self._apply(self.rule_c_pos, "c_pos", []) + self._trace("", (9275, 9281), self.input.position) + _G_apply_558, lastError = self._apply(self.rule_c_pos, "c_pos", []) self.considerError(lastError, None) - _locals['end'] = _G_apply_563 - _G_python_565, lastError = eval(self._G_expr_564, self.globals, _locals), None + _locals["end"] = _G_apply_558 + _G_python_560, lastError = ( + eval(self._G_expr_559, self.globals, _locals), + None, + ) self.considerError(lastError, None) - return (_G_python_565, self.currentError) - def _G_or_566(): - self._trace('', (9389, 9394), self.input.position) - _G_apply_567, lastError = self._apply(self.rule_c_pos, "c_pos", []) + return (_G_python_560, self.currentError) + + def _G_or_561(): + self._trace("", (9337, 9342), self.input.position) + _G_apply_562, lastError = self._apply(self.rule_c_pos, "c_pos", []) self.considerError(lastError, None) - _locals['start'] = _G_apply_567 - _G_python_569, lastError = eval(self._G_expr_568, self.globals, _locals), None + _locals["start"] = _G_apply_562 + _G_python_564, lastError = ( + eval(self._G_expr_563, self.globals, _locals), + None, + ) self.considerError(lastError, None) - return (_G_python_569, self.currentError) - _G_or_570, lastError = self._or([_G_or_560, _G_or_566]) - self.considerError(lastError, 'def_c_interval') - return (_G_or_570, self.currentError) + return (_G_python_564, self.currentError) + _G_or_565, lastError = self._or([_G_or_555, _G_or_561]) + self.considerError(lastError, "def_c_interval") + return (_G_or_565, self.currentError) def rule_def_n_interval(self): - _locals = {'self': self} - self.locals['def_n_interval'] = _locals - def _G_or_571(): - self._trace('', (9484, 9489), self.input.position) - _G_apply_572, lastError = self._apply(self.rule_n_pos, "n_pos", []) + _locals = {"self": self} + self.locals["def_n_interval"] = _locals + + def _G_or_566(): + self._trace("", (9432, 9437), self.input.position) + _G_apply_567, lastError = self._apply(self.rule_n_pos, "n_pos", []) self.considerError(lastError, None) - _locals['start'] = _G_apply_572 - self._trace('', (9495, 9499), self.input.position) - _G_exactly_573, lastError = self.exactly('_') + _locals["start"] = _G_apply_567 + self._trace("", (9443, 9447), self.input.position) + _G_exactly_568, lastError = self.exactly("_") self.considerError(lastError, None) - self._trace('', (9499, 9505), self.input.position) - _G_apply_574, lastError = self._apply(self.rule_n_pos, "n_pos", []) + self._trace("", (9447, 9453), self.input.position) + _G_apply_569, lastError = self._apply(self.rule_n_pos, "n_pos", []) self.considerError(lastError, None) - _locals['end'] = _G_apply_574 - _G_python_575, lastError = eval(self._G_expr_564, self.globals, _locals), None + _locals["end"] = _G_apply_569 + _G_python_570, lastError = ( + eval(self._G_expr_559, self.globals, _locals), + None, + ) self.considerError(lastError, None) - return (_G_python_575, self.currentError) - def _G_or_576(): - self._trace('', (9561, 9566), self.input.position) - _G_apply_577, lastError = self._apply(self.rule_n_pos, "n_pos", []) + return (_G_python_570, self.currentError) + + def _G_or_571(): + self._trace("", (9509, 9514), self.input.position) + _G_apply_572, lastError = self._apply(self.rule_n_pos, "n_pos", []) self.considerError(lastError, None) - _locals['start'] = _G_apply_577 - _G_python_578, lastError = eval(self._G_expr_568, self.globals, _locals), None + _locals["start"] = _G_apply_572 + _G_python_573, lastError = ( + eval(self._G_expr_563, self.globals, _locals), + None, + ) self.considerError(lastError, None) - return (_G_python_578, self.currentError) - _G_or_579, lastError = self._or([_G_or_571, _G_or_576]) - self.considerError(lastError, 'def_n_interval') - return (_G_or_579, self.currentError) + return (_G_python_573, self.currentError) + _G_or_574, lastError = self._or([_G_or_566, _G_or_571]) + self.considerError(lastError, "def_n_interval") + return (_G_or_574, self.currentError) def rule_uncertain_g_interval(self): - _locals = {'self': self} - self.locals['uncertain_g_interval'] = _locals - def _G_or_580(): - self._trace('', (9681, 9685), self.input.position) - _G_exactly_581, lastError = self.exactly('(') + _locals = {"self": self} + self.locals["uncertain_g_interval"] = _locals + + def _G_or_575(): + self._trace("", (9629, 9633), self.input.position) + _G_exactly_576, lastError = self.exactly("(") + self.considerError(lastError, None) + self._trace("", (9633, 9648), self.input.position) + _G_apply_577, lastError = self._apply( + self.rule_def_g_interval, "def_g_interval", [] + ) + self.considerError(lastError, None) + _locals["ivl_start"] = _G_apply_577 + self._trace("", (9658, 9662), self.input.position) + _G_exactly_578, lastError = self.exactly(")") + self.considerError(lastError, None) + self._trace("", (9662, 9666), self.input.position) + _G_exactly_579, lastError = self.exactly("_") + self.considerError(lastError, None) + self._trace("", (9666, 9670), self.input.position) + _G_exactly_580, lastError = self.exactly("(") self.considerError(lastError, None) - self._trace('', (9685, 9700), self.input.position) - _G_apply_582, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) + self._trace("", (9670, 9685), self.input.position) + _G_apply_581, lastError = self._apply( + self.rule_def_g_interval, "def_g_interval", [] + ) self.considerError(lastError, None) - _locals['ivl_start'] = _G_apply_582 - self._trace('', (9710, 9714), self.input.position) - _G_exactly_583, lastError = self.exactly(')') + _locals["ivl_end"] = _G_apply_581 + self._trace("", (9693, 9697), self.input.position) + _G_exactly_582, lastError = self.exactly(")") self.considerError(lastError, None) - self._trace('', (9714, 9718), self.input.position) - _G_exactly_584, lastError = self.exactly('_') + _G_python_584, lastError = ( + eval(self._G_expr_583, self.globals, _locals), + None, + ) self.considerError(lastError, None) - self._trace('', (9718, 9722), self.input.position) - _G_exactly_585, lastError = self.exactly('(') + return (_G_python_584, self.currentError) + + def _G_or_585(): + self._trace("", (9813, 9828), self.input.position) + _G_apply_586, lastError = self._apply( + self.rule_def_g_interval, "def_g_interval", [] + ) self.considerError(lastError, None) - self._trace('', (9722, 9737), self.input.position) - _G_apply_586, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) + _locals["ivl_start"] = _G_apply_586 + self._trace("", (9838, 9842), self.input.position) + _G_exactly_587, lastError = self.exactly("_") self.considerError(lastError, None) - _locals['ivl_end'] = _G_apply_586 - self._trace('', (9745, 9749), self.input.position) - _G_exactly_587, lastError = self.exactly(')') + self._trace("", (9842, 9846), self.input.position) + _G_exactly_588, lastError = self.exactly("(") self.considerError(lastError, None) - _G_python_589, lastError = eval(self._G_expr_588, self.globals, _locals), None + self._trace("", (9846, 9861), self.input.position) + _G_apply_589, lastError = self._apply( + self.rule_def_g_interval, "def_g_interval", [] + ) self.considerError(lastError, None) - return (_G_python_589, self.currentError) - def _G_or_590(): - self._trace('', (9865, 9880), self.input.position) - _G_apply_591, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) + _locals["ivl_end"] = _G_apply_589 + self._trace("", (9869, 9873), self.input.position) + _G_exactly_590, lastError = self.exactly(")") self.considerError(lastError, None) - _locals['ivl_start'] = _G_apply_591 - self._trace('', (9890, 9894), self.input.position) - _G_exactly_592, lastError = self.exactly('_') + _G_python_592, lastError = ( + eval(self._G_expr_591, self.globals, _locals), + None, + ) self.considerError(lastError, None) - self._trace('', (9894, 9898), self.input.position) - _G_exactly_593, lastError = self.exactly('(') + return (_G_python_592, self.currentError) + + def _G_or_593(): + self._trace("", (9972, 9976), self.input.position) + _G_exactly_594, lastError = self.exactly("(") self.considerError(lastError, None) - self._trace('', (9898, 9913), self.input.position) - _G_apply_594, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) + self._trace("", (9976, 9991), self.input.position) + _G_apply_595, lastError = self._apply( + self.rule_def_g_interval, "def_g_interval", [] + ) self.considerError(lastError, None) - _locals['ivl_end'] = _G_apply_594 - self._trace('', (9921, 9925), self.input.position) - _G_exactly_595, lastError = self.exactly(')') + _locals["ivl_start"] = _G_apply_595 + self._trace("", (10001, 10005), self.input.position) + _G_exactly_596, lastError = self.exactly(")") self.considerError(lastError, None) - _G_python_597, lastError = eval(self._G_expr_596, self.globals, _locals), None + self._trace("", (10005, 10009), self.input.position) + _G_exactly_597, lastError = self.exactly("_") self.considerError(lastError, None) - return (_G_python_597, self.currentError) - def _G_or_598(): - self._trace('', (10024, 10028), self.input.position) - _G_exactly_599, lastError = self.exactly('(') + self._trace("", (10009, 10024), self.input.position) + _G_apply_598, lastError = self._apply( + self.rule_def_g_interval, "def_g_interval", [] + ) self.considerError(lastError, None) - self._trace('', (10028, 10043), self.input.position) - _G_apply_600, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) + _locals["ivl_end"] = _G_apply_598 + _G_python_600, lastError = ( + eval(self._G_expr_599, self.globals, _locals), + None, + ) self.considerError(lastError, None) - _locals['ivl_start'] = _G_apply_600 - self._trace('', (10053, 10057), self.input.position) - _G_exactly_601, lastError = self.exactly(')') + return (_G_python_600, self.currentError) + + def _G_or_601(): + self._trace("", (10134, 10137), self.input.position) + _G_exactly_602, lastError = self.exactly("(") self.considerError(lastError, None) - self._trace('', (10057, 10061), self.input.position) - _G_exactly_602, lastError = self.exactly('_') + self._trace("", (10137, 10152), self.input.position) + _G_apply_603, lastError = self._apply( + self.rule_def_g_interval, "def_g_interval", [] + ) self.considerError(lastError, None) - self._trace('', (10061, 10076), self.input.position) - _G_apply_603, lastError = self._apply(self.rule_def_g_interval, "def_g_interval", []) + _locals["iv"] = _G_apply_603 + self._trace("", (10155, 10159), self.input.position) + _G_exactly_604, lastError = self.exactly(")") self.considerError(lastError, None) - _locals['ivl_end'] = _G_apply_603 - _G_python_605, lastError = eval(self._G_expr_604, self.globals, _locals), None + _G_python_605, lastError = ( + eval(self._G_expr_477, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_605, self.currentError) - _G_or_606, lastError = self._or([_G_or_580, _G_or_590, _G_or_598]) - self.considerError(lastError, 'uncertain_g_interval') - return (_G_or_606, self.currentError) + _G_or_606, lastError = self._or( + [_G_or_575, _G_or_585, _G_or_593, _G_or_601] + ) + self.considerError(lastError, "uncertain_g_interval") + return (_G_or_606, self.currentError) def rule_c_pos(self): - _locals = {'self': self} - self.locals['c_pos'] = _locals - self._trace('', (10179, 10189), self.input.position) + _locals = {"self": self} + self.locals["c_pos"] = _locals + self._trace("", (10206, 10216), self.input.position) _G_apply_607, lastError = self._apply(self.rule_def_c_pos, "def_c_pos", []) - self.considerError(lastError, 'c_pos') + self.considerError(lastError, "c_pos") return (_G_apply_607, self.currentError) - def rule_g_pos(self): - _locals = {'self': self} - self.locals['g_pos'] = _locals - self._trace('', (10246, 10256), self.input.position) + _locals = {"self": self} + self.locals["g_pos"] = _locals + self._trace("", (10273, 10283), self.input.position) _G_apply_608, lastError = self._apply(self.rule_def_g_pos, "def_g_pos", []) - self.considerError(lastError, 'g_pos') + self.considerError(lastError, "g_pos") return (_G_apply_608, self.currentError) - def rule_m_pos(self): - _locals = {'self': self} - self.locals['m_pos'] = _locals - self._trace('', (10313, 10323), self.input.position) + _locals = {"self": self} + self.locals["m_pos"] = _locals + self._trace("", (10340, 10350), self.input.position) _G_apply_609, lastError = self._apply(self.rule_def_m_pos, "def_m_pos", []) - self.considerError(lastError, 'm_pos') + self.considerError(lastError, "m_pos") return (_G_apply_609, self.currentError) - def rule_n_pos(self): - _locals = {'self': self} - self.locals['n_pos'] = _locals - self._trace('', (10380, 10390), self.input.position) + _locals = {"self": self} + self.locals["n_pos"] = _locals + self._trace("", (10407, 10417), self.input.position) _G_apply_610, lastError = self._apply(self.rule_def_n_pos, "def_n_pos", []) - self.considerError(lastError, 'n_pos') + self.considerError(lastError, "n_pos") return (_G_apply_610, self.currentError) - def rule_p_pos(self): - _locals = {'self': self} - self.locals['p_pos'] = _locals - self._trace('', (10447, 10457), self.input.position) + _locals = {"self": self} + self.locals["p_pos"] = _locals + self._trace("", (10474, 10484), self.input.position) _G_apply_611, lastError = self._apply(self.rule_def_p_pos, "def_p_pos", []) - self.considerError(lastError, 'p_pos') + self.considerError(lastError, "p_pos") return (_G_apply_611, self.currentError) - def rule_r_pos(self): - _locals = {'self': self} - self.locals['r_pos'] = _locals - self._trace('', (10514, 10524), self.input.position) + _locals = {"self": self} + self.locals["r_pos"] = _locals + self._trace("", (10541, 10551), self.input.position) _G_apply_612, lastError = self._apply(self.rule_def_r_pos, "def_r_pos", []) - self.considerError(lastError, 'r_pos') + self.considerError(lastError, "r_pos") return (_G_apply_612, self.currentError) - def rule_def_c_pos(self): - _locals = {'self': self} - self.locals['def_c_pos'] = _locals + _locals = {"self": self} + self.locals["def_c_pos"] = _locals + def _G_or_613(): - self._trace('', (10607, 10612), self.input.position) + self._trace("", (10634, 10639), self.input.position) _G_apply_614, lastError = self._apply(self.rule_base, "base", []) self.considerError(lastError, None) - _locals['b'] = _G_apply_614 - self._trace('', (10614, 10621), self.input.position) + _locals["b"] = _G_apply_614 + self._trace("", (10641, 10648), self.input.position) _G_apply_615, lastError = self._apply(self.rule_offset, "offset", []) self.considerError(lastError, None) - _locals['o'] = _G_apply_615 - _G_python_617, lastError = eval(self._G_expr_616, self.globals, _locals), None + _locals["o"] = _G_apply_615 + _G_python_617, lastError = ( + eval(self._G_expr_616, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_617, self.currentError) + def _G_or_618(): - self._trace('', (10706, 10710), self.input.position) - _G_exactly_619, lastError = self.exactly('*') + self._trace("", (10733, 10737), self.input.position) + _G_exactly_619, lastError = self.exactly("*") self.considerError(lastError, None) - self._trace('', (10710, 10714), self.input.position) + self._trace("", (10737, 10741), self.input.position) _G_apply_620, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) - _locals['b'] = _G_apply_620 - self._trace('', (10716, 10723), self.input.position) + _locals["b"] = _G_apply_620 + self._trace("", (10743, 10750), self.input.position) _G_apply_621, lastError = self._apply(self.rule_offset, "offset", []) self.considerError(lastError, None) - _locals['o'] = _G_apply_621 - _G_python_623, lastError = eval(self._G_expr_622, self.globals, _locals), None + _locals["o"] = _G_apply_621 + _G_python_623, lastError = ( + eval(self._G_expr_622, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_623, self.currentError) + _G_or_624, lastError = self._or([_G_or_613, _G_or_618]) - self.considerError(lastError, 'def_c_pos') + self.considerError(lastError, "def_c_pos") return (_G_or_624, self.currentError) - def rule_def_g_pos(self): - _locals = {'self': self} - self.locals['def_g_pos'] = _locals + _locals = {"self": self} + self.locals["def_g_pos"] = _locals + def _G_or_625(): - self._trace('', (10811, 10814), self.input.position) + self._trace("", (10838, 10841), self.input.position) _G_apply_626, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_626, self.currentError) + def _G_or_627(): - self._trace('', (10815, 10818), self.input.position) - _G_exactly_628, lastError = self.exactly('?') + self._trace("", (10842, 10845), self.input.position) + _G_exactly_628, lastError = self.exactly("?") self.considerError(lastError, None) _G_python_629, lastError = (None), None self.considerError(lastError, None) return (_G_python_629, self.currentError) + _G_or_630, lastError = self._or([_G_or_625, _G_or_627]) - self.considerError(lastError, 'def_g_pos') - _locals['pos'] = _G_or_630 - _G_python_632, lastError = eval(self._G_expr_631, self.globals, _locals), None - self.considerError(lastError, 'def_g_pos') + self.considerError(lastError, "def_g_pos") + _locals["pos"] = _G_or_630 + _G_python_632, lastError = ( + eval(self._G_expr_631, self.globals, _locals), + None, + ) + self.considerError(lastError, "def_g_pos") return (_G_python_632, self.currentError) - def rule_def_m_pos(self): - _locals = {'self': self} - self.locals['def_m_pos'] = _locals + _locals = {"self": self} + self.locals["def_m_pos"] = _locals + def _G_or_633(): - self._trace('', (10880, 10883), self.input.position) + self._trace("", (10907, 10910), self.input.position) _G_apply_634, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_634, self.currentError) + def _G_or_635(): - self._trace('', (10884, 10887), self.input.position) - _G_exactly_636, lastError = self.exactly('?') + self._trace("", (10911, 10914), self.input.position) + _G_exactly_636, lastError = self.exactly("?") self.considerError(lastError, None) _G_python_637, lastError = (None), None self.considerError(lastError, None) return (_G_python_637, self.currentError) + _G_or_638, lastError = self._or([_G_or_633, _G_or_635]) - self.considerError(lastError, 'def_m_pos') - _locals['pos'] = _G_or_638 - _G_python_639, lastError = eval(self._G_expr_631, self.globals, _locals), None - self.considerError(lastError, 'def_m_pos') + self.considerError(lastError, "def_m_pos") + _locals["pos"] = _G_or_638 + _G_python_639, lastError = ( + eval(self._G_expr_631, self.globals, _locals), + None, + ) + self.considerError(lastError, "def_m_pos") return (_G_python_639, self.currentError) - def rule_def_n_pos(self): - _locals = {'self': self} - self.locals['def_n_pos'] = _locals - self._trace('', (10947, 10952), self.input.position) + _locals = {"self": self} + self.locals["def_n_pos"] = _locals + self._trace("", (10974, 10979), self.input.position) _G_apply_640, lastError = self._apply(self.rule_base, "base", []) - self.considerError(lastError, 'def_n_pos') - _locals['b'] = _G_apply_640 - self._trace('', (10954, 10961), self.input.position) + self.considerError(lastError, "def_n_pos") + _locals["b"] = _G_apply_640 + self._trace("", (10981, 10988), self.input.position) _G_apply_641, lastError = self._apply(self.rule_offset, "offset", []) - self.considerError(lastError, 'def_n_pos') - _locals['o'] = _G_apply_641 - _G_python_643, lastError = eval(self._G_expr_642, self.globals, _locals), None - self.considerError(lastError, 'def_n_pos') + self.considerError(lastError, "def_n_pos") + _locals["o"] = _G_apply_641 + _G_python_643, lastError = ( + eval(self._G_expr_642, self.globals, _locals), + None, + ) + self.considerError(lastError, "def_n_pos") return (_G_python_643, self.currentError) - def rule_def_p_pos(self): - _locals = {'self': self} - self.locals['def_p_pos'] = _locals + _locals = {"self": self} + self.locals["def_p_pos"] = _locals + def _G_or_644(): - self._trace('', (11051, 11057), self.input.position) + self._trace("", (11078, 11084), self.input.position) _G_apply_645, lastError = self._apply(self.rule_term13, "term13", []) self.considerError(lastError, None) return (_G_apply_645, self.currentError) + def _G_or_646(): - self._trace('', (11058, 11062), self.input.position) + self._trace("", (11085, 11089), self.input.position) _G_apply_647, lastError = self._apply(self.rule_aa13, "aa13", []) self.considerError(lastError, None) return (_G_apply_647, self.currentError) + _G_or_648, lastError = self._or([_G_or_644, _G_or_646]) - self.considerError(lastError, 'def_p_pos') - _locals['aa'] = _G_or_648 - self._trace('', (11066, 11070), self.input.position) + self.considerError(lastError, "def_p_pos") + _locals["aa"] = _G_or_648 + self._trace("", (11093, 11097), self.input.position) _G_apply_649, lastError = self._apply(self.rule_num, "num", []) - self.considerError(lastError, 'def_p_pos') - _locals['pos'] = _G_apply_649 - _G_python_651, lastError = eval(self._G_expr_650, self.globals, _locals), None - self.considerError(lastError, 'def_p_pos') + self.considerError(lastError, "def_p_pos") + _locals["pos"] = _G_apply_649 + _G_python_651, lastError = ( + eval(self._G_expr_650, self.globals, _locals), + None, + ) + self.considerError(lastError, "def_p_pos") return (_G_python_651, self.currentError) - def rule_def_r_pos(self): - _locals = {'self': self} - self.locals['def_r_pos'] = _locals - self._trace('', (11152, 11157), self.input.position) + _locals = {"self": self} + self.locals["def_r_pos"] = _locals + self._trace("", (11179, 11184), self.input.position) _G_apply_652, lastError = self._apply(self.rule_base, "base", []) - self.considerError(lastError, 'def_r_pos') - _locals['b'] = _G_apply_652 - self._trace('', (11159, 11166), self.input.position) + self.considerError(lastError, "def_r_pos") + _locals["b"] = _G_apply_652 + self._trace("", (11186, 11193), self.input.position) _G_apply_653, lastError = self._apply(self.rule_offset, "offset", []) - self.considerError(lastError, 'def_r_pos') - _locals['o'] = _G_apply_653 - _G_python_654, lastError = eval(self._G_expr_642, self.globals, _locals), None - self.considerError(lastError, 'def_r_pos') + self.considerError(lastError, "def_r_pos") + _locals["o"] = _G_apply_653 + _G_python_654, lastError = ( + eval(self._G_expr_642, self.globals, _locals), + None, + ) + self.considerError(lastError, "def_r_pos") return (_G_python_654, self.currentError) - def rule_fs(self): - _locals = {'self': self} - self.locals['fs'] = _locals - self._trace('', (11570, 11575), self.input.position) - _G_exactly_655, lastError = self.exactly('fs') - self.considerError(lastError, 'fs') + _locals = {"self": self} + self.locals["fs"] = _locals + self._trace("", (11597, 11602), self.input.position) + _G_exactly_655, lastError = self.exactly("fs") + self.considerError(lastError, "fs") + def _G_or_656(): - self._trace('', (11577, 11584), self.input.position) + self._trace("", (11604, 11611), self.input.position) _G_apply_657, lastError = self._apply(self.rule_aa13_fs, "aa13_fs", []) self.considerError(lastError, None) return (_G_apply_657, self.currentError) + def _G_or_658(): _G_python_659, lastError = (None), None self.considerError(lastError, None) return (_G_python_659, self.currentError) + _G_or_660, lastError = self._or([_G_or_656, _G_or_658]) - self.considerError(lastError, 'fs') - _locals['n'] = _G_or_660 - _G_python_662, lastError = eval(self._G_expr_661, self.globals, _locals), None - self.considerError(lastError, 'fs') + self.considerError(lastError, "fs") + _locals["n"] = _G_or_660 + _G_python_662, lastError = ( + eval(self._G_expr_661, self.globals, _locals), + None, + ) + self.considerError(lastError, "fs") return (_G_python_662, self.currentError) - def rule_ext(self): - _locals = {'self': self} - self.locals['ext'] = _locals - self._trace('', (11608, 11614), self.input.position) - _G_exactly_663, lastError = self.exactly('ext') - self.considerError(lastError, 'ext') + _locals = {"self": self} + self.locals["ext"] = _locals + self._trace("", (11635, 11641), self.input.position) + _G_exactly_663, lastError = self.exactly("ext") + self.considerError(lastError, "ext") + def _G_or_664(): - self._trace('', (11616, 11624), self.input.position) - _G_apply_665, lastError = self._apply(self.rule_aa13_ext, "aa13_ext", []) + self._trace("", (11643, 11651), self.input.position) + _G_apply_665, lastError = self._apply( + self.rule_aa13_ext, "aa13_ext", [] + ) self.considerError(lastError, None) return (_G_apply_665, self.currentError) + def _G_or_666(): _G_python_667, lastError = ((None, None)), None self.considerError(lastError, None) return (_G_python_667, self.currentError) + _G_or_668, lastError = self._or([_G_or_664, _G_or_666]) - self.considerError(lastError, 'ext') - _locals['aat'] = _G_or_668[0] - _locals['n'] = _G_or_668[1] - _G_python_670, lastError = eval(self._G_expr_669, self.globals, _locals), None - self.considerError(lastError, 'ext') + self.considerError(lastError, "ext") + _locals["aat"] = _G_or_668[0] + _locals["n"] = _G_or_668[1] + _G_python_670, lastError = ( + eval(self._G_expr_669, self.globals, _locals), + None, + ) + self.considerError(lastError, "ext") return (_G_python_670, self.currentError) - def rule_aa13_fs(self): - _locals = {'self': self} - self.locals['aa13_fs'] = _locals - self._trace('', (11674, 11681), self.input.position) + _locals = {"self": self} + self.locals["aa13_fs"] = _locals + self._trace("", (11701, 11708), self.input.position) _G_apply_671, lastError = self._apply(self.rule_term13, "term13", []) - self.considerError(lastError, 'aa13_fs') - self._trace('', (11681, 11694), self.input.position) - _G_apply_672, lastError = self._apply(self.rule_fsext_offset, "fsext_offset", []) - self.considerError(lastError, 'aa13_fs') - _locals['n'] = _G_apply_672 - _G_python_673, lastError = eval(self._G_expr_661, self.globals, _locals), None - self.considerError(lastError, 'aa13_fs') + self.considerError(lastError, "aa13_fs") + self._trace("", (11708, 11721), self.input.position) + _G_apply_672, lastError = self._apply( + self.rule_fsext_offset, "fsext_offset", [] + ) + self.considerError(lastError, "aa13_fs") + _locals["n"] = _G_apply_672 + _G_python_673, lastError = ( + eval(self._G_expr_661, self.globals, _locals), + None, + ) + self.considerError(lastError, "aa13_fs") return (_G_python_673, self.currentError) - def rule_aa13_ext(self): - _locals = {'self': self} - self.locals['aa13_ext'] = _locals + _locals = {"self": self} + self.locals["aa13_ext"] = _locals + def _G_or_674(): - self._trace('', (11712, 11719), self.input.position) + self._trace("", (11739, 11746), self.input.position) _G_apply_675, lastError = self._apply(self.rule_term13, "term13", []) self.considerError(lastError, None) - _locals['aat'] = _G_apply_675 - self._trace('', (11723, 11736), self.input.position) - _G_apply_676, lastError = self._apply(self.rule_fsext_offset, "fsext_offset", []) + _locals["aat"] = _G_apply_675 + self._trace("", (11750, 11763), self.input.position) + _G_apply_676, lastError = self._apply( + self.rule_fsext_offset, "fsext_offset", [] + ) self.considerError(lastError, None) - _locals['n'] = _G_apply_676 - _G_python_677, lastError = eval(self._G_expr_669, self.globals, _locals), None + _locals["n"] = _G_apply_676 + _G_python_677, lastError = ( + eval(self._G_expr_669, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_677, self.currentError) + def _G_or_678(): def _G_or_679(): - self._trace('', (11763, 11767), self.input.position) + self._trace("", (11790, 11794), self.input.position) _G_apply_680, lastError = self._apply(self.rule_aa13, "aa13", []) self.considerError(lastError, None) return (_G_apply_680, self.currentError) + def _G_or_681(): _G_python_682, lastError = (None), None self.considerError(lastError, None) return (_G_python_682, self.currentError) + _G_or_683, lastError = self._or([_G_or_679, _G_or_681]) self.considerError(lastError, None) - _locals['aat'] = _G_or_683 - self._trace('', (11784, 11789), self.input.position) + _locals["aat"] = _G_or_683 + self._trace("", (11811, 11816), self.input.position) _G_apply_684, lastError = self._apply(self.rule_nnum, "nnum", []) self.considerError(lastError, None) - _locals['n'] = _G_apply_684 - _G_python_685, lastError = eval(self._G_expr_669, self.globals, _locals), None + _locals["n"] = _G_apply_684 + _G_python_685, lastError = ( + eval(self._G_expr_669, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_685, self.currentError) + _G_or_686, lastError = self._or([_G_or_674, _G_or_678]) - self.considerError(lastError, 'aa13_ext') + self.considerError(lastError, "aa13_ext") return (_G_or_686, self.currentError) - def rule_fsext_offset(self): - _locals = {'self': self} - self.locals['fsext_offset'] = _locals + _locals = {"self": self} + self.locals["fsext_offset"] = _locals + def _G_or_687(): - self._trace('', (11818, 11822), self.input.position) + self._trace("", (11845, 11849), self.input.position) _G_apply_688, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_688, self.currentError) + def _G_or_689(): - self._trace('', (11823, 11826), self.input.position) - _G_exactly_690, lastError = self.exactly('?') + self._trace("", (11850, 11853), self.input.position) + _G_exactly_690, lastError = self.exactly("?") self.considerError(lastError, None) return (_G_exactly_690, self.currentError) + def _G_or_691(): _G_python_692, lastError = (None), None self.considerError(lastError, None) return (_G_python_692, self.currentError) + _G_or_693, lastError = self._or([_G_or_687, _G_or_689, _G_or_691]) - self.considerError(lastError, 'fsext_offset') + self.considerError(lastError, "fsext_offset") return (_G_or_693, self.currentError) - def rule_dna_seq(self): - _locals = {'self': self} - self.locals['dna_seq'] = _locals + _locals = {"self": self} + self.locals["dna_seq"] = _locals + def _G_consumedby_694(): def _G_many1_695(): - self._trace('', (11871, 11874), self.input.position) + self._trace("", (11898, 11901), self.input.position) _G_apply_696, lastError = self._apply(self.rule_dna, "dna", []) self.considerError(lastError, None) return (_G_apply_696, self.currentError) + _G_many1_697, lastError = self.many(_G_many1_695, _G_many1_695()) self.considerError(lastError, None) return (_G_many1_697, self.currentError) + _G_consumedby_698, lastError = self.consumedby(_G_consumedby_694) - self.considerError(lastError, 'dna_seq') + self.considerError(lastError, "dna_seq") return (_G_consumedby_698, self.currentError) - def rule_rna_seq(self): - _locals = {'self': self} - self.locals['rna_seq'] = _locals + _locals = {"self": self} + self.locals["rna_seq"] = _locals + def _G_consumedby_699(): def _G_many1_700(): - self._trace('', (11888, 11891), self.input.position) + self._trace("", (11915, 11918), self.input.position) _G_apply_701, lastError = self._apply(self.rule_rna, "rna", []) self.considerError(lastError, None) return (_G_apply_701, self.currentError) + _G_many1_702, lastError = self.many(_G_many1_700, _G_many1_700()) self.considerError(lastError, None) return (_G_many1_702, self.currentError) + _G_consumedby_703, lastError = self.consumedby(_G_consumedby_699) - self.considerError(lastError, 'rna_seq') + self.considerError(lastError, "rna_seq") return (_G_consumedby_703, self.currentError) - def rule_aat13_seq(self): - _locals = {'self': self} - self.locals['aat13_seq'] = _locals + _locals = {"self": self} + self.locals["aat13_seq"] = _locals + def _G_or_704(): def _G_consumedby_705(): - self._trace('', (11907, 11915), self.input.position) - _G_apply_706, lastError = self._apply(self.rule_aat3_seq, "aat3_seq", []) + self._trace("", (11934, 11942), self.input.position) + _G_apply_706, lastError = self._apply( + self.rule_aat3_seq, "aat3_seq", [] + ) self.considerError(lastError, None) return (_G_apply_706, self.currentError) + _G_consumedby_707, lastError = self.consumedby(_G_consumedby_705) self.considerError(lastError, None) return (_G_consumedby_707, self.currentError) + def _G_or_708(): def _G_consumedby_709(): - self._trace('', (11920, 11928), self.input.position) - _G_apply_710, lastError = self._apply(self.rule_aat1_seq, "aat1_seq", []) + self._trace("", (11947, 11955), self.input.position) + _G_apply_710, lastError = self._apply( + self.rule_aat1_seq, "aat1_seq", [] + ) self.considerError(lastError, None) return (_G_apply_710, self.currentError) + _G_consumedby_711, lastError = self.consumedby(_G_consumedby_709) self.considerError(lastError, None) return (_G_consumedby_711, self.currentError) + _G_or_712, lastError = self._or([_G_or_704, _G_or_708]) - self.considerError(lastError, 'aat13_seq') + self.considerError(lastError, "aat13_seq") return (_G_or_712, self.currentError) - def rule_aat1_seq(self): - _locals = {'self': self} - self.locals['aat1_seq'] = _locals + _locals = {"self": self} + self.locals["aat1_seq"] = _locals + def _G_or_713(): def _G_consumedby_714(): - self._trace('', (11942, 11947), self.input.position) + self._trace("", (11969, 11974), self.input.position) _G_apply_715, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) return (_G_apply_715, self.currentError) + _G_consumedby_716, lastError = self.consumedby(_G_consumedby_714) self.considerError(lastError, None) return (_G_consumedby_716, self.currentError) + def _G_or_717(): def _G_consumedby_718(): def _G_many1_719(): - self._trace('', (11952, 11955), self.input.position) + self._trace("", (11979, 11982), self.input.position) _G_apply_720, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) return (_G_apply_720, self.currentError) + _G_many1_721, lastError = self.many(_G_many1_719, _G_many1_719()) self.considerError(lastError, None) + def _G_optional_722(): - self._trace('', (11956, 11962), self.input.position) - _G_apply_723, lastError = self._apply(self.rule_term1, "term1", []) + self._trace("", (11983, 11989), self.input.position) + _G_apply_723, lastError = self._apply( + self.rule_term1, "term1", [] + ) self.considerError(lastError, None) return (_G_apply_723, self.currentError) + def _G_optional_724(): return (None, self.input.nullError()) + _G_or_725, lastError = self._or([_G_optional_722, _G_optional_724]) self.considerError(lastError, None) return (_G_or_725, self.currentError) + _G_consumedby_726, lastError = self.consumedby(_G_consumedby_718) self.considerError(lastError, None) return (_G_consumedby_726, self.currentError) + _G_or_727, lastError = self._or([_G_or_713, _G_or_717]) - self.considerError(lastError, 'aat1_seq') + self.considerError(lastError, "aat1_seq") return (_G_or_727, self.currentError) - def rule_aat3_seq(self): - _locals = {'self': self} - self.locals['aat3_seq'] = _locals + _locals = {"self": self} + self.locals["aat3_seq"] = _locals + def _G_or_728(): def _G_consumedby_729(): - self._trace('', (11977, 11982), self.input.position) + self._trace("", (12004, 12009), self.input.position) _G_apply_730, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) return (_G_apply_730, self.currentError) + _G_consumedby_731, lastError = self.consumedby(_G_consumedby_729) self.considerError(lastError, None) return (_G_consumedby_731, self.currentError) + def _G_or_732(): def _G_consumedby_733(): def _G_many1_734(): - self._trace('', (11987, 11990), self.input.position) + self._trace("", (12014, 12017), self.input.position) _G_apply_735, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) return (_G_apply_735, self.currentError) + _G_many1_736, lastError = self.many(_G_many1_734, _G_many1_734()) self.considerError(lastError, None) + def _G_optional_737(): - self._trace('', (11991, 11997), self.input.position) - _G_apply_738, lastError = self._apply(self.rule_term3, "term3", []) + self._trace("", (12018, 12024), self.input.position) + _G_apply_738, lastError = self._apply( + self.rule_term3, "term3", [] + ) self.considerError(lastError, None) return (_G_apply_738, self.currentError) + def _G_optional_739(): return (None, self.input.nullError()) + _G_or_740, lastError = self._or([_G_optional_737, _G_optional_739]) self.considerError(lastError, None) return (_G_or_740, self.currentError) + _G_consumedby_741, lastError = self.consumedby(_G_consumedby_733) self.considerError(lastError, None) return (_G_consumedby_741, self.currentError) + _G_or_742, lastError = self._or([_G_or_728, _G_or_732]) - self.considerError(lastError, 'aat3_seq') + self.considerError(lastError, "aat3_seq") return (_G_or_742, self.currentError) - def rule_aa13_seq(self): - _locals = {'self': self} - self.locals['aa13_seq'] = _locals + _locals = {"self": self} + self.locals["aa13_seq"] = _locals + def _G_or_743(): def _G_consumedby_744(): - self._trace('', (12012, 12019), self.input.position) - _G_apply_745, lastError = self._apply(self.rule_aa3_seq, "aa3_seq", []) + self._trace("", (12039, 12046), self.input.position) + _G_apply_745, lastError = self._apply( + self.rule_aa3_seq, "aa3_seq", [] + ) self.considerError(lastError, None) return (_G_apply_745, self.currentError) + _G_consumedby_746, lastError = self.consumedby(_G_consumedby_744) self.considerError(lastError, None) return (_G_consumedby_746, self.currentError) + def _G_or_747(): def _G_consumedby_748(): - self._trace('', (12024, 12031), self.input.position) - _G_apply_749, lastError = self._apply(self.rule_aa1_seq, "aa1_seq", []) + self._trace("", (12051, 12058), self.input.position) + _G_apply_749, lastError = self._apply( + self.rule_aa1_seq, "aa1_seq", [] + ) self.considerError(lastError, None) return (_G_apply_749, self.currentError) + _G_consumedby_750, lastError = self.consumedby(_G_consumedby_748) self.considerError(lastError, None) return (_G_consumedby_750, self.currentError) + _G_or_751, lastError = self._or([_G_or_743, _G_or_747]) - self.considerError(lastError, 'aa13_seq') + self.considerError(lastError, "aa13_seq") return (_G_or_751, self.currentError) - def rule_aa1_seq(self): - _locals = {'self': self} - self.locals['aa1_seq'] = _locals + _locals = {"self": self} + self.locals["aa1_seq"] = _locals + def _G_consumedby_752(): def _G_many1_753(): - self._trace('', (12044, 12047), self.input.position) + self._trace("", (12071, 12074), self.input.position) _G_apply_754, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) return (_G_apply_754, self.currentError) + _G_many1_755, lastError = self.many(_G_many1_753, _G_many1_753()) self.considerError(lastError, None) return (_G_many1_755, self.currentError) + _G_consumedby_756, lastError = self.consumedby(_G_consumedby_752) - self.considerError(lastError, 'aa1_seq') + self.considerError(lastError, "aa1_seq") return (_G_consumedby_756, self.currentError) - def rule_aa3_seq(self): - _locals = {'self': self} - self.locals['aa3_seq'] = _locals + _locals = {"self": self} + self.locals["aa3_seq"] = _locals + def _G_consumedby_757(): def _G_many1_758(): - self._trace('', (12061, 12064), self.input.position) + self._trace("", (12088, 12091), self.input.position) _G_apply_759, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) return (_G_apply_759, self.currentError) + _G_many1_760, lastError = self.many(_G_many1_758, _G_many1_758()) self.considerError(lastError, None) return (_G_many1_760, self.currentError) + _G_consumedby_761, lastError = self.consumedby(_G_consumedby_757) - self.considerError(lastError, 'aa3_seq') + self.considerError(lastError, "aa3_seq") return (_G_consumedby_761, self.currentError) - def rule_aa1(self): - _locals = {'self': self} - self.locals['aa1'] = _locals + _locals = {"self": self} + self.locals["aa1"] = _locals _G_apply_762, lastError = self._apply(self.rule_anything, "anything", []) - self.considerError(lastError, 'aa1') - _locals['x'] = _G_apply_762 + self.considerError(lastError, "aa1") + _locals["x"] = _G_apply_762 + def _G_pred_763(): - _G_python_765, lastError = eval(self._G_expr_764, self.globals, _locals), None + _G_python_765, lastError = ( + eval(self._G_expr_764, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_765, self.currentError) + _G_pred_766, lastError = self.pred(_G_pred_763) - self.considerError(lastError, 'aa1') - _G_python_768, lastError = eval(self._G_expr_767, self.globals, _locals), None - self.considerError(lastError, 'aa1') + self.considerError(lastError, "aa1") + _G_python_768, lastError = ( + eval(self._G_expr_767, self.globals, _locals), + None, + ) + self.considerError(lastError, "aa1") return (_G_python_768, self.currentError) - def rule_aa13(self): - _locals = {'self': self} - self.locals['aa13'] = _locals + _locals = {"self": self} + self.locals["aa13"] = _locals + def _G_or_769(): - self._trace('', (12145, 12149), self.input.position) + self._trace("", (12172, 12176), self.input.position) _G_apply_770, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) return (_G_apply_770, self.currentError) + def _G_or_771(): - self._trace('', (12151, 12155), self.input.position) + self._trace("", (12178, 12182), self.input.position) _G_apply_772, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) return (_G_apply_772, self.currentError) + _G_or_773, lastError = self._or([_G_or_769, _G_or_771]) - self.considerError(lastError, 'aa13') + self.considerError(lastError, "aa13") return (_G_or_773, self.currentError) - def rule_aa3(self): - _locals = {'self': self} - self.locals['aa3'] = _locals + _locals = {"self": self} + self.locals["aa3"] = _locals + def _G_or_774(): - self._trace('', (12161, 12167), self.input.position) - _G_exactly_775, lastError = self.exactly('Ala') + self._trace("", (12188, 12194), self.input.position) + _G_exactly_775, lastError = self.exactly("Ala") self.considerError(lastError, None) return (_G_exactly_775, self.currentError) + def _G_or_776(): - self._trace('', (12168, 12173), self.input.position) - _G_exactly_777, lastError = self.exactly('Cys') + self._trace("", (12195, 12200), self.input.position) + _G_exactly_777, lastError = self.exactly("Cys") self.considerError(lastError, None) return (_G_exactly_777, self.currentError) + def _G_or_778(): - self._trace('', (12174, 12179), self.input.position) - _G_exactly_779, lastError = self.exactly('Asp') + self._trace("", (12201, 12206), self.input.position) + _G_exactly_779, lastError = self.exactly("Asp") self.considerError(lastError, None) return (_G_exactly_779, self.currentError) + def _G_or_780(): - self._trace('', (12180, 12185), self.input.position) - _G_exactly_781, lastError = self.exactly('Glu') + self._trace("", (12207, 12212), self.input.position) + _G_exactly_781, lastError = self.exactly("Glu") self.considerError(lastError, None) return (_G_exactly_781, self.currentError) + def _G_or_782(): - self._trace('', (12186, 12191), self.input.position) - _G_exactly_783, lastError = self.exactly('Phe') + self._trace("", (12213, 12218), self.input.position) + _G_exactly_783, lastError = self.exactly("Phe") self.considerError(lastError, None) return (_G_exactly_783, self.currentError) + def _G_or_784(): - self._trace('', (12192, 12197), self.input.position) - _G_exactly_785, lastError = self.exactly('Gly') + self._trace("", (12219, 12224), self.input.position) + _G_exactly_785, lastError = self.exactly("Gly") self.considerError(lastError, None) return (_G_exactly_785, self.currentError) + def _G_or_786(): - self._trace('', (12198, 12203), self.input.position) - _G_exactly_787, lastError = self.exactly('His') + self._trace("", (12225, 12230), self.input.position) + _G_exactly_787, lastError = self.exactly("His") self.considerError(lastError, None) return (_G_exactly_787, self.currentError) + def _G_or_788(): - self._trace('', (12204, 12209), self.input.position) - _G_exactly_789, lastError = self.exactly('Ile') + self._trace("", (12231, 12236), self.input.position) + _G_exactly_789, lastError = self.exactly("Ile") self.considerError(lastError, None) return (_G_exactly_789, self.currentError) + def _G_or_790(): - self._trace('', (12210, 12215), self.input.position) - _G_exactly_791, lastError = self.exactly('Lys') + self._trace("", (12237, 12242), self.input.position) + _G_exactly_791, lastError = self.exactly("Lys") self.considerError(lastError, None) return (_G_exactly_791, self.currentError) + def _G_or_792(): - self._trace('', (12216, 12221), self.input.position) - _G_exactly_793, lastError = self.exactly('Leu') + self._trace("", (12243, 12248), self.input.position) + _G_exactly_793, lastError = self.exactly("Leu") self.considerError(lastError, None) return (_G_exactly_793, self.currentError) + def _G_or_794(): - self._trace('', (12222, 12227), self.input.position) - _G_exactly_795, lastError = self.exactly('Met') + self._trace("", (12249, 12254), self.input.position) + _G_exactly_795, lastError = self.exactly("Met") self.considerError(lastError, None) return (_G_exactly_795, self.currentError) + def _G_or_796(): - self._trace('', (12228, 12233), self.input.position) - _G_exactly_797, lastError = self.exactly('Asn') + self._trace("", (12255, 12260), self.input.position) + _G_exactly_797, lastError = self.exactly("Asn") self.considerError(lastError, None) return (_G_exactly_797, self.currentError) + def _G_or_798(): - self._trace('', (12234, 12239), self.input.position) - _G_exactly_799, lastError = self.exactly('Pro') + self._trace("", (12261, 12266), self.input.position) + _G_exactly_799, lastError = self.exactly("Pro") self.considerError(lastError, None) return (_G_exactly_799, self.currentError) + def _G_or_800(): - self._trace('', (12240, 12245), self.input.position) - _G_exactly_801, lastError = self.exactly('Gln') + self._trace("", (12267, 12272), self.input.position) + _G_exactly_801, lastError = self.exactly("Gln") self.considerError(lastError, None) return (_G_exactly_801, self.currentError) + def _G_or_802(): - self._trace('', (12246, 12251), self.input.position) - _G_exactly_803, lastError = self.exactly('Arg') + self._trace("", (12273, 12278), self.input.position) + _G_exactly_803, lastError = self.exactly("Arg") self.considerError(lastError, None) return (_G_exactly_803, self.currentError) + def _G_or_804(): - self._trace('', (12252, 12257), self.input.position) - _G_exactly_805, lastError = self.exactly('Ser') + self._trace("", (12279, 12284), self.input.position) + _G_exactly_805, lastError = self.exactly("Ser") self.considerError(lastError, None) return (_G_exactly_805, self.currentError) + def _G_or_806(): - self._trace('', (12258, 12263), self.input.position) - _G_exactly_807, lastError = self.exactly('Thr') + self._trace("", (12285, 12290), self.input.position) + _G_exactly_807, lastError = self.exactly("Thr") self.considerError(lastError, None) return (_G_exactly_807, self.currentError) + def _G_or_808(): - self._trace('', (12264, 12269), self.input.position) - _G_exactly_809, lastError = self.exactly('Val') + self._trace("", (12291, 12296), self.input.position) + _G_exactly_809, lastError = self.exactly("Val") self.considerError(lastError, None) return (_G_exactly_809, self.currentError) + def _G_or_810(): - self._trace('', (12270, 12275), self.input.position) - _G_exactly_811, lastError = self.exactly('Trp') + self._trace("", (12297, 12302), self.input.position) + _G_exactly_811, lastError = self.exactly("Trp") self.considerError(lastError, None) return (_G_exactly_811, self.currentError) + def _G_or_812(): - self._trace('', (12276, 12281), self.input.position) - _G_exactly_813, lastError = self.exactly('Tyr') + self._trace("", (12303, 12308), self.input.position) + _G_exactly_813, lastError = self.exactly("Tyr") self.considerError(lastError, None) return (_G_exactly_813, self.currentError) + def _G_or_814(): - self._trace('', (12283, 12289), self.input.position) - _G_exactly_815, lastError = self.exactly('Asx') + self._trace("", (12310, 12316), self.input.position) + _G_exactly_815, lastError = self.exactly("Asx") self.considerError(lastError, None) return (_G_exactly_815, self.currentError) + def _G_or_816(): - self._trace('', (12291, 12297), self.input.position) - _G_exactly_817, lastError = self.exactly('Glx') + self._trace("", (12318, 12324), self.input.position) + _G_exactly_817, lastError = self.exactly("Glx") self.considerError(lastError, None) return (_G_exactly_817, self.currentError) + def _G_or_818(): - self._trace('', (12299, 12305), self.input.position) - _G_exactly_819, lastError = self.exactly('Xaa') + self._trace("", (12326, 12332), self.input.position) + _G_exactly_819, lastError = self.exactly("Xaa") self.considerError(lastError, None) return (_G_exactly_819, self.currentError) + def _G_or_820(): - self._trace('', (12307, 12313), self.input.position) - _G_exactly_821, lastError = self.exactly('Sec') + self._trace("", (12334, 12340), self.input.position) + _G_exactly_821, lastError = self.exactly("Sec") self.considerError(lastError, None) return (_G_exactly_821, self.currentError) - _G_or_822, lastError = self._or([_G_or_774, _G_or_776, _G_or_778, _G_or_780, _G_or_782, _G_or_784, _G_or_786, _G_or_788, _G_or_790, _G_or_792, _G_or_794, _G_or_796, _G_or_798, _G_or_800, _G_or_802, _G_or_804, _G_or_806, _G_or_808, _G_or_810, _G_or_812, _G_or_814, _G_or_816, _G_or_818, _G_or_820]) - self.considerError(lastError, 'aa3') - return (_G_or_822, self.currentError) + _G_or_822, lastError = self._or( + [ + _G_or_774, + _G_or_776, + _G_or_778, + _G_or_780, + _G_or_782, + _G_or_784, + _G_or_786, + _G_or_788, + _G_or_790, + _G_or_792, + _G_or_794, + _G_or_796, + _G_or_798, + _G_or_800, + _G_or_802, + _G_or_804, + _G_or_806, + _G_or_808, + _G_or_810, + _G_or_812, + _G_or_814, + _G_or_816, + _G_or_818, + _G_or_820, + ] + ) + self.considerError(lastError, "aa3") + return (_G_or_822, self.currentError) def rule_aat1(self): - _locals = {'self': self} - self.locals['aat1'] = _locals + _locals = {"self": self} + self.locals["aat1"] = _locals + def _G_or_823(): - self._trace('', (12320, 12326), self.input.position) + self._trace("", (12347, 12353), self.input.position) _G_apply_824, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) return (_G_apply_824, self.currentError) + def _G_or_825(): - self._trace('', (12328, 12332), self.input.position) + self._trace("", (12355, 12359), self.input.position) _G_apply_826, lastError = self._apply(self.rule_aa1, "aa1", []) self.considerError(lastError, None) return (_G_apply_826, self.currentError) + _G_or_827, lastError = self._or([_G_or_823, _G_or_825]) - self.considerError(lastError, 'aat1') + self.considerError(lastError, "aat1") return (_G_or_827, self.currentError) - def rule_aat13(self): - _locals = {'self': self} - self.locals['aat13'] = _locals + _locals = {"self": self} + self.locals["aat13"] = _locals + def _G_or_828(): - self._trace('', (12340, 12345), self.input.position) + self._trace("", (12367, 12372), self.input.position) _G_apply_829, lastError = self._apply(self.rule_aat3, "aat3", []) self.considerError(lastError, None) return (_G_apply_829, self.currentError) + def _G_or_830(): - self._trace('', (12347, 12352), self.input.position) + self._trace("", (12374, 12379), self.input.position) _G_apply_831, lastError = self._apply(self.rule_aat1, "aat1", []) self.considerError(lastError, None) return (_G_apply_831, self.currentError) + _G_or_832, lastError = self._or([_G_or_828, _G_or_830]) - self.considerError(lastError, 'aat13') + self.considerError(lastError, "aat13") return (_G_or_832, self.currentError) - def rule_aat3(self): - _locals = {'self': self} - self.locals['aat3'] = _locals + _locals = {"self": self} + self.locals["aat3"] = _locals + def _G_or_833(): - self._trace('', (12359, 12365), self.input.position) + self._trace("", (12386, 12392), self.input.position) _G_apply_834, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) return (_G_apply_834, self.currentError) + def _G_or_835(): - self._trace('', (12367, 12371), self.input.position) + self._trace("", (12394, 12398), self.input.position) _G_apply_836, lastError = self._apply(self.rule_aa3, "aa3", []) self.considerError(lastError, None) return (_G_apply_836, self.currentError) + _G_or_837, lastError = self._or([_G_or_833, _G_or_835]) - self.considerError(lastError, 'aat3') + self.considerError(lastError, "aat3") return (_G_or_837, self.currentError) - def rule_dna(self): - _locals = {'self': self} - self.locals['dna'] = _locals - self._trace('', (12377, 12387), self.input.position) + _locals = {"self": self} + self.locals["dna"] = _locals + self._trace("", (12404, 12414), self.input.position) _G_apply_838, lastError = self._apply(self.rule_dna_iupac, "dna_iupac", []) - self.considerError(lastError, 'dna') + self.considerError(lastError, "dna") return (_G_apply_838, self.currentError) - def rule_dna_iupac(self): - _locals = {'self': self} - self.locals['dna_iupac'] = _locals + _locals = {"self": self} + self.locals["dna_iupac"] = _locals _G_apply_839, lastError = self._apply(self.rule_anything, "anything", []) - self.considerError(lastError, 'dna_iupac') - _locals['x'] = _G_apply_839 + self.considerError(lastError, "dna_iupac") + _locals["x"] = _G_apply_839 + def _G_pred_840(): - _G_python_842, lastError = eval(self._G_expr_841, self.globals, _locals), None + _G_python_842, lastError = ( + eval(self._G_expr_841, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_842, self.currentError) + _G_pred_843, lastError = self.pred(_G_pred_840) - self.considerError(lastError, 'dna_iupac') - _G_python_844, lastError = eval(self._G_expr_767, self.globals, _locals), None - self.considerError(lastError, 'dna_iupac') + self.considerError(lastError, "dna_iupac") + _G_python_844, lastError = ( + eval(self._G_expr_767, self.globals, _locals), + None, + ) + self.considerError(lastError, "dna_iupac") return (_G_python_844, self.currentError) - def rule_na_iupac(self): - _locals = {'self': self} - self.locals['na_iupac'] = _locals + _locals = {"self": self} + self.locals["na_iupac"] = _locals _G_apply_845, lastError = self._apply(self.rule_anything, "anything", []) - self.considerError(lastError, 'na_iupac') - _locals['x'] = _G_apply_845 + self.considerError(lastError, "na_iupac") + _locals["x"] = _G_apply_845 + def _G_pred_846(): - _G_python_848, lastError = eval(self._G_expr_847, self.globals, _locals), None + _G_python_848, lastError = ( + eval(self._G_expr_847, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_848, self.currentError) + _G_pred_849, lastError = self.pred(_G_pred_846) - self.considerError(lastError, 'na_iupac') - _G_python_850, lastError = eval(self._G_expr_767, self.globals, _locals), None - self.considerError(lastError, 'na_iupac') + self.considerError(lastError, "na_iupac") + _G_python_850, lastError = ( + eval(self._G_expr_767, self.globals, _locals), + None, + ) + self.considerError(lastError, "na_iupac") return (_G_python_850, self.currentError) - def rule_rna(self): - _locals = {'self': self} - self.locals['rna'] = _locals - self._trace('', (12516, 12526), self.input.position) + _locals = {"self": self} + self.locals["rna"] = _locals + self._trace("", (12543, 12553), self.input.position) _G_apply_851, lastError = self._apply(self.rule_rna_iupac, "rna_iupac", []) - self.considerError(lastError, 'rna') + self.considerError(lastError, "rna") return (_G_apply_851, self.currentError) - def rule_rna_iupac(self): - _locals = {'self': self} - self.locals['rna_iupac'] = _locals + _locals = {"self": self} + self.locals["rna_iupac"] = _locals _G_apply_852, lastError = self._apply(self.rule_anything, "anything", []) - self.considerError(lastError, 'rna_iupac') - _locals['x'] = _G_apply_852 + self.considerError(lastError, "rna_iupac") + _locals["x"] = _G_apply_852 + def _G_pred_853(): - _G_python_855, lastError = eval(self._G_expr_854, self.globals, _locals), None + _G_python_855, lastError = ( + eval(self._G_expr_854, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_855, self.currentError) + _G_pred_856, lastError = self.pred(_G_pred_853) - self.considerError(lastError, 'rna_iupac') - _G_python_857, lastError = eval(self._G_expr_767, self.globals, _locals), None - self.considerError(lastError, 'rna_iupac') + self.considerError(lastError, "rna_iupac") + _G_python_857, lastError = ( + eval(self._G_expr_767, self.globals, _locals), + None, + ) + self.considerError(lastError, "rna_iupac") return (_G_python_857, self.currentError) - def rule_term1(self): - _locals = {'self': self} - self.locals['term1'] = _locals + _locals = {"self": self} + self.locals["term1"] = _locals _G_apply_858, lastError = self._apply(self.rule_anything, "anything", []) - self.considerError(lastError, 'term1') - _locals['x'] = _G_apply_858 + self.considerError(lastError, "term1") + _locals["x"] = _G_apply_858 + def _G_pred_859(): - _G_python_861, lastError = eval(self._G_expr_860, self.globals, _locals), None + _G_python_861, lastError = ( + eval(self._G_expr_860, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_861, self.currentError) + _G_pred_862, lastError = self.pred(_G_pred_859) - self.considerError(lastError, 'term1') - _G_python_863, lastError = eval(self._G_expr_767, self.globals, _locals), None - self.considerError(lastError, 'term1') + self.considerError(lastError, "term1") + _G_python_863, lastError = ( + eval(self._G_expr_767, self.globals, _locals), + None, + ) + self.considerError(lastError, "term1") return (_G_python_863, self.currentError) - def rule_term13(self): - _locals = {'self': self} - self.locals['term13'] = _locals + _locals = {"self": self} + self.locals["term13"] = _locals + def _G_or_864(): - self._trace('', (12625, 12631), self.input.position) + self._trace("", (12652, 12658), self.input.position) _G_apply_865, lastError = self._apply(self.rule_term3, "term3", []) self.considerError(lastError, None) return (_G_apply_865, self.currentError) + def _G_or_866(): - self._trace('', (12633, 12639), self.input.position) + self._trace("", (12660, 12666), self.input.position) _G_apply_867, lastError = self._apply(self.rule_term1, "term1", []) self.considerError(lastError, None) return (_G_apply_867, self.currentError) + _G_or_868, lastError = self._or([_G_or_864, _G_or_866]) - self.considerError(lastError, 'term13') + self.considerError(lastError, "term13") return (_G_or_868, self.currentError) - def rule_term3(self): - _locals = {'self': self} - self.locals['term3'] = _locals - self._trace('', (12647, 12653), self.input.position) - _G_exactly_869, lastError = self.exactly('Ter') - self.considerError(lastError, 'term3') + _locals = {"self": self} + self.locals["term3"] = _locals + self._trace("", (12674, 12680), self.input.position) + _G_exactly_869, lastError = self.exactly("Ter") + self.considerError(lastError, "term3") return (_G_exactly_869, self.currentError) - def rule_base(self): - _locals = {'self': self} - self.locals['base'] = _locals - self._trace('', (12737, 12742), self.input.position) + _locals = {"self": self} + self.locals["base"] = _locals + self._trace("", (12764, 12769), self.input.position) _G_apply_870, lastError = self._apply(self.rule_snum, "snum", []) - self.considerError(lastError, 'base') + self.considerError(lastError, "base") return (_G_apply_870, self.currentError) - def rule_nnum(self): - _locals = {'self': self} - self.locals['nnum'] = _locals + _locals = {"self": self} + self.locals["nnum"] = _locals + def _G_consumedby_871(): - self._trace('', (12751, 12754), self.input.position) - _G_exactly_872, lastError = self.exactly('-') + self._trace("", (12778, 12781), self.input.position) + _G_exactly_872, lastError = self.exactly("-") self.considerError(lastError, None) - self._trace('', (12754, 12758), self.input.position) + self._trace("", (12781, 12785), self.input.position) _G_apply_873, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_873, self.currentError) + _G_consumedby_874, lastError = self.consumedby(_G_consumedby_871) - self.considerError(lastError, 'nnum') - _locals['x'] = _G_consumedby_874 - _G_python_876, lastError = eval(self._G_expr_875, self.globals, _locals), None - self.considerError(lastError, 'nnum') + self.considerError(lastError, "nnum") + _locals["x"] = _G_consumedby_874 + _G_python_876, lastError = ( + eval(self._G_expr_875, self.globals, _locals), + None, + ) + self.considerError(lastError, "nnum") return (_G_python_876, self.currentError) - def rule_num(self): - _locals = {'self': self} - self.locals['num'] = _locals + _locals = {"self": self} + self.locals["num"] = _locals + def _G_consumedby_877(): def _G_many1_878(): - self._trace('', (12779, 12784), self.input.position) + self._trace("", (12806, 12811), self.input.position) _G_apply_879, lastError = self._apply(self.rule_digit, "digit", []) self.considerError(lastError, None) return (_G_apply_879, self.currentError) + _G_many1_880, lastError = self.many(_G_many1_878, _G_many1_878()) self.considerError(lastError, None) return (_G_many1_880, self.currentError) + _G_consumedby_881, lastError = self.consumedby(_G_consumedby_877) - self.considerError(lastError, 'num') - _locals['x'] = _G_consumedby_881 - _G_python_882, lastError = eval(self._G_expr_875, self.globals, _locals), None - self.considerError(lastError, 'num') + self.considerError(lastError, "num") + _locals["x"] = _G_consumedby_881 + _G_python_882, lastError = ( + eval(self._G_expr_875, self.globals, _locals), + None, + ) + self.considerError(lastError, "num") return (_G_python_882, self.currentError) - def rule_offset(self): - _locals = {'self': self} - self.locals['offset'] = _locals + _locals = {"self": self} + self.locals["offset"] = _locals + def _G_or_883(): - self._trace('', (12807, 12812), self.input.position) + self._trace("", (12834, 12839), self.input.position) _G_apply_884, lastError = self._apply(self.rule_snum, "snum", []) self.considerError(lastError, None) return (_G_apply_884, self.currentError) + def _G_or_885(): _G_python_886, lastError = (0), None self.considerError(lastError, None) return (_G_python_886, self.currentError) + _G_or_887, lastError = self._or([_G_or_883, _G_or_885]) - self.considerError(lastError, 'offset') + self.considerError(lastError, "offset") return (_G_or_887, self.currentError) - def rule_pm(self): - _locals = {'self': self} - self.locals['pm'] = _locals + _locals = {"self": self} + self.locals["pm"] = _locals _G_apply_888, lastError = self._apply(self.rule_anything, "anything", []) - self.considerError(lastError, 'pm') - _locals['x'] = _G_apply_888 + self.considerError(lastError, "pm") + _locals["x"] = _G_apply_888 + def _G_pred_889(): - _G_python_891, lastError = eval(self._G_expr_890, self.globals, _locals), None + _G_python_891, lastError = ( + eval(self._G_expr_890, self.globals, _locals), + None, + ) self.considerError(lastError, None) return (_G_python_891, self.currentError) + _G_pred_892, lastError = self.pred(_G_pred_889) - self.considerError(lastError, 'pm') - _G_python_893, lastError = eval(self._G_expr_767, self.globals, _locals), None - self.considerError(lastError, 'pm') + self.considerError(lastError, "pm") + _G_python_893, lastError = ( + eval(self._G_expr_767, self.globals, _locals), + None, + ) + self.considerError(lastError, "pm") return (_G_python_893, self.currentError) - def rule_snum(self): - _locals = {'self': self} - self.locals['snum'] = _locals + _locals = {"self": self} + self.locals["snum"] = _locals + def _G_consumedby_894(): def _G_optional_895(): - self._trace('', (12856, 12858), self.input.position) + self._trace("", (12883, 12885), self.input.position) _G_apply_896, lastError = self._apply(self.rule_pm, "pm", []) self.considerError(lastError, None) return (_G_apply_896, self.currentError) + def _G_optional_897(): return (None, self.input.nullError()) + _G_or_898, lastError = self._or([_G_optional_895, _G_optional_897]) self.considerError(lastError, None) - self._trace('', (12859, 12863), self.input.position) + self._trace("", (12886, 12890), self.input.position) _G_apply_899, lastError = self._apply(self.rule_num, "num", []) self.considerError(lastError, None) return (_G_apply_899, self.currentError) + _G_consumedby_900, lastError = self.consumedby(_G_consumedby_894) - self.considerError(lastError, 'snum') - _locals['x'] = _G_consumedby_900 - _G_python_901, lastError = eval(self._G_expr_875, self.globals, _locals), None - self.considerError(lastError, 'snum') + self.considerError(lastError, "snum") + _locals["x"] = _G_consumedby_900 + _G_python_901, lastError = ( + eval(self._G_expr_875, self.globals, _locals), + None, + ) + self.considerError(lastError, "snum") return (_G_python_901, self.currentError) - def rule_accn(self): - _locals = {'self': self} - self.locals['accn'] = _locals + _locals = {"self": self} + self.locals["accn"] = _locals + def _G_consumedby_902(): - self._trace('', (12967, 12973), self.input.position) + self._trace("", (12994, 13000), self.input.position) _G_apply_903, lastError = self._apply(self.rule_letter, "letter", []) self.considerError(lastError, None) + def _G_optional_904(): def _G_many1_905(): def _G_or_906(): - self._trace('', (12976, 12989), self.input.position) - _G_apply_907, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) + self._trace("", (13003, 13016), self.input.position) + _G_apply_907, lastError = self._apply( + self.rule_letterOrDigit, "letterOrDigit", [] + ) self.considerError(lastError, None) return (_G_apply_907, self.currentError) + def _G_or_908(): def _G_or_909(): - self._trace('', (12993, 12996), self.input.position) - _G_exactly_910, lastError = self.exactly('-') + self._trace("", (13020, 13023), self.input.position) + _G_exactly_910, lastError = self.exactly("-") self.considerError(lastError, None) return (_G_exactly_910, self.currentError) + def _G_or_911(): - self._trace('', (12997, 13000), self.input.position) - _G_exactly_912, lastError = self.exactly('_') + self._trace("", (13024, 13027), self.input.position) + _G_exactly_912, lastError = self.exactly("_") self.considerError(lastError, None) return (_G_exactly_912, self.currentError) + _G_or_913, lastError = self._or([_G_or_909, _G_or_911]) self.considerError(lastError, None) + def _G_lookahead_914(): - self._trace('', (13004, 13017), self.input.position) - _G_apply_915, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) + self._trace("", (13031, 13044), self.input.position) + _G_apply_915, lastError = self._apply( + self.rule_letterOrDigit, "letterOrDigit", [] + ) self.considerError(lastError, None) return (_G_apply_915, self.currentError) - _G_lookahead_916, lastError = self.lookahead(_G_lookahead_914) + + _G_lookahead_916, lastError = self.lookahead( + _G_lookahead_914 + ) self.considerError(lastError, None) return (_G_lookahead_916, self.currentError) + _G_or_917, lastError = self._or([_G_or_906, _G_or_908]) self.considerError(lastError, None) return (_G_or_917, self.currentError) + _G_many1_918, lastError = self.many(_G_many1_905, _G_many1_905()) self.considerError(lastError, None) return (_G_many1_918, self.currentError) + def _G_optional_919(): return (None, self.input.nullError()) + _G_or_920, lastError = self._or([_G_optional_904, _G_optional_919]) self.considerError(lastError, None) + def _G_optional_921(): - self._trace('', (13023, 13026), self.input.position) - _G_exactly_922, lastError = self.exactly('.') + self._trace("", (13050, 13053), self.input.position) + _G_exactly_922, lastError = self.exactly(".") self.considerError(lastError, None) + def _G_many1_923(): - self._trace('', (13026, 13032), self.input.position) - _G_apply_924, lastError = self._apply(self.rule_digit, "digit", []) + self._trace("", (13053, 13059), self.input.position) + _G_apply_924, lastError = self._apply( + self.rule_digit, "digit", [] + ) self.considerError(lastError, None) return (_G_apply_924, self.currentError) + _G_many1_925, lastError = self.many(_G_many1_923, _G_many1_923()) self.considerError(lastError, None) return (_G_many1_925, self.currentError) + def _G_optional_926(): return (None, self.input.nullError()) + _G_or_927, lastError = self._or([_G_optional_921, _G_optional_926]) self.considerError(lastError, None) return (_G_or_927, self.currentError) + _G_consumedby_928, lastError = self.consumedby(_G_consumedby_902) - self.considerError(lastError, 'accn') + self.considerError(lastError, "accn") return (_G_consumedby_928, self.currentError) - def rule_opt_gene_expr(self): - _locals = {'self': self} - self.locals['opt_gene_expr'] = _locals + _locals = {"self": self} + self.locals["opt_gene_expr"] = _locals + def _G_or_929(): - self._trace('', (13054, 13064), self.input.position) - _G_apply_930, lastError = self._apply(self.rule_paren_gene, "paren_gene", []) + self._trace("", (13081, 13091), self.input.position) + _G_apply_930, lastError = self._apply( + self.rule_paren_gene, "paren_gene", [] + ) self.considerError(lastError, None) return (_G_apply_930, self.currentError) + def _G_or_931(): _G_python_932, lastError = (None), None self.considerError(lastError, None) return (_G_python_932, self.currentError) + _G_or_933, lastError = self._or([_G_or_929, _G_or_931]) - self.considerError(lastError, 'opt_gene_expr') - _locals['gene'] = _G_or_933 - _G_python_935, lastError = eval(self._G_expr_934, self.globals, _locals), None - self.considerError(lastError, 'opt_gene_expr') + self.considerError(lastError, "opt_gene_expr") + _locals["gene"] = _G_or_933 + _G_python_935, lastError = ( + eval(self._G_expr_934, self.globals, _locals), + None, + ) + self.considerError(lastError, "opt_gene_expr") return (_G_python_935, self.currentError) - def rule_paren_gene(self): - _locals = {'self': self} - self.locals['paren_gene'] = _locals - self._trace('', (13100, 13104), self.input.position) - _G_exactly_936, lastError = self.exactly('(') - self.considerError(lastError, 'paren_gene') - self._trace('', (13104, 13116), self.input.position) - _G_apply_937, lastError = self._apply(self.rule_gene_symbol, "gene_symbol", []) - self.considerError(lastError, 'paren_gene') - _locals['symbol'] = _G_apply_937 - self._trace('', (13123, 13127), self.input.position) - _G_exactly_938, lastError = self.exactly(')') - self.considerError(lastError, 'paren_gene') - _G_python_940, lastError = eval(self._G_expr_939, self.globals, _locals), None - self.considerError(lastError, 'paren_gene') + _locals = {"self": self} + self.locals["paren_gene"] = _locals + self._trace("", (13127, 13131), self.input.position) + _G_exactly_936, lastError = self.exactly("(") + self.considerError(lastError, "paren_gene") + self._trace("", (13131, 13143), self.input.position) + _G_apply_937, lastError = self._apply( + self.rule_gene_symbol, "gene_symbol", [] + ) + self.considerError(lastError, "paren_gene") + _locals["symbol"] = _G_apply_937 + self._trace("", (13150, 13154), self.input.position) + _G_exactly_938, lastError = self.exactly(")") + self.considerError(lastError, "paren_gene") + _G_python_940, lastError = ( + eval(self._G_expr_939, self.globals, _locals), + None, + ) + self.considerError(lastError, "paren_gene") return (_G_python_940, self.currentError) - def rule_gene_symbol(self): - _locals = {'self': self} - self.locals['gene_symbol'] = _locals + _locals = {"self": self} + self.locals["gene_symbol"] = _locals + def _G_consumedby_941(): - self._trace('', (13153, 13159), self.input.position) + self._trace("", (13180, 13186), self.input.position) _G_apply_942, lastError = self._apply(self.rule_letter, "letter", []) self.considerError(lastError, None) + def _G_many1_943(): def _G_or_944(): - self._trace('', (13161, 13174), self.input.position) - _G_apply_945, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) + self._trace("", (13188, 13201), self.input.position) + _G_apply_945, lastError = self._apply( + self.rule_letterOrDigit, "letterOrDigit", [] + ) self.considerError(lastError, None) return (_G_apply_945, self.currentError) + def _G_or_946(): def _G_or_947(): - self._trace('', (13178, 13181), self.input.position) - _G_exactly_948, lastError = self.exactly('-') + self._trace("", (13205, 13208), self.input.position) + _G_exactly_948, lastError = self.exactly("-") self.considerError(lastError, None) return (_G_exactly_948, self.currentError) + def _G_or_949(): - self._trace('', (13182, 13185), self.input.position) - _G_exactly_950, lastError = self.exactly('_') + self._trace("", (13209, 13212), self.input.position) + _G_exactly_950, lastError = self.exactly("_") self.considerError(lastError, None) return (_G_exactly_950, self.currentError) + _G_or_951, lastError = self._or([_G_or_947, _G_or_949]) self.considerError(lastError, None) + def _G_lookahead_952(): - self._trace('', (13189, 13202), self.input.position) - _G_apply_953, lastError = self._apply(self.rule_letterOrDigit, "letterOrDigit", []) + self._trace("", (13216, 13229), self.input.position) + _G_apply_953, lastError = self._apply( + self.rule_letterOrDigit, "letterOrDigit", [] + ) self.considerError(lastError, None) return (_G_apply_953, self.currentError) + _G_lookahead_954, lastError = self.lookahead(_G_lookahead_952) self.considerError(lastError, None) return (_G_lookahead_954, self.currentError) + _G_or_955, lastError = self._or([_G_or_944, _G_or_946]) self.considerError(lastError, None) return (_G_or_955, self.currentError) + _G_many1_956, lastError = self.many(_G_many1_943, _G_many1_943()) self.considerError(lastError, None) return (_G_many1_956, self.currentError) + _G_consumedby_957, lastError = self.consumedby(_G_consumedby_941) - self.considerError(lastError, 'gene_symbol') + self.considerError(lastError, "gene_symbol") return (_G_consumedby_957, self.currentError) + _G_expr_20 = compile( + "hgvs.sequencevariant.SequenceVariant(ac=ac, gene=gene, type=type, posedit=posedit)", + "", + "eval", + ) + _G_expr_76 = compile( + "hgvs.hgvsposition.HGVSPosition(ac=ac, gene=gene, type=type, pos=pos)", + "", + "eval", + ) + _G_expr_116 = compile( + "hgvs.sequencevariant.SequenceVariant(None,type,posedit)", + "", + "eval", + ) + _G_expr_140 = compile( + "hgvs.posedit.PosEdit(pos=pos,edit=edit)", "", "eval" + ) + _G_expr_160 = compile( + "hgvs.posedit.PosEdit(pos=pos,edit=edit, uncertain=True)", + "", + "eval", + ) + _G_expr_178 = compile( + "hgvs.posedit.PosEdit(pos=None,edit=x,uncertain=False)", "", "eval" + ) + _G_expr_184 = compile( + "hgvs.posedit.PosEdit(pos=None,edit=x,uncertain=True)", "", "eval" + ) + _G_expr_203 = compile("edit._set_uncertain()", "", "eval") + _G_expr_231 = compile("hgvs.edit.NARefAlt(ref=ref,alt=ref)", "", "eval") + _G_expr_236 = compile("hgvs.edit.NARefAlt(ref=ref,alt=alt)", "", "eval") + _G_expr_269 = compile( + "hgvs.edit.NARefAlt(ref=ref,alt=None)", "", "eval" + ) + _G_expr_277 = compile( + "hgvs.edit.NARefAlt(ref=None,alt=alt)", "", "eval" + ) + _G_expr_285 = compile("hgvs.edit.Dup(ref=ref)", "", "eval") + _G_expr_299 = compile("hgvs.edit.Inv(ref=None)", "", "eval") + _G_expr_303 = compile( + "hgvs.edit.Conv(from_ac=pos.ac, from_type=pos.type, from_pos=pos.pos)", + "", + "eval", + ) + _G_expr_307 = compile("hgvs.edit.NACopy(copy=n)", "", "eval") + _G_expr_437 = compile("hgvs.edit.AASub(ref='',alt=alt)", "", "eval") + _G_expr_441 = compile("hgvs.edit.AARefAlt(ref='',alt=alt)", "", "eval") + _G_expr_444 = compile("hgvs.edit.AARefAlt(ref='',alt=None)", "", "eval") + _G_expr_448 = compile( + "hgvs.edit.AARefAlt(ref=None,alt=alt)", "", "eval" + ) + _G_expr_451 = compile("hgvs.edit.Dup(ref='')", "", "eval") + _G_expr_459 = compile( + "hgvs.edit.AAFs(ref='', alt=alt, length=length)", "", "eval" + ) + _G_expr_466 = compile( + "hgvs.edit.AAExt(ref='', alt=alt, aaterm=aaterm, length=length)", + "", + "eval", + ) + _G_expr_469 = compile("hgvs.edit.AARefAlt(ref='',alt='')", "", "eval") + _G_expr_477 = compile("iv._set_uncertain()", "", "eval") + _G_expr_521 = compile("hgvs.location.Interval(start,end)", "", "eval") + _G_expr_525 = compile("hgvs.location.Interval(start,None)", "", "eval") + _G_expr_559 = compile( + "hgvs.location.BaseOffsetInterval(start,end)", "", "eval" + ) + _G_expr_563 = compile( + "hgvs.location.BaseOffsetInterval(start,copy.deepcopy(start))", + "", + "eval", + ) + _G_expr_583 = compile( + "hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end._set_uncertain())", + "", + "eval", + ) + _G_expr_591 = compile( + "hgvs.location.Interval(start=ivl_start, end=ivl_end._set_uncertain())", + "", + "eval", + ) + _G_expr_599 = compile( + "hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end)", + "", + "eval", + ) + _G_expr_616 = compile( + "hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.CDS_START)", + "", + "eval", + ) + _G_expr_622 = compile( + "hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.CDS_END)", + "", + "eval", + ) + _G_expr_631 = compile("hgvs.location.SimplePosition(pos)", "", "eval") + _G_expr_642 = compile( + "hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.SEQ_START)", + "", + "eval", + ) + _G_expr_650 = compile( + "hgvs.location.AAPosition(pos,bioutils.sequences.aa_to_aa1(aa))", + "", + "eval", + ) + _G_expr_661 = compile("n", "", "eval") + _G_expr_669 = compile("(aat, n)", "", "eval") + _G_expr_764 = compile("x in 'ACDEFGHIKLMNPQRSTVWYBZXU'", "", "eval") + _G_expr_767 = compile("x", "", "eval") + _G_expr_841 = compile( + "x in 'ACGTRYMKWSBDHVNacgtrymkwsbdhvn'", "", "eval" + ) + _G_expr_847 = compile( + "x in 'ACGTURYMKWSBDHVNacgturymkwsbdhvn'", "", "eval" + ) + _G_expr_854 = compile( + "x in 'ACGURYMKWSBDHVNacgurymkwsbdhvn'", "", "eval" + ) + _G_expr_860 = compile("x in 'X*'", "", "eval") + _G_expr_875 = compile("int(x)", "", "eval") + _G_expr_890 = compile("x in '-+'", "", "eval") + _G_expr_934 = compile("gene", "", "eval") + _G_expr_939 = compile("symbol", "", "eval") - _G_expr_20 = compile('hgvs.sequencevariant.SequenceVariant(ac=ac, gene=gene, type=type, posedit=posedit)', '', 'eval') - _G_expr_76 = compile('hgvs.hgvsposition.HGVSPosition(ac=ac, gene=gene, type=type, pos=pos)', '', 'eval') - _G_expr_116 = compile('hgvs.sequencevariant.SequenceVariant(None,type,posedit)', '', 'eval') - _G_expr_140 = compile('hgvs.posedit.PosEdit(pos=pos,edit=edit)', '', 'eval') - _G_expr_160 = compile('hgvs.posedit.PosEdit(pos=pos,edit=edit, uncertain=True)', '', 'eval') - _G_expr_178 = compile('hgvs.posedit.PosEdit(pos=None,edit=x,uncertain=False)', '', 'eval') - _G_expr_184 = compile('hgvs.posedit.PosEdit(pos=None,edit=x,uncertain=True)', '', 'eval') - _G_expr_203 = compile('edit._set_uncertain()', '', 'eval') - _G_expr_231 = compile('hgvs.edit.NARefAlt(ref=ref,alt=ref)', '', 'eval') - _G_expr_236 = compile('hgvs.edit.NARefAlt(ref=ref,alt=alt)', '', 'eval') - _G_expr_269 = compile('hgvs.edit.NARefAlt(ref=ref,alt=None)', '', 'eval') - _G_expr_277 = compile('hgvs.edit.NARefAlt(ref=None,alt=alt)', '', 'eval') - _G_expr_285 = compile('hgvs.edit.Dup(ref=ref)', '', 'eval') - _G_expr_299 = compile('hgvs.edit.Inv(ref=None)', '', 'eval') - _G_expr_303 = compile('hgvs.edit.Conv(from_ac=pos.ac, from_type=pos.type, from_pos=pos.pos)', '', 'eval') - _G_expr_307 = compile('hgvs.edit.NACopy(copy=n)', '', 'eval') - _G_expr_437 = compile("hgvs.edit.AASub(ref='',alt=alt)", '', 'eval') - _G_expr_441 = compile("hgvs.edit.AARefAlt(ref='',alt=alt)", '', 'eval') - _G_expr_444 = compile("hgvs.edit.AARefAlt(ref='',alt=None)", '', 'eval') - _G_expr_448 = compile('hgvs.edit.AARefAlt(ref=None,alt=alt)', '', 'eval') - _G_expr_451 = compile("hgvs.edit.Dup(ref='')", '', 'eval') - _G_expr_459 = compile("hgvs.edit.AAFs(ref='', alt=alt, length=length)", '', 'eval') - _G_expr_466 = compile("hgvs.edit.AAExt(ref='', alt=alt, aaterm=aaterm, length=length)", '', 'eval') - _G_expr_469 = compile("hgvs.edit.AARefAlt(ref='',alt='')", '', 'eval') - _G_expr_477 = compile('iv._set_uncertain()', '', 'eval') - _G_expr_526 = compile('hgvs.location.Interval(start,end)', '', 'eval') - _G_expr_530 = compile('hgvs.location.Interval(start,None)', '', 'eval') - _G_expr_564 = compile('hgvs.location.BaseOffsetInterval(start,end)', '', 'eval') - _G_expr_568 = compile('hgvs.location.BaseOffsetInterval(start,copy.deepcopy(start))', '', 'eval') - _G_expr_588 = compile('hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end._set_uncertain())', '', 'eval') - _G_expr_596 = compile('hgvs.location.Interval(start=ivl_start, end=ivl_end._set_uncertain())', '', 'eval') - _G_expr_604 = compile('hgvs.location.Interval(start=ivl_start._set_uncertain(), end=ivl_end)', '', 'eval') - _G_expr_616 = compile('hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.CDS_START)', '', 'eval') - _G_expr_622 = compile('hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.CDS_END)', '', 'eval') - _G_expr_631 = compile('hgvs.location.SimplePosition(pos)', '', 'eval') - _G_expr_642 = compile('hgvs.location.BaseOffsetPosition(b,o,datum=hgvs.enums.Datum.SEQ_START)', '', 'eval') - _G_expr_650 = compile('hgvs.location.AAPosition(pos,bioutils.sequences.aa_to_aa1(aa))', '', 'eval') - _G_expr_661 = compile('n', '', 'eval') - _G_expr_669 = compile('(aat, n)', '', 'eval') - _G_expr_764 = compile("x in 'ACDEFGHIKLMNPQRSTVWYBZXU'", '', 'eval') - _G_expr_767 = compile('x', '', 'eval') - _G_expr_841 = compile("x in 'ACGTRYMKWSBDHVNacgtrymkwsbdhvn'", '', 'eval') - _G_expr_847 = compile("x in 'ACGTURYMKWSBDHVNacgturymkwsbdhvn'", '', 'eval') - _G_expr_854 = compile("x in 'ACGURYMKWSBDHVNacgurymkwsbdhvn'", '', 'eval') - _G_expr_860 = compile("x in 'X*'", '', 'eval') - _G_expr_875 = compile('int(x)', '', 'eval') - _G_expr_890 = compile("x in '-+'", '', 'eval') - _G_expr_934 = compile('gene', '', 'eval') - _G_expr_939 = compile('symbol', '', 'eval') if Grammar.globals is not None: Grammar.globals = Grammar.globals.copy() Grammar.globals.update(ruleGlobals) else: Grammar.globals = ruleGlobals - return Grammar \ No newline at end of file + return Grammar