aboutsummaryrefslogtreecommitdiff
path: root/src/parser.c
diff options
context:
space:
mode:
authorGinger Bill <bill@gingerbill.org>2017-01-27 12:43:01 +0000
committerGinger Bill <bill@gingerbill.org>2017-01-27 12:43:01 +0000
commitd3d3bfd4557c23da58a33066c4a7e5042435829d (patch)
tree1c9be3f5fdc3930d3933c46cca796502c5b4ca2f /src/parser.c
parentce3582fd898508719a38e4d59e97aa7f868f89af (diff)
Fix utf8 stuff, Allow _ in numbers, Begin writing next demo code.
Diffstat (limited to 'src/parser.c')
-rw-r--r--src/parser.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/parser.c b/src/parser.c
index c208a260f..f8a732fb4 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -1770,11 +1770,7 @@ AstNode *parse_operand(AstFile *f, bool lhs) {
case Token_Hash: {
Token token = expect_token(f, Token_Hash);
Token name = expect_token(f, Token_Ident);
- if (str_eq(name.string, str_lit("file"))) {
- return make_basic_directive(f, token, name.string);
- } else if (str_eq(name.string, str_lit("line"))) {
- return make_basic_directive(f, token, name.string);
- } else if (str_eq(name.string, str_lit("run"))) {
+ if (str_eq(name.string, str_lit("run"))) {
AstNode *expr = parse_expr(f, false);
operand = make_run_expr(f, token, name, expr);
if (unparen_expr(expr)->kind != AstNode_CallExpr) {
@@ -1782,6 +1778,9 @@ AstNode *parse_operand(AstFile *f, bool lhs) {
operand = make_bad_expr(f, token, f->curr_token);
}
warning(token, "#run is not yet implemented");
+ } else if (str_eq(name.string, str_lit("file"))) { return make_basic_directive(f, token, name.string);
+ } else if (str_eq(name.string, str_lit("line"))) { return make_basic_directive(f, token, name.string);
+ } else if (str_eq(name.string, str_lit("procedure"))) { return make_basic_directive(f, token, name.string);
} else {
operand = make_tag_expr(f, token, name, parse_expr(f, false));
}