parseMultiGamePgn static method
List<PgnGame<PgnNodeData> >
parseMultiGamePgn(
- String pgn, {
- PgnHeaders initHeaders() = defaultHeaders,
Parse a multi game PGN string.
Returns a list of PgnGame.
Provide a optional function initHeaders to create different headers other than the default
The parser will interpret any input as a PGN, creating a tree of syntactically valid (but not necessarily legal) moves, skipping any invalid tokens.
Implementation
static List<PgnGame<PgnNodeData>> parseMultiGamePgn(String pgn,
{PgnHeaders Function() initHeaders = defaultHeaders}) {
final multiGamePgnSplit = RegExp(r'\n\s+(?=\[)');
final List<PgnGame<PgnNodeData>> games = [];
final pgnGames = pgn.split(multiGamePgnSplit);
for (final pgnGame in pgnGames) {
final List<PgnGame<PgnNodeData>> parsedGames = [];
_PgnParser((PgnGame<PgnNodeData> game) {
parsedGames.add(game);
}, initHeaders)
.parse(pgnGame);
if (parsedGames.isNotEmpty) {
games.add(parsedGames[0]);
}
}
return games;
}