diff options
author | johnvg | 2003-10-16 09:28:40 +0000 |
---|---|---|
committer | johnvg | 2003-10-16 09:28:40 +0000 |
commit | 853b4b19f2042cee0d6f5c549e5a78e25a9ee3a6 (patch) | |
tree | 33af4da3d61eba87b96222baa9859033d9438ab5 /backend/backend.dcl | |
parent | add extra attribute argument to BEFlatType and (diff) |
add extra attribute argument to BEFlatType and
the is_boxed_record argument to BERecordType,
use abstract type synonyms,
remove BEUpdateKind,
increment version number
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1392 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'backend/backend.dcl')
-rw-r--r-- | backend/backend.dcl | 70 |
1 files changed, 33 insertions, 37 deletions
diff --git a/backend/backend.dcl b/backend/backend.dcl index ea676c1..7342962 100644 --- a/backend/backend.dcl +++ b/backend/backend.dcl @@ -4,39 +4,38 @@ definition module backend; from StdString import String; //3.1 -:: CPtr :== Int; +:: CPtr (:== Int); :: *UWorld :== Int; -:: *BackEnd; // :== CPtr; -:: BESymbolP; // :== CPtr; -:: BETypeNodeP; // :== CPtr; -:: BETypeArgP; // :== CPtr; -:: BETypeAltP; // :== CPtr; -:: BENodeP; // :== CPtr; -:: BEArgP; // :== CPtr; -:: BERuleAltP; // :== CPtr; -:: BEImpRuleP; // :== CPtr; -:: BETypeP; // :== CPtr; -:: BEFlatTypeP; // :== CPtr; -:: BETypeVarP; // :== CPtr; -:: BETypeVarListP; // :== CPtr; -:: BEConstructorListP; // :== CPtr; -:: BEFieldListP; // :== CPtr; -:: BENodeIdP; // :== CPtr; -:: BENodeDefP; // :== CPtr; -:: BEStrictNodeIdP; // :== CPtr; -:: BECodeParameterP; // :== CPtr; -:: BECodeBlockP; // :== CPtr; -:: BEStringListP; // :== CPtr; -:: BENodeIdListP; // :== CPtr; -:: BENodeIdRefCountListP; // :== CPtr; -:: BEUniVarEquations; // :== CPtr; -:: BEAttributeKindList; // :== CPtr; +:: *BackEnd (:== CPtr); +:: BESymbolP (:== CPtr); +:: BETypeNodeP (:== CPtr); +:: BETypeArgP (:== CPtr); +:: BETypeAltP (:== CPtr); +:: BENodeP (:== CPtr); +:: BEArgP (:== CPtr); +:: BERuleAltP (:== CPtr); +:: BEImpRuleP (:== CPtr); +:: BETypeP (:== CPtr); +:: BEFlatTypeP (:== CPtr); +:: BETypeVarP (:== CPtr); +:: BETypeVarListP (:== CPtr); +:: BEConstructorListP (:== CPtr); +:: BEFieldListP (:== CPtr); +:: BENodeIdP (:== CPtr); +:: BENodeDefP (:== CPtr); +:: BEStrictNodeIdP (:== CPtr); +:: BECodeParameterP (:== CPtr); +:: BECodeBlockP (:== CPtr); +:: BEStringListP (:== CPtr); +:: BENodeIdListP (:== CPtr); +:: BENodeIdRefCountListP (:== CPtr); +:: BEUniVarEquations (:== CPtr); +:: BEAttributeKindList (:== CPtr); :: BEAnnotation :== Int; :: BEAttribution :== Int; :: BESymbKind :== Int; :: BEArrayFunKind :== Int; :: BESelectorKind :== Int; -:: BEUpdateKind :== Int; :: BESpecialIdentIndex :== Int; BEGetVersion :: (!Int,!Int,!Int); // void BEGetVersion (int* current,int* oldestDefinition,int* oldestImplementation); @@ -204,12 +203,12 @@ BETypes :: !BETypeP !BETypeP !BackEnd -> (!BETypeP,!BackEnd); // BETypeP BETypes (BETypeP type,BETypeP types); BENoTypes :: !BackEnd -> (!BETypeP,!BackEnd); // BETypeP BENoTypes (); -BEFlatType :: !BESymbolP !BETypeVarListP !BackEnd -> (!BEFlatTypeP,!BackEnd); -// BEFlatTypeP BEFlatType (BESymbolP symbol,BETypeVarListP arguments); +BEFlatType :: !BESymbolP !BEAttribution !BETypeVarListP !BackEnd -> (!BEFlatTypeP,!BackEnd); +// BEFlatTypeP BEFlatType (BESymbolP symbol,BEAttribution attribution,BETypeVarListP arguments); BEAlgebraicType :: !BEFlatTypeP !BEConstructorListP !BackEnd -> BackEnd; // void BEAlgebraicType (BEFlatTypeP lhs,BEConstructorListP constructors); -BERecordType :: !Int !BEFlatTypeP !BETypeNodeP !BEFieldListP !BackEnd -> BackEnd; -// void BERecordType (int moduleIndex,BEFlatTypeP lhs,BETypeNodeP constructorType,BEFieldListP fields); +BERecordType :: !Int !BEFlatTypeP !BETypeNodeP !Int !BEFieldListP !BackEnd -> BackEnd; +// void BERecordType (int moduleIndex,BEFlatTypeP lhs,BETypeNodeP constructorType,int is_boxed_record,BEFieldListP fields); BEAbsType :: !BEFlatTypeP !BackEnd -> BackEnd; // void BEAbsType (BEFlatTypeP lhs); BEConstructors :: !BEConstructorListP !BEConstructorListP !BackEnd -> (!BEConstructorListP,!BackEnd); @@ -288,9 +287,9 @@ BEDeclareDynamicTypeSymbol :: !Int !Int !BackEnd -> BackEnd; // void BEDeclareDynamicTypeSymbol (int typeIndex,int moduleIndex); BEDynamicTempTypeSymbol :: !BackEnd -> (!BESymbolP,!BackEnd); // BESymbolP BEDynamicTempTypeSymbol (); -kBEVersionCurrent:==0x02100400; -kBEVersionOldestDefinition:==0x02030407; -kBEVersionOldestImplementation:==0x02030407; +kBEVersionCurrent:==0x02100401; +kBEVersionOldestDefinition:==0x02100401; +kBEVersionOldestImplementation:==0x02100401; kBEDebug:==1; kPredefinedModuleIndex:==1; BENoAnnot:==0; @@ -360,9 +359,6 @@ BESelector_U:==2; BESelector_F:==3; BESelector_L:==4; BESelector_N:==5; -BEUpdateDummy:==0; -BEUpdate:==1; -BEUpdate_U:==2; BESpecialIdentStdMisc:==0; BESpecialIdentAbort:==1; BESpecialIdentUndef:==2; |