@@ -298,10 +298,44 @@ apex
298298 %+ cook
299299 |= =functioncall [%func-call functioncall]
300300 parse-functioncall
301+ ::
302+ %+ cook
303+ |= =for-range [%for-range for-range]
304+ parse-for-range
305+ ==
306+++ parse-for-range
307+ %^ tnee %for-range for-range
308+ %+ cook
309+ |= [* * var=name * * * from=expr * * * to=expr by=(unit expr) * * * body=blok * *]
310+ [var from to by body]
311+ ;~ plug
312+ (jest 'for')
313+ wss
314+ parse-name
315+ ws
316+ (jest '=')
317+ ws
318+ parse-expr
319+ ws
320+ (jest ',')
321+ ws
322+ parse-expr
323+ %- punt
324+ %+ cook |=([* * * =expr] expr)
325+ ;~ plug
326+ ws
327+ (jest ',')
328+ wss
329+ parse-expr
330+ ==
331+ wss
332+ (jest 'do')
333+ wss
334+ parse-blok
335+ wss
336+ (jest 'end')
301337 ==
302338++ parse-if
303− %+ knee *if
304− |.
305339 %^ tnee %parse-if if
306340 %+ cook
307341 |= [* cond=expr * body=blok elsa=(list [cond=expr body=blok]) else=(unit blok) *]