summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <ssp@redhat.com>2012-06-14 14:50:38 -0400
committerSøren Sandmann Pedersen <ssp@redhat.com>2012-06-14 19:31:39 -0400
commit797b22036e745df93aa73a78e2a0ed6698836b47 (patch)
treee22099819661f10ca5afc4975f08dcb253acd2f1
parent0e3b4a4c09cbf63cd6399f58e849c8a5f07fdcc0 (diff)
Prettier printing
-rw-r--r--examples/pc.nl14
-rw-r--r--interpret.c2
-rw-r--r--util.c32
3 files changed, 23 insertions, 25 deletions
diff --git a/examples/pc.nl b/examples/pc.nl
index ba10f0b..5a1243a 100644
--- a/examples/pc.nl
+++ b/examples/pc.nl
@@ -67,7 +67,7 @@ thread_exit()
n_done: int32;
-t1()
+t1 ()
{
thread_fork (fn () { t2 ("t2:1"); });
@@ -79,25 +79,24 @@ t1()
thread_yield();
}
- print "t1 is done, forking some more t2s";
+ print "done: t1, forking some more t2s";
thread_fork (fn() { t2 ("t2:2"); });
thread_fork (fn() { t2 ("t2:3"); });
n_done++;
thread_exit();
}
-t2 (s: string)
+t2 (name: string)
{
for (i := 0; i < 7; ++i)
{
- print s;
+ print name, 12;
if (i % 2 == 0)
thread_yield();
}
- print s;
- print "is done";
+ print "done:", name;
n_done++;
thread_exit();
}
@@ -117,5 +116,4 @@ for (;;)
/* Once the last thread exits, it will go here */
@process_exit:
- print n_done;
- print "process done";
+ print n_done, "threads finished";
diff --git a/interpret.c b/interpret.c
index 74f036f..c899371 100644
--- a/interpret.c
+++ b/interpret.c
@@ -299,7 +299,7 @@ interpret (ast_t *ast)
g_print ("%s", (char *)val.pointer_val);
if (i < current->print.n_exprs - 1)
- g_print (", ");
+ g_print (" ");
}
g_print ("\n");
break;
diff --git a/util.c b/util.c
index 0262cfe..2959a8d 100644
--- a/util.c
+++ b/util.c
@@ -382,50 +382,50 @@ value_to_string (value_t *val, ast_type_spec_t *type)
switch (type->common.type)
{
case AST_INT32_TYPE:
- return g_strdup_printf ("int32 %d", val->int32_val);
+ return g_strdup_printf ("%d", val->int32_val);
break;
case AST_LABEL_TYPE:
- return g_strdup_printf ("label %p\n", val->label_val.label);
+ return g_strdup_printf ("%p\n", val->label_val.label);
break;
case AST_ARRAY_TYPE:
- return g_strdup_printf ("array <%p>", val->pointer_val);
+ return g_strdup_printf ("<array %p>", val->pointer_val);
break;
case AST_DOUBLE_TYPE:
- return g_strdup_printf ("double %f", val->double_val);
+ return g_strdup_printf ("%f", val->double_val);
break;
case AST_STRING_TYPE:
- return g_strdup_printf ("string %s", (char *)val->pointer_val);
+ return g_strdup_printf ("%s", (char *)val->pointer_val);
break;
case AST_BOOL_TYPE:
- return g_strdup_printf ("bool %s", val->bool_val ? "true" : "false");
- break;
-
- case AST_IDENTIFIER_TYPE:
- case AST_INFERRED_TYPE:
- return g_strdup ("unknown type (this is a bug)");
+ return g_strdup_printf ("%s", val->bool_val ? "true" : "false");
break;
case AST_VOID_TYPE:
- return g_strdup_printf ("void");
+ return g_strdup_printf ("<void>");
break;
case AST_OBJECT_TYPE:
- return g_strdup_printf ("class %s [object %p]",
- type->object.class->name, val->pointer_val);
+ return g_strdup_printf ("<object %p of type %s>",
+ val->pointer_val, type->object.class->name);
break;
case AST_NULL_TYPE:
- return g_strdup_printf ("(null) [object %p]", val->pointer_val);
+ return g_strdup_printf ("<null: %p>", val->pointer_val);
break;
case AST_FUNCTION_TYPE:
return g_strdup_printf (
- "function %s", val->closure_val.function->name);
+ "<function %s>", val->closure_val.function->name);
+ break;
+
+ case AST_IDENTIFIER_TYPE:
+ case AST_INFERRED_TYPE:
+ /* These shouldn't happen, so just fall through to the default return */
break;
}