diff options
Diffstat (limited to 'sucl/dnc.icl')
-rw-r--r-- | sucl/dnc.icl | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/sucl/dnc.icl b/sucl/dnc.icl new file mode 100644 index 0000000..b17c08f --- /dev/null +++ b/sucl/dnc.icl @@ -0,0 +1,13 @@ +implementation module dnc + +import graph +import StdEnv + +// dnc is like varcontents, but can give a more reasonable error message +// when the contents is used when undefined. +dnc :: (var->.String) !(Graph .sym var) var -> (.Bool,Node .sym var) | == var +dnc makemessage graph var +| fst vc = vc + = (False,(wrong "symbol",wrong "arguments")) + where vc = varcontents graph var + wrong element = abort ("getting "+++element+++" of free variable: "+++makemessage var) |