diff --git a/emit/c/emit.c b/emit/c/emit.c index 362a979..ad1bb64 100644 --- a/emit/c/emit.c +++ b/emit/c/emit.c @@ -234,7 +234,7 @@ c_emit_const() void c_emit_print() { - printf("printf(\"%%s\", "); + printf("putchar"); } void @@ -301,4 +301,4 @@ c_emitter() c_emit_open_paren, c_emit_close_paren, }; -} \ No newline at end of file +} diff --git a/parser.c b/parser.c index 1fab57b..44de44c 100644 --- a/parser.c +++ b/parser.c @@ -220,9 +220,14 @@ declaration() } static void print_statement() { + if (emitter.notation == INFIX) { + emitter.emit_print(); + } expression(); consume(TOKEN_SEMICOLON); - emitter.emit_print(); + if (emitter.notation == POSTFIX) { + emitter.emit_print(); + } } static void