Class: JsRegex::Converter::Context

Inherits:
Object
  • Object
show all
Defined in:
lib/js_regex/converter/context.rb

Overview

Passed among Converters to globalize basic status data.

The Converters themselves are stateless.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeContext

Returns a new instance of Context.



21
22
23
24
25
26
27
28
29
# File 'lib/js_regex/converter/context.rb', line 21

def initialize
  self.buffered_set_members = []
  self.buffered_set_extractions = []
  self.group_level = 0
  self.negative_lookbehind = false
  self.negative_set_levels = []
  self.opened_groups = 0
  self.set_level = 0
end

Instance Attribute Details

#buffered_set_extractionsObject

Returns the value of attribute buffered_set_extractions.



9
10
11
# File 'lib/js_regex/converter/context.rb', line 9

def buffered_set_extractions
  @buffered_set_extractions
end

#buffered_set_membersObject

Returns the value of attribute buffered_set_members.



9
10
11
# File 'lib/js_regex/converter/context.rb', line 9

def buffered_set_members
  @buffered_set_members
end

#group_levelObject

Returns the value of attribute group_level.



9
10
11
# File 'lib/js_regex/converter/context.rb', line 9

def group_level
  @group_level
end

#group_level_for_backreferenceObject

Returns the value of attribute group_level_for_backreference.



9
10
11
# File 'lib/js_regex/converter/context.rb', line 9

def group_level_for_backreference
  @group_level_for_backreference
end

#group_number_for_backreferenceObject

Returns the value of attribute group_number_for_backreference.



9
10
11
# File 'lib/js_regex/converter/context.rb', line 9

def group_number_for_backreference
  @group_number_for_backreference
end

#negative_lookbehindObject

Returns the value of attribute negative_lookbehind.



9
10
11
# File 'lib/js_regex/converter/context.rb', line 9

def negative_lookbehind
  @negative_lookbehind
end

#negative_set_levelsObject

Returns the value of attribute negative_set_levels.



9
10
11
# File 'lib/js_regex/converter/context.rb', line 9

def negative_set_levels
  @negative_set_levels
end

#opened_groupsObject

Returns the value of attribute opened_groups.



9
10
11
# File 'lib/js_regex/converter/context.rb', line 9

def opened_groups
  @opened_groups
end

#previous_quantifier_endObject

Returns the value of attribute previous_quantifier_end.



9
10
11
# File 'lib/js_regex/converter/context.rb', line 9

def previous_quantifier_end
  @previous_quantifier_end
end

#previous_quantifier_subtypeObject

Returns the value of attribute previous_quantifier_subtype.



9
10
11
# File 'lib/js_regex/converter/context.rb', line 9

def previous_quantifier_subtype
  @previous_quantifier_subtype
end

#set_levelObject

Returns the value of attribute set_level.



9
10
11
# File 'lib/js_regex/converter/context.rb', line 9

def set_level
  @set_level
end

Instance Method Details

#close_setObject



58
59
60
# File 'lib/js_regex/converter/context.rb', line 58

def close_set
  self.set_level -= 1
end

#negate_setObject



46
47
48
# File 'lib/js_regex/converter/context.rb', line 46

def negate_set
  self.negative_set_levels |= [set_level]
end

#negative_set?(level = set_level) ⇒ Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/js_regex/converter/context.rb', line 50

def negative_set?(level = set_level)
  negative_set_levels.include?(level)
end

#nested_negation?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/js_regex/converter/context.rb', line 54

def nested_negation?
  set_level > 1 && negative_set?
end

#open_setObject

set context



37
38
39
40
41
42
43
44
# File 'lib/js_regex/converter/context.rb', line 37

def open_set
  self.set_level += 1
  if set_level == 1
    buffered_set_members.clear
    buffered_set_extractions.clear
  end
  self.negative_set_levels -= [set_level]
end

#valid?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/js_regex/converter/context.rb', line 31

def valid?
  !negative_lookbehind
end