about summary refs log tree commit diff stats
path: root/apps/braces
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2020-02-05 01:17:58 -0800
committerKartik Agaram <vc@akkartik.com>2020-02-05 14:55:18 -0800
commitb9d666eff51659a62dab7b746e5ae40431127e9b (patch)
treee786f301fc99f4df6afbfa3db53f48fc1af9ad96 /apps/braces
parent6b6b6851cc89994c8546e9b7eff3be4b43641686 (diff)
downloadmu-b9d666eff51659a62dab7b746e5ae40431127e9b.tar.gz
5982 - start putting block labels on the var stack
Before:
  we detected labels using a '$' at the start of an arg, and turned them
  into literals.

After:
  we put labels on the var stack and let the regular lookup of the var
  stack handle labels.

This adds complexity in one place and removes it from another. The crucial
benefit is that it allows us to store a block depth for each label. That
will come in handy later.

All this works only because of a salubrious coincidence: Mu labels are
always at the start of a block, and jumps always refer to the name at the
start of a block, even when the jump is in the forwards direction. So we
never see label uses before definitions.

Note on CI: this currently only works natively, not emulated.
Diffstat (limited to 'apps/braces')
0 files changed, 0 insertions, 0 deletions