aboutsummaryrefslogtreecommitdiff
path: root/backend/backend.dcl
diff options
context:
space:
mode:
authorjohnvg2003-10-16 09:28:40 +0000
committerjohnvg2003-10-16 09:28:40 +0000
commit853b4b19f2042cee0d6f5c549e5a78e25a9ee3a6 (patch)
tree33af4da3d61eba87b96222baa9859033d9438ab5 /backend/backend.dcl
parentadd 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.dcl70
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;