[][src]Crate sgf_parser

SGF Parser for Rust

A sgf parser for rust. Supports all SGF properties, and tree branching.

Using pest for the actual parsing part.

Coming features

  • reading marks
  • support converting back to SGF

Example usage

use sgf_parser::*;

let tree: Result<GameTree, SgfError> = parse("(;EV[event]PB[black]PW[white]C[comment];B[aa])");

let tree = tree.unwrap();
let unknown_nodes = tree.get_unknown_nodes();
assert_eq!(unknown_nodes.len(), 0);

let invalid_nodes = tree.get_invalid_nodes();
assert_eq!(invalid_nodes.len(), 0);

tree.iter().for_each(|node| {
  assert!(!node.tokens.is_empty());
});

Structs

GameNode

A game node, containing a vector of tokens

GameTree

A game tree, containing it's nodes and possible variations following the last node

SgfError

SGF parsing, or traversal, related errors

Enums

Color

Indicates what color the token is related to

SgfErrorKind

Describes what kind of error we're dealing with

SgfToken

Enum describing all possible SGF Properties

Functions

parse

Main entry point to the library. Parses an SGF string, and returns a GameTree.