Parse `TypeName(arg1, arg2, ...)`
()
| 283 | |
| 284 | /** Parse `TypeName(arg1, arg2, ...)` */ |
| 285 | function parseComp(): ASTNode { |
| 286 | const name = cur().v as string; |
| 287 | adv(); // consume TypeName |
| 288 | eat(T.LParen); |
| 289 | const args: ASTNode[] = []; |
| 290 | while (cur().t !== T.RParen && cur().t !== T.EOF) { |
| 291 | args.push(parseExpr(0)); |
| 292 | if (cur().t === T.Comma) adv(); |
| 293 | } |
| 294 | eat(T.RParen); |
| 295 | return { k: "Comp", name, args }; |
| 296 | } |
| 297 | |
| 298 | /** Parse `[elem1, elem2, ...]` */ |
| 299 | function parseArr(): ASTNode { |