class Cucumber::Gherkin::StepsParser
def initialize(builder, language)
def initialize(builder, language) @builder = builder @language = language end
def parse(text)
def parse(text) ast_builder = ::Gherkin::AstBuilder.new token_matcher = ::Gherkin::TokenMatcher.new token_matcher.send(:change_dialect, @language, nil) unless @language == 'en' context = ::Gherkin::ParserContext.new( ::Gherkin::TokenScanner.new(text), token_matcher, [], [] ) parser = ::Gherkin::Parser.new(ast_builder) parser.start_rule(context, :ScenarioDefinition) parser.start_rule(context, :Scenario) scenario = ast_builder.current_node state = 12 token = nil begin token = parser.read_token(context) state = parser.match_token(state, token, context) end until(token.eof?) raise CompositeParserException.new(context.errors) if context.errors.any? @builder.steps(ast_builder.get_steps(scenario)) end