diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 14 |
1 files changed, 13 insertions, 1 deletions
@@ -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; } |