# stage2 parser: split off some SuffixOp AST nodes into separate tags · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/897f23f20ff30e379e8d320cfd0013cb48dcc5b2)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: 897f23f20ff30e379e8d320cfd0013cb48dcc5b2

Requested commit: 897f23f20ff30e379e8d320cfd0013cb48dcc5b2

Commit: 897f23f20ff30e379e8d320cfd0013cb48dcc5b2

Tree: f4dacd6935dd023014c41f45a4632ed95262374a

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

```
stage2 parser: split off some SuffixOp AST nodes into separate tags

These SuffixOp nodes have their own ast.Node tags now:
 * ArrayInitializer
 * ArrayInitializerDot
 * StructInitializer
 * StructInitializerDot

Their sub-expression lists are general-purpose-allocator allocated
and then copied into the arena after completion of parsing.

throughput: 72.9 MiB/s => 74.4 MiB/s
maxrss: 68 KB => 72 KB

The API is also nicer since the sub expression lists are now flat arrays
instead of singly linked lists.

```

## Parents

- [7c2c0e36f8378d8efaf64d859bdffb91007db82a](https://git.cafe/gitcafe/zig/commit/7c2c0e36f8378d8efaf64d859bdffb91007db82a?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/897f23f20ff30e379e8d320cfd0013cb48dcc5b2?format=markdown)
