Skip to content

Commit

Permalink
Support indefinite and definite uncertain ranges, and unbalanced unce…
Browse files Browse the repository at this point in the history
…rtain ranges, for g. expressions
  • Loading branch information
theferrit32 committed Sep 20, 2023
1 parent c69e03f commit 5054739
Show file tree
Hide file tree
Showing 5 changed files with 2,116 additions and 2,333 deletions.
7 changes: 6 additions & 1 deletion src/hgvs/_data/hgvs.pymeta
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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()
Expand Down

0 comments on commit 5054739

Please sign in to comment.