From c7cb3ca0bbff6f990daf92dc4334eb849259ca17 Mon Sep 17 00:00:00 2001 From: johnvg Date: Fri, 15 Feb 2002 14:10:19 +0000 Subject: allow record update nodes with more than 2 arguments git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1024 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d --- backendC/CleanCompilerSources/backend.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) (limited to 'backendC') diff --git a/backendC/CleanCompilerSources/backend.c b/backendC/CleanCompilerSources/backend.c index 1c979d1..6e30dcd 100644 --- a/backendC/CleanCompilerSources/backend.c +++ b/backendC/CleanCompilerSources/backend.c @@ -2027,8 +2027,11 @@ BEUpdateNode (BEArgP args) { NodeP node; SymbolP recordSymbol; + int n_args; + + n_args = CountArgs (args); - Assert (CountArgs (args) == 2); + Assert (n_args >= 2); Assert (args->arg_next->arg_node->node_kind == SelectorNode); Assert (args->arg_next->arg_node->node_arity == BESelector); @@ -2039,7 +2042,7 @@ BEUpdateNode (BEArgP args) node->node_annotation = NoAnnot; node->node_kind = UpdateNode; node->node_symbol = recordSymbol; - node->node_arity = 2; + node->node_arity = n_args; node->node_arguments = args; node->node_number=0; @@ -3190,6 +3193,10 @@ RemoveSpecialArrayFunctionsFromSymbolList (SymbolP *symbolH) } } /* RemoveSpecialArrayFunctionsFromSymbolList */ +#if 0 +File rules_file; +#endif +û int BEGenerateCode (CleanString outputFile) { @@ -3214,25 +3221,27 @@ BEGenerateCode (CleanString outputFile) #if 0 { - File f; - - f=fopen ("Rules","w"); - if (f){ + rules_file=fopen ("Rules","w"); + if (rules_file){ ImpRuleS *rule; for (rule=gBEState.be_icl.beicl_module->im_rules; rule!=NULL; rule=rule->rule_next){ - PrintImpRule (rule,4,f); + PrintImpRule (rule,4,rules_file); if (rule->rule_next!=NULL) - FPutC ('\n',f); + FPutC ('\n',rules_file); } - fclose (f); } } #endif CodeGeneration (gBEState.be_icl.beicl_module, outputFileName); +#if 0 + if (rules_file) + fclose (rules_file); +#endif + return (!CompilerError); } /* BEGenerateCode */ -- cgit v1.2.3