From 936c63ad71f93a22317f152f9ca56cbd1f75452e Mon Sep 17 00:00:00 2001 From: johnvg Date: Tue, 16 Jul 2002 15:17:54 +0000 Subject: add DclFunCall in type FunCall git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1147 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d --- frontend/syntax.dcl | 14 +++++++------- frontend/syntax.icl | 13 ++++++++++--- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/frontend/syntax.dcl b/frontend/syntax.dcl index 787e428..459f9df 100644 --- a/frontend/syntax.dcl +++ b/frontend/syntax.dcl @@ -107,6 +107,7 @@ instance == FunctionOrMacroIndex | SelectorList !Ident ![ATypeVar] ![ParsedSelector] | TypeSpec !AType | EmptyRhs !BITVECT + | AbstractTypeSpec !BITVECT !AType :: CollectedDefinitions instance_kind def_macros = { def_types :: ![TypeDef TypeRhs] @@ -413,6 +414,7 @@ cIsImportedObject :== False | SynType !AType | RecordType !RecordType | AbstractType !BITVECT + | AbstractSynType !BITVECT !AType | UnknownType :: ParsedTypeDef :== TypeDef RhsDefsOfType @@ -490,13 +492,11 @@ NoGlobalIndex :== {gi_module=NoIndex,gi_index=NoIndex} // , fv_expr_ptr :: !ExprInfoPtr , fv_count :: !Int } - -:: FunCall = FunCall !Index !Level | MacroCall !Index !Index Level; -/* - { fc_level :: !Level - , fc_index :: !Index - } -*/ + +:: ModuleIndex:==Index; +:: DclFunctionIndex:==Index; + +:: FunCall = FunCall !Index !Level | MacroCall !ModuleIndex !Index Level | DclFunCall !ModuleIndex !DclFunctionIndex; /* Sjaak 19-3-2001 ... */ diff --git a/frontend/syntax.icl b/frontend/syntax.icl index 147cd5a..cdfab4a 100644 --- a/frontend/syntax.icl +++ b/frontend/syntax.icl @@ -108,6 +108,7 @@ instance == FunctionOrMacroIndex | SelectorList !Ident ![ATypeVar] ![ParsedSelector] | TypeSpec !AType | EmptyRhs !BITVECT + | AbstractTypeSpec !BITVECT !AType :: CollectedDefinitions instance_kind def_macros = { def_types :: ![TypeDef TypeRhs] @@ -417,6 +418,7 @@ cIsImportedObject :== False | SynType !AType | RecordType !RecordType | AbstractType !BITVECT + | AbstractSynType !BITVECT !AType | UnknownType :: ParsedTypeDef :== TypeDef RhsDefsOfType @@ -468,7 +470,10 @@ where , fv_count :: !Int } -:: FunCall = FunCall !Index !Level | MacroCall !Index !Index Level; +:: ModuleIndex:==Index; +:: DclFunctionIndex:==Index; + +:: FunCall = FunCall !Index !Level | MacroCall !ModuleIndex !Index Level | DclFunCall !ModuleIndex !DclFunctionIndex; /* Sjaak 19-3-2001 ... */ @@ -1665,7 +1670,7 @@ where SK_Generic _ kind -> file <<< app_symb <<< kind <<< ' ' <<< app_args _ -> file <<< app_symb <<< ' ' <<< app_args - (<<<) file (f_exp @ a_exp) = file <<< '(' <<< f_exp <<< " @ " <<< a_exp <<< ')' + (<<<) file (f_exp @ a_exp) = file <<< '(' <<< f_exp <<< ") @ (" <<< a_exp <<< ')' (<<<) file (Let {let_info_ptr, let_strict_binds, let_lazy_binds, let_expr}) = write_binds "" (write_binds "!" (file <<< "let" <<< '\n') let_strict_binds) let_lazy_binds <<< "in\n" <<< let_expr where @@ -1883,7 +1888,7 @@ where (<<<) file {fun_symb,fun_body=TransformedBody {tb_args,tb_rhs},fun_info={fi_free_vars,fi_local_vars,fi_def_level,fi_calls}} = file <<< fun_symb <<< '.' <<< "T " // <<< '[' <<< fi_free_vars <<< "] [" <<< fi_local_vars <<< ']' - <<< tb_args <<< '[' <<< fi_calls <<< ']' <<< " = " <<< tb_rhs <<< '\n' + <<< tb_args <<< '[' <<< fi_calls <<< ']' <<< "\n\t= " <<< tb_rhs <<< '\n' // <<< '.' <<< fi_def_level <<< ' ' <<< '[' <<< fi_free_vars <<< ']' <<< tb_args <<< " = " <<< tb_rhs (<<<) file {fun_symb,fun_body=BackendBody body,fun_type=Yes type} = file // <<< type <<< '\n' <<< fun_symb <<< '.' <<< body <<< '\n' @@ -1909,6 +1914,8 @@ where = file <<< fc_index <<< '.' <<< fc_level (<<<) file (MacroCall module_index fc_index fc_level) = file <<< "MacroCall "<<< module_index <<<" "<<