Mixin: First14

Eight~ First14

Example 8/14: adds actions and infrastructure to compile nested functions as first-order values. Requires Nest13 and Global01, cannot be mixed with Pass08.

Source:

Classes

Fun
Var

Methods


_lift(args)

[replace] need two slots for function argument and value.

Parameters:
Name Type Description
args Array.<Type>

list of argument types.

Source:

_startup(main)

[Replace] Need PushFP for main.

Parameters:
Name Type Description
main Fun

describes main().

Source:

call()

call: { args }; pops extra slot for function value.

Source:

return()

return: 'return' [ sum ]; [extend] pops extra slot for function value.

Source:

store()

store: '=' sum; [extend] pops extra slot for function value.

Source:

varname()

varname: Name [ ':' type ]; [extend] two slots for function value.

Source: