protected override Node RunVisitor(Parser parser, ParsingKeeper keeper) { var p = (FieldsParsemes)parser; var v = new FieldsVisitor((GenKeeper)keeper); return(v.Go(p.fieldGen())); }
protected Parsing(string fieldName, //Имя разбираемого поля (для сообщений об ошибках) string fieldValue) //Разбираемое выражение { FieldName = fieldName; var reader = new StringReader(fieldValue); var input = new AntlrInputStream(reader.ReadToEnd()); var lexer = GetLexer(input); var errorLexerListener = new LexerErrorListener(fieldName, fieldValue); lexer.RemoveErrorListeners(); lexer.AddErrorListener(errorLexerListener); var tokens = new CommonTokenStream(lexer); var parser = GetParser(tokens); var errorParserListener = new ParserErrorListener(fieldName); parser.RemoveErrorListeners(); parser.AddErrorListener(errorParserListener); var keeper = new ParsingKeeper(fieldName); ResultTree = RunVisitor(parser, keeper); ErrMess = errorLexerListener.ErrMess + errorParserListener.ErrMess + keeper.ErrMess; }
protected override Node RunVisitor(Parser parser, ParsingKeeper keeper) { return(new RuleVisitor((GenKeeper)keeper).Go(((RuleParser)parser).subTablGen())); }
//Создать и запустить визитор, возвращает дерево разбора protected abstract Node RunVisitor(Parser parser, ParsingKeeper keeper);