@@ -69,6 +69,10 @@
69 %+ knee *expr
69 %+ knee *expr
71 %+ cook process-expr-list parse-expr-list
71 %+ cook process-expr-list parse-expr-list
74+ |=([=expr] [%expr expr])
75+ (ifix [(just '(') (just ')')] (knee *expr |.(parse-expr)))
72++ print-expr
76++ print-expr
73 |= [=expr]
77 |= [=expr]
@@ -205,6 +209,7 @@
212+ [%dot prefix-expr name]
208 [%indexed prefix-expr expr]
213 [%indexed prefix-expr expr]
209 [%name name]
214 [%name name]
@@ -221,21 +226,50 @@
221 (print-expr +>.var)
226 (print-expr +>.var)
232+ (print-prefix-expr +<.var)
225++ parse-var
237++ parse-var
226 %+ knee *var
238 %+ knee *var
230− |=([=name * =expr *] [%indexed [%var [%name name]] expr])
245+ |=([* =expr *] [%indexed prefix-expr expr])
231 ;~ (glue gaw)
246 ;~ (glue gaw)
233 (just '[')
247 (just '[')
234 parse-expr
248 parse-expr
235 (just ']')
249 (just ']')
254+ |=([* =name] [%dot prefix-expr name])
261+ ;< prefix=name bind parse-name
263+ (parse-access [%var %name prefix])
264+ (parse-dot [%var %name prefix])
265+ (easy [%name prefix])
238− (cook |=(=name [%name name]) parse-name)
268+ ;< prefix=prefix-expr bind parse-parened-expr
270+ (parse-access prefix)
240:: varlist
274:: varlist
@@ -259,13 +293,9 @@
259 %+ knee *prefix-expr
293 %+ knee *prefix-expr
262− %+ cook
296+ %+ cook |=([=var] [%var var]) parse-var
263− |=([=expr] [%expr expr])
264− (ifix [(just '(') (just ')')] (knee *expr |.(parse-expr)))
266− %+ cook
298+ parse-parened-expr
267− |=([=var] [%var var])
268− (knee *var |.(parse-var))
270++ print-prefix-expr
300++ print-prefix-expr
271 |= [=prefix-expr]
301 |= [=prefix-expr]