Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
language:langs:refine [2024/08/11 10:31] – [Multiple refinement options] rajit | language:langs:refine [2025/04/21 19:58] (current) – [Refinement overrides] rajit | ||
---|---|---|---|
Line 115: | Line 115: | ||
In general, a refine block has an associated integer refinement level (the default is one). When ACT processes a block with refinement level //r//, it searches for the largest refinement block with level that is at most //r//. (Note: this may be no block, in which case the block is processed as normal.) If a refine block with level //l// is found, then it processes all non-language constructs within the block and then expands the refinement block with level //l// by decrementing the current refinement level by //l//. | In general, a refine block has an associated integer refinement level (the default is one). When ACT processes a block with refinement level //r//, it searches for the largest refinement block with level that is at most //r//. (Note: this may be no block, in which case the block is processed as normal.) If a refine block with level //l// is found, then it processes all non-language constructs within the block and then expands the refinement block with level //l// by decrementing the current refinement level by //l//. | ||
+ | |||
+ | ===== Refinement overrides ===== | ||
+ | |||
+ | Sometimes a refinement body needs to [[language: | ||
+ | |||
+ | The syntax for providing refinement overrides is below: | ||
+ | |||
+ | <code act> | ||
+ | refine< | ||
+ | inst1 i1; | ||
+ | ... | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | This will apply the refinement override for '' | ||
+ | | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||