in lib/twitter_cldr/parsers/unicode_regex/character_class.rb [108:138]
def evaluate(node)
case node
when UnaryOperator, BinaryOperator
case node.operator
when :negate
TwitterCldr::Shared::UnicodeRegex.valid_regexp_chars.subtract(
evaluate(node.child)
)
when :union, :pipe
evaluate(node.left).union(
evaluate(node.right)
)
when :dash
evaluate(node.left).difference(
evaluate(node.right)
)
when :ampersand
evaluate(node.left).intersection(
evaluate(node.right)
)
end
else
if node
node.to_set
else
TwitterCldr::Utils::RangeSet.new([])
end
end
end