aboutsummaryrefslogtreecommitdiff
path: root/sucl
diff options
context:
space:
mode:
authorzweije2001-08-14 13:42:00 +0000
committerzweije2001-08-14 13:42:00 +0000
commit96cde0d7d16b853fa6e5a955735ce0384e5d65c1 (patch)
treef98e3fbc064e01b3cc0b4c1b2c177a9a8d0af2cf /sucl
parentThis commit was generated by cvs2svn to compensate for changes in r634, (diff)
This commit was generated by cvs2svn to compensate for changes in r636,
which included commits to RCS files with non-trunk default branches. git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@637 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'sucl')
-rw-r--r--sucl/newfold.icl23
1 files changed, 13 insertions, 10 deletions
diff --git a/sucl/newfold.icl b/sucl/newfold.icl
index f84f710..de55a0a 100644
--- a/sucl/newfold.icl
+++ b/sucl/newfold.icl
@@ -345,16 +345,19 @@ newextract ::
newextract trc newname (Trace stricts rule answer history transf)
| recursive
= (stricts,[recrule],recareas)
-= subex transf
- where subex (Reduce reductroot trace) = newextract trc newname trace
- subex (Annotate trace) = newextract trc newname trace
- subex (Instantiate yestrace notrace)
- = (stricts,yesrules++norules,yesareas++noareas)
- where (yesstricts,yesrules,yesareas) = newextract trc newname yestrace
- (nostricts,norules,noareas) = newextract trc newname notrace
- subex Stop = (stricts,[mkrule rargs rroot stoprgraph],stopareas)
-
- (recursive,unsafearea)
+= case transf
+ of Reduce reductroot trace
+ -> newextract trc newname trace
+ Annotate trace
+ -> newextract trc newname trace
+ Instantiate yestrace notrace
+ -> (stricts,yesrules++norules,yesareas++noareas)
+ where (yesstricts,yesrules,yesareas) = newextract trc newname yestrace
+ (nostricts,norules,noareas) = newextract trc newname notrace
+ Stop
+ -> (stricts,[mkrule rargs rroot stoprgraph],stopareas)
+
+ where (recursive,unsafearea)
= if (isreduce transf)
(foldoptional (False,undef) (findspinepart rule transf) answer)
(False,abort "newextract: not a Reduce transformation")