diff options
author | Adrian Thurston <thurston@complang.org> | 2013-03-30 10:27:19 -0400 |
---|---|---|
committer | Adrian Thurston <thurston@complang.org> | 2013-03-30 10:27:19 -0400 |
commit | 432e94f3458f0f9595d998b91463c378f79c5514 (patch) | |
tree | d0004e7b31a2760cea9ad9a858c1059e4958e623 | |
parent | 34f3411dfe83ac97a2859c1bd0daf7cd239c2818 (diff) | |
download | colm-432e94f3458f0f9595d998b91463c378f79c5514.tar.gz |
minor grammar improvements in tilde data and DQ lits
Use opt_tilde_data in all places where tilde data is allowed. Use a common
terminator for DQ literals.
-rw-r--r-- | colm/colm.lm | 41 |
1 files changed, 20 insertions, 21 deletions
diff --git a/colm/colm.lm b/colm/colm.lm index 37fb2531..e82d437d 100644 --- a/colm/colm.lm +++ b/colm/colm.lm @@ -499,33 +499,38 @@ def opt_field_init def field_init [CodeExpr: code_expr] + # # Pattern # -def litpat_term +def opt_label + [Id: id COLON] +| [] + +def dq_lit_term [CONS_DQ] | [Nl: CONS_NL] +def opt_tilde_data + [tilde_data] +| [] + def pattern_el_lel [RegionQual: region_qual Id: id OptRepeat: opt_repeat] | [RegionQual: region_qual Lit: lit OptRepeat: opt_repeat] -def opt_label - [Id: id COLON] -| [] - def pattern_el [OptLabel: opt_label TypeOrLit: pattern_el_lel] -| [DQ LitpatElList: litpat_el* Term: litpat_term] -| [TILDE TildeData: tilde_data Nl: TILDE_NL] +| [DQ LitpatElList: litpat_el* Term: dq_lit_term] +| [TILDE TildeData: opt_tilde_data Nl: TILDE_NL] def litpat_el [ConsData: cons_data] | [CONS_SQOPEN PatternElList: pattern_el* CONS_SQCLOSE] def pattern_top_el - [DQ LitpatElList: litpat_el* Term: litpat_term] -| [TILDE TildeData: tilde_data Nl: TILDE_NL] + [DQ LitpatElList: litpat_el* Term: dq_lit_term] +| [TILDE TildeData: opt_tilde_data Nl: TILDE_NL] | [SQOPEN PatternElList: pattern_el* SQCLOSE] def pattern_list @@ -539,12 +544,9 @@ def pattern # Constructor List # -def lit_cons_term - [CONS_DQ] | [Nl: CONS_NL] - def cons_el [RegionQual: region_qual Lit: lit] -| [DQ LitConsElList: lit_cons_el* Term: lit_cons_term] +| [DQ LitConsElList: lit_cons_el* Term: dq_lit_term] | [TILDE TildeData: opt_tilde_data Nl: TILDE_NL] | [CodeExpr: code_expr] @@ -553,7 +555,7 @@ def lit_cons_el | [CONS_SQOPEN ConsElList: cons_el* CONS_SQCLOSE] def cons_top_el - [DQ LitConsElList: lit_cons_el* Term: lit_cons_term] + [DQ LitConsElList: lit_cons_el* Term: dq_lit_term] | [TILDE TildeData: opt_tilde_data Nl: TILDE_NL] | [SQOPEN ConsElList: cons_el* SQCLOSE] @@ -568,12 +570,9 @@ def constructor # String List # -def opt_tilde_data - [tilde_data] -| [] def string_el - [DQ LitStringElList: lit_string_el* Term: lit_cons_term] + [DQ LitStringElList: lit_string_el* Term: dq_lit_term] | [TILDE TildeData: opt_tilde_data Nl: TILDE_NL] | [CodeExpr: code_expr] @@ -582,7 +581,7 @@ def lit_string_el | [CONS_SQOPEN StringElList: string_el* CONS_SQCLOSE] def string_top_el - [DQ LitStringElList: lit_string_el* Term: lit_cons_term] + [DQ LitStringElList: lit_string_el* Term: dq_lit_term] | [TILDE TildeData: opt_tilde_data Nl: TILDE_NL] | [SQOPEN StringElList: string_el* SQCLOSE] @@ -599,7 +598,7 @@ def cstring # def accum_el - [DQ LitAccumElList: lit_accum_el* Term: lit_cons_term] + [DQ LitAccumElList: lit_accum_el* Term: dq_lit_term] | [TILDE TildeData: opt_tilde_data Nl: TILDE_NL] | [CodeExpr: code_expr] @@ -608,7 +607,7 @@ def lit_accum_el | [CONS_SQOPEN AccumElList: accum_el* CONS_SQCLOSE] def accum_top_el - [DQ LitAccumElList: lit_accum_el* Term: lit_cons_term] + [DQ LitAccumElList: lit_accum_el* Term: dq_lit_term] | [TILDE TildeData: opt_tilde_data Nl: TILDE_NL] | [SQOPEN AccumElList: accum_el* SQCLOSE] |