public void NestedDefintion()
        {
            var content   = @"
# Header comment
Document 'Doc1' {

}
";
            var scriptAst = ScriptBlock.Create(content).Ast;
            var visitor   = new LanguageAst(GetContext());

            scriptAst.Visit(visitor);

            Assert.Null(visitor.Errors);

            content   = @"
# Header comment
Document 'Doc1' {
    Document 'Doc2' {

    }
}
";
            scriptAst = ScriptBlock.Create(content).Ast;
            visitor   = new LanguageAst(GetContext());
            scriptAst.Visit(visitor);

            Assert.Single(visitor.Errors);
        }
        public void UnvalidDefinition()
        {
            var content = @"
Document '' {

}

Document {

}

Document 'Doc1';

Document '' {

}

Document 'Doc2' {

}

Document -Name 'Doc3' {

}

Document -Name 'Doc3' -Body {

}

";

            var scriptAst = ScriptBlock.Create(content).Ast;
            var visitor   = new LanguageAst(GetContext());

            scriptAst.Visit(visitor);

            Assert.NotNull(visitor.Errors);
            Assert.Equal(4, visitor.Errors.Count);
        }