diff options
author | martinw | 2000-06-05 15:04:10 +0000 |
---|---|---|
committer | martinw | 2000-06-05 15:04:10 +0000 |
commit | 7db9a3799dfe1c88aee502646e939905b0a79905 (patch) | |
tree | 6ac6edbc966081891f790eb5689ef6d502c5d2b8 /frontend/syntax.icl | |
parent | removed ---> application (diff) |
enabled higher order function elimination also for functions (producers)
that are imported
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@149 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/syntax.icl')
-rw-r--r-- | frontend/syntax.icl | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/frontend/syntax.icl b/frontend/syntax.icl index 0230f48..ef5834a 100644 --- a/frontend/syntax.icl +++ b/frontend/syntax.icl @@ -516,10 +516,11 @@ cNotVarNumber :== -1 :: FunctionInfo = FI_Empty | FI_Function !GeneratedFunction :: Producer = PR_Empty - | PR_Function !SymbIdent !Index !Int // Int: number of actual arguments in application (XXX possibly superfluous (already contained in SymbIdent)) + | PR_Function !SymbIdent !Index | PR_Class !App ![BoundVar] !Type // | PR_Constructor !SymbIdent ![Expression] - | PR_GeneratedFunction !SymbIdent !Index !Int // Int: number of actual arguments in application (XXX possibly superfluous (already contained in SymbIdent)) + | PR_GeneratedFunction !SymbIdent !Index + | PR_Curried !SymbIdent :: InstanceInfo = II_Empty | II_Node !{! Producer} !FunctionInfoPtr !InstanceInfo !InstanceInfo @@ -1276,7 +1277,7 @@ where instance <<< BoundVar where (<<<) file {var_name,var_info_ptr,var_expr_ptr} - = file <<< var_name <<< '<' <<< ptrToInt var_info_ptr <<< ',' <<< ptrToInt var_expr_ptr <<< '>' + = file <<< var_name <<< '<' <<< ptrToInt var_info_ptr <<< '>' instance <<< (Bind a b) | <<< a & <<< b where |