WHITESPACE = _{ " " | NEWLINE} game_tree = { "(" ~ sequence? ~ game_tree* ~ ")"} sequence = { node{1,} } node = { ";" ~ property* } property = { property_identifier ~ property_value+ } property_identifier = { ('A'..'Z' | 'a'..'z')+ } property_value = ${ "[" ~ inner ~ "]" } inner = @{ char* } char = { "\\" ~ "]" | !("]") ~ ANY }