summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c
index 9951685..6337b1d 100644
--- a/src/main.c
+++ b/src/main.c
@@ -107,6 +107,14 @@ tokenize(char *p)
continue;
}
+ if (*p == '#') {
+ char *q = p + 1;
+ while (*p != '\n' && *p != '\0') {
+ p += 1;
+ }
+ printf("%.*s\n", (int)(p - q), q);
+ }
+
if (isspace(*p)) {
p++;
continue;
@@ -677,7 +685,11 @@ static Node *
return_stmt(Token **rest, Token *tok)
{
tok = skip(tok, "return");
- Node *const node = new_unary(NOD_RETURN_STMT, expr(&tok, tok));
+ Node *node;
+ if (equal(tok, ";"))
+ node = new_unary(NOD_RETURN_STMT, new_num(0));
+ else
+ node = new_unary(NOD_RETURN_STMT, expr(&tok, tok));
*rest = skip(tok, ";");
return node;
}