Display Strategies
Stratego -- Strategies for Program Transformation
Is their a way to display strategies
(or just thier names) from within
Stratego.
This could be used to add trace
monitors to Stratego code.
For example:
------------------------------
I-str-detectfail-here(s) =
s <+
...Display s somehow!...
------------------------------
Might be used to call strategies
whose specification says they should
not fail -- displaying a big warning
message and the strategy name when
(i mean if;) they do..
-- Bill J Ellis
There is no way to introspect a strategy at run-time to get
its name (or any other analysis for that matter). What you
might find useful is the strategy risky in term-io.str (in SSL),
defined as:
risky(msg, s) =
restore(s, debug(msg))
which will print msg on failure of s (see restore in conditional.str).
Thus, you can wrap the strategy that
you expect to succeed with
risky(!"strategy s should always succeed here: "), s)
One could imagine instrumenting the Stratego code such that a
strategy would print its name upon request, or go into reflection
mode. I'd have to think about details though.
--
EelcoVisser - 23 Jul 2003