[pure-lang-svn] SF.net SVN: pure-lang:[707] pure/trunk
Status: Beta
Brought to you by:
agraef
|
From: <ag...@us...> - 2008-09-05 00:59:11
|
Revision: 707
http://pure-lang.svn.sourceforge.net/pure-lang/?rev=707&view=rev
Author: agraef
Date: 2008-09-05 00:59:21 +0000 (Fri, 05 Sep 2008)
Log Message:
-----------
Change print syntax of external objects, 2nd attempt.
Modified Paths:
--------------
pure/trunk/ChangeLog
pure/trunk/printer.cc
pure/trunk/test/test004.log
Modified: pure/trunk/ChangeLog
===================================================================
--- pure/trunk/ChangeLog 2008-09-05 00:44:33 UTC (rev 706)
+++ pure/trunk/ChangeLog 2008-09-05 00:59:21 UTC (rev 707)
@@ -1,5 +1,10 @@
2008-09-05 Albert Graef <Dr....@t-...>
+ * printer.cc: Changed <<...>> syntax for "external" objects such
+ as closures, thunks and pointers to #<...> syntax pilfered from
+ Scheme. This is less likely to be mistaken for a valid Pure
+ expression.
+
* pure.cc, lexer.ll: Renamed the interactive 'list' command to
'show', as suggested by John Cowan. This hopefully puts an end to
inadvertent execution of that command, since 'show' is no prelude
Modified: pure/trunk/printer.cc
===================================================================
--- pure/trunk/printer.cc 2008-09-05 00:44:33 UTC (rev 706)
+++ pure/trunk/printer.cc 2008-09-05 00:59:21 UTC (rev 707)
@@ -166,7 +166,7 @@
static ostream& printx(ostream& os, const expr& x, bool pat, bool aspat)
{
char buf[64];
- if (x.is_null()) return os << "{{NULL}}";
+ if (x.is_null()) return os << "#<NULL>";
//os << "{" << x.refc() << "}";
// handle "as" patterns
if (aspat && x.astag()>0) {
@@ -243,7 +243,7 @@
return os;
}
case EXPR::PTR:
- return os << "{{pointer " << x.pval() << "}}";
+ return os << "#<pointer " << x.pval() << ">";
case EXPR::APP: {
expr u, v, w, y;
exprl xs;
@@ -665,7 +665,7 @@
return os;
}
case EXPR::PTR:
- return os << "{{pointer " << x->data.p << "}}";
+ return os << "#<pointer " << x->data.p << ">";
case EXPR::APP: {
list<const pure_expr*> xs;
prec_t p;
@@ -760,11 +760,11 @@
default: {
if (x->tag == 0) {
const char *s = (x->data.clos && x->data.clos->n==0)?"thunk":"closure";
- return os << "{{" << s << " " << (void*)x << "}}";
+ return os << "#<" << s << " " << (void*)x << ">";
}
const symbol& sym = interpreter::g_interp->symtab.sym(x->tag);
if (x->data.clos && x->data.clos->local)
- return os << "{{closure " << sym.s << "}}";
+ return os << "#<closure " << sym.s << ">";
if (sym.prec < 10)
return os << '(' << sym.s << ')';
else
Modified: pure/trunk/test/test004.log
===================================================================
--- pure/trunk/test/test004.log 2008-09-05 00:44:33 UTC (rev 706)
+++ pure/trunk/test/test004.log 2008-09-05 00:59:21 UTC (rev 707)
@@ -35,15 +35,15 @@
foo 99;
99
foo2 99;
-{{closure bar}} 100
+#<closure bar> 100
foo2 98;
-{{closure bar}} 98
+#<closure bar> 98
foo3 99;
-{{closure bar}}
+#<closure bar>
foo3 99 98;
-{{closure bar}} 98
+#<closure bar> 98
foo3 99 99;
-{{closure bar}} 100
+#<closure bar> 100
loop = loop;
count n/*0:1*/ = ct/*0*/ n/*0:1*/ with ct n/*0:1*/::int = n/*0:1*/ if n/*0:1*/<=0; ct n/*0:1*/::int = ct/*1*/ (n/*0:1*/-1) {
rule #0: ct n::int = n if n<=0
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|