I have released a new version of SGFC the SGF syntax checker and
reference implementation of the SGF specification.
Download from: http://www.red-bean.com/sgf/sgfc/
I have also provided precompiled binaries for Windows (thanks to SunXi)
and Linux i386.
Changes since V1.14:
- added option -r (restrictive checking)
- added option -z (reorder variations)
- added long options --help and --version (patch by Thien-Thi Nguyen)
- Go: FF4 style pass moves '' in old FF formats are now corrected
- tries to be more forgiving of missing ';' and missing '(' characters.
See examples for error 66 and 67.
- if property has too many values, then empty values are deleted prior
to non-empty ones now (e.g. PW[white] becomes PW[white] instead of
- BUGFIX: RE[W++1.0] is flagged as an error now
(reported by Matthias Krings)
- some code cleanup so that strict compilers issue no warnings and
compiling with C++ compilers works
About the new options:
Option -r: Enable restrictive checking.
If this option is set then SGFC is even more pedantic than usual.
It is designed to flag all kind of bad style or uncommon characteristics
that can cause problems with applications just able to deal with common
cases. For example, if the SGF file contains more than one game tree
SGFC now issues an error instead of a warning.
Furthermore for Go GM games it is checked that no two successive
moves have the same color, that not setup (AB/AW/AE) occurs in the main
branch apart from the root node, and that the HA property is set correctly.
Option -z: Reverse ordering of variations.
This option fixes bad style SGF files, where the main line of the game
is not in the main branch (variation 'A'), but instead is the last
variation. Effectively, variations A,B,C,D are reordered as D,C,B,A.
The function cannot reorder more than 100 variations of a single node.
If this limit is too low for you, then you need to set
MAX_REORDER_VARIATIONS in all.h to a higher value and recompile SGFC.