aboutsummaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
authormartinw2000-02-18 09:44:17 +0000
committermartinw2000-02-18 09:44:17 +0000
commit10b8ecb08ea833a68b9ec4e52847db82e5ccd6d4 (patch)
treec5972c8accd6531619bb92462d899c1ad886915a /frontend
parentremoved PE_Array from syntax tree (diff)
Commiting changes in syntax tree to enable backend adaption. New added constructors:
TVI_Atype, AVI_CorrespondenceNumber, PE_ArrayPattern git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@93 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend')
-rw-r--r--frontend/syntax.dcl26
-rw-r--r--frontend/syntax.icl5
2 files changed, 8 insertions, 23 deletions
diff --git a/frontend/syntax.dcl b/frontend/syntax.dcl
index b9c9f02..f348a69 100644
--- a/frontend/syntax.dcl
+++ b/frontend/syntax.dcl
@@ -274,27 +274,6 @@ instance toString (Import from_symbol), AttributeVar, TypeAttribute, Annotation
| ID_Record !ImportedIdent !(Optional [ImportedIdent])
| ID_Instance !ImportedIdent !Ident !(![Type],![TypeContext])
-/* MOVE
-:: ExplicitImports :== (![AtomicImport], ![StructureImport])
-:: AtomicImport :== (!Ident, !AtomType)
-:: StructureImport :== (!Ident, !StructureInfo, !StructureType, !OptimizeInfo)
-
-:: AtomType = AT_Function | AT_Class | AT_Instance | AT_RecordType | AT_AlgType | AT_Type
-
-:: StructureInfo = SI_DotDot
- // The .. notation was used for the structure
- // (currently nothing is known about the elements)
- | SI_Elements ![Ident] !Bool
- // list of elements, that were not imported yet.
- // Bool: the elements were listed explicitly in the structure
-:: StructureType = ST_AlgType | ST_RecordType | ST_Class
-
-:: IdentWithKind :== (!Ident, !STE_Kind)
-:: IdentWithCKind :== (!Ident, !ConsequenceKind)
-
-:: OptimizeInfo :== (Optional !Index)
-*/
-
cIsImportedLibrary :== True
cIsImportedObject :== False
:: ImportedObject =
@@ -800,7 +779,8 @@ cNonRecursiveAppl :== False
| TVI_Forward !TempVarId | TVI_TypeKind !KindInfoPtr
| TVI_SignClass !Index !SignClassification !TypeVarInfo | TVI_PropClass !Index !PropClassification !TypeVarInfo
| TVI_Attribute TypeAttribute
- | TVI_CorrespondenceNumber !Int
+ | TVI_CorrespondenceNumber !Int /* auxiliary used in module comparedefimp */
+ | TVI_AType !AType /* auxiliary used in module comparedefimp */
| TVI_Used /* to administer that this variable is encountered (in checkOpenTypes) */
// | TVI_Clean !Int /* to keep the unique number that has been assigned to this variable during 'clean_up' */
| TVI_TypeCode !TypeCodeExpression
@@ -810,6 +790,7 @@ cNonRecursiveAppl :== False
:: TypeVarHeap :== Heap TypeVarInfo
:: AttrVarInfo = AVI_Empty | AVI_Attr !TypeAttribute | AVI_Forward !TempAttrId
+ | AVI_CorrespondenceNumber !Int /* auxiliary used in module comparedefimp */
:: AttrVarInfoPtr :== Ptr AttrVarInfo
:: AttrVarHeap :== Heap AttrVarInfo
@@ -914,6 +895,7 @@ cNonUniqueSelection :== False
| PE_Lambda !Ident ![ParsedExpr] !ParsedExpr
| PE_Tuple ![ParsedExpr]
| PE_Record !ParsedExpr !(Optional Ident) ![FieldAssignment]
+ | PE_ArrayPattern ![ElemAssignment]
| PE_UpdateComprehension !ParsedExpr !ParsedExpr !ParsedExpr ![Qualifier]
| PE_ArrayDenot ![ParsedExpr]
| PE_Selection !Bool !ParsedExpr ![ParsedSelection]
diff --git a/frontend/syntax.icl b/frontend/syntax.icl
index ee3893e..10eef66 100644
--- a/frontend/syntax.icl
+++ b/frontend/syntax.icl
@@ -740,7 +740,8 @@ cNotVarNumber :== -1
:: TypeVarInfo = TVI_Empty | TVI_Type !Type | TVI_Forward !TempVarId | TVI_TypeKind !KindInfoPtr
| TVI_SignClass !Index !SignClassification !TypeVarInfo | TVI_PropClass !Index !PropClassification !TypeVarInfo
| TVI_Attribute TypeAttribute
- | TVI_CorrespondenceNumber !Int
+ | TVI_CorrespondenceNumber !Int /* auxiliary used in module comparedefimp */
+ | TVI_AType !AType /* auxiliary used in module comparedefimp */
| TVI_Used /* to adminster that this variable is encountered (in checkOpenTypes) */
| TVI_TypeCode !TypeCodeExpression
| TVI_FreshTypeVar TypeVar /* auxiliary used during fusion */
@@ -749,6 +750,7 @@ cNotVarNumber :== -1
:: TypeVarHeap :== Heap TypeVarInfo
:: AttrVarInfo = AVI_Empty | AVI_Attr !TypeAttribute | AVI_Forward !TempAttrId
+ | AVI_CorrespondenceNumber !Int /* auxiliary used in module comparedefimp */
:: AttrVarInfoPtr :== Ptr AttrVarInfo
:: AttrVarHeap :== Heap AttrVarInfo
@@ -857,6 +859,7 @@ cNonUniqueSelection :== False
| PE_Lambda !Ident ![ParsedExpr] !ParsedExpr
| PE_Tuple ![ParsedExpr]
| PE_Record !ParsedExpr !(Optional Ident) ![FieldAssignment]
+ | PE_ArrayPattern ![ElemAssignment]
| PE_UpdateComprehension !ParsedExpr !ParsedExpr !ParsedExpr ![Qualifier]
| PE_ArrayDenot ![ParsedExpr]
| PE_Selection !Bool !ParsedExpr ![ParsedSelection]