summaryrefslogtreecommitdiff
path: root/colm/colm.lm
diff options
context:
space:
mode:
Diffstat (limited to 'colm/colm.lm')
-rw-r--r--colm/colm.lm55
1 files changed, 31 insertions, 24 deletions
diff --git a/colm/colm.lm b/colm/colm.lm
index e82d437d..8d197484 100644
--- a/colm/colm.lm
+++ b/colm/colm.lm
@@ -566,10 +566,35 @@ def cons_list
def constructor
[ConsList: cons_list]
+
#
-# String List
+# Accumulate
#
+def accum_el
+ [DQ LitAccumElList: lit_accum_el* Term: dq_lit_term]
+| [TILDE TildeData: opt_tilde_data Nl: TILDE_NL]
+| [CodeExpr: code_expr]
+
+def lit_accum_el
+ [ConsData: cons_data]
+| [CONS_SQOPEN AccumElList: accum_el* CONS_SQCLOSE]
+
+def accum_top_el
+ [DQ LitAccumElList: lit_accum_el* Term: dq_lit_term]
+| [TILDE TildeData: opt_tilde_data Nl: TILDE_NL]
+| [SQOPEN AccumElList: accum_el* SQCLOSE]
+
+def accum_list
+ [AccumTopEl: accum_top_el AccumList: accum_list]
+| [AccumTopEl: accum_top_el]
+
+def accumulate
+ [AccumList: accum_list]
+
+#
+# String List
+#
def string_el
[DQ LitStringElList: lit_string_el* Term: dq_lit_term]
@@ -592,32 +617,10 @@ def string_list
def cstring
[StringList: string_list]
-
#
-# Accumulate
+# Variable References
#
-def accum_el
- [DQ LitAccumElList: lit_accum_el* Term: dq_lit_term]
-| [TILDE TildeData: opt_tilde_data Nl: TILDE_NL]
-| [CodeExpr: code_expr]
-
-def lit_accum_el
- [ConsData: cons_data]
-| [CONS_SQOPEN AccumElList: accum_el* CONS_SQCLOSE]
-
-def accum_top_el
- [DQ LitAccumElList: lit_accum_el* Term: dq_lit_term]
-| [TILDE TildeData: opt_tilde_data Nl: TILDE_NL]
-| [SQOPEN AccumElList: accum_el* SQCLOSE]
-
-def accum_list
- [AccumTopEl: accum_top_el AccumList: accum_list]
-| [AccumTopEl: accum_top_el]
-
-def accumulate
- [AccumList: accum_list]
-
def var_ref
[Qual: qual Id: id]
@@ -626,6 +629,10 @@ def qual
| [Qual: qual Id: id Arrow: ARROW]
| []
+#
+# Lexical analysis.
+#
+
def lex_expr
[Expr: lex_expr Bar: LEX_BAR Term: lex_term]
| [Expr: lex_expr Amp: LEX_AMP Term: lex_term]