diff options
author | ronny | 2001-06-22 13:59:12 +0000 |
---|---|---|
committer | ronny | 2001-06-22 13:59:12 +0000 |
commit | d5280494ba069c47c90e370054d6b69a4329e037 (patch) | |
tree | 3156e2653ad3f61ea585424ecb4b96ea3735bcbb /backend/backend.dcl | |
parent | print matched symbol in CaseNode (diff) |
local reference counts for CaseNode and DefaultNode
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@496 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'backend/backend.dcl')
-rw-r--r-- | backend/backend.dcl | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/backend/backend.dcl b/backend/backend.dcl index 4d4cdb9..aa3e18d 100644 --- a/backend/backend.dcl +++ b/backend/backend.dcl @@ -28,6 +28,7 @@ from StdString import String; :: BECodeBlockP; :: BEStringListP; :: BENodeIdListP; +:: BENodeIdRefCountListP; :: BEAnnotation :== Int; :: BEAttribution :== Int; :: BESymbKind :== Int; @@ -98,10 +99,18 @@ BEIfNode :: !BENodeP !BENodeP !BENodeP !BackEnd -> (!BENodeP,!BackEnd); // BENodeP BEIfNode (BENodeP cond,BENodeP then,BENodeP elsje); BEGuardNode :: !BENodeP !BENodeDefP !BEStrictNodeIdP !BENodeP !BENodeDefP !BEStrictNodeIdP !BENodeP !BackEnd -> (!BENodeP,!BackEnd); // BENodeP BEGuardNode (BENodeP cond,BENodeDefP thenNodeDefs,BEStrictNodeIdP thenStricts,BENodeP then,BENodeDefP elseNodeDefs,BEStrictNodeIdP elseStricts,BENodeP elsje); +BESetNodeDefRefCounts :: !BENodeP !BackEnd -> BackEnd; +// void BESetNodeDefRefCounts (BENodeP lhs); +BEAddNodeIdsRefCounts :: !Int !BESymbolP !BENodeIdListP !BackEnd -> BackEnd; +// void BEAddNodeIdsRefCounts (int sequenceNumber,BESymbolP symbol,BENodeIdListP nodeIds); BESwitchNode :: !BENodeIdP !BEArgP !BackEnd -> (!BENodeP,!BackEnd); // BENodeP BESwitchNode (BENodeIdP nodeId,BEArgP caseNode); BECaseNode :: !Int !BESymbolP !BENodeDefP !BEStrictNodeIdP !BENodeP !BackEnd -> (!BENodeP,!BackEnd); // BENodeP BECaseNode (int symbolArity,BESymbolP symbol,BENodeDefP nodeDefs,BEStrictNodeIdP strictNodeIds,BENodeP node); +BEEnterLocalScope :: !BackEnd -> BackEnd; +// void BEEnterLocalScope (); +BELeaveLocalScope :: !BENodeP !BackEnd -> BackEnd; +// void BELeaveLocalScope (BENodeP node); BEPushNode :: !Int !BESymbolP !BEArgP !BENodeIdListP !BackEnd -> (!BENodeP,!BackEnd); // BENodeP BEPushNode (int arity,BESymbolP symbol,BEArgP arguments,BENodeIdListP nodeIds); BEDefaultNode :: !BENodeDefP !BEStrictNodeIdP !BENodeP !BackEnd -> (!BENodeP,!BackEnd); @@ -238,9 +247,9 @@ BEDeclareDynamicTypeSymbol :: !Int !Int !BackEnd -> BackEnd; // void BEDeclareDynamicTypeSymbol (int typeIndex,int moduleIndex); BEDynamicTempTypeSymbol :: !BackEnd -> (!BESymbolP,!BackEnd); // BESymbolP BEDynamicTempTypeSymbol (); -kBEVersionCurrent:==0x02000207; +kBEVersionCurrent:==0x02000208; kBEVersionOldestDefinition:==0x02000204; -kBEVersionOldestImplementation:==0x02000206; +kBEVersionOldestImplementation:==0x02000208; kBEDebug:==1; kPredefinedModuleIndex:==1; BENoAnnot:==0; |