| ... | ... | @@ -1 +1,146 @@ |
| 1 | 1 | const std = @import("std"); |
| 2 | const icu = @import("icu"); |
| 3 | |
| 4 | const t = @import("./types.zig"); |
| 5 | |
| 6 | // |
| 7 | // |
| 8 | |
| 9 | export fn u_hasBinaryProperty(cp: u32, prop: t.UProperty) bool { |
| 10 | return switch (prop) { |
| 11 | .UCHAR_ALPHABETIC => icu.hasDerivedCoreProperty(cp, .Alphabetic), |
| 12 | .UCHAR_ASCII_HEX_DIGIT => icu.hasProperty(cp, .ASCII_Hex_Digit), |
| 13 | .UCHAR_BIDI_CONTROL => icu.hasProperty(cp, .Bidi_Control), |
| 14 | .UCHAR_BIDI_MIRRORED => false, // TODO |
| 15 | .UCHAR_DASH => icu.hasProperty(cp, .Dash), |
| 16 | .UCHAR_DEFAULT_IGNORABLE_CODE_POINT => icu.hasDerivedCoreProperty(cp, .Default_Ignorable_Code_Point), |
| 17 | .UCHAR_DEPRECATED => icu.hasProperty(cp, .Deprecated), |
| 18 | .UCHAR_DIACRITIC => icu.hasProperty(cp, .Diacritic), |
| 19 | .UCHAR_EXTENDER => icu.hasProperty(cp, .Extender), |
| 20 | .UCHAR_FULL_COMPOSITION_EXCLUSION => false, // TODO |
| 21 | .UCHAR_GRAPHEME_BASE => icu.hasDerivedCoreProperty(cp, .Grapheme_Base), |
| 22 | .UCHAR_GRAPHEME_EXTEND => icu.hasDerivedCoreProperty(cp, .Grapheme_Extend), |
| 23 | .UCHAR_GRAPHEME_LINK => icu.hasDerivedCoreProperty(cp, .Grapheme_Link), |
| 24 | .UCHAR_HEX_DIGIT => icu.hasProperty(cp, .Hex_Digit), |
| 25 | .UCHAR_HYPHEN => icu.hasProperty(cp, .Hyphen), |
| 26 | .UCHAR_ID_CONTINUE => icu.hasDerivedCoreProperty(cp, .ID_Continue), |
| 27 | .UCHAR_ID_START => icu.hasDerivedCoreProperty(cp, .ID_Start), |
| 28 | .UCHAR_IDEOGRAPHIC => icu.hasProperty(cp, .Ideographic), |
| 29 | .UCHAR_IDS_BINARY_OPERATOR => icu.hasProperty(cp, .IDS_Binary_Operator), |
| 30 | .UCHAR_IDS_TRINARY_OPERATOR => icu.hasProperty(cp, .IDS_Trinary_Operator), |
| 31 | .UCHAR_JOIN_CONTROL => icu.hasProperty(cp, .Join_Control), |
| 32 | .UCHAR_LOGICAL_ORDER_EXCEPTION => icu.hasProperty(cp, .Logical_Order_Exception), |
| 33 | .UCHAR_LOWERCASE => icu.hasDerivedCoreProperty(cp, .Lowercase), |
| 34 | .UCHAR_MATH => icu.hasDerivedCoreProperty(cp, .Math), |
| 35 | .UCHAR_NONCHARACTER_CODE_POINT => icu.hasProperty(cp, .Noncharacter_Code_Point), |
| 36 | .UCHAR_QUOTATION_MARK => icu.hasProperty(cp, .Quotation_Mark), |
| 37 | .UCHAR_RADICAL => icu.hasProperty(cp, .Radical), |
| 38 | .UCHAR_SOFT_DOTTED => icu.hasProperty(cp, .Soft_Dotted), |
| 39 | .UCHAR_TERMINAL_PUNCTUATION => icu.hasProperty(cp, .Terminal_Punctuation), |
| 40 | .UCHAR_UNIFIED_IDEOGRAPH => icu.hasProperty(cp, .Unified_Ideograph), |
| 41 | .UCHAR_UPPERCASE => icu.hasDerivedCoreProperty(cp, .Uppercase), |
| 42 | .UCHAR_WHITE_SPACE => icu.hasProperty(cp, .White_Space), |
| 43 | .UCHAR_XID_CONTINUE => icu.hasDerivedCoreProperty(cp, .XID_Continue), |
| 44 | .UCHAR_XID_START => icu.hasDerivedCoreProperty(cp, .XID_Start), |
| 45 | .UCHAR_CASE_SENSITIVE => false, // TODO |
| 46 | .UCHAR_S_TERM => false, // TODO |
| 47 | .UCHAR_VARIATION_SELECTOR => false, // TODO |
| 48 | .UCHAR_NFD_INERT => false, // TODO |
| 49 | .UCHAR_NFKD_INERT => false, // TODO |
| 50 | .UCHAR_NFC_INERT => false, // TODO |
| 51 | .UCHAR_NFKC_INERT => false, // TODO |
| 52 | .UCHAR_SEGMENT_STARTER => false, // TODO |
| 53 | .UCHAR_PATTERN_SYNTAX => false, // TODO |
| 54 | .UCHAR_PATTERN_WHITE_SPACE => false, // TODO |
| 55 | .UCHAR_POSIX_ALNUM => false, // TODO |
| 56 | .UCHAR_POSIX_BLANK => false, // TODO |
| 57 | .UCHAR_POSIX_GRAPH => false, // TODO |
| 58 | .UCHAR_POSIX_PRINT => false, // TODO |
| 59 | .UCHAR_POSIX_XDIGIT => false, // TODO |
| 60 | .UCHAR_CASED => icu.hasDerivedCoreProperty(cp, .Cased), |
| 61 | .UCHAR_CASE_IGNORABLE => icu.hasDerivedCoreProperty(cp, .Case_Ignorable), |
| 62 | .UCHAR_CHANGES_WHEN_LOWERCASED => icu.hasDerivedCoreProperty(cp, .Changes_When_Lowercased), |
| 63 | .UCHAR_CHANGES_WHEN_UPPERCASED => icu.hasDerivedCoreProperty(cp, .Changes_When_Uppercased), |
| 64 | .UCHAR_CHANGES_WHEN_TITLECASED => icu.hasDerivedCoreProperty(cp, .Changes_When_Titlecased), |
| 65 | .UCHAR_CHANGES_WHEN_CASEFOLDED => icu.hasDerivedCoreProperty(cp, .Changes_When_Casefolded), |
| 66 | .UCHAR_CHANGES_WHEN_CASEMAPPED => icu.hasDerivedCoreProperty(cp, .Changes_When_Casemapped), |
| 67 | .UCHAR_CHANGES_WHEN_NFKC_CASEFOLDED => false, // TODO |
| 68 | .UCHAR_EMOJI => false, // TODO |
| 69 | .UCHAR_EMOJI_PRESENTATION => false, // TODO |
| 70 | .UCHAR_EMOJI_MODIFIER => false, // TODO |
| 71 | .UCHAR_EMOJI_MODIFIER_BASE => false, // TODO |
| 72 | .UCHAR_EMOJI_COMPONENT => false, // TODO |
| 73 | .UCHAR_REGIONAL_INDICATOR => icu.hasProperty(cp, .Regional_Indicator), |
| 74 | .UCHAR_PREPENDED_CONCATENATION_MARK => false, // TODO |
| 75 | .UCHAR_EXTENDED_PICTOGRAPHIC => false, // TODO |
| 76 | .UCHAR_BASIC_EMOJI => false, // TODO |
| 77 | .UCHAR_EMOJI_KEYCAP_SEQUENCE => false, // TODO |
| 78 | .UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE => false, // TODO |
| 79 | .UCHAR_RGI_EMOJI_FLAG_SEQUENCE => false, // TODO |
| 80 | .UCHAR_RGI_EMOJI_TAG_SEQUENCE => false, // TODO |
| 81 | .UCHAR_RGI_EMOJI_ZWJ_SEQUENCE => false, // TODO |
| 82 | .UCHAR_RGI_EMOJI => false, // TODO |
| 83 | .UCHAR_IDS_UNARY_OPERATOR => false, // TODO |
| 84 | .UCHAR_ID_COMPAT_MATH_START => icu.hasProperty(cp, .ID_Compat_Math_Start), |
| 85 | .UCHAR_ID_COMPAT_MATH_CONTINUE => icu.hasProperty(cp, .ID_Compat_Math_Continue), |
| 86 | .UCHAR_BIDI_CLASS => false, // TODO |
| 87 | .UCHAR_BLOCK => false, // TODO |
| 88 | .UCHAR_CANONICAL_COMBINING_CLASS => false, // TODO |
| 89 | .UCHAR_DECOMPOSITION_TYPE => false, // TODO |
| 90 | .UCHAR_EAST_ASIAN_WIDTH => false, // TODO |
| 91 | .UCHAR_GENERAL_CATEGORY => false, // TODO |
| 92 | .UCHAR_JOINING_GROUP => false, // TODO |
| 93 | .UCHAR_JOINING_TYPE => false, // TODO |
| 94 | .UCHAR_LINE_BREAK => false, // TODO |
| 95 | .UCHAR_NUMERIC_TYPE => false, // TODO |
| 96 | .UCHAR_SCRIPT => false, // TODO |
| 97 | .UCHAR_HANGUL_SYLLABLE_TYPE => false, // TODO |
| 98 | .UCHAR_NFD_QUICK_CHECK => false, // TODO |
| 99 | .UCHAR_NFKD_QUICK_CHECK => false, // TODO |
| 100 | .UCHAR_NFC_QUICK_CHECK => false, // TODO |
| 101 | .UCHAR_NFKC_QUICK_CHECK => false, // TODO |
| 102 | .UCHAR_LEAD_CANONICAL_COMBINING_CLASS => false, // TODO |
| 103 | .UCHAR_TRAIL_CANONICAL_COMBINING_CLASS => false, // TODO |
| 104 | .UCHAR_GRAPHEME_CLUSTER_BREAK => false, // TODO |
| 105 | .UCHAR_SENTENCE_BREAK => false, // TODO |
| 106 | .UCHAR_WORD_BREAK => false, // TODO |
| 107 | .UCHAR_BIDI_PAIRED_BRACKET_TYPE => false, // TODO |
| 108 | .UCHAR_INDIC_POSITIONAL_CATEGORY => false, // TODO |
| 109 | .UCHAR_INDIC_SYLLABIC_CATEGORY => false, // TODO |
| 110 | .UCHAR_VERTICAL_ORIENTATION => false, // TODO |
| 111 | .UCHAR_GENERAL_CATEGORY_MASK => false, // TODO |
| 112 | .UCHAR_NUMERIC_VALUE => false, // TODO |
| 113 | .UCHAR_AGE => false, // TODO |
| 114 | .UCHAR_BIDI_MIRRORING_GLYPH => false, // TODO |
| 115 | .UCHAR_CASE_FOLDING => false, // TODO |
| 116 | .UCHAR_LOWERCASE_MAPPING => false, // TODO |
| 117 | .UCHAR_NAME => false, // TODO |
| 118 | .UCHAR_SIMPLE_CASE_FOLDING => false, // TODO |
| 119 | .UCHAR_SIMPLE_LOWERCASE_MAPPING => false, // TODO |
| 120 | .UCHAR_SIMPLE_TITLECASE_MAPPING => false, // TODO |
| 121 | .UCHAR_SIMPLE_UPPERCASE_MAPPING => false, // TODO |
| 122 | .UCHAR_TITLECASE_MAPPING => false, // TODO |
| 123 | .UCHAR_UPPERCASE_MAPPING => false, // TODO |
| 124 | .UCHAR_BIDI_PAIRED_BRACKET => false, // TODO |
| 125 | .UCHAR_SCRIPT_EXTENSIONS => false, // TODO |
| 126 | _ => false, |
| 127 | |
| 128 | // InCB, |
| 129 | |
| 130 | // Other_Math, |
| 131 | // Other_Alphabetic, |
| 132 | // Other_Lowercase, |
| 133 | // Other_Uppercase, |
| 134 | // Other_Grapheme_Extend, |
| 135 | // Other_Default_Ignorable_Code_Point, |
| 136 | // Other_ID_Start, |
| 137 | // Other_ID_Continue, |
| 138 | // Sentence_Terminal, |
| 139 | // Variation_Selector, |
| 140 | // Pattern_White_Space, |
| 141 | // Pattern_Syntax, |
| 142 | // Prepended_Concatenation_Mark, |
| 143 | // IDS_Unary_Operator, |
| 144 | // Modifier_Combining_Mark, |
| 145 | }; |
| 146 | } |