Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
clean-compiler-and-rts
compiler
Commits
caec3b25
Commit
caec3b25
authored
Aug 14, 2001
by
Vincent Zweije
Browse files
Introduce type for generated function body
parent
da1f0fe0
Changes
4
Hide whitespace changes
Inline
Side-by-side
sucl/newfold.dcl
View file @
caec3b25
...
...
@@ -9,6 +9,9 @@ from rule import Rgraph,Rule
from
general
import
Optional
from
StdOverloaded
import
==
::
FunBody
sym
var
:==
[
Rule
sym
var
]
::
Etracer
sym
var
pvar
:==
(
Trace
sym
var
pvar
)
(
Rgraph
sym
var
)
...
...
@@ -20,7 +23,7 @@ fullfold ::
((
Rgraph
sym
var
)->(
sym
,[
var
]))
sym
(
Trace
sym
var
pvar
)
->
([
Bool
],
[
Rule
sym
var
]
,[
Rgraph
sym
var
])
->
([
Bool
],
FunBody
sym
var
,[
Rgraph
sym
var
])
|
==
sym
&
==
var
&
==
pvar
sucl/newfold.icl
View file @
caec3b25
...
...
@@ -66,7 +66,12 @@ Deprecated type
> * ->
> trace * ** *** ->
> (bool,([bool],[rule * **],[rgraph * **]))
*/
::
FunBody
sym
var
:==
[
Rule
sym
var
]
/*
Implementation
--------------
...
...
@@ -89,7 +94,7 @@ fullfold ::
((
Rgraph
sym
var
)->(
sym
,[
var
]))
sym
(
Trace
sym
var
pvar
)
->
([
Bool
],
[
Rule
sym
var
]
,[
Rgraph
sym
var
])
->
([
Bool
],
FunBody
sym
var
,[
Rgraph
sym
var
])
|
==
sym
&
==
var
&
==
pvar
...
...
@@ -114,7 +119,7 @@ recurse ::
((
Rgraph
sym
var
)->(
sym
,[
var
]))
sym
->
(
Trace
sym
var
pvar
)
->
(
Bool
,([
Bool
],
[
Rule
sym
var
]
,[
Rgraph
sym
var
]))
->
(
Bool
,([
Bool
],
FunBody
sym
var
,[
Rgraph
sym
var
]))
|
==
sym
&
==
var
&
==
pvar
...
...
@@ -154,7 +159,7 @@ foldtips ::
(
sym
,[
var
])
->
([(
var
,
Graph
sym
var
)],[(
var
,
Graph
sym
var
)])
(
Trace
sym
var
pvar
)
->
(
Bool
,([
Bool
],
[
Rule
sym
var
]
,[
Rgraph
sym
var
]))
->
(
Bool
,([
Bool
],
FunBody
sym
var
,[
Rgraph
sym
var
]))
|
==
sym
&
==
var
&
==
pvar
...
...
@@ -223,7 +228,7 @@ newextract ::
(
Etracer
sym
var
pvar
)
((
Rgraph
sym
var
)->(
sym
,[
var
]))
(
Trace
sym
var
pvar
)
->
([
Bool
],
[
Rule
sym
var
]
,[
Rgraph
sym
var
])
->
([
Bool
],
FunBody
sym
var
,[
Rgraph
sym
var
])
|
==
sym
&
==
var
&
==
pvar
...
...
sucl/newtest.dcl
View file @
caec3b25
...
...
@@ -4,6 +4,7 @@ definition module newtest
from
cli
import
Cli
from
coreclean
import
SuclTypeSymbol
,
SuclTypeVariable
,
SuclSymbol
,
SuclVariable
from
newfold
import
FunBody
from
trace
import
Trace
,
Transformation
from
spine
import
Answer
,
Spine
,
Subspine
from
history
import
History
,
HistoryAssociation
,
HistoryPattern
...
...
@@ -16,7 +17,7 @@ from general import Optional
,
srr_strictness
::
[
Bool
]
// Strictness annotations
,
srr_typerule
::
Rule
tsym
tvar
// Type rule
,
srr_trace
::
Trace
sym
var
var
// Truncated and folded trace
,
srr_
rules
::
[
Rule
sym
var
]
// Resulting rewrite rules
,
srr_
function_body
::
FunBody
sym
var
// Resulting rewrite rules
,
srr_areas
::
[
Rgraph
sym
var
]
// New areas for further symbolic reduction (not necessarily canonical)
}
...
...
sucl/newtest.icl
View file @
caec3b25
...
...
@@ -153,7 +153,7 @@ these tuples.
,
srr_strictness
::
[
Bool
]
// Strictness annotations
,
srr_typerule
::
Rule
tsym
tvar
// Type rule
,
srr_trace
::
Trace
sym
var
var
// Truncated and folded trace
,
srr_
rules
::
[
Rule
sym
var
]
// Resulting rewrite rules
,
srr_
function_body
::
FunBody
sym
var
// Resulting rewrite rules
,
srr_areas
::
[
Rgraph
sym
var
]
// New areas for further symbolic reduction (not necessarily canonical)
}
...
...
@@ -357,7 +357,7 @@ symredarea foldarea cli area
,
srr_strictness
=
stricts
,
srr_typerule
=
trule
,
srr_trace
=
trace
,
srr_
rules
=
rules
,
srr_
function_body
=
rules
,
srr_areas
=
areas
}
where
agraph
=
rgraphgraph
area
;
aroot
=
rgraphroot
area
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment