aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaytan <laytanlaats@hotmail.com>2025-07-04 19:02:16 +0200
committerGitHub <noreply@github.com>2025-07-04 19:02:16 +0200
commit9da667b95fb9d4c5bc817723e58cc8f26d011299 (patch)
treeccf57f799b99a5c416819be1a6b9ae6d1e56ff56
parent1a4139b25c8d7ed780641a94ef628e8867a5e332 (diff)
parentbfb70baa391f67fb8ba4af1bc141e7b4ce828ee1 (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.odin9
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)