private void MyParseMethod(string path)
        {
            var          stream = CharStreams.fromPath(path);
            ITokenSource lexer  = new DOTLexer(stream);
            ITokenStream tokens = new CommonTokenStream(lexer);
            var          parser = new DOTParser(tokens)
            {
                BuildParseTree = true
            };
            IParseTree tree    = parser.graph();
            var        printer = new KeyPrinter();

            printer.RuleMoved += CheckState;
            printer.Terminal  += TerminalHandler;
            ParseTreeWalker.Default.Walk(printer, tree);
        }
Beispiel #2
0
        public bool ParseValid(string text)
        {
            //var inputStream = new StreamReader(Console.OpenStandardInput());
            var input  = new AntlrInputStream(text);
            var lexer  = new DOTLexer(input);
            var tokens = new CommonTokenStream(lexer);
            var parser = new DOTParser(tokens);

            parser.RemoveErrorListeners();

            var errorListener = new ErrorListener(_errorHandler);

            parser.AddErrorListener(errorListener);

            IParseTree tree = parser.graph();
            var        tmp  = tree.ToStringTree(parser);

//            Console.WriteLine(tree.ToStringTree(parser));
//            CalculatorVisitor visitor = new CalculatorVisitor();
//            Console.WriteLine(visitor.Visit(tree));

            return(!errorListener.HasParserErrors);
        }