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.



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

def initialize
  self.buffered_set_members = []
  self.buffered_set_extractions = []
  self.captured_groups = 0
  self.group_count_changed = false
  self.group_level = 0
  self.negative_lookbehind = false
  self.negative_set_levels = []
  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

#captured_groupsObject

Returns the value of attribute captured_groups.



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

def captured_groups
  @captured_groups
end

#group_count_changedObject

Returns the value of attribute group_count_changed.



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

def group_count_changed
  @group_count_changed
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

#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



60
61
62
# File 'lib/js_regex/converter/context.rb', line 60

def close_set
  self.set_level -= 1
end

#negate_setObject



48
49
50
# File 'lib/js_regex/converter/context.rb', line 48

def negate_set
  self.negative_set_levels |= [set_level]
end

#negative_set?(level = set_level) ⇒ Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/js_regex/converter/context.rb', line 52

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

#nested_negation?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/js_regex/converter/context.rb', line 56

def nested_negation?
  set_level > 1 && negative_set?
end

#open_setObject

set context



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

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)


33
34
35
# File 'lib/js_regex/converter/context.rb', line 33

def valid?
  !negative_lookbehind
end