@@ -106,6 +106,21 @@ def _nab_comments(items) -> Comments:
106106 return res
107107
108108
109+ def _line_elements_from_block (block : Block ) -> Seq :
110+ if block .opener != "(" :
111+ raise ValueError (f"Unexpected block opener: { block .opener } " )
112+
113+ eles = Seq .from_delimited_block (block , delimiter = COMMA )
114+ assert isinstance (eles , Seq )
115+ for idx , ele in enumerate (list (eles .items )):
116+ match ele :
117+ case Seq (items = ["-" , "-" , name ]):
118+ assert isinstance (ele , Seq )
119+ eles .items [idx ].items = [Delimiter ("--" ), name ]
120+
121+ return eles
122+
123+
109124def parse_items (items : list [TokenizerItem ]):
110125 if not items :
111126 raise ValueError ("No items provided" )
@@ -151,14 +166,14 @@ def parse_items(items: list[TokenizerItem]):
151166 return ElementList (
152167 comments = comments ,
153168 name = name ,
154- elements = Seq . from_delimited_block (elements_block , delimiter = COMMA ),
169+ elements = _line_elements_from_block (elements_block ),
155170 )
156171
157172 case [Token () as name , ":" , Token ("line" ), "=" , Block (opener = "(" ) as elements_block ]:
158173 return Line (
159174 comments = comments ,
160175 name = name ,
161- elements = Seq . from_delimited_block (elements_block , delimiter = COMMA ),
176+ elements = _line_elements_from_block (elements_block ),
162177 )
163178
164179 case [
@@ -167,12 +182,12 @@ def parse_items(items: list[TokenizerItem]):
167182 Token ("line" ),
168183 Block (opener = "[" ) as multipass ,
169184 "=" ,
170- Block (opener = "(" ) as eles ,
185+ Block (opener = "(" ) as elements_block ,
171186 ] if _is_multipass_marker (multipass ):
172187 return Line (
173188 comments = comments ,
174189 name = name ,
175- elements = Seq . from_delimited_block ( eles , delimiter = COMMA ),
190+ elements = _line_elements_from_block ( elements_block ),
176191 multipass = True ,
177192 )
178193
@@ -182,15 +197,15 @@ def parse_items(items: list[TokenizerItem]):
182197 ":" ,
183198 Token ("line" ),
184199 "=" ,
185- Block (opener = "(" ) as eles ,
200+ Block (opener = "(" ) as elements_block ,
186201 ]:
187202 return Line (
188203 comments = comments ,
189204 name = CallName (
190205 name = Seq .from_item (name ),
191206 args = Seq .from_item (line_args ),
192207 ),
193- elements = Seq . from_delimited_block ( eles , delimiter = COMMA ),
208+ elements = _line_elements_from_block ( elements_block ),
194209 )
195210
196211 case [Token () as name , ":" , Token () as element_type , * rest ]:
0 commit comments