diff options
author | ronny | 2001-07-12 15:27:32 +0000 |
---|---|---|
committer | ronny | 2001-07-12 15:27:32 +0000 |
commit | e9d77320d373864a19ba1155395a3e4d2a9469cc (patch) | |
tree | 3183a88ae1e46993af5926b9516ac5643756e8c3 /backend/backend.dcl | |
parent | made compilable with Clean 2.0 by introducing a typed local function (diff) |
uniqueness attributes in backend
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@542 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'backend/backend.dcl')
-rw-r--r-- | backend/backend.dcl | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/backend/backend.dcl b/backend/backend.dcl index 3ed50f3..9a398fe 100644 --- a/backend/backend.dcl +++ b/backend/backend.dcl @@ -29,6 +29,8 @@ from StdString import String; :: BEStringListP; :: BENodeIdListP; :: BENodeIdRefCountListP; +:: BEUniVarEquations; +:: BEAttributeKindList; :: BEAnnotation :== Int; :: BEAttribution :== Int; :: BESymbKind :== Int; @@ -83,12 +85,24 @@ BEAnnotateTypeNode :: !BEAnnotation !BETypeNodeP !BackEnd -> (!BETypeNodeP,!Back // BETypeNodeP BEAnnotateTypeNode (BEAnnotation annotation,BETypeNodeP typeNode); BEAttributeTypeNode :: !BEAttribution !BETypeNodeP !BackEnd -> (!BETypeNodeP,!BackEnd); // BETypeNodeP BEAttributeTypeNode (BEAttribution attribution,BETypeNodeP typeNode); +BEAttributeKind :: !BEAttribution !BackEnd -> (!BEAttributeKindList,!BackEnd); +// BEAttributeKindList BEAttributeKind (BEAttribution attributeKind); +BENoAttributeKinds :: !BackEnd -> (!BEAttributeKindList,!BackEnd); +// BEAttributeKindList BENoAttributeKinds (); +BEAttributeKinds :: !BEAttributeKindList !BEAttributeKindList !BackEnd -> (!BEAttributeKindList,!BackEnd); +// BEAttributeKindList BEAttributeKinds (BEAttributeKindList elem,BEAttributeKindList list); +BEUniVarEquation :: !BEAttribution !BEAttributeKindList !BackEnd -> (!BEUniVarEquations,!BackEnd); +// BEUniVarEquations BEUniVarEquation (BEAttribution demanded,BEAttributeKindList offered); +BENoUniVarEquations :: !BackEnd -> (!BEUniVarEquations,!BackEnd); +// BEUniVarEquations BENoUniVarEquations (); +BEUniVarEquationsList :: !BEUniVarEquations !BEUniVarEquations !BackEnd -> (!BEUniVarEquations,!BackEnd); +// BEUniVarEquations BEUniVarEquationsList (BEUniVarEquations elem,BEUniVarEquations list); BENoTypeArgs :: !BackEnd -> (!BETypeArgP,!BackEnd); // BETypeArgP BENoTypeArgs (); BETypeArgs :: !BETypeNodeP !BETypeArgP !BackEnd -> (!BETypeArgP,!BackEnd); // BETypeArgP BETypeArgs (BETypeNodeP node,BETypeArgP nextArgs); -BETypeAlt :: !BETypeNodeP !BETypeNodeP !BackEnd -> (!BETypeAltP,!BackEnd); -// BETypeAltP BETypeAlt (BETypeNodeP lhs,BETypeNodeP rhs); +BETypeAlt :: !BETypeNodeP !BETypeNodeP !BEUniVarEquations !BackEnd -> (!BETypeAltP,!BackEnd); +// BETypeAltP BETypeAlt (BETypeNodeP lhs,BETypeNodeP rhs,BEUniVarEquations attributeEquations); BENormalNode :: !BESymbolP !BEArgP !BackEnd -> (!BENodeP,!BackEnd); // BENodeP BENormalNode (BESymbolP symbol,BEArgP args); BEMatchNode :: !Int !BESymbolP !BENodeP !BackEnd -> (!BENodeP,!BackEnd); @@ -247,9 +261,9 @@ BEDeclareDynamicTypeSymbol :: !Int !Int !BackEnd -> BackEnd; // void BEDeclareDynamicTypeSymbol (int typeIndex,int moduleIndex); BEDynamicTempTypeSymbol :: !BackEnd -> (!BESymbolP,!BackEnd); // BESymbolP BEDynamicTempTypeSymbol (); -kBEVersionCurrent:==0x02000209; -kBEVersionOldestDefinition:==0x02000204; -kBEVersionOldestImplementation:==0x02000209; +kBEVersionCurrent:==0x02000210; +kBEVersionOldestDefinition:==0x02000210; +kBEVersionOldestImplementation:==0x02000210; kBEDebug:==1; kPredefinedModuleIndex:==1; BENoAnnot:==0; |