Commit f766d6f1 authored by Vincent Zweije's avatar Vincent Zweije
Browse files

First stab at translating function fullsymred from Miranda to Clean

parent 691965d4
......@@ -2,6 +2,12 @@ implementation module newtest
// $Id$
import cli
import coreclean
import canon
import basic
import StdEnv
newtest.lit - Testing the new trace implementation
......@@ -242,7 +248,29 @@ these tuples.
> foldarea' = foldarea (labelarea'.canonise')
> labelarea' = labelarea (map getinit results) (newsymbols main)
> canonise' = canonise (typerule cli) heap
fullsymred ::
[SuclSymbol] // Fresh function symbols
Cli // Module to optimise
-> [Symredresult symbol node typesymbol typenode]
fullsymred freshsymbols cli
= results
where results = depthfirst generate process (initareas cli)
generate result = map canonise` (getareas result)
process area = symredarea foldarea` cli area
foldarea` = foldarea (labelarea` o canonise`)
labelarea` = labelarea (map getinit results) freshsymbols
canonise` = canonise (typerule cli) suclheap
initareas = undef
getareas = undef
symredarea = undef
getinit = undef
`Initareas cli' is the list of initial rooted graphs that must be
symbolically reduced. An initial rooted graph is formed by applying an
exported symbol to its full complement of open arguments according to
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment