aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-08-01 15:24:17 +0100
committergingerBill <bill@gingerbill.org>2022-08-01 15:24:17 +0100
commit0ec4d97bfdad38a357c479230fb9ffbc9107b331 (patch)
tree6ef13bf19a3c8bfd41e57b1f72efd218de5e35bf
parent97acc57649924e3ce1c9a3c8d18f954df9d24bb1 (diff)
Correct parser logic for `is_token_field_prefix`
-rw-r--r--core/odin/parser/parser.odin11
1 files changed, 6 insertions, 5 deletions
diff --git a/core/odin/parser/parser.odin b/core/odin/parser/parser.odin
index 320db28c1..dc7c7b759 100644
--- a/core/odin/parser/parser.odin
+++ b/core/odin/parser/parser.odin
@@ -1663,19 +1663,20 @@ is_token_field_prefix :: proc(p: ^Parser) -> ast.Field_Flag {
advance_token(p)
return .Auto_Cast
case .Hash:
+ tok: tokenizer.Token
advance_token(p)
- defer advance_token(p)
- #partial switch p.curr_tok.kind {
- case .Ident:
+ tok = p.curr_tok
+ advance_token(p)
+ if tok.kind == .Ident {
for kf in ast.field_hash_flag_strings {
- if p.curr_tok.text == kf.key {
+ if kf.key == tok.text {
return kf.flag
}
}
}
return .Unknown
}
- return .Unknown
+ return .Invalid
}
parse_field_prefixes :: proc(p: ^Parser) -> (flags: ast.Field_Flags) {