From 6355aa3155a050d1a84212625dcc55fc407fbf79 Mon Sep 17 00:00:00 2001 From: Adrian Thurston Date: Sat, 30 Mar 2013 11:45:31 -0400 Subject: minor re-org --- colm/colm.lm | 55 +++++++++++++++++++++++++++++++------------------------ 1 file 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] -- cgit v1.2.1