@@ -125,10 +125,15 @@ Decl: Node<Declaration> = {
125
125
<t:TypeDecl> => t,
126
126
}
127
127
128
- // Entity := 'entity' Idents ['in' EntOrTypes] [['='] RecType] ';'
128
+ // Entity := 'entity' Idents ['in' EntOrTypes] [['='] RecType] ';' <r:@R>
129
129
Entity: Node<Declaration> = {
130
- <l:@L> ENTITY <ets: Idents> <ps:(IN <EntTypes>)?> <ds:("="? "{" <AttrDecls?> "}")?> <ts:(TAGS <Type>)?> ";" <r:@R>
131
- => Node::with_source_loc(Declaration::Entity(EntityDecl { names: ets, member_of_types: ps.unwrap_or_default(), attrs: ds.map(|ds| ds.unwrap_or_default()).unwrap_or_default(), tags: ts }), Loc::new(l..r, Arc::clone(src))),
130
+ <l1:@L> ENTITY <ets: Idents> <ps:(IN <EntTypes>)?> <l2:@L> <ds:("="? "{" <AttrDecls?> "}")?> <r2:@R> <ts:(TAGS <Type>)?> ";" <r1:@R>
131
+ => Node::with_source_loc(Declaration::Entity(EntityDecl {
132
+ names: ets,
133
+ member_of_types: ps.unwrap_or_default(),
134
+ attrs: Node::with_source_loc(ds.map(|ds| ds.unwrap_or_default()).unwrap_or_default(), Loc::new(l2..r2, Arc::clone(src))),
135
+ tags: ts,
136
+ }), Loc::new(l1..r1, Arc::clone(src))),
132
137
}
133
138
134
139
// Action := 'action' Names ['in' QualNameOrNames]
@@ -175,18 +180,18 @@ AppDecls: Node<NonEmpty<Node<AppDecl>>> = {
175
180
ds,
176
181
Loc::new(l..r, Arc::clone(src)))
177
182
},
178
- <l :@L> CONTEXT ":" "{" <attrs:AttrDecls?> "}" ","? <r :@R>
183
+ <l1 :@L> CONTEXT ":" <l2:@L> "{" <attrs:AttrDecls?> "}" <r2:@R> ","? <r1 :@R>
179
184
=>
180
185
Node::with_source_loc(
181
- nonempty![Node::with_source_loc(AppDecl::Context(Either::Right(attrs.unwrap_or_default())) , Loc::new(l..r , Arc::clone(src)))],
182
- Loc::new(l..r , Arc::clone(src))),
183
- <l :@L> CONTEXT ":" "{" <attrs:AttrDecls?> "}" "," <r :@R> <mut ds: AppDecls>
186
+ nonempty![Node::with_source_loc(AppDecl::Context(Either::Right(Node::with_source_loc( attrs.unwrap_or_default(), Loc::new(l2..r2, Arc::clone(src))))) , Loc::new(l1..r1 , Arc::clone(src)))],
187
+ Loc::new(l1..r1 , Arc::clone(src))),
188
+ <l1 :@L> CONTEXT ":" <l2:@L> "{" <attrs:AttrDecls?> "}" <r2:@R> "," <r1 :@R> <mut ds: AppDecls>
184
189
=> {
185
190
let (mut ds, _) = ds.into_inner();
186
- ds.insert(0, Node::with_source_loc(AppDecl::Context(Either::Right(attrs.unwrap_or_default())) , Loc::new(l..r , Arc::clone(src))));
191
+ ds.insert(0, Node::with_source_loc(AppDecl::Context(Either::Right(Node::with_source_loc( attrs.unwrap_or_default(), Loc::new(l2..r2, Arc::clone(src))))) , Loc::new(l1..r1 , Arc::clone(src))));
187
192
Node::with_source_loc(
188
193
ds,
189
- Loc::new(l..r , Arc::clone(src)))
194
+ Loc::new(l1..r1 , Arc::clone(src)))
190
195
},
191
196
}
192
197
0 commit comments