diff options
| author | Laytan <laytanlaats@hotmail.com> | 2025-07-04 19:02:16 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-04 19:02:16 +0200 |
| commit | 9da667b95fb9d4c5bc817723e58cc8f26d011299 (patch) | |
| tree | ccf57f799b99a5c416819be1a6b9ae6d1e56ff56 | |
| parent | 1a4139b25c8d7ed780641a94ef628e8867a5e332 (diff) | |
| parent | bfb70baa391f67fb8ba4af1bc141e7b4ce828ee1 (diff) | |
Merge pull request #5433 from BradLewis/fix/bit-field-docs
Add documentation to Bit_Field_Field when parsing
| -rw-r--r-- | core/odin/parser/parser.odin | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/core/odin/parser/parser.odin b/core/odin/parser/parser.odin index 762410415..27b7edbf6 100644 --- a/core/odin/parser/parser.odin +++ b/core/odin/parser/parser.odin @@ -2923,6 +2923,8 @@ parse_operand :: proc(p: ^Parser, lhs: bool) -> ^ast.Expr { fields: [dynamic]^ast.Bit_Field_Field for p.curr_tok.kind != .Close_Brace && p.curr_tok.kind != .EOF { + docs := p.lead_comment + name := parse_ident(p) expect_token(p, .Colon) type := parse_type(p) @@ -2933,6 +2935,7 @@ parse_operand :: proc(p: ^Parser, lhs: bool) -> ^ast.Expr { if p.curr_tok.kind == .String { tag = expect_token(p, .String) } + ok := allow_token(p, .Comma) field := ast.new(ast.Bit_Field_Field, name.pos, bit_size) @@ -2940,10 +2943,14 @@ parse_operand :: proc(p: ^Parser, lhs: bool) -> ^ast.Expr { field.type = type field.bit_size = bit_size field.tag = tag + field.docs = docs + field.comments = p.line_comment append(&fields, field) - allow_token(p, .Comma) or_break + if !ok { + break + } } close := expect_closing_brace_of_field_list(p) |