coreclean.dcl 955 Bytes
Newer Older
1
2
3
4
definition module coreclean

// $Id$

5
from syntax import TypeSymbIdent,Ident,TypeVar,ExprInfoPtr,VarInfoPtr
Vincent Zweije's avatar
Refine    
Vincent Zweije committed
6
7

// Transitive necessities
8
from syntax import SymbolPtr,SymbolTableEntry,STE_Kind,Index,Level,Global,TypeSymbProperties,SignClassification,PropClassification,TypeVarInfoPtr,TypeVarInfo,ExprInfo,VarInfo
9
from general import BITVECT
Vincent Zweije's avatar
Refine    
Vincent Zweije committed
10
from Heap import Ptr,PtrN,HeapN
11
from StdOverloaded import ==
Vincent Zweije's avatar
Refine    
Vincent Zweije committed
12
13
from StdString import String

14
:: SuclTypeSymbol
15
16
17
18
19
20
21
22
23
 = SuclUSER TypeSymbIdent
 | SuclFN
 | SuclINT
 | SuclCHAR
 | SuclREAL
 | SuclBOOL
 | SuclDYNAMIC
 | SuclFILE
 | SuclWORLD
Vincent Zweije's avatar
Refine    
Vincent Zweije committed
24

25
:: SuclTypeVariable
26
27
28
29
 = SuclANONYMOUS Int
 | SuclNAMED TypeVar

sucltypeheap :: [SuclTypeVariable]
Vincent Zweije's avatar
Refine    
Vincent Zweije committed
30

31
:: SuclSymbol
32
33
 = SuclUser SymbolPtr
 | SuclCase ExprInfoPtr
34
 | SuclApply Int
35
 | SuclInt Int
36
 | SuclReal Real
37
 | SuclBool Bool
Vincent Zweije's avatar
Refine    
Vincent Zweije committed
38

39
:: SuclSymbolKind
40
41
42
 = SuclFunction
 | SuclConstructor
 | SuclPrimitive
Vincent Zweije's avatar
Refine    
Vincent Zweije committed
43

44
:: SuclVariable
45
46
47
48
 = SuclAnonymous Int
 | SuclNamed VarInfoPtr

instance == SuclVariable