Currently we lower blocks like DERIVATIVE, INITIAL and so on to PROCEDURE. These lowered blocks are given a special name, e.g.
INITIAL { ... }
is rewritten
PROCEDURE initial {...}
We should add some state to ProcedureExpression that tags whether a procedure has a special property (like it is a DERIVATIVE block). This could be used during semantic analysis to verify that the expressions inside such blocks are valid.
We should reserve the names used for the lowered procedures, i.e. initial, breakpoint, etc. as keywords, that cause an error when encountered by the parser.
Currently we lower blocks like DERIVATIVE, INITIAL and so on to PROCEDURE. These lowered blocks are given a special name, e.g.
INITIAL { ... }
is rewrittenPROCEDURE initial {...}
initial
,breakpoint
, etc. as keywords, that cause an error when encountered by the parser.