diff options
author | Søren Sandmann Pedersen <ssp@redhat.com> | 2012-06-14 14:50:38 -0400 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@redhat.com> | 2012-06-14 19:31:39 -0400 |
commit | 797b22036e745df93aa73a78e2a0ed6698836b47 (patch) | |
tree | e22099819661f10ca5afc4975f08dcb253acd2f1 | |
parent | 0e3b4a4c09cbf63cd6399f58e849c8a5f07fdcc0 (diff) |
Prettier printing
-rw-r--r-- | examples/pc.nl | 14 | ||||
-rw-r--r-- | interpret.c | 2 | ||||
-rw-r--r-- | util.c | 32 |
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; @@ -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; } |