public Expression ParseExpression(string expressionCode, string sourceName = null) { if (expressionCode == null) { throw new ArgumentNullException(nameof(expressionCode)); } Internal.DssLexer lexer; using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(expressionCode))) lexer = new Internal.DssLexer(new AntlrInputStream(stream)); var tokens = new CommonTokenStream(lexer); var parser = new Internal.DssParser(tokens); var errorListener = new ErrorListener(sourceName); parser.AddErrorListener(errorListener); var visitor = new Visitors.ExpressionVisitor(null); var expression = visitor.Visit(parser.expression()); return(expression); }
public void ParseInto(DssInstructions dssInstructions, SourceCodeInfo sourceInfo) { if (sourceInfo == null) { throw new ArgumentNullException(nameof(sourceInfo)); } Internal.DssLexer lexer; using (var stream = sourceInfo.GetStream()) lexer = new Internal.DssLexer(new AntlrInputStream(stream)); var tokens = new CommonTokenStream(lexer); var parser = new Internal.DssParser(tokens); var errorListener = new ErrorListener(sourceInfo.SourceName); //parser.RemoveErrorListeners(); parser.AddErrorListener(errorListener); var listener = new StylesheetListener(sourceInfo.SourceName, dssInstructions); listener.EnterStylesheet(parser.stylesheet()); }