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
30
# File 'lib/js_regex/converter/context.rb', line 21

def initialize
  self.buffered_set_members = []
  self.buffered_set_extractions = []
  self.captured_group_count = 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_group_countObject

Returns the value of attribute captured_group_count.



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

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

#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



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

def close_set
  self.set_level -= 1
end

#negate_setObject



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

def negate_set
  self.negative_set_levels |= [set_level]
end

#negative_set?(level = set_level) ⇒ Boolean

Returns:

  • (Boolean)


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

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

#nested_negation?Boolean

Returns:

  • (Boolean)


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

def nested_negation?
  set_level > 1 && negative_set?
end

#open_setObject

set context



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

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)


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

def valid?
  !negative_lookbehind
end