Skip to main content

Module lower

Module lower 

Source
Expand description

Lowering (docs/lir.md): a compiled program with every name resolved, every category decided and every transfer of control made explicit, as the LIR a VM runs and a load module holds.

Lowered so far: storage, places, expressions and conditions, the arithmetic verbs, MOVE, IF, EVALUATE, DISPLAY, INITIALIZE, PERFORM, GO TO, GO TO DEPENDING ON, ALTER, EXIT, STOP RUN, GOBACK, CALL, CANCEL, ENTRY, INVOKE, SET, STRING, UNSTRING, INSPECT, SEARCH, ACCEPT, the file statements, intrinsic functions, independent segments, class definitions, USE AFTER EXCEPTION/ERROR, USE FOR DEBUGGING, JSON and XML GENERATE and PARSE, the EXEC blocks, SORT, MERGE, RELEASE and RETURN, the Report Writer, user-defined functions, and EXTERNAL and GLOBAL records, files and declaratives. Anything else is LowerError::Unsupported, naming the construct.

Enums§

LowerError
Why a program does not lower.

Functions§

lower
Lowers one compiled program, or a class definition with its data and methods. One that passes Check and uses only the constructs lowered so far lowers.
verify
A class definition’s data and methods are programs of their own, each checked as one.