Currently every block in a scope must be named, so Icarus ends up with if (...) then {} and while (...) do {}.
Ideally we could eliminate the need for then and do.
Doing so would require providing an implicit name for the first block that appears in a scope so that gotos can refer to it.
This needs to be designed as well as implemented, or we need to convince ourselves it's not worthwhile.
Also relevant here would be what happens syntactically if that first block had parameters, as in the current for scope in stdlib/core.ic.
Currently every block in a scope must be named, so Icarus ends up with
if (...) then {}
andwhile (...) do {}
. Ideally we could eliminate the need forthen
anddo
.Doing so would require providing an implicit name for the first block that appears in a scope so that
goto
s can refer to it.This needs to be designed as well as implemented, or we need to convince ourselves it's not worthwhile.
Also relevant here would be what happens syntactically if that first block had parameters, as in the current
for
scope in stdlib/core.ic.