yafa!
Syntax
[ (Circle) -> [square] -> (Circle) | (Circle) ]
[ (circle) ]
[ <lt1>(self loop) -> <lt1> ]
EXPRESSION = EXPRESSION' ARROW NODE | EXPRESSION' ALTERNATION NODE | STRING
EXPRESSION' = EXPRESSION' ARROW NODE | EXPRESSION' ALTERNATION NODE | NODE
NODE = SQUARE | CIRCLE | ANCHOR
SQUARE = "[" EXPRESSION "] | ANCHOR "[" EXPRESSION "]
ANCHOR = "<" LABEL ">"
ALTERNATION = "|"
ARROW = SARROW | DARROW
SARROW = "->"
DARROW = "=>"
LABEL = r"[\w\d]+"
STRING = LABEL | "\"" ".*" "\""