@@ -9,7 +9,6 @@ apex
13 (star ;~(less (just '\0a') next))
12 (star ;~(less (just '\0a') next))
@@ -105,21 +104,8 @@ apex
105 |=([* =tape *] (crip tape))
104 |=([* =tape *] (crip tape))
108− (star ;~(less quot next))
116− %+ cook |=(=tape (crip tape))
122− ;~ less closing
108+ ;~ less quot
124 %+ cold '\07' (jest '\\a')
110 %+ cold '\07' (jest '\\a')
125 %+ cold '\08' (jest '\\b')
111 %+ cold '\08' (jest '\\b')
@@ -132,7 +118,7 @@ apex
132 %+ cold '"' (jest '\\"')
118 %+ cold '"' (jest '\\"')
133 %+ cold '\'' (jest '\\\'')
119 %+ cold '\'' (jest '\\\'')
134 %+ cold '\0a' (jest '\\\0a')
120 %+ cold '\0a' (jest '\\\0a')
135− %+ cold '' ;~(pose (jest '\\z') (plus gaw))
121+ %+ cold '' ;~(plug (jest '\\z') gaw)
138 (jest '\\x')
124 (jest '\\x')
@@ -159,6 +145,21 @@ apex
155+ %+ cook |=(=tape (crip tape))
161+ ;~ less closing next
164++ parse-table
165++ parse-table
@@ -317,7 +318,7 @@ apex
317 |= =prefix-expr
318 |= =prefix-expr
319 |=([* =name] [%dot prefix-expr name])
320 |=([* =name] [%dot prefix-expr name])
320− ;~ plug
321+ ;~ (glue ws)
322 parse-name
323 parse-name
@@ -332,21 +333,29 @@ apex
332 (cold [%break ~] (jest 'break'))
333 (cold [%break ~] (jest 'break'))
335− |= [* cond=expr * body=blok *] [%while cond body]
336+ |= [* cond=expr * body=blok] [%while cond body]
336 ;~ (glue wss)
337 ;~ (glue wss)
337 (jest 'while')
338 (jest 'while')
338 parse-expr
339 parse-expr
339 (jest 'do')
340 (jest 'do')
340− parse-blok
341+ ;< body=blok bind parse-blok
343+ ?: (blok-is-empty body) ws wss
341− (jest 'end')
344+ (jest 'end')
345− |= [* body=blok * cond=expr] [%repeat body cond]
350+ |= [* body=blok cond=expr] [%repeat body cond]
346 ;~ (glue wss)
351 ;~ (glue wss)
347 (jest 'repeat')
352 (jest 'repeat')
348− parse-blok
353+ ;< body=blok bind parse-blok
355+ ?: (blok-is-empty body) ws wss
349− (jest 'until')
356+ (jest 'until')
350 parse-expr
359 parse-expr
@@ -603,18 +612,23 @@ apex
615+ ;< else-body=(unit blok) bind
608− |= [* =blok] blok
618+ |= [* =blok] blok
611− ;~ (glue wss)
621+ ;~ (glue wss)
612− (jest 'else')
622+ (jest 'else')
613− parse-blok
623+ parse-blok
628+ ?: (blok-is-empty u.else-body) ws wss
618 (jest 'end')
632 (jest 'end')
620++ parse-functioncall
634++ parse-functioncall