public Document Build(string data)
 {
     var stream = new MemoryStream(Encoding.UTF8.GetBytes(data));
     var reader = new StreamReader(stream);
     var input = new AntlrInputStream(reader);
     var lexer = new GraphQLLexer(input);
     var tokens = new CommonTokenStream(lexer);
     var parser = new GraphQLParser(tokens);
     var documentTree = parser.document();
     var vistor = new GraphQLVisitor();
     return vistor.Visit(documentTree) as Document;
 }
        public Document Build(string data)
        {
            var stream       = new MemoryStream(Encoding.UTF8.GetBytes(data));
            var reader       = new StreamReader(stream);
            var input        = new AntlrInputStream(reader);
            var lexer        = new GraphQLLexer(input);
            var tokens       = new CommonTokenStream(lexer);
            var parser       = new GraphQLParser(tokens);
            var documentTree = parser.document();
            var vistor       = new GraphQLVisitor();

            return(vistor.Visit(documentTree) as Document);
        }
        private static Document Build(
            AntlrDocumentBuilder antlrDocumentBuilder,
            string data )
        {
            using( MemoryStream memoryStream = new MemoryStream( Encoding.UTF8.GetBytes( data ) ) )
            using( StreamReader streamReader = new StreamReader( memoryStream ) )
            {
                AntlrInputStream inputStream = new AntlrInputStream( streamReader );

                GraphQLLexer lexer = new GraphQLLexer( inputStream );
                if( antlrDocumentBuilder.LexerErrorListeners != null )
                {
                    lexer.RemoveErrorListeners();
                    antlrDocumentBuilder.LexerErrorListeners.Apply( x => lexer.AddErrorListener( x ) );
                }

                CommonTokenStream tokenStream = new CommonTokenStream( lexer );
                GraphQLParser parser = new GraphQLParser( tokenStream );
                if( antlrDocumentBuilder.ParserErrorListeners != null )
                {
                    parser.RemoveErrorListeners();
                    antlrDocumentBuilder.ParserErrorListeners.Apply( x => parser.AddErrorListener( x ) );
                }

                GraphQLVisitor vistor = new GraphQLVisitor();

                return vistor.Visit( parser.document() ) as Document;
            }
            
        }