class TwitterCldr::Resources::RegexpAstGenerator

Public Class Methods

generate(regexp_str) click to toggle source
# File lib/twitter_cldr/resources/regexp_ast_generator.rb, line 14
def generate(regexp_str)
  tree = Regexp::Parser.parse(regexp_str)
  walk(tree)
end

Private Class Methods

class_for(klass) click to toggle source
# File lib/twitter_cldr/resources/regexp_ast_generator.rb, line 31
def class_for(klass)
  TwitterCldr::Utils::RegexpAst.const_get(
    klass.class.to_s.split("::").last.to_sym
  )
end
walk(node) click to toggle source
# File lib/twitter_cldr/resources/regexp_ast_generator.rb, line 21
def walk(node)
  expressions = if node.respond_to?(:expressions)
    node.expressions.map { |expr| walk(expr) }
  else
    []
  end

  class_for(node).from_parser_node(node, expressions)
end