@@ -82,7 +82,7 @@ let symbol_of_str (s : string) : idfunc =
8282let  rec  ray_of_expr  : expr -> ray  =  function 
8383  |  Symbol  s  -> to_func ((Muted , symbol_of_str s), [] )
8484  |  Var  s  -> to_var s
85-   |  Unquote  _  -> failwith " error: cannot unquote ray" 
85+   |  Unquote  e  -> failwith ( " error: cannot unquote ray  "   ^  to_string e) 
8686  |  List  []  -> failwith " error: ray cannot be empty" 
8787  |  List  (Symbol h  :: t ) ->
8888    to_func ((Muted , symbol_of_str h), List. map ~f: ray_of_expr t)
@@ -102,7 +102,7 @@ let rec raylist_of_expr (e : expr) : ray list =
102102  match  e with 
103103  |  Symbol  k  when  equal_string k nil_op -> [] 
104104  |  Symbol  _  |  Var  _  -> [ ray_of_expr e ]
105-   |  Unquote  _  -> failwith " error: cannot unquote star" 
105+   |  Unquote  e  -> failwith ( " error: cannot unquote star  "   ^  to_string e)  
106106  |  List  [ Symbol  s; h; t ] when  equal_string s cons_op ->
107107    ray_of_expr h :: raylist_of_expr t
108108  |  e  -> failwith (" error: unhandled star " ^  to_string e)
@@ -118,7 +118,7 @@ let rec constellation_of_expr : expr -> marked_constellation = function
118118  |  Symbol  k  when  equal_string k nil_op -> [] 
119119  |  Symbol  s  -> [ Unmarked  { content =  [ var (s, None ) ]; bans =  []  } ]
120120  |  Var  x  -> [ Unmarked  { content =  [ var (x, None ) ]; bans =  []  } ]
121-   |  Unquote  _  -> failwith " error: can't unquote constellation" 
121+   |  Unquote  e  -> failwith ( " error: can't unquote constellation"   ^  to_string e) 
122122  |  List  [ Symbol  s; h; t ] when  equal_string s cons_op ->
123123    star_of_expr h :: constellation_of_expr t
124124  |  List  g  -> [ Unmarked  { content =  [ ray_of_expr (List  g) ]; bans =  []  } ]
@@ -154,20 +154,32 @@ let rec galaxy_expr_of_expr (e : expr) : galaxy_expr =
154154  (*  union *) 
155155  |  List  (Symbol k  :: gs ) when  equal_string k " union" 
156156    Union  (List. map ~f: galaxy_expr_of_expr gs)
157+   (*  process *) 
158+   |  List  (Symbol k  :: gs ) when  equal_string k " process" 
159+     Process  (List. map ~f: galaxy_expr_of_expr gs)
160+   (*  kill *) 
161+   |  List  [ Symbol  k; g ] when  equal_string k " kill" 
162+     Kill  (galaxy_expr_of_expr g)
163+   (*  clean *) 
164+   |  List  [ Symbol  k; g ] when  equal_string k " clean" 
165+     Clean  (galaxy_expr_of_expr g)
157166  (*  exec *) 
158167  |  List  [ Symbol  k; g ] when  equal_string k " exec" 
159168    Exec  (galaxy_expr_of_expr g)
160169  (*  linear exec *) 
161170  |  List  [ Symbol  k; g ] when  equal_string k " linexec" 
162171    LinExec  (galaxy_expr_of_expr g)
163-   (*  raw constellation *) 
172+   (*  linear exec *) 
173+   |  List  [ Symbol  k; g ] when  equal_string k " eval" 
174+     Eval  (ray_of_expr g)
175+   (*  KEEP LAST -- raw constellation *) 
164176  |  List  g  -> Raw  (Const  (constellation_of_expr (List  g)))
165177
166178(*  ---------------------------------------
167179   Stellogen program of Expr 
168180   --------------------------------------- *)  
169181
170- let  rec  decl_of_expr  : expr -> declaration  =  function 
182+ let  decl_of_expr  : expr -> declaration  =  function 
171183  (*  definition := *) 
172184  |  List  [ Symbol  k; x; g ] when  equal_string k def_op ->
173185    Def  (ray_of_expr x, galaxy_expr_of_expr g)
0 commit comments