예제 #1
0
        public static QuestionForm ParseString(string input)
        {
            var errorHandler  = new ParseErrorHandler();
            var errorListener = new QLErrorListener(errorHandler);

            var stream = CharStreams.fromstring(input);
            var lexer  = new QLLexer(stream);

            lexer.RemoveErrorListeners();
            lexer.AddErrorListener(errorListener);
            ITokenStream tokens = new CommonTokenStream(lexer);
            var          parser = new QL(tokens);

            parser.RemoveErrorListeners();
            parser.AddErrorListener(errorListener);
            var form = parser.form().result;

            if (errorHandler.HasErrors)
            {
                errorHandler.ThrowParseException();
            }
            return(form);
        }
예제 #2
0
 public QLErrorListener(ParseErrorHandler errorHandler)
 {
     _errorHandler = errorHandler;
 }