parsePgn static method

PgnGame<PgnNodeData> parsePgn(
  1. String pgn, {
  2. PgnHeaders initHeaders() = defaultHeaders,
})

Parse a PGN string and return a 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 PgnGame<PgnNodeData> parsePgn(String pgn,
    {PgnHeaders Function() initHeaders = defaultHeaders}) {
  final List<PgnGame<PgnNodeData>> games = [];
  _PgnParser((PgnGame<PgnNodeData> game) {
    games.add(game);
  }, initHeaders)
      .parse(pgn);

  if (games.isEmpty) {
    return PgnGame(
        headers: initHeaders(), moves: PgnNode(), comments: const []);
  }
  return games[0];
}