public Node ParseQLSSheet(string qlsSheetText) { QLSParser parser = SetupParser(qlsSheetText); var visitor = new ParseTreeVisitor(); return(visitor.Visit(parser.stylesheet())); }
public StylesheetTask Process(StylesheetTask input) { QLSParser parser = SetupParser(input.StylesheetText); var visitor = new ParseTreeVisitor(); input.Ast = visitor.Visit(parser.stylesheet()); return(input); }
private QLSParser CreateParser(string input) { var inputStream = new AntlrInputStream(input); var lexer = new QLSLexer(inputStream); var tokens = new CommonTokenStream(lexer); var parser = new QLSParser(tokens); AddErrorListener(parser); return(parser); }
public StyleSheet ParseQLSStream(TextReader reader) { if (reader == null) { throw new ArgumentNullException("reader"); } var inputStream = new AntlrInputStream(reader); var lexer = new QLSLexer(inputStream); var tokens = new CommonTokenStream(lexer); var parser = new QLSParser(tokens); var visitor = new StyleSheetBuilder(); return visitor.Visit(parser.stylesheet()); }
private void ParseFile(string inputFile) { var fileContent = File.ReadAllText(inputFile); try { var astForm = QLParser.ParseString(fileContent); var messages = ValidateForm(astForm); if (AnyErrors(messages)) { _view.SetErrors(messages.Errors); return; } _executor = new QLExecutor(astForm); var qlsFileLocation = inputFile + ".qls"; IQuestionFormRenderer renderer = new QLRenderer(_executor); if (File.Exists(qlsFileLocation)) { var styleSheet = QLSParser.ParseString(File.ReadAllText(qlsFileLocation)); messages.Add(ValidateStyleSheet(styleSheet, astForm)); if (AnyErrors(messages)) { _view.SetErrors(messages.Errors); return; } renderer = new QLSRenderer(_executor, styleSheet); } _view.SetFormControl(renderer.Render()); _view.SetWarnings(messages.Warnings); } catch (QLParseException exception) { _view.SetErrors(exception.Exceptions); } }
private void AddErrorListener(QLSParser parser) { parser.RemoveErrorListeners(); parser.AddErrorListener(new AntlrErrorListener(Messages)); }