You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: semantics/elaborate-blocks.k
+30-15Lines changed: 30 additions & 15 deletions
Original file line number
Diff line number
Diff line change
@@ -55,9 +55,6 @@ syntax K ::= "elabInstanceInit"
55
55
//@Elaborates the given statement/expression. The first step of elaboration.
56
56
syntax K ::= "elab""(" K ")"
57
57
58
-
//@ Intermediate state between elab and elabRes - all subterms were already elaborated. Responsible for deleting the elabRes() wrappers of subterms.
59
-
syntax K ::= "elabDispose""(" K ")"
60
-
61
58
//@ Wraps the elaboration result. Since elaboration may happen at both ElaborationPhase and ExecutionPhase, it cannot be KResult. Actually it isnot KResult for HOLE, but isfor CHOLE.
62
59
syntax K ::= "elabRes""(" K ")"
63
60
@@ -290,7 +287,13 @@ when
290
287
andBool isElab(HeadKs) //Forces elaboration left-to-right. Required when KL == 'ListWrap of statements.
291
288
[transition-strictness]
292
289
293
-
//@ True if children of this label should not be automatically heated for elaboration.
290
+
/*@ Terms that should use custom elaboration rules. For those terms:
291
+
- They will not be automatically heated from their parents into the elab() state.
292
+
- They will not be automatically passed to elabDispose() state. Instead, those terms should have custom rules
293
+
for elaboration start (heating) and elaboration end (cooling).
294
+
Since all the automatic elaboration-related rules are an incredible mess, we have to put all the AST terms into this
295
+
cathegory one by one, and eliminate automatic elaboration heating/cooling rules altogether.
296
+
*/
294
297
syntax K ::= "customElabChildren" "(" KLabel ")" [function]
0 commit comments