class TwitterCldr::Parsers::UnicodeRegexParser::CharacterRange

Regex character range eg. a-z or 0-9 Can only exist in character classes

Attributes

final[R]
initial[R]

Public Class Methods

new(initial, final) click to toggle source
# File lib/twitter_cldr/parsers/unicode_regex/character_range.rb, line 16
def initialize(initial, final)
  @initial = initial
  @final = final
end

Public Instance Methods

codepoints() click to toggle source
# File lib/twitter_cldr/parsers/unicode_regex/character_range.rb, line 36
def codepoints
  to_set.to_full_a
end
to_regexp_str() click to toggle source
# File lib/twitter_cldr/parsers/unicode_regex/character_range.rb, line 40
def to_regexp_str
  set_to_regex(to_set)
end
to_s() click to toggle source
# File lib/twitter_cldr/parsers/unicode_regex/character_range.rb, line 44
def to_s
  "#{initial.to_s}-#{final.to_s}"
end
to_set() click to toggle source
# File lib/twitter_cldr/parsers/unicode_regex/character_range.rb, line 30
def to_set
  TwitterCldr::Utils::RangeSet.new(
    [initial.to_set.to_full_a.first..final.to_set.to_full_a.first]
  )
end
type() click to toggle source

Unfortunately, due to the ambiguity of having both character ranges and set operations in the same syntax (which both use the “-” operator and square brackets), we have to treat CharacterRange as both a token and an operand. This type method helps it behave like a token.

# File lib/twitter_cldr/parsers/unicode_regex/character_range.rb, line 26
def type
  :character_range
end