class Cucumber::CucumberExpressions::Token
def self.can_escape(codepoint)
def self.can_escape(codepoint) c = codepoint.chr(Encoding::UTF_8) if c == ' ' # TODO: Unicode whitespace? return true end case c when ESCAPE_CHARACTER true when ALTERNATION_CHARACTER true when BEGIN_PARAMETER_CHARACTER true when END_PARAMETER_CHARACTER true when BEGIN_OPTIONAL_CHARACTER true when END_OPTIONAL_CHARACTER true else false end end
def self.is_escape_character(codepoint)
def self.is_escape_character(codepoint) codepoint.chr(Encoding::UTF_8) == ESCAPE_CHARACTER end
def self.purpose_of(token)
def self.purpose_of(token) case token when TokenType::BEGIN_OPTIONAL return 'optional text' when TokenType::END_OPTIONAL return 'optional text' when TokenType::BEGIN_PARAMETER return 'a parameter' when TokenType::END_PARAMETER return 'a parameter' when TokenType::ALTERNATION return 'alternation' else return '' end end
def self.symbol_of(token)
def self.symbol_of(token) case token when TokenType::BEGIN_OPTIONAL return BEGIN_OPTIONAL_CHARACTER when TokenType::END_OPTIONAL return END_OPTIONAL_CHARACTER when TokenType::BEGIN_PARAMETER return BEGIN_PARAMETER_CHARACTER when TokenType::END_PARAMETER return END_PARAMETER_CHARACTER when TokenType::ALTERNATION return ALTERNATION_CHARACTER else return '' end end
def self.type_of(codepoint)
def self.type_of(codepoint) c = codepoint.chr(Encoding::UTF_8) if c == ' ' # TODO: Unicode whitespace? return TokenType::WHITE_SPACE end case c when ALTERNATION_CHARACTER TokenType::ALTERNATION when BEGIN_PARAMETER_CHARACTER TokenType::BEGIN_PARAMETER when END_PARAMETER_CHARACTER TokenType::END_PARAMETER when BEGIN_OPTIONAL_CHARACTER TokenType::BEGIN_OPTIONAL when END_OPTIONAL_CHARACTER TokenType::END_OPTIONAL else TokenType::TEXT end end
def initialize(type, text, start, ending)
def initialize(type, text, start, ending) @type, @text, @start, @end = type, text, start, ending end
def to_hash
def to_hash { 'type' => @type, 'text' => @text, 'start' => @start, 'end' => @end } end