diff options
| author | gingerBill <bill@gingerbill.org> | 2022-08-01 15:24:17 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2022-08-01 15:24:17 +0100 |
| commit | 0ec4d97bfdad38a357c479230fb9ffbc9107b331 (patch) | |
| tree | 6ef13bf19a3c8bfd41e57b1f72efd218de5e35bf | |
| parent | 97acc57649924e3ce1c9a3c8d18f954df9d24bb1 (diff) | |
Correct parser logic for `is_token_field_prefix`
| -rw-r--r-- | core/odin/parser/parser.odin | 11 |
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) { |