aboutsummaryrefslogtreecommitdiff
path: root/frontend/syntax.dcl
diff options
context:
space:
mode:
authorronny2004-03-17 12:26:47 +0000
committerronny2004-03-17 12:26:47 +0000
commita613de0b391f5f95b0496515ec73ac41639af7b2 (patch)
treeaef2a99b4618c4c8d6588ca53d3f039f6defe9f0 /frontend/syntax.dcl
parentignore rank > 1 quantors in type_io (diff)
reification of type definitions
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1465 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/syntax.dcl')
-rw-r--r--frontend/syntax.dcl11
1 files changed, 9 insertions, 2 deletions
diff --git a/frontend/syntax.dcl b/frontend/syntax.dcl
index 0c4f25d..41eb1dd 100644
--- a/frontend/syntax.dcl
+++ b/frontend/syntax.dcl
@@ -444,6 +444,7 @@ NoGlobalIndex :== {gi_module=NoIndex,gi_index=NoIndex}
, td_attribute :: !TypeAttribute
, td_pos :: !Position
, td_used_types :: ![GlobalIndex]
+ , td_fun_index :: !Index
}
:: TypeDefInfo =
@@ -936,6 +937,7 @@ cNonRecursiveAppl :== False
| TVI_AttrAndRefCount !TypeAttribute !Int
| TVI_CorrespondenceNumber !Int /* auxiliary used in module comparedefimp */
| TVI_AType !AType /* auxiliary used in module comparedefimp */
+ | TVI_Reify !Int
| TVI_Used /* to administer that this variable is encountered (in checkOpenTypes) */
| TVI_TypeCode !TypeCodeExpression
| TVI_CPSLocalTypeVar !Int /* MdM - the index of the variable as generated by the theorem prover */
@@ -1278,7 +1280,11 @@ instance == OverloadedListType
| TCE_UniType ![VarInfoPtr] !TypeCodeExpression
| TCE_UnqType !TypeCodeExpression
-:: GlobalTCType = GTT_Basic !BasicType | GTT_Constructor !SymbIdent | GTT_PredefTypeConstructor !(Global Index) | GTT_Function
+:: GlobalTCType
+ = GTT_Basic !BasicType
+ | GTT_Constructor !SymbIdent !SymbIdent // type_cons type_fun
+ | GTT_PredefTypeConstructor !(Global Index)
+ | GTT_Function
:: AlgebraicPattern =
{ ap_symbol :: !(Global DefinedSymbol)
@@ -1417,7 +1423,8 @@ ParsedInstanceToClassInstance pi members :==
MakeTypeDef name lhs rhs attr contexts pos :==
{ td_ident = name, td_index = -1, td_arity = length lhs, td_args = lhs, td_attrs = [], td_attribute = attr, td_context = contexts,
- td_pos = pos, td_rhs = rhs, td_used_types = [] }
+ td_pos = pos, td_rhs = rhs, td_used_types = [], td_fun_index = NoIndex
+ }
MakeDefinedSymbol ident index arity :== { ds_ident = ident, ds_arity = arity, ds_index = index }