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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
# frozen_string_literal: true
module Regexp::Expression
module UnicodeProperty
class Base < Regexp::Expression::Base
def name
text[/\A\\[pP]\{([^}]+)\}\z/, 1]
end
def shortcut
Regexp::Scanner.short_prop_map.key(token.to_s)
end
end
class Alnum < Base; end
class Alpha < Base; end
class Ascii < Base; end
class Blank < Base; end
class Cntrl < Base; end
class Digit < Base; end
class Graph < Base; end
class Lower < Base; end
class Print < Base; end
class Punct < Base; end
class Space < Base; end
class Upper < Base; end
class Word < Base; end
class Xdigit < Base; end
class XPosixPunct < Base; end
class Newline < Base; end
class Any < Base; end
class Assigned < Base; end
module Letter
class Base < UnicodeProperty::Base; end
class Any < Letter::Base; end
class Cased < Letter::Base; end
class Uppercase < Letter::Base; end
class Lowercase < Letter::Base; end
class Titlecase < Letter::Base; end
class Modifier < Letter::Base; end
class Other < Letter::Base; end
end
module Mark
class Base < UnicodeProperty::Base; end
class Any < Mark::Base; end
class Combining < Mark::Base; end
class Nonspacing < Mark::Base; end
class Spacing < Mark::Base; end
class Enclosing < Mark::Base; end
end
module Number
class Base < UnicodeProperty::Base; end
class Any < Number::Base; end
class Decimal < Number::Base; end
class Letter < Number::Base; end
class Other < Number::Base; end
end
module Punctuation
class Base < UnicodeProperty::Base; end
class Any < Punctuation::Base; end
class Connector < Punctuation::Base; end
class Dash < Punctuation::Base; end
class Open < Punctuation::Base; end
class Close < Punctuation::Base; end
class Initial < Punctuation::Base; end
class Final < Punctuation::Base; end
class Other < Punctuation::Base; end
end
module Separator
class Base < UnicodeProperty::Base; end
class Any < Separator::Base; end
class Space < Separator::Base; end
class Line < Separator::Base; end
class Paragraph < Separator::Base; end
end
module Symbol
class Base < UnicodeProperty::Base; end
class Any < Symbol::Base; end
class Math < Symbol::Base; end
class Currency < Symbol::Base; end
class Modifier < Symbol::Base; end
class Other < Symbol::Base; end
end
module Codepoint
class Base < UnicodeProperty::Base; end
class Any < Codepoint::Base; end
class Control < Codepoint::Base; end
class Format < Codepoint::Base; end
class Surrogate < Codepoint::Base; end
class PrivateUse < Codepoint::Base; end
class Unassigned < Codepoint::Base; end
end
class Age < UnicodeProperty::Base; end
class Block < UnicodeProperty::Base; end
class Derived < UnicodeProperty::Base; end
class Emoji < UnicodeProperty::Base; end
class Enumerated < UnicodeProperty::Base; end
class Script < UnicodeProperty::Base; end
end
# alias for symmetry between token symbol and Expression class name
Property = UnicodeProperty
Nonproperty = UnicodeProperty
end # module Regexp::Expression
|