aboutsummaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
authorronny2001-11-01 15:30:29 +0000
committerronny2001-11-01 15:30:29 +0000
commitb1de57220ddc6025e3731f2579549866b058f134 (patch)
treeb763d1a4973f25211579f296176278ce68e8eadd /frontend
parentadded --dump-args and --restore-args options (diff)
pass strictness information from C to Clean, print strict exported and all types in Clean
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@877 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend')
-rw-r--r--frontend/frontend.dcl7
-rw-r--r--frontend/frontend.icl17
-rw-r--r--frontend/syntax.dcl1
-rw-r--r--frontend/syntax.icl1
4 files changed, 26 insertions, 0 deletions
diff --git a/frontend/frontend.dcl b/frontend/frontend.dcl
index 2810e58..4b23a06 100644
--- a/frontend/frontend.dcl
+++ b/frontend/frontend.dcl
@@ -28,5 +28,12 @@ import checksupport, transform, overloading
| FrontEndPhaseConvertModules
| FrontEndPhaseAll
+:: ListTypesKind = ListTypesNone | ListTypesInferred | ListTypesStrictExports | ListTypesAll
+:: ListTypesOption =
+ { lto_showAttributes :: Bool
+ , lto_listTypesKind :: ListTypesKind
+ }
+instance == ListTypesKind
+
frontEndInterface :: !FrontEndOptions !Ident !SearchPaths !{#DclModule} !*{#*{#FunDef}} !(Optional Bool) !*PredefinedSymbols !*HashTable (ModTimeFunction *Files) !*Files !*File !*File !*File (!Optional !*File) !*Heaps
-> ( !Optional *FrontEndSyntaxTree,!*{#*{#FunDef}},!{#DclModule},!Int,!Int,!*PredefinedSymbols, !*HashTable, !*Files, !*File, !*File, !*File, !Optional !*File, !*Heaps)
diff --git a/frontend/frontend.icl b/frontend/frontend.icl
index 2c5fe9a..d2c4a3d 100644
--- a/frontend/frontend.icl
+++ b/frontend/frontend.icl
@@ -396,4 +396,21 @@ where
show_dcl_function {ft_symb, ft_type} file
= file <<< ft_symb <<< " :: " <<< ft_type <<< "\n"
+
+:: ListTypesKind = ListTypesNone | ListTypesInferred | ListTypesStrictExports | ListTypesAll
+:: ListTypesOption =
+ { lto_showAttributes :: Bool
+ , lto_listTypesKind :: ListTypesKind
+ }
+instance == ListTypesKind where
+ (==) ListTypesNone ListTypesNone
+ = True
+ (==) ListTypesInferred ListTypesInferred
+ = True
+ (==) ListTypesStrictExports ListTypesStrictExports
+ = True
+ (==) ListTypesAll ListTypesAll
+ = True
+ (==) _ _
+ = False
\ No newline at end of file
diff --git a/frontend/syntax.dcl b/frontend/syntax.dcl
index 32fc53e..1669b95 100644
--- a/frontend/syntax.dcl
+++ b/frontend/syntax.dcl
@@ -909,6 +909,7 @@ cNonRecursiveAppl :== False
| AVI_Used
| AVI_Count !Int /* auxiliary used in module typesupport */
| AVI_SequenceNumber !Int // RWS
+ | AVI_Collected // RWS
:: AttrVarInfoPtr :== Ptr AttrVarInfo
:: AttrVarHeap :== Heap AttrVarInfo
diff --git a/frontend/syntax.icl b/frontend/syntax.icl
index e60a9c3..0d4957e 100644
--- a/frontend/syntax.icl
+++ b/frontend/syntax.icl
@@ -888,6 +888,7 @@ cNotVarNumber :== -1
| AVI_Used
| AVI_Count !Int /* auxiliary used in module typesupport */
| AVI_SequenceNumber !Int // RWS
+ | AVI_Collected // RWS
:: AttrVarInfoPtr :== Ptr AttrVarInfo
:: AttrVarHeap :== Heap AttrVarInfo