build method
Builds the expression parser.
Implementation
@useResult
Parser<T> build() {
final primitives = <Parser<T>>[
..._primitives,
..._groups.expand((group) => group.primitives),
];
assert(primitives.isNotEmpty, 'At least one primitive parser expected');
final parser = _groups.fold<Parser<T>>(
buildChoice(primitives),
(parser, group) => group.build(parser),
);
_loopback.set(parser);
return resolve(parser);
}