sgf-parser 0.4.0

A library for parsing SGF files
Documentation

Build Status Crate

SGF Parser

A SGF Parser for Rust. Supports all SGF properties, and tree branching.

Using pest for the actual parsing part.

Example usage

use sgf_parser::*;

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

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());
});

let sgf_string: String = tree.into();
assert_eq!(sgf_source, sgf_string());