File: converter.rb

package info (click to toggle)
ruby-js-regex 3.8.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 164 kB
  • sloc: ruby: 1,002; makefile: 3
file content (40 lines) | stat: -rw-r--r-- 1,138 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class JsRegex
  module Converter
    Dir[File.join(__dir__, 'converter', '*.rb')].sort.each do |file|
      require file
    end

    MAP = Hash.new(UnsupportedTokenConverter).merge(
      anchor:      AnchorConverter,
      assertion:   AssertionConverter,
      backref:     BackreferenceConverter,
      conditional: ConditionalConverter,
      escape:      EscapeConverter,
      expression:  SubexpressionConverter,
      free_space:  FreespaceConverter,
      group:       GroupConverter,
      keep:        KeepConverter,
      literal:     LiteralConverter,
      meta:        MetaConverter,
      nonproperty: PropertyConverter,
      property:    PropertyConverter,
      set:         SetConverter,
      type:        TypeConverter
    ).freeze

    class << self
      def convert(exp, context = nil)
        self.for(exp).convert(exp, context || Context.new)
      end

      def for(expression)
        MAP[expression.type].new
      end

      # Legacy method. Remove in v4.0.0.
      def surrogate_pair_limit=(_arg)
        warn '#surrogate_pair_limit= is deprecated and has no effect anymore.'
      end
    end
  end
end