Class: Regexp::Expression::CharacterSet::Range

Inherits:
Subexpression show all
Defined in:
lib/regexp_parser/expression/classes/character_set/range.rb

Instance Attribute Summary

Attributes inherited from Subexpression

#expressions

Instance Method Summary collapse

Methods inherited from Subexpression

#dig, #each_expression, #flat_map, #initialize, #initialize_copy, #inner_match_length, #match_length, #strfregexp_tree, #te, #to_h, #traverse

Methods inherited from Base

#ascii_classes?, #case_insensitive?, #default_classes?, #free_spacing?, #greedy?, #initialize, #initialize_copy, #match, #match?, #multiline?, #possessive?, #quantify, #quantity, #reluctant?, #repetitions, #strfregexp, #to_h, #to_re, #unicode_classes?, #unquantified_clone

Methods included from Shared

#==, #base_length, #coded_offset, #full_length, included, #initialize_copy, #is?, #nesting_level=, #offset, #one_of?, #quantified?, #quantifier_affix, #terminal?, #to_s, #token_class, #type?

Constructor Details

This class inherits a constructor from Regexp::Expression::Subexpression

Instance Method Details

#<<(exp) ⇒ Object



9
10
11
12
13
# File 'lib/regexp_parser/expression/classes/character_set/range.rb', line 9

def <<(exp)
  complete? and raise Regexp::Parser::Error,
    "Can't add more than 2 expressions to a Range"
  super
end

#complete?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/regexp_parser/expression/classes/character_set/range.rb', line 15

def complete?
  count == 2
end

#partsObject



19
20
21
# File 'lib/regexp_parser/expression/classes/character_set/range.rb', line 19

def parts
  intersperse(expressions, text.dup)
end

#starts_atObject Also known as: ts



4
5
6
# File 'lib/regexp_parser/expression/classes/character_set/range.rb', line 4

def starts_at
  expressions.first.starts_at
end