Exemple #1
0
        public static void Main(string[] args)
        {
            try
            {
                StreamReader input = new StreamReader(args[0]);
//                AntlrInputStream inputStream = new AntlrInputStream(input);
                UnbufferedCharStream inputStream = new UnbufferedCharStream(input);
                FpxLexer             fpxLexer    = new FpxLexer(inputStream);
                fpxLexer.TokenFactory = new CommonTokenFactory(true);
//                CommonTokenStream commonTokenStream = new CommonTokenStream(fpxLexer);
                UnbufferedTokenStream commonTokenStream = new UnbufferedTokenStream(fpxLexer);
                FpxParser             fpxParser         = new FpxParser(commonTokenStream);
//                fpxParser.ErrorHandler = new BailErrorStrategy();
//                fpxParser.BuildParseTree = false;
                List <string>       Errors         = new List <string>();
                GatherErrorListener gErrorListener = new GatherErrorListener(Errors);
                fpxParser.RemoveErrorListeners();
                fpxParser.AddErrorListener(gErrorListener);

                FpxParser.PxfileContext pxFileContext = fpxParser.pxfile();
                FpxVisitor visitor = new FpxVisitor(Errors);

                if (!gErrorListener.AnyNonRecoverableErrors)
                {
                    Console.WriteLine(visitor.Visit(pxFileContext));
                }
                DisplayErrors(Errors);
            } // try
            catch (Exception _e)
            {
                Console.WriteLine("Error: " + _e);
                Console.WriteLine("Error: " + _e.StackTrace);
            } // catch
        }     // Main
Exemple #2
0
        static void TryFile(string fn)
        {
            var str      = new UnbufferedCharStream(new StreamReader(fn));
            var lexer    = new AbcLexer(str);
            var tokens   = new UnbufferedTokenStream(lexer);
            var parser   = new AbcParser(tokens);
            var listener = new ErrorListener <IToken>(parser, lexer, tokens);

            parser.AddErrorListener(listener);
            lexer.AddErrorListener(new ErrorListener <int>(parser, lexer, tokens));
            parser.BuildParseTree = false;
            lexer.TokenFactory    = new MyCTF();
            var tree = parser.file();

            if (listener.had_error)
            {
                System.Console.WriteLine("error in parse.");
            }
            else
            {
                System.Console.WriteLine("parse completed.");
            }
        }
Exemple #3
0
        public void SetSourceFile(string filename)
        {
            var stream = new UnbufferedCharStream(new StreamReader(filename, Encoding.Default, true));

            Lexer = LexerConstructor(stream);
        }