aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzweije2001-09-14 12:57:15 +0000
committerzweije2001-09-14 12:57:15 +0000
commit726f42c86da0bef2deef102be10eb70a6b336ab9 (patch)
treeca095763cb1846a6ed43480c67aa2ae308c99a51
parentfix uniqueness bug (again) (diff)
This commit was generated by cvs2svn to compensate for changes in r785,
which included commits to RCS files with non-trunk default branches. git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@786 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
-rw-r--r--sucl/cli.icl4
-rw-r--r--sucl/strat.dcl4
-rw-r--r--sucl/strat.icl11
3 files changed, 12 insertions, 7 deletions
diff --git a/sucl/cli.icl b/sucl/cli.icl
index e7b3634..e7981c5 100644
--- a/sucl/cli.icl
+++ b/sucl/cli.icl
@@ -164,7 +164,9 @@ clistrategy (CliAlias {arities=as,typeconstructors=tcs,typerules=ts,rules=rs}) m
o checklaws cleanlaws // Checks for special (hard coded) rules (+x0=x /y1=y ...)
o checkrules matchable (foldmap id [] rs) // Checks normal rewrite rules
o checkimport islocal // Checks for delta symbols
- o checkconstr (flip isMember (flatten (map snd tcs))) // Checks for constructors
+ o ( checkconstr toString (flip isMember (flatten (map snd tcs))) // Checks for constructors
+ ---> ("cli.clistrategy.checkconstr",tcs)
+ )
) (corestrategy matchable) // Checks rules for symbols in the language core (IF, _AP, ...)
where islocal rsym=:(SuclUser s) = isMember rsym (map fst rs)// User-defined symbols can be imported, so they're known if we have a list of rules for them
islocal rsym = True // Symbols in the language core (the rest) are always completely known
diff --git a/sucl/strat.dcl b/sucl/strat.dcl
index c397013..c2b6ce6 100644
--- a/sucl/strat.dcl
+++ b/sucl/strat.dcl
@@ -8,6 +8,7 @@ from rule import Rule
from graph import Graph,Node
from StdOverloaded import ==
from StdClass import Eq
+from cleanversion import String
from history import HistoryAssociation,HistoryPattern,Link // for History
from spine import Spine // for Answer
@@ -71,7 +72,8 @@ checkarity
// A strategy transformer that checks for constructor applications
checkconstr
- :: (sym->.Bool)
+ :: (sym->String)
+ (sym->.Bool)
(Strategy sym var pvar .result)
(Substrategy sym var pvar .result)
(Graph sym var)
diff --git a/sucl/strat.icl b/sucl/strat.icl
index b8500e8..71956d1 100644
--- a/sucl/strat.icl
+++ b/sucl/strat.icl
@@ -470,7 +470,8 @@ checkimport local defstrat substrat subject found rnf (ssym,sargs)
// Check for constructors
checkconstr
- :: (sym->.Bool)
+ :: (sym->String)
+ (sym->.Bool)
(Strategy sym var pvar .result)
(Substrategy sym var pvar .result)
(Graph sym var)
@@ -479,7 +480,7 @@ checkconstr
.(Node sym var)
-> .result
-checkconstr isconstr defstrat substrat subject found rnf (ssym,sargs)
-| isconstr ssym
-= rnf
-= defstrat substrat subject found rnf (ssym,sargs)
+checkconstr showsym isconstr defstrat substrat subject found rnf (ssym,sargs)
+| isconstr ssym ---> ("strat.checkconstr begins for "+++showsym ssym)
+= rnf <--- ("strat.checkconstr ends (RNF)")
+= defstrat substrat subject found rnf (ssym,sargs) <--- ("strat.checkconstr ends (default strategy)")