protected void AssertStates(string syntax, string ast)
        {
            var semantic  = ProduceAst(syntax);
            var formatter = new SemanticFormatter();

            semantic.States.Accept(formatter);
            var result = formatter.GetResult();

            CompressWhiteSpace(result.Replace("\r\n", "\n")).Should().Be(CompressWhiteSpace(ast));
        }
        protected void AssertSyntaxToAstWithDefaultHeaders(string syntax, string ast)
        {
            var semantic  = ProduceAst("initial: s fsm:f actions:a " + syntax);
            var formatter = new SemanticFormatter();

            semantic.States.Accept(formatter);
            var result = formatter.GetResult();

            CompressWhiteSpace(result.Replace("\r\n", "\n")).Should().Be(CompressWhiteSpace(ast));
        }