public DeveroomGherkinDocument Parse(TextReader featureFileReader, string sourceFilePath) { var tokenScanner = (ITokenScanner) new HotfixTokenScanner(featureFileReader); var tokenMatcher = new TokenMatcher(DialectProvider); _astBuilder = new DeveroomGherkinAstBuilder(sourceFilePath, () => tokenMatcher.CurrentDialect); var parser = new InternalParser(_astBuilder, AstBuilder.RecordStateForLine, _monitoringService); var gherkinDocument = parser.Parse(tokenScanner, tokenMatcher); CheckSemanticErrors(gherkinDocument); return(gherkinDocument); }
private void ParseWithErrorHandling(Action <Parser> doParsing, IAstBuilder <RuleSet> astBuilder = null) { var parser = astBuilder == null ? new Parser() : new Parser(astBuilder); parser.StopAtFirstError = stopAtFirstError; try { doParsing(parser); } catch (CompositeParserException parserEx) { parsingError = parserEx; Console.WriteLine(parsingError.GetErrorMessage()); } catch (ParserException ex) { parsingError = new CompositeParserException(new[] { ex }); Console.WriteLine(parsingError.GetErrorMessage()); } catch (Exception ex) { throw new InvalidOperationException("unhandled parsing error", ex); } }
protected virtual AssociativeNode BuildAstNode(IAstBuilder builder, List<AssociativeNode> inputAstNodes) { return builder.Build(this, inputAstNodes); }
public InternalParser(IAstBuilder <DeveroomGherkinDocument> astBuilder, Action <int, int> recordStateForLine, IMonitoringService monitoringService) : base(astBuilder) { _recordStateForLine = recordStateForLine; _monitoringService = monitoringService; }
public Parser(IAstBuilder <GherkinDocument> astBuilder) : base(astBuilder) { }
public Parser(IAstBuilder <Feature> astBuilder) : base(astBuilder) { }
public QuestionnaireAstCreator(IAstBuilder astBuilder) { m_astBuilder = astBuilder; }
public Parser(IAstBuilder <RuleSet> astBuilder) : base(astBuilder) { }
public GherkinEditorParser(IAstBuilder <GherkinDocument> astBuilder) : base(astBuilder) { _astBuilder = astBuilder as GherkinTokenTagBuilder; }
public CucumberExpressionsParser(IAstBuilder <T> astBuilder) { this.astBuilder = astBuilder; }
public Parser(IScanner scanner, IAstBuilder astBuilder) { _scanner = scanner; _astBuilder = astBuilder; }
public QueryReader(IInterpreterRepository interpreterRepository, IAstBuilder astBuilder) { this.interpreterRepository = interpreterRepository; this.astBuilder = astBuilder; }