Ejemplo n.º 1
0
        private LessNode Parse(string input, Func <LessParser, RuleContext> parseFunc)
        {
            var lexer       = new LessLexer(new AntlrInputStream(input));
            var tokenStream = new CommonTokenStream(lexer);
            var parser      = new LessParser(tokenStream);

            return(parseFunc(parser).Accept(new SyntaxTreeToParseTreeVisitor(tokenStream, isReference: false)));
        }
Ejemplo n.º 2
0
        public Stylesheet Parse(string fileName, Stream input, bool isReference)
        {
            var charStream = new AntlrInputStream(input);
            var lexer      = new LessLexer(charStream);

            var tokenStream = new CommonTokenStream(lexer);

            var parser = new LessParser(tokenStream)
            {
                ErrorHandler = new BailErrorStrategy()
            };

            try {
                var lessStylesheet = parser.stylesheet();

                return((Stylesheet)lessStylesheet.Accept(new SyntaxTreeToParseTreeVisitor(tokenStream, isReference)));
            } catch (ParseCanceledException ex) when(ex.InnerException is InputMismatchException ime)
            {
                throw ParserException.FromToken(fileName, ime.OffendingToken);
            } catch (ParseCanceledException ex) when(ex.InnerException is NoViableAltException nvae)
            {
                throw ParserException.FromToken(fileName, nvae.OffendingToken);
            }
        }