class Cucumber::CucumberExpressions::CucumberExpressionParser
def parse_between(type, begin_token, end_token, parsers)
def parse_between(type, begin_token, end_token, parsers) lambda do |expression, tokens, current| unless looking_at(tokens, current, begin_token) return 0, nil end sub_current = current + 1 consumed, ast = parse_tokens_until(expression, parsers, tokens, sub_current, [end_token, TokenType::END_OF_LINE]) sub_current += consumed # endToken not found unless looking_at(tokens, sub_current, end_token) raise MissingEndToken.new(expression, begin_token, end_token, tokens[current]) end # consumes endToken start = tokens[current].start _end = tokens[sub_current].end consumed = sub_current + 1 - current ast = [Node.new(type, ast, nil, start, _end)] return consumed, ast end end