module Minjs::Ctype

Ctype

Public Instance Methods

decimal_digit?(code) click to toggle source

Tests character code is DecimalDigit or not.

@param [Fixnum] code @return true if code is DecimalDigit, otherwise false @see www.ecma-international.org/ecma-262 ECMA262 7.8.3

# File lib/minjs/ctype.rb, line 19
def decimal_digit?(code)
  code >= 0x30 and code <= 0x39
end
hex_digit?(code) click to toggle source

Tests character code is HexDigit or not.

@param [Fixnum] code @return true if code is HexlDigit, otherwise false. @see www.ecma-international.org/ecma-262 ECMA262 7.8.3

# File lib/minjs/ctype.rb, line 28
def hex_digit?(code)
  code >= 0x30 && code <= 0x39 or
  code >= 0x41 && code <= 0x46 or
  code >= 0x61 && code <= 0x66
end
identifier_part?(c) click to toggle source

Test character code is IdentifierPart or not.

IdentifierPart is any character in the Unicode categories

  • “Uppercase letter (Lu)”

  • “Lowercase letter (Ll)”

  • “Titlecase letter (Lt)”

  • “Modifier letter (Lm)”

  • “Other letter (Lo)”

  • “Letter number (Nl)

  • “Non-spacing mark (Mn)”

  • “Combining spacing mark (Mc)”

  • “Decimal number (Nd)”

  • “Connector punctuation (Pc)

  • <ZWNJ>

  • <ZWJ>

  • IdentifierStart

@param [Fixnum] c @return true if code is IdentifierStart, otherwise false. @see www.ecma-international.org/ecma-262 ECMA262 7.6

# File lib/minjs/ctype.rb, line 665
def identifier_part?(c)
  return false if c.nil?
  if c == 0x24 ||
    (c >= 0x30 && c <= 0x39) || # 10
    (c >= 0x41 && c <= 0x5a) || # 36
    (c == 0x5f) || # 37
    (c >= 0x61 && c <= 0x7a) || # 63
    (c == 0xaa) || # 64
    (c == 0xb5) || # 65
    (c == 0xba) || # 66
    (c >= 0xc0 && c <= 0xd6) || # 89
    (c >= 0xd8 && c <= 0xf6) || # 120
     (c >= 0xf8 && c <= 0x2c1)  # 578
    return true
  elsif c <= 0xff
    return false
  elsif (c >= 0x2c6 && c <= 0x2d1) || # 590
    (c >= 0x2e0 && c <= 0x2e4) || # 595
    (c == 0x2ec) || # 596
    (c == 0x2ee) || # 597
    (c >= 0x300 && c <= 0x374) || # 714
    (c >= 0x376 && c <= 0x377) || # 716
    (c >= 0x37a && c <= 0x37d) || # 720
    (c == 0x37f) || # 721
    (c == 0x386) || # 722
    (c >= 0x388 && c <= 0x38a) || # 725
    (c == 0x38c) || # 726
    (c >= 0x38e && c <= 0x3a1) || # 746
    (c >= 0x3a3 && c <= 0x3f5) || # 829
    (c >= 0x3f7 && c <= 0x481) || # 968
    (c >= 0x483 && c <= 0x487) || # 973
    (c >= 0x48a && c <= 0x52f) || # 1139
    (c >= 0x531 && c <= 0x556) || # 1177
    (c == 0x559) || # 1178
    (c >= 0x561 && c <= 0x587) || # 1217
    (c >= 0x591 && c <= 0x5bd) || # 1262
    (c == 0x5bf) || # 1263
    (c >= 0x5c1 && c <= 0x5c2) || # 1265
    (c >= 0x5c4 && c <= 0x5c5) || # 1267
    (c == 0x5c7) || # 1268
    (c >= 0x5d0 && c <= 0x5ea) || # 1295
    (c >= 0x5f0 && c <= 0x5f2) || # 1298
    (c >= 0x610 && c <= 0x61a) || # 1309
    (c >= 0x620 && c <= 0x669) || # 1383
    (c >= 0x66e && c <= 0x6d3) || # 1485
    (c >= 0x6d5 && c <= 0x6dc) || # 1493
    (c >= 0x6df && c <= 0x6e8) || # 1503
    (c >= 0x6ea && c <= 0x6fc) || # 1522
    (c == 0x6ff) || # 1523
    (c >= 0x710 && c <= 0x74a) || # 1582
    (c >= 0x74d && c <= 0x7b1) || # 1683
    (c >= 0x7c0 && c <= 0x7f5) || # 1737
    (c == 0x7fa) || # 1738
    (c >= 0x800 && c <= 0x82d) || # 1784
    (c >= 0x840 && c <= 0x85b) || # 1812
    (c >= 0x8a0 && c <= 0x8b2) || # 1831
    (c >= 0x8e4 && c <= 0x963) || # 1959
    (c >= 0x966 && c <= 0x96f) || # 1969
    (c >= 0x971 && c <= 0x983) || # 1988
    (c >= 0x985 && c <= 0x98c) || # 1996
    (c >= 0x98f && c <= 0x990) || # 1998
    (c >= 0x993 && c <= 0x9a8) || # 2020
    (c >= 0x9aa && c <= 0x9b0) || # 2027
    (c == 0x9b2) || # 2028
    (c >= 0x9b6 && c <= 0x9b9) || # 2032
    (c >= 0x9bc && c <= 0x9c4) || # 2041
    (c >= 0x9c7 && c <= 0x9c8) || # 2043
    (c >= 0x9cb && c <= 0x9ce) || # 2047
    (c == 0x9d7) || # 2048
    (c >= 0x9dc && c <= 0x9dd) || # 2050
    (c >= 0x9df && c <= 0x9e3) || # 2055
    (c >= 0x9e6 && c <= 0x9f1) || # 2067
    (c >= 0xa01 && c <= 0xa03) || # 2070
    (c >= 0xa05 && c <= 0xa0a) || # 2076
    (c >= 0xa0f && c <= 0xa10) || # 2078
    (c >= 0xa13 && c <= 0xa28) || # 2100
    (c >= 0xa2a && c <= 0xa30) || # 2107
    (c >= 0xa32 && c <= 0xa33) || # 2109
    (c >= 0xa35 && c <= 0xa36) || # 2111
    (c >= 0xa38 && c <= 0xa39) || # 2113
    (c == 0xa3c) || # 2114
    (c >= 0xa3e && c <= 0xa42) || # 2119
    (c >= 0xa47 && c <= 0xa48) || # 2121
    (c >= 0xa4b && c <= 0xa4d) || # 2124
    (c == 0xa51) || # 2125
    (c >= 0xa59 && c <= 0xa5c) || # 2129
    (c == 0xa5e) || # 2130
    (c >= 0xa66 && c <= 0xa75) || # 2146
    (c >= 0xa81 && c <= 0xa83) || # 2149
    (c >= 0xa85 && c <= 0xa8d) || # 2158
    (c >= 0xa8f && c <= 0xa91) || # 2161
    (c >= 0xa93 && c <= 0xaa8) || # 2183
    (c >= 0xaaa && c <= 0xab0) || # 2190
    (c >= 0xab2 && c <= 0xab3) || # 2192
    (c >= 0xab5 && c <= 0xab9) || # 2197
    (c >= 0xabc && c <= 0xac5) || # 2207
    (c >= 0xac7 && c <= 0xac9) || # 2210
    (c >= 0xacb && c <= 0xacd) || # 2213
    (c == 0xad0) || # 2214
    (c >= 0xae0 && c <= 0xae3) || # 2218
    (c >= 0xae6 && c <= 0xaef) || # 2228
    (c >= 0xb01 && c <= 0xb03) || # 2231
    (c >= 0xb05 && c <= 0xb0c) || # 2239
    (c >= 0xb0f && c <= 0xb10) || # 2241
    (c >= 0xb13 && c <= 0xb28) || # 2263
    (c >= 0xb2a && c <= 0xb30) || # 2270
    (c >= 0xb32 && c <= 0xb33) || # 2272
    (c >= 0xb35 && c <= 0xb39) || # 2277
    (c >= 0xb3c && c <= 0xb44) || # 2286
    (c >= 0xb47 && c <= 0xb48) || # 2288
    (c >= 0xb4b && c <= 0xb4d) || # 2291
    (c >= 0xb56 && c <= 0xb57) || # 2293
    (c >= 0xb5c && c <= 0xb5d) || # 2295
    (c >= 0xb5f && c <= 0xb63) || # 2300
    (c >= 0xb66 && c <= 0xb6f) || # 2310
    (c == 0xb71) || # 2311
    (c >= 0xb82 && c <= 0xb83) || # 2313
    (c >= 0xb85 && c <= 0xb8a) || # 2319
    (c >= 0xb8e && c <= 0xb90) || # 2322
    (c >= 0xb92 && c <= 0xb95) || # 2326
    (c >= 0xb99 && c <= 0xb9a) || # 2328
    (c == 0xb9c) || # 2329
    (c >= 0xb9e && c <= 0xb9f) || # 2331
    (c >= 0xba3 && c <= 0xba4) || # 2333
    (c >= 0xba8 && c <= 0xbaa) || # 2336
    (c >= 0xbae && c <= 0xbb9) || # 2348
    (c >= 0xbbe && c <= 0xbc2) || # 2353
    (c >= 0xbc6 && c <= 0xbc8) || # 2356
    (c >= 0xbca && c <= 0xbcd) || # 2360
    (c == 0xbd0) || # 2361
    (c == 0xbd7) || # 2362
    (c >= 0xbe6 && c <= 0xbef) || # 2372
    (c >= 0xc00 && c <= 0xc03) || # 2376
    (c >= 0xc05 && c <= 0xc0c) || # 2384
    (c >= 0xc0e && c <= 0xc10) || # 2387
    (c >= 0xc12 && c <= 0xc28) || # 2410
    (c >= 0xc2a && c <= 0xc39) || # 2426
    (c >= 0xc3d && c <= 0xc44) || # 2434
    (c >= 0xc46 && c <= 0xc48) || # 2437
    (c >= 0xc4a && c <= 0xc4d) || # 2441
    (c >= 0xc55 && c <= 0xc56) || # 2443
    (c >= 0xc58 && c <= 0xc59) || # 2445
    (c >= 0xc60 && c <= 0xc63) || # 2449
    (c >= 0xc66 && c <= 0xc6f) || # 2459
    (c >= 0xc81 && c <= 0xc83) || # 2462
    (c >= 0xc85 && c <= 0xc8c) || # 2470
    (c >= 0xc8e && c <= 0xc90) || # 2473
    (c >= 0xc92 && c <= 0xca8) || # 2496
    (c >= 0xcaa && c <= 0xcb3) || # 2506
    (c >= 0xcb5 && c <= 0xcb9) || # 2511
    (c >= 0xcbc && c <= 0xcc4) || # 2520
    (c >= 0xcc6 && c <= 0xcc8) || # 2523
    (c >= 0xcca && c <= 0xccd) || # 2527
    (c >= 0xcd5 && c <= 0xcd6) || # 2529
    (c == 0xcde) || # 2530
    (c >= 0xce0 && c <= 0xce3) || # 2534
    (c >= 0xce6 && c <= 0xcef) || # 2544
    (c >= 0xcf1 && c <= 0xcf2) || # 2546
    (c >= 0xd01 && c <= 0xd03) || # 2549
    (c >= 0xd05 && c <= 0xd0c) || # 2557
    (c >= 0xd0e && c <= 0xd10) || # 2560
    (c >= 0xd12 && c <= 0xd3a) || # 2601
    (c >= 0xd3d && c <= 0xd44) || # 2609
    (c >= 0xd46 && c <= 0xd48) || # 2612
    (c >= 0xd4a && c <= 0xd4e) || # 2617
    (c == 0xd57) || # 2618
    (c >= 0xd60 && c <= 0xd63) || # 2622
    (c >= 0xd66 && c <= 0xd6f) || # 2632
    (c >= 0xd7a && c <= 0xd7f) || # 2638
    (c >= 0xd82 && c <= 0xd83) || # 2640
    (c >= 0xd85 && c <= 0xd96) || # 2658
    (c >= 0xd9a && c <= 0xdb1) || # 2682
    (c >= 0xdb3 && c <= 0xdbb) || # 2691
    (c == 0xdbd) || # 2692
    (c >= 0xdc0 && c <= 0xdc6) || # 2699
    (c == 0xdca) || # 2700
    (c >= 0xdcf && c <= 0xdd4) || # 2706
    (c == 0xdd6) || # 2707
    (c >= 0xdd8 && c <= 0xddf) || # 2715
    (c >= 0xde6 && c <= 0xdef) || # 2725
    (c >= 0xdf2 && c <= 0xdf3) || # 2727
    (c >= 0xe01 && c <= 0xe3a) || # 2785
    (c >= 0xe40 && c <= 0xe4e) || # 2800
    (c >= 0xe50 && c <= 0xe59) || # 2810
    (c >= 0xe81 && c <= 0xe82) || # 2812
    (c == 0xe84) || # 2813
    (c >= 0xe87 && c <= 0xe88) || # 2815
    (c == 0xe8a) || # 2816
    (c == 0xe8d) || # 2817
    (c >= 0xe94 && c <= 0xe97) || # 2821
    (c >= 0xe99 && c <= 0xe9f) || # 2828
    (c >= 0xea1 && c <= 0xea3) || # 2831
    (c == 0xea5) || # 2832
    (c == 0xea7) || # 2833
    (c >= 0xeaa && c <= 0xeab) || # 2835
    (c >= 0xead && c <= 0xeb9) || # 2848
    (c >= 0xebb && c <= 0xebd) || # 2851
    (c >= 0xec0 && c <= 0xec4) || # 2856
    (c == 0xec6) || # 2857
    (c >= 0xec8 && c <= 0xecd) || # 2863
    (c >= 0xed0 && c <= 0xed9) || # 2873
    (c >= 0xedc && c <= 0xedf) || # 2877
    (c == 0xf00) || # 2878
    (c >= 0xf18 && c <= 0xf19) || # 2880
    (c >= 0xf20 && c <= 0xf29) || # 2890
    (c == 0xf35) || # 2891
    (c == 0xf37) || # 2892
    (c == 0xf39) || # 2893
    (c >= 0xf3e && c <= 0xf47) || # 2903
    (c >= 0xf49 && c <= 0xf6c) || # 2939
    (c >= 0xf71 && c <= 0xf84) || # 2959
    (c >= 0xf86 && c <= 0xf97) || # 2977
    (c >= 0xf99 && c <= 0xfbc) || # 3013
    (c == 0xfc6) || # 3014
    (c >= 0x1000 && c <= 0x1049) || # 3088
    (c >= 0x1050 && c <= 0x109d) || # 3166
    (c >= 0x10a0 && c <= 0x10c5) || # 3204
    (c == 0x10c7) || # 3205
    (c == 0x10cd) || # 3206
    (c >= 0x10d0 && c <= 0x10fa) || # 3249
    (c >= 0x10fc && c <= 0x1248) || # 3582
    (c >= 0x124a && c <= 0x124d) || # 3586
    (c >= 0x1250 && c <= 0x1256) || # 3593
    (c == 0x1258) || # 3594
    (c >= 0x125a && c <= 0x125d) || # 3598
    (c >= 0x1260 && c <= 0x1288) || # 3639
    (c >= 0x128a && c <= 0x128d) || # 3643
    (c >= 0x1290 && c <= 0x12b0) || # 3676
    (c >= 0x12b2 && c <= 0x12b5) || # 3680
    (c >= 0x12b8 && c <= 0x12be) || # 3687
    (c == 0x12c0) || # 3688
    (c >= 0x12c2 && c <= 0x12c5) || # 3692
    (c >= 0x12c8 && c <= 0x12d6) || # 3707
    (c >= 0x12d8 && c <= 0x1310) || # 3764
    (c >= 0x1312 && c <= 0x1315) || # 3768
    (c >= 0x1318 && c <= 0x135a) || # 3835
    (c >= 0x135d && c <= 0x135f) || # 3838
    (c >= 0x1380 && c <= 0x138f) || # 3854
    (c >= 0x13a0 && c <= 0x13f4) || # 3939
    (c >= 0x1401 && c <= 0x166c) || # 4559
    (c >= 0x166f && c <= 0x167f) || # 4576
    (c >= 0x1681 && c <= 0x169a) || # 4602
    (c >= 0x16a0 && c <= 0x16ea) || # 4677
    (c >= 0x16ee && c <= 0x16f8) || # 4688
    (c >= 0x1700 && c <= 0x170c) || # 4701
    (c >= 0x170e && c <= 0x1714) || # 4708
    (c >= 0x1720 && c <= 0x1734) || # 4729
    (c >= 0x1740 && c <= 0x1753) || # 4749
    (c >= 0x1760 && c <= 0x176c) || # 4762
    (c >= 0x176e && c <= 0x1770) || # 4765
    (c >= 0x1772 && c <= 0x1773) || # 4767
    (c >= 0x1780 && c <= 0x17d3) || # 4851
    (c == 0x17d7) || # 4852
    (c >= 0x17dc && c <= 0x17dd) || # 4854
    (c >= 0x17e0 && c <= 0x17e9) || # 4864
    (c >= 0x180b && c <= 0x180d) || # 4867
    (c >= 0x1810 && c <= 0x1819) || # 4877
    (c >= 0x1820 && c <= 0x1877) || # 4965
    (c >= 0x1880 && c <= 0x18aa) || # 5008
    (c >= 0x18b0 && c <= 0x18f5) || # 5078
    (c >= 0x1900 && c <= 0x191e) || # 5109
    (c >= 0x1920 && c <= 0x192b) || # 5121
    (c >= 0x1930 && c <= 0x193b) || # 5133
    (c >= 0x1946 && c <= 0x196d) || # 5173
    (c >= 0x1970 && c <= 0x1974) || # 5178
    (c >= 0x1980 && c <= 0x19ab) || # 5222
    (c >= 0x19b0 && c <= 0x19c9) || # 5248
    (c >= 0x19d0 && c <= 0x19d9) || # 5258
    (c >= 0x1a00 && c <= 0x1a1b) || # 5286
    (c >= 0x1a20 && c <= 0x1a5e) || # 5349
    (c >= 0x1a60 && c <= 0x1a7c) || # 5378
    (c >= 0x1a7f && c <= 0x1a89) || # 5389
    (c >= 0x1a90 && c <= 0x1a99) || # 5399
    (c == 0x1aa7) || # 5400
    (c >= 0x1ab0 && c <= 0x1abd) || # 5414
    (c >= 0x1b00 && c <= 0x1b4b) || # 5490
    (c >= 0x1b50 && c <= 0x1b59) || # 5500
    (c >= 0x1b6b && c <= 0x1b73) || # 5509
    (c >= 0x1b80 && c <= 0x1bf3) || # 5625
    (c >= 0x1c00 && c <= 0x1c37) || # 5681
    (c >= 0x1c40 && c <= 0x1c49) || # 5691
    (c >= 0x1c4d && c <= 0x1c7d) || # 5740
    (c >= 0x1cd0 && c <= 0x1cd2) || # 5743
    (c >= 0x1cd4 && c <= 0x1cf6) || # 5778
    (c >= 0x1cf8 && c <= 0x1cf9) || # 5780
    (c >= 0x1d00 && c <= 0x1df5) || # 6026
    (c >= 0x1dfc && c <= 0x1f15) || # 6308
    (c >= 0x1f18 && c <= 0x1f1d) || # 6314
    (c >= 0x1f20 && c <= 0x1f45) || # 6352
    (c >= 0x1f48 && c <= 0x1f4d) || # 6358
    (c >= 0x1f50 && c <= 0x1f57) || # 6366
    (c == 0x1f59) || # 6367
    (c == 0x1f5b) || # 6368
    (c == 0x1f5d) || # 6369
    (c >= 0x1f5f && c <= 0x1f7d) || # 6400
    (c >= 0x1f80 && c <= 0x1fb4) || # 6453
    (c >= 0x1fb6 && c <= 0x1fbc) || # 6460
    (c == 0x1fbe) || # 6461
    (c >= 0x1fc2 && c <= 0x1fc4) || # 6464
    (c >= 0x1fc6 && c <= 0x1fcc) || # 6471
    (c >= 0x1fd0 && c <= 0x1fd3) || # 6475
    (c >= 0x1fd6 && c <= 0x1fdb) || # 6481
    (c >= 0x1fe0 && c <= 0x1fec) || # 6494
    (c >= 0x1ff2 && c <= 0x1ff4) || # 6497
    (c >= 0x1ff6 && c <= 0x1ffc) || # 6504
    (c >= 0x203f && c <= 0x2040) || # 6506
    (c == 0x2054) || # 6507
    (c == 0x2071) || # 6508
    (c == 0x207f) || # 6509
    (c >= 0x2090 && c <= 0x209c) || # 6522
    (c >= 0x20d0 && c <= 0x20dc) || # 6535
    (c == 0x20e1) || # 6536
    (c >= 0x20e5 && c <= 0x20f0) || # 6548
    (c == 0x2102) || # 6549
    (c == 0x2107) || # 6550
    (c >= 0x210a && c <= 0x2113) || # 6560
    (c == 0x2115) || # 6561
    (c >= 0x2119 && c <= 0x211d) || # 6566
    (c == 0x2124) || # 6567
    (c == 0x2126) || # 6568
    (c == 0x2128) || # 6569
    (c >= 0x212a && c <= 0x212d) || # 6573
    (c >= 0x212f && c <= 0x2139) || # 6584
    (c >= 0x213c && c <= 0x213f) || # 6588
    (c >= 0x2145 && c <= 0x2149) || # 6593
    (c == 0x214e) || # 6594
    (c >= 0x2160 && c <= 0x2188) || # 6635
    (c >= 0x2c00 && c <= 0x2c2e) || # 6682
    (c >= 0x2c30 && c <= 0x2c5e) || # 6729
    (c >= 0x2c60 && c <= 0x2ce4) || # 6862
    (c >= 0x2ceb && c <= 0x2cf3) || # 6871
    (c >= 0x2d00 && c <= 0x2d25) || # 6909
    (c == 0x2d27) || # 6910
    (c == 0x2d2d) || # 6911
    (c >= 0x2d30 && c <= 0x2d67) || # 6967
    (c == 0x2d6f) || # 6968
    (c >= 0x2d7f && c <= 0x2d96) || # 6992
    (c >= 0x2da0 && c <= 0x2da6) || # 6999
    (c >= 0x2da8 && c <= 0x2dae) || # 7006
    (c >= 0x2db0 && c <= 0x2db6) || # 7013
    (c >= 0x2db8 && c <= 0x2dbe) || # 7020
    (c >= 0x2dc0 && c <= 0x2dc6) || # 7027
    (c >= 0x2dc8 && c <= 0x2dce) || # 7034
    (c >= 0x2dd0 && c <= 0x2dd6) || # 7041
    (c >= 0x2dd8 && c <= 0x2dde) || # 7048
    (c >= 0x2de0 && c <= 0x2dff) || # 7080
    (c == 0x2e2f) || # 7081
    (c >= 0x3005 && c <= 0x3007) || # 7084
    (c >= 0x3021 && c <= 0x302f) || # 7099
    (c >= 0x3031 && c <= 0x3035) || # 7104
    (c >= 0x3038 && c <= 0x303c) || # 7109
    (c >= 0x3041 && c <= 0x3096) || # 7195
    (c >= 0x3099 && c <= 0x309a) || # 7197
    (c >= 0x309d && c <= 0x309f) || # 7200
    (c >= 0x30a1 && c <= 0x30fa) || # 7290
    (c >= 0x30fc && c <= 0x30ff) || # 7294
    (c >= 0x3105 && c <= 0x312d) || # 7335
    (c >= 0x3131 && c <= 0x318e) || # 7429
    (c >= 0x31a0 && c <= 0x31ba) || # 7456
    (c >= 0x31f0 && c <= 0x31ff) || # 7472
    (c == 0x3400) || # 7473
    (c == 0x4db5) || # 7474
    (c == 0x4e00) || # 7475
    (c == 0x9fcc) || # 7476
    (c >= 0xa000 && c <= 0xa48c) || # 8641
    (c >= 0xa4d0 && c <= 0xa4fd) || # 8687
    (c >= 0xa500 && c <= 0xa60c) || # 8956
    (c >= 0xa610 && c <= 0xa62b) || # 8984
    (c >= 0xa640 && c <= 0xa66f) || # 9032
    (c >= 0xa674 && c <= 0xa67d) || # 9042
    (c >= 0xa67f && c <= 0xa69d) || # 9073
    (c >= 0xa69f && c <= 0xa6f1) || # 9156
    (c >= 0xa717 && c <= 0xa71f) || # 9165
    (c >= 0xa722 && c <= 0xa788) || # 9268
    (c >= 0xa78b && c <= 0xa78e) || # 9272
    (c >= 0xa790 && c <= 0xa7ad) || # 9302
    (c >= 0xa7b0 && c <= 0xa7b1) || # 9304
    (c >= 0xa7f7 && c <= 0xa827) || # 9353
    (c >= 0xa840 && c <= 0xa873) || # 9405
    (c >= 0xa880 && c <= 0xa8c4) || # 9474
    (c >= 0xa8d0 && c <= 0xa8d9) || # 9484
    (c >= 0xa8e0 && c <= 0xa8f7) || # 9508
    (c == 0xa8fb) || # 9509
    (c >= 0xa900 && c <= 0xa92d) || # 9555
    (c >= 0xa930 && c <= 0xa953) || # 9591
    (c >= 0xa960 && c <= 0xa97c) || # 9620
    (c >= 0xa980 && c <= 0xa9c0) || # 9685
    (c >= 0xa9cf && c <= 0xa9d9) || # 9696
    (c >= 0xa9e0 && c <= 0xa9fe) || # 9727
    (c >= 0xaa00 && c <= 0xaa36) || # 9782
    (c >= 0xaa40 && c <= 0xaa4d) || # 9796
    (c >= 0xaa50 && c <= 0xaa59) || # 9806
    (c >= 0xaa60 && c <= 0xaa76) || # 9829
    (c >= 0xaa7a && c <= 0xaac2) || # 9902
    (c >= 0xaadb && c <= 0xaadd) || # 9905
    (c >= 0xaae0 && c <= 0xaaef) || # 9921
    (c >= 0xaaf2 && c <= 0xaaf6) || # 9926
    (c >= 0xab01 && c <= 0xab06) || # 9932
    (c >= 0xab09 && c <= 0xab0e) || # 9938
    (c >= 0xab11 && c <= 0xab16) || # 9944
    (c >= 0xab20 && c <= 0xab26) || # 9951
    (c >= 0xab28 && c <= 0xab2e) || # 9958
    (c >= 0xab30 && c <= 0xab5a) || # 10001
    (c >= 0xab5c && c <= 0xab5f) || # 10005
    (c >= 0xab64 && c <= 0xab65) || # 10007
    (c >= 0xabc0 && c <= 0xabea) || # 10050
    (c >= 0xabec && c <= 0xabed) || # 10052
    (c >= 0xabf0 && c <= 0xabf9) || # 10062
    (c == 0xac00) || # 10063
    (c == 0xd7a3) || # 10064
    (c >= 0xd7b0 && c <= 0xd7c6) || # 10087
    (c >= 0xd7cb && c <= 0xd7fb) || # 10136
    (c >= 0xf900 && c <= 0xfa6d) || # 10502
    (c >= 0xfa70 && c <= 0xfad9) || # 10608
    (c >= 0xfb00 && c <= 0xfb06) || # 10615
    (c >= 0xfb13 && c <= 0xfb17) || # 10620
    (c >= 0xfb1d && c <= 0xfb28) || # 10632
    (c >= 0xfb2a && c <= 0xfb36) || # 10645
    (c >= 0xfb38 && c <= 0xfb3c) || # 10650
    (c == 0xfb3e) || # 10651
    (c >= 0xfb40 && c <= 0xfb41) || # 10653
    (c >= 0xfb43 && c <= 0xfb44) || # 10655
    (c >= 0xfb46 && c <= 0xfbb1) || # 10763
    (c >= 0xfbd3 && c <= 0xfd3d) || # 11126
    (c >= 0xfd50 && c <= 0xfd8f) || # 11190
    (c >= 0xfd92 && c <= 0xfdc7) || # 11244
    (c >= 0xfdf0 && c <= 0xfdfb) || # 11256
    (c >= 0xfe00 && c <= 0xfe0f) || # 11272
    (c >= 0xfe20 && c <= 0xfe2d) || # 11286
    (c >= 0xfe33 && c <= 0xfe34) || # 11288
    (c >= 0xfe4d && c <= 0xfe4f) || # 11291
    (c >= 0xfe70 && c <= 0xfe74) || # 11296
    (c >= 0xfe76 && c <= 0xfefc) || # 11431
    (c >= 0xff10 && c <= 0xff19) || # 11441
    (c >= 0xff21 && c <= 0xff3a) || # 11467
    (c == 0xff3f) || # 11468
    (c >= 0xff41 && c <= 0xff5a) || # 11494
    (c >= 0xff66 && c <= 0xffbe) || # 11583
    (c >= 0xffc2 && c <= 0xffc7) || # 11589
    (c >= 0xffca && c <= 0xffcf) || # 11595
    (c >= 0xffd2 && c <= 0xffd7) || # 11601
    (c >= 0xffda && c <= 0xffdc) || # 11604
    (c >= 0x10000 && c <= 0x1000b) || # 11616
    (c >= 0x1000d && c <= 0x10026) || # 11642
    (c >= 0x10028 && c <= 0x1003a) || # 11661
    (c >= 0x1003c && c <= 0x1003d) || # 11663
    (c >= 0x1003f && c <= 0x1004d) || # 11678
    (c >= 0x10050 && c <= 0x1005d) || # 11692
    (c >= 0x10080 && c <= 0x100fa) || # 11815
    (c >= 0x10140 && c <= 0x10174) || # 11868
    (c == 0x101fd) || # 11869
    (c >= 0x10280 && c <= 0x1029c) || # 11898
    (c >= 0x102a0 && c <= 0x102d0) || # 11947
    (c == 0x102e0) || # 11948
    (c >= 0x10300 && c <= 0x1031f) || # 11980
    (c >= 0x10330 && c <= 0x1034a) || # 12007
    (c >= 0x10350 && c <= 0x1037a) || # 12050
    (c >= 0x10380 && c <= 0x1039d) || # 12080
    (c >= 0x103a0 && c <= 0x103c3) || # 12116
    (c >= 0x103c8 && c <= 0x103cf) || # 12124
    (c >= 0x103d1 && c <= 0x103d5) || # 12129
    (c >= 0x10400 && c <= 0x1049d) || # 12287
    (c >= 0x104a0 && c <= 0x104a9) || # 12297
    (c >= 0x10500 && c <= 0x10527) || # 12337
    (c >= 0x10530 && c <= 0x10563) || # 12389
    (c >= 0x10600 && c <= 0x10736) || # 12700
    (c >= 0x10740 && c <= 0x10755) || # 12722
    (c >= 0x10760 && c <= 0x10767) || # 12730
    (c >= 0x10800 && c <= 0x10805) || # 12736
    (c == 0x10808) || # 12737
    (c >= 0x1080a && c <= 0x10835) || # 12781
    (c >= 0x10837 && c <= 0x10838) || # 12783
    (c == 0x1083c) || # 12784
    (c >= 0x1083f && c <= 0x10855) || # 12807
    (c >= 0x10860 && c <= 0x10876) || # 12830
    (c >= 0x10880 && c <= 0x1089e) || # 12861
    (c >= 0x10900 && c <= 0x10915) || # 12883
    (c >= 0x10920 && c <= 0x10939) || # 12909
    (c >= 0x10980 && c <= 0x109b7) || # 12965
    (c >= 0x109be && c <= 0x109bf) || # 12967
    (c >= 0x10a00 && c <= 0x10a03) || # 12971
    (c >= 0x10a05 && c <= 0x10a06) || # 12973
    (c >= 0x10a0c && c <= 0x10a13) || # 12981
    (c >= 0x10a15 && c <= 0x10a17) || # 12984
    (c >= 0x10a19 && c <= 0x10a33) || # 13011
    (c >= 0x10a38 && c <= 0x10a3a) || # 13014
    (c == 0x10a3f) || # 13015
    (c >= 0x10a60 && c <= 0x10a7c) || # 13044
    (c >= 0x10a80 && c <= 0x10a9c) || # 13073
    (c >= 0x10ac0 && c <= 0x10ac7) || # 13081
    (c >= 0x10ac9 && c <= 0x10ae6) || # 13111
    (c >= 0x10b00 && c <= 0x10b35) || # 13165
    (c >= 0x10b40 && c <= 0x10b55) || # 13187
    (c >= 0x10b60 && c <= 0x10b72) || # 13206
    (c >= 0x10b80 && c <= 0x10b91) || # 13224
    (c >= 0x10c00 && c <= 0x10c48) || # 13297
    (c >= 0x11000 && c <= 0x11046) || # 13368
    (c >= 0x11066 && c <= 0x1106f) || # 13378
    (c >= 0x1107f && c <= 0x110ba) || # 13438
    (c >= 0x110d0 && c <= 0x110e8) || # 13463
    (c >= 0x110f0 && c <= 0x110f9) || # 13473
    (c >= 0x11100 && c <= 0x11134) || # 13526
    (c >= 0x11136 && c <= 0x1113f) || # 13536
    (c >= 0x11150 && c <= 0x11173) || # 13572
    (c == 0x11176) || # 13573
    (c >= 0x11180 && c <= 0x111c4) || # 13642
    (c >= 0x111d0 && c <= 0x111da) || # 13653
    (c >= 0x11200 && c <= 0x11211) || # 13671
    (c >= 0x11213 && c <= 0x11237) || # 13708
    (c >= 0x112b0 && c <= 0x112ea) || # 13767
    (c >= 0x112f0 && c <= 0x112f9) || # 13777
    (c >= 0x11301 && c <= 0x11303) || # 13780
    (c >= 0x11305 && c <= 0x1130c) || # 13788
    (c >= 0x1130f && c <= 0x11310) || # 13790
    (c >= 0x11313 && c <= 0x11328) || # 13812
    (c >= 0x1132a && c <= 0x11330) || # 13819
    (c >= 0x11332 && c <= 0x11333) || # 13821
    (c >= 0x11335 && c <= 0x11339) || # 13826
    (c >= 0x1133c && c <= 0x11344) || # 13835
    (c >= 0x11347 && c <= 0x11348) || # 13837
    (c >= 0x1134b && c <= 0x1134d) || # 13840
    (c == 0x11357) || # 13841
    (c >= 0x1135d && c <= 0x11363) || # 13848
    (c >= 0x11366 && c <= 0x1136c) || # 13855
    (c >= 0x11370 && c <= 0x11374) || # 13860
    (c >= 0x11480 && c <= 0x114c5) || # 13930
    (c == 0x114c7) || # 13931
    (c >= 0x114d0 && c <= 0x114d9) || # 13941
    (c >= 0x11580 && c <= 0x115b5) || # 13995
    (c >= 0x115b8 && c <= 0x115c0) || # 14004
    (c >= 0x11600 && c <= 0x11640) || # 14069
    (c == 0x11644) || # 14070
    (c >= 0x11650 && c <= 0x11659) || # 14080
    (c >= 0x11680 && c <= 0x116b7) || # 14136
    (c >= 0x116c0 && c <= 0x116c9) || # 14146
    (c >= 0x118a0 && c <= 0x118e9) || # 14220
    (c == 0x118ff) || # 14221
    (c >= 0x11ac0 && c <= 0x11af8) || # 14278
    (c >= 0x12000 && c <= 0x12398) || # 15199
    (c >= 0x12400 && c <= 0x1246e) || # 15310
    (c >= 0x13000 && c <= 0x1342e) || # 16381
    (c >= 0x16800 && c <= 0x16a38) || # 16950
    (c >= 0x16a40 && c <= 0x16a5e) || # 16981
    (c >= 0x16a60 && c <= 0x16a69) || # 16991
    (c >= 0x16ad0 && c <= 0x16aed) || # 17021
    (c >= 0x16af0 && c <= 0x16af4) || # 17026
    (c >= 0x16b00 && c <= 0x16b36) || # 17081
    (c >= 0x16b40 && c <= 0x16b43) || # 17085
    (c >= 0x16b50 && c <= 0x16b59) || # 17095
    (c >= 0x16b63 && c <= 0x16b77) || # 17116
    (c >= 0x16b7d && c <= 0x16b8f) || # 17135
    (c >= 0x16f00 && c <= 0x16f44) || # 17204
    (c >= 0x16f50 && c <= 0x16f7e) || # 17251
    (c >= 0x16f8f && c <= 0x16f9f) || # 17268
    (c >= 0x1b000 && c <= 0x1b001) || # 17270
    (c >= 0x1bc00 && c <= 0x1bc6a) || # 17377
    (c >= 0x1bc70 && c <= 0x1bc7c) || # 17390
    (c >= 0x1bc80 && c <= 0x1bc88) || # 17399
    (c >= 0x1bc90 && c <= 0x1bc99) || # 17409
    (c >= 0x1bc9d && c <= 0x1bc9e) || # 17411
    (c >= 0x1d165 && c <= 0x1d169) || # 17416
    (c >= 0x1d16d && c <= 0x1d172) || # 17422
    (c >= 0x1d17b && c <= 0x1d182) || # 17430
    (c >= 0x1d185 && c <= 0x1d18b) || # 17437
    (c >= 0x1d1aa && c <= 0x1d1ad) || # 17441
    (c >= 0x1d242 && c <= 0x1d244) || # 17444
    (c >= 0x1d400 && c <= 0x1d454) || # 17529
    (c >= 0x1d456 && c <= 0x1d49c) || # 17600
    (c >= 0x1d49e && c <= 0x1d49f) || # 17602
    (c == 0x1d4a2) || # 17603
    (c >= 0x1d4a5 && c <= 0x1d4a6) || # 17605
    (c >= 0x1d4a9 && c <= 0x1d4ac) || # 17609
    (c >= 0x1d4ae && c <= 0x1d4b9) || # 17621
    (c == 0x1d4bb) || # 17622
    (c >= 0x1d4bd && c <= 0x1d4c3) || # 17629
    (c >= 0x1d4c5 && c <= 0x1d505) || # 17694
    (c >= 0x1d507 && c <= 0x1d50a) || # 17698
    (c >= 0x1d50d && c <= 0x1d514) || # 17706
    (c >= 0x1d516 && c <= 0x1d51c) || # 17713
    (c >= 0x1d51e && c <= 0x1d539) || # 17741
    (c >= 0x1d53b && c <= 0x1d53e) || # 17745
    (c >= 0x1d540 && c <= 0x1d544) || # 17750
    (c == 0x1d546) || # 17751
    (c >= 0x1d54a && c <= 0x1d550) || # 17758
    (c >= 0x1d552 && c <= 0x1d6a5) || # 18098
    (c >= 0x1d6a8 && c <= 0x1d6c0) || # 18123
    (c >= 0x1d6c2 && c <= 0x1d6da) || # 18148
    (c >= 0x1d6dc && c <= 0x1d6fa) || # 18179
    (c >= 0x1d6fc && c <= 0x1d714) || # 18204
    (c >= 0x1d716 && c <= 0x1d734) || # 18235
    (c >= 0x1d736 && c <= 0x1d74e) || # 18260
    (c >= 0x1d750 && c <= 0x1d76e) || # 18291
    (c >= 0x1d770 && c <= 0x1d788) || # 18316
    (c >= 0x1d78a && c <= 0x1d7a8) || # 18347
    (c >= 0x1d7aa && c <= 0x1d7c2) || # 18372
    (c >= 0x1d7c4 && c <= 0x1d7cb) || # 18380
    (c >= 0x1d7ce && c <= 0x1d7ff) || # 18430
    (c >= 0x1e800 && c <= 0x1e8c4) || # 18627
    (c >= 0x1e8d0 && c <= 0x1e8d6) || # 18634
    (c >= 0x1ee00 && c <= 0x1ee03) || # 18638
    (c >= 0x1ee05 && c <= 0x1ee1f) || # 18665
    (c >= 0x1ee21 && c <= 0x1ee22) || # 18667
    (c == 0x1ee24) || # 18668
    (c == 0x1ee27) || # 18669
    (c >= 0x1ee29 && c <= 0x1ee32) || # 18679
    (c >= 0x1ee34 && c <= 0x1ee37) || # 18683
    (c == 0x1ee39) || # 18684
    (c == 0x1ee3b) || # 18685
    (c == 0x1ee42) || # 18686
    (c == 0x1ee47) || # 18687
    (c == 0x1ee49) || # 18688
    (c == 0x1ee4b) || # 18689
    (c >= 0x1ee4d && c <= 0x1ee4f) || # 18692
    (c >= 0x1ee51 && c <= 0x1ee52) || # 18694
    (c == 0x1ee54) || # 18695
    (c == 0x1ee57) || # 18696
    (c == 0x1ee59) || # 18697
    (c == 0x1ee5b) || # 18698
    (c == 0x1ee5d) || # 18699
    (c == 0x1ee5f) || # 18700
    (c >= 0x1ee61 && c <= 0x1ee62) || # 18702
    (c == 0x1ee64) || # 18703
    (c >= 0x1ee67 && c <= 0x1ee6a) || # 18707
    (c >= 0x1ee6c && c <= 0x1ee72) || # 18714
    (c >= 0x1ee74 && c <= 0x1ee77) || # 18718
    (c >= 0x1ee79 && c <= 0x1ee7c) || # 18722
    (c == 0x1ee7e) || # 18723
    (c >= 0x1ee80 && c <= 0x1ee89) || # 18733
    (c >= 0x1ee8b && c <= 0x1ee9b) || # 18750
    (c >= 0x1eea1 && c <= 0x1eea3) || # 18753
    (c >= 0x1eea5 && c <= 0x1eea9) || # 18758
    (c >= 0x1eeab && c <= 0x1eebb) || # 18775
    (c == 0x20000) || # 18776
    (c == 0x2a6d6) || # 18777
    (c == 0x2a700) || # 18778
    (c == 0x2b734) || # 18779
    (c == 0x2b740) || # 18780
    (c == 0x2b81d) || # 18781
    (c >= 0x2f800 && c <= 0x2fa1d) || # 19323
    (c >= 0xe0100 && c <= 0xe01ef) || # 19563
    c == 0x200d || c == 0x200c
    return true
  end
end
identifier_start?(c) click to toggle source

Test character code is IdentifierStart or not.

IdentifierStart is any character in the Unicode categories

  • “Uppercase letter (Lu)

  • “Lowercase letter (Ll)”

  • “Titlecase letter (Lt)”

  • “Modifier letter (Lm)”

  • “Other letter (Lo)”

  • “Letter number (Nl)

@param [Fixnum] c @return true if code is IdentifierStart, otherwise false. @see www.ecma-international.org/ecma-262 ECMA262 7.6

# File lib/minjs/ctype.rb, line 85
def identifier_start?(c)
  return false if c.nil?
  # almost all characters are ascii
  if c == 0x24 || c == 0x5f ||
     (c >= 0x41 && c <= 0x5a) ||
     (c >= 0x61 && c <= 0x7a)
    return true
  elsif c <= 0x7f
    return false
  elsif (c == 0xaa) || # 53
    (c == 0xb5) || # 54
    (c == 0xba) || # 55
    (c >= 0xc0 && c <= 0xd6) || # 78
    (c >= 0xd8 && c <= 0xf6) || # 109
    (c >= 0xf8 && c <= 0x2c1) || # 567
    (c >= 0x2c6 && c <= 0x2d1) || # 579
    (c >= 0x2e0 && c <= 0x2e4) || # 584
    (c == 0x2ec) || # 585
    (c == 0x2ee) || # 586
    (c >= 0x370 && c <= 0x374) || # 591
    (c >= 0x376 && c <= 0x377) || # 593
    (c >= 0x37a && c <= 0x37d) || # 597
    (c == 0x37f) || # 598
    (c == 0x386) || # 599
    (c >= 0x388 && c <= 0x38a) || # 602
    (c == 0x38c) || # 603
    (c >= 0x38e && c <= 0x3a1) || # 623
    (c >= 0x3a3 && c <= 0x3f5) || # 706
    (c >= 0x3f7 && c <= 0x481) || # 845
    (c >= 0x48a && c <= 0x52f) || # 1011
    (c >= 0x531 && c <= 0x556) || # 1049
    (c == 0x559) || # 1050
    (c >= 0x561 && c <= 0x587) || # 1089
    (c >= 0x5d0 && c <= 0x5ea) || # 1116
    (c >= 0x5f0 && c <= 0x5f2) || # 1119
    (c >= 0x620 && c <= 0x64a) || # 1162
    (c >= 0x66e && c <= 0x66f) || # 1164
    (c >= 0x671 && c <= 0x6d3) || # 1263
    (c == 0x6d5) || # 1264
    (c >= 0x6e5 && c <= 0x6e6) || # 1266
    (c >= 0x6ee && c <= 0x6ef) || # 1268
    (c >= 0x6fa && c <= 0x6fc) || # 1271
    (c == 0x6ff) || # 1272
    (c == 0x710) || # 1273
    (c >= 0x712 && c <= 0x72f) || # 1303
    (c >= 0x74d && c <= 0x7a5) || # 1392
    (c == 0x7b1) || # 1393
    (c >= 0x7ca && c <= 0x7ea) || # 1426
    (c >= 0x7f4 && c <= 0x7f5) || # 1428
    (c == 0x7fa) || # 1429
    (c >= 0x800 && c <= 0x815) || # 1451
    (c == 0x81a) || # 1452
    (c == 0x824) || # 1453
    (c == 0x828) || # 1454
    (c >= 0x840 && c <= 0x858) || # 1479
    (c >= 0x8a0 && c <= 0x8b2) || # 1498
    (c >= 0x904 && c <= 0x939) || # 1552
    (c == 0x93d) || # 1553
    (c == 0x950) || # 1554
    (c >= 0x958 && c <= 0x961) || # 1564
    (c >= 0x971 && c <= 0x980) || # 1580
    (c >= 0x985 && c <= 0x98c) || # 1588
    (c >= 0x98f && c <= 0x990) || # 1590
    (c >= 0x993 && c <= 0x9a8) || # 1612
    (c >= 0x9aa && c <= 0x9b0) || # 1619
    (c == 0x9b2) || # 1620
    (c >= 0x9b6 && c <= 0x9b9) || # 1624
    (c == 0x9bd) || # 1625
    (c == 0x9ce) || # 1626
    (c >= 0x9dc && c <= 0x9dd) || # 1628
    (c >= 0x9df && c <= 0x9e1) || # 1631
    (c >= 0x9f0 && c <= 0x9f1) || # 1633
    (c >= 0xa05 && c <= 0xa0a) || # 1639
    (c >= 0xa0f && c <= 0xa10) || # 1641
    (c >= 0xa13 && c <= 0xa28) || # 1663
    (c >= 0xa2a && c <= 0xa30) || # 1670
    (c >= 0xa32 && c <= 0xa33) || # 1672
    (c >= 0xa35 && c <= 0xa36) || # 1674
    (c >= 0xa38 && c <= 0xa39) || # 1676
    (c >= 0xa59 && c <= 0xa5c) || # 1680
    (c == 0xa5e) || # 1681
    (c >= 0xa72 && c <= 0xa74) || # 1684
    (c >= 0xa85 && c <= 0xa8d) || # 1693
    (c >= 0xa8f && c <= 0xa91) || # 1696
    (c >= 0xa93 && c <= 0xaa8) || # 1718
    (c >= 0xaaa && c <= 0xab0) || # 1725
    (c >= 0xab2 && c <= 0xab3) || # 1727
    (c >= 0xab5 && c <= 0xab9) || # 1732
    (c == 0xabd) || # 1733
    (c == 0xad0) || # 1734
    (c >= 0xae0 && c <= 0xae1) || # 1736
    (c >= 0xb05 && c <= 0xb0c) || # 1744
    (c >= 0xb0f && c <= 0xb10) || # 1746
    (c >= 0xb13 && c <= 0xb28) || # 1768
    (c >= 0xb2a && c <= 0xb30) || # 1775
    (c >= 0xb32 && c <= 0xb33) || # 1777
    (c >= 0xb35 && c <= 0xb39) || # 1782
    (c == 0xb3d) || # 1783
    (c >= 0xb5c && c <= 0xb5d) || # 1785
    (c >= 0xb5f && c <= 0xb61) || # 1788
    (c == 0xb71) || # 1789
    (c == 0xb83) || # 1790
    (c >= 0xb85 && c <= 0xb8a) || # 1796
    (c >= 0xb8e && c <= 0xb90) || # 1799
    (c >= 0xb92 && c <= 0xb95) || # 1803
    (c >= 0xb99 && c <= 0xb9a) || # 1805
    (c == 0xb9c) || # 1806
    (c >= 0xb9e && c <= 0xb9f) || # 1808
    (c >= 0xba3 && c <= 0xba4) || # 1810
    (c >= 0xba8 && c <= 0xbaa) || # 1813
    (c >= 0xbae && c <= 0xbb9) || # 1825
    (c == 0xbd0) || # 1826
    (c >= 0xc05 && c <= 0xc0c) || # 1834
    (c >= 0xc0e && c <= 0xc10) || # 1837
    (c >= 0xc12 && c <= 0xc28) || # 1860
    (c >= 0xc2a && c <= 0xc39) || # 1876
    (c == 0xc3d) || # 1877
    (c >= 0xc58 && c <= 0xc59) || # 1879
    (c >= 0xc60 && c <= 0xc61) || # 1881
    (c >= 0xc85 && c <= 0xc8c) || # 1889
    (c >= 0xc8e && c <= 0xc90) || # 1892
    (c >= 0xc92 && c <= 0xca8) || # 1915
    (c >= 0xcaa && c <= 0xcb3) || # 1925
    (c >= 0xcb5 && c <= 0xcb9) || # 1930
    (c == 0xcbd) || # 1931
    (c == 0xcde) || # 1932
    (c >= 0xce0 && c <= 0xce1) || # 1934
    (c >= 0xcf1 && c <= 0xcf2) || # 1936
    (c >= 0xd05 && c <= 0xd0c) || # 1944
    (c >= 0xd0e && c <= 0xd10) || # 1947
    (c >= 0xd12 && c <= 0xd3a) || # 1988
    (c == 0xd3d) || # 1989
    (c == 0xd4e) || # 1990
    (c >= 0xd60 && c <= 0xd61) || # 1992
    (c >= 0xd7a && c <= 0xd7f) || # 1998
    (c >= 0xd85 && c <= 0xd96) || # 2016
    (c >= 0xd9a && c <= 0xdb1) || # 2040
    (c >= 0xdb3 && c <= 0xdbb) || # 2049
    (c == 0xdbd) || # 2050
    (c >= 0xdc0 && c <= 0xdc6) || # 2057
    (c >= 0xe01 && c <= 0xe30) || # 2105
    (c >= 0xe32 && c <= 0xe33) || # 2107
    (c >= 0xe40 && c <= 0xe46) || # 2114
    (c >= 0xe81 && c <= 0xe82) || # 2116
    (c == 0xe84) || # 2117
    (c >= 0xe87 && c <= 0xe88) || # 2119
    (c == 0xe8a) || # 2120
    (c == 0xe8d) || # 2121
    (c >= 0xe94 && c <= 0xe97) || # 2125
    (c >= 0xe99 && c <= 0xe9f) || # 2132
    (c >= 0xea1 && c <= 0xea3) || # 2135
    (c == 0xea5) || # 2136
    (c == 0xea7) || # 2137
    (c >= 0xeaa && c <= 0xeab) || # 2139
    (c >= 0xead && c <= 0xeb0) || # 2143
    (c >= 0xeb2 && c <= 0xeb3) || # 2145
    (c == 0xebd) || # 2146
    (c >= 0xec0 && c <= 0xec4) || # 2151
    (c == 0xec6) || # 2152
    (c >= 0xedc && c <= 0xedf) || # 2156
    (c == 0xf00) || # 2157
    (c >= 0xf40 && c <= 0xf47) || # 2165
    (c >= 0xf49 && c <= 0xf6c) || # 2201
    (c >= 0xf88 && c <= 0xf8c) || # 2206
    (c >= 0x1000 && c <= 0x102a) || # 2249
    (c == 0x103f) || # 2250
    (c >= 0x1050 && c <= 0x1055) || # 2256
    (c >= 0x105a && c <= 0x105d) || # 2260
    (c == 0x1061) || # 2261
    (c >= 0x1065 && c <= 0x1066) || # 2263
    (c >= 0x106e && c <= 0x1070) || # 2266
    (c >= 0x1075 && c <= 0x1081) || # 2279
    (c == 0x108e) || # 2280
    (c >= 0x10a0 && c <= 0x10c5) || # 2318
    (c == 0x10c7) || # 2319
    (c == 0x10cd) || # 2320
    (c >= 0x10d0 && c <= 0x10fa) || # 2363
    (c >= 0x10fc && c <= 0x1248) || # 2696
    (c >= 0x124a && c <= 0x124d) || # 2700
    (c >= 0x1250 && c <= 0x1256) || # 2707
    (c == 0x1258) || # 2708
    (c >= 0x125a && c <= 0x125d) || # 2712
    (c >= 0x1260 && c <= 0x1288) || # 2753
    (c >= 0x128a && c <= 0x128d) || # 2757
    (c >= 0x1290 && c <= 0x12b0) || # 2790
    (c >= 0x12b2 && c <= 0x12b5) || # 2794
    (c >= 0x12b8 && c <= 0x12be) || # 2801
    (c == 0x12c0) || # 2802
    (c >= 0x12c2 && c <= 0x12c5) || # 2806
    (c >= 0x12c8 && c <= 0x12d6) || # 2821
    (c >= 0x12d8 && c <= 0x1310) || # 2878
    (c >= 0x1312 && c <= 0x1315) || # 2882
    (c >= 0x1318 && c <= 0x135a) || # 2949
    (c >= 0x1380 && c <= 0x138f) || # 2965
    (c >= 0x13a0 && c <= 0x13f4) || # 3050
    (c >= 0x1401 && c <= 0x166c) || # 3670
    (c >= 0x166f && c <= 0x167f) || # 3687
    (c >= 0x1681 && c <= 0x169a) || # 3713
    (c >= 0x16a0 && c <= 0x16ea) || # 3788
    (c >= 0x16ee && c <= 0x16f8) || # 3799
    (c >= 0x1700 && c <= 0x170c) || # 3812
    (c >= 0x170e && c <= 0x1711) || # 3816
    (c >= 0x1720 && c <= 0x1731) || # 3834
    (c >= 0x1740 && c <= 0x1751) || # 3852
    (c >= 0x1760 && c <= 0x176c) || # 3865
    (c >= 0x176e && c <= 0x1770) || # 3868
    (c >= 0x1780 && c <= 0x17b3) || # 3920
    (c == 0x17d7) || # 3921
    (c == 0x17dc) || # 3922
    (c >= 0x1820 && c <= 0x1877) || # 4010
    (c >= 0x1880 && c <= 0x18a8) || # 4051
    (c == 0x18aa) || # 4052
    (c >= 0x18b0 && c <= 0x18f5) || # 4122
    (c >= 0x1900 && c <= 0x191e) || # 4153
    (c >= 0x1950 && c <= 0x196d) || # 4183
    (c >= 0x1970 && c <= 0x1974) || # 4188
    (c >= 0x1980 && c <= 0x19ab) || # 4232
    (c >= 0x19c1 && c <= 0x19c7) || # 4239
    (c >= 0x1a00 && c <= 0x1a16) || # 4262
    (c >= 0x1a20 && c <= 0x1a54) || # 4315
    (c == 0x1aa7) || # 4316
    (c >= 0x1b05 && c <= 0x1b33) || # 4363
    (c >= 0x1b45 && c <= 0x1b4b) || # 4370
    (c >= 0x1b83 && c <= 0x1ba0) || # 4400
    (c >= 0x1bae && c <= 0x1baf) || # 4402
    (c >= 0x1bba && c <= 0x1be5) || # 4446
    (c >= 0x1c00 && c <= 0x1c23) || # 4482
    (c >= 0x1c4d && c <= 0x1c4f) || # 4485
    (c >= 0x1c5a && c <= 0x1c7d) || # 4521
    (c >= 0x1ce9 && c <= 0x1cec) || # 4525
    (c >= 0x1cee && c <= 0x1cf1) || # 4529
    (c >= 0x1cf5 && c <= 0x1cf6) || # 4531
    (c >= 0x1d00 && c <= 0x1dbf) || # 4723
    (c >= 0x1e00 && c <= 0x1f15) || # 5001
    (c >= 0x1f18 && c <= 0x1f1d) || # 5007
    (c >= 0x1f20 && c <= 0x1f45) || # 5045
    (c >= 0x1f48 && c <= 0x1f4d) || # 5051
    (c >= 0x1f50 && c <= 0x1f57) || # 5059
    (c == 0x1f59) || # 5060
    (c == 0x1f5b) || # 5061
    (c == 0x1f5d) || # 5062
    (c >= 0x1f5f && c <= 0x1f7d) || # 5093
    (c >= 0x1f80 && c <= 0x1fb4) || # 5146
    (c >= 0x1fb6 && c <= 0x1fbc) || # 5153
    (c == 0x1fbe) || # 5154
    (c >= 0x1fc2 && c <= 0x1fc4) || # 5157
    (c >= 0x1fc6 && c <= 0x1fcc) || # 5164
    (c >= 0x1fd0 && c <= 0x1fd3) || # 5168
    (c >= 0x1fd6 && c <= 0x1fdb) || # 5174
    (c >= 0x1fe0 && c <= 0x1fec) || # 5187
    (c >= 0x1ff2 && c <= 0x1ff4) || # 5190
    (c >= 0x1ff6 && c <= 0x1ffc) || # 5197
    (c == 0x2071) || # 5198
    (c == 0x207f) || # 5199
    (c >= 0x2090 && c <= 0x209c) || # 5212
    (c == 0x2102) || # 5213
    (c == 0x2107) || # 5214
    (c >= 0x210a && c <= 0x2113) || # 5224
    (c == 0x2115) || # 5225
    (c >= 0x2119 && c <= 0x211d) || # 5230
    (c == 0x2124) || # 5231
    (c == 0x2126) || # 5232
    (c == 0x2128) || # 5233
    (c >= 0x212a && c <= 0x212d) || # 5237
    (c >= 0x212f && c <= 0x2139) || # 5248
    (c >= 0x213c && c <= 0x213f) || # 5252
    (c >= 0x2145 && c <= 0x2149) || # 5257
    (c == 0x214e) || # 5258
    (c >= 0x2160 && c <= 0x2188) || # 5299
    (c >= 0x2c00 && c <= 0x2c2e) || # 5346
    (c >= 0x2c30 && c <= 0x2c5e) || # 5393
    (c >= 0x2c60 && c <= 0x2ce4) || # 5526
    (c >= 0x2ceb && c <= 0x2cee) || # 5530
    (c >= 0x2cf2 && c <= 0x2cf3) || # 5532
    (c >= 0x2d00 && c <= 0x2d25) || # 5570
    (c == 0x2d27) || # 5571
    (c == 0x2d2d) || # 5572
    (c >= 0x2d30 && c <= 0x2d67) || # 5628
    (c == 0x2d6f) || # 5629
    (c >= 0x2d80 && c <= 0x2d96) || # 5652
    (c >= 0x2da0 && c <= 0x2da6) || # 5659
    (c >= 0x2da8 && c <= 0x2dae) || # 5666
    (c >= 0x2db0 && c <= 0x2db6) || # 5673
    (c >= 0x2db8 && c <= 0x2dbe) || # 5680
    (c >= 0x2dc0 && c <= 0x2dc6) || # 5687
    (c >= 0x2dc8 && c <= 0x2dce) || # 5694
    (c >= 0x2dd0 && c <= 0x2dd6) || # 5701
    (c >= 0x2dd8 && c <= 0x2dde) || # 5708
    (c == 0x2e2f) || # 5709
    (c >= 0x3005 && c <= 0x3007) || # 5712
    (c >= 0x3021 && c <= 0x3029) || # 5721
    (c >= 0x3031 && c <= 0x3035) || # 5726
    (c >= 0x3038 && c <= 0x303c) || # 5731
    (c >= 0x3041 && c <= 0x3096) || # 5817
    (c >= 0x309d && c <= 0x309f) || # 5820
    (c >= 0x30a1 && c <= 0x30fa) || # 5910
    (c >= 0x30fc && c <= 0x30ff) || # 5914
    (c >= 0x3105 && c <= 0x312d) || # 5955
    (c >= 0x3131 && c <= 0x318e) || # 6049
    (c >= 0x31a0 && c <= 0x31ba) || # 6076
    (c >= 0x31f0 && c <= 0x31ff) || # 6092
    (c == 0x3400) || # 6093
    (c == 0x4db5) || # 6094
    (c == 0x4e00) || # 6095
    (c == 0x9fcc) || # 6096
    (c >= 0xa000 && c <= 0xa48c) || # 7261
    (c >= 0xa4d0 && c <= 0xa4fd) || # 7307
    (c >= 0xa500 && c <= 0xa60c) || # 7576
    (c >= 0xa610 && c <= 0xa61f) || # 7592
    (c >= 0xa62a && c <= 0xa62b) || # 7594
    (c >= 0xa640 && c <= 0xa66e) || # 7641
    (c >= 0xa67f && c <= 0xa69d) || # 7672
    (c >= 0xa6a0 && c <= 0xa6ef) || # 7752
    (c >= 0xa717 && c <= 0xa71f) || # 7761
    (c >= 0xa722 && c <= 0xa788) || # 7864
    (c >= 0xa78b && c <= 0xa78e) || # 7868
    (c >= 0xa790 && c <= 0xa7ad) || # 7898
    (c >= 0xa7b0 && c <= 0xa7b1) || # 7900
    (c >= 0xa7f7 && c <= 0xa801) || # 7911
    (c >= 0xa803 && c <= 0xa805) || # 7914
    (c >= 0xa807 && c <= 0xa80a) || # 7918
    (c >= 0xa80c && c <= 0xa822) || # 7941
    (c >= 0xa840 && c <= 0xa873) || # 7993
    (c >= 0xa882 && c <= 0xa8b3) || # 8043
    (c >= 0xa8f2 && c <= 0xa8f7) || # 8049
    (c == 0xa8fb) || # 8050
    (c >= 0xa90a && c <= 0xa925) || # 8078
    (c >= 0xa930 && c <= 0xa946) || # 8101
    (c >= 0xa960 && c <= 0xa97c) || # 8130
    (c >= 0xa984 && c <= 0xa9b2) || # 8177
    (c == 0xa9cf) || # 8178
    (c >= 0xa9e0 && c <= 0xa9e4) || # 8183
    (c >= 0xa9e6 && c <= 0xa9ef) || # 8193
    (c >= 0xa9fa && c <= 0xa9fe) || # 8198
    (c >= 0xaa00 && c <= 0xaa28) || # 8239
    (c >= 0xaa40 && c <= 0xaa42) || # 8242
    (c >= 0xaa44 && c <= 0xaa4b) || # 8250
    (c >= 0xaa60 && c <= 0xaa76) || # 8273
    (c == 0xaa7a) || # 8274
    (c >= 0xaa7e && c <= 0xaaaf) || # 8324
    (c == 0xaab1) || # 8325
    (c >= 0xaab5 && c <= 0xaab6) || # 8327
    (c >= 0xaab9 && c <= 0xaabd) || # 8332
    (c == 0xaac0) || # 8333
    (c == 0xaac2) || # 8334
    (c >= 0xaadb && c <= 0xaadd) || # 8337
    (c >= 0xaae0 && c <= 0xaaea) || # 8348
    (c >= 0xaaf2 && c <= 0xaaf4) || # 8351
    (c >= 0xab01 && c <= 0xab06) || # 8357
    (c >= 0xab09 && c <= 0xab0e) || # 8363
    (c >= 0xab11 && c <= 0xab16) || # 8369
    (c >= 0xab20 && c <= 0xab26) || # 8376
    (c >= 0xab28 && c <= 0xab2e) || # 8383
    (c >= 0xab30 && c <= 0xab5a) || # 8426
    (c >= 0xab5c && c <= 0xab5f) || # 8430
    (c >= 0xab64 && c <= 0xab65) || # 8432
    (c >= 0xabc0 && c <= 0xabe2) || # 8467
    (c == 0xac00) || # 8468
    (c == 0xd7a3) || # 8469
    (c >= 0xd7b0 && c <= 0xd7c6) || # 8492
    (c >= 0xd7cb && c <= 0xd7fb) || # 8541
    (c >= 0xf900 && c <= 0xfa6d) || # 8907
    (c >= 0xfa70 && c <= 0xfad9) || # 9013
    (c >= 0xfb00 && c <= 0xfb06) || # 9020
    (c >= 0xfb13 && c <= 0xfb17) || # 9025
    (c == 0xfb1d) || # 9026
    (c >= 0xfb1f && c <= 0xfb28) || # 9036
    (c >= 0xfb2a && c <= 0xfb36) || # 9049
    (c >= 0xfb38 && c <= 0xfb3c) || # 9054
    (c == 0xfb3e) || # 9055
    (c >= 0xfb40 && c <= 0xfb41) || # 9057
    (c >= 0xfb43 && c <= 0xfb44) || # 9059
    (c >= 0xfb46 && c <= 0xfbb1) || # 9167
    (c >= 0xfbd3 && c <= 0xfd3d) || # 9530
    (c >= 0xfd50 && c <= 0xfd8f) || # 9594
    (c >= 0xfd92 && c <= 0xfdc7) || # 9648
    (c >= 0xfdf0 && c <= 0xfdfb) || # 9660
    (c >= 0xfe70 && c <= 0xfe74) || # 9665
    (c >= 0xfe76 && c <= 0xfefc) || # 9800
    (c >= 0xff21 && c <= 0xff3a) || # 9826
    (c >= 0xff41 && c <= 0xff5a) || # 9852
    (c >= 0xff66 && c <= 0xffbe) || # 9941
    (c >= 0xffc2 && c <= 0xffc7) || # 9947
    (c >= 0xffca && c <= 0xffcf) || # 9953
    (c >= 0xffd2 && c <= 0xffd7) || # 9959
    (c >= 0xffda && c <= 0xffdc) || # 9962
    (c >= 0x10000 && c <= 0x1000b) || # 9974
    (c >= 0x1000d && c <= 0x10026) || # 10000
    (c >= 0x10028 && c <= 0x1003a) || # 10019
    (c >= 0x1003c && c <= 0x1003d) || # 10021
    (c >= 0x1003f && c <= 0x1004d) || # 10036
    (c >= 0x10050 && c <= 0x1005d) || # 10050
    (c >= 0x10080 && c <= 0x100fa) || # 10173
    (c >= 0x10140 && c <= 0x10174) || # 10226
    (c >= 0x10280 && c <= 0x1029c) || # 10255
    (c >= 0x102a0 && c <= 0x102d0) || # 10304
    (c >= 0x10300 && c <= 0x1031f) || # 10336
    (c >= 0x10330 && c <= 0x1034a) || # 10363
    (c >= 0x10350 && c <= 0x10375) || # 10401
    (c >= 0x10380 && c <= 0x1039d) || # 10431
    (c >= 0x103a0 && c <= 0x103c3) || # 10467
    (c >= 0x103c8 && c <= 0x103cf) || # 10475
    (c >= 0x103d1 && c <= 0x103d5) || # 10480
    (c >= 0x10400 && c <= 0x1049d) || # 10638
    (c >= 0x10500 && c <= 0x10527) || # 10678
    (c >= 0x10530 && c <= 0x10563) || # 10730
    (c >= 0x10600 && c <= 0x10736) || # 11041
    (c >= 0x10740 && c <= 0x10755) || # 11063
    (c >= 0x10760 && c <= 0x10767) || # 11071
    (c >= 0x10800 && c <= 0x10805) || # 11077
    (c == 0x10808) || # 11078
    (c >= 0x1080a && c <= 0x10835) || # 11122
    (c >= 0x10837 && c <= 0x10838) || # 11124
    (c == 0x1083c) || # 11125
    (c >= 0x1083f && c <= 0x10855) || # 11148
    (c >= 0x10860 && c <= 0x10876) || # 11171
    (c >= 0x10880 && c <= 0x1089e) || # 11202
    (c >= 0x10900 && c <= 0x10915) || # 11224
    (c >= 0x10920 && c <= 0x10939) || # 11250
    (c >= 0x10980 && c <= 0x109b7) || # 11306
    (c >= 0x109be && c <= 0x109bf) || # 11308
    (c == 0x10a00) || # 11309
    (c >= 0x10a10 && c <= 0x10a13) || # 11313
    (c >= 0x10a15 && c <= 0x10a17) || # 11316
    (c >= 0x10a19 && c <= 0x10a33) || # 11343
    (c >= 0x10a60 && c <= 0x10a7c) || # 11372
    (c >= 0x10a80 && c <= 0x10a9c) || # 11401
    (c >= 0x10ac0 && c <= 0x10ac7) || # 11409
    (c >= 0x10ac9 && c <= 0x10ae4) || # 11437
    (c >= 0x10b00 && c <= 0x10b35) || # 11491
    (c >= 0x10b40 && c <= 0x10b55) || # 11513
    (c >= 0x10b60 && c <= 0x10b72) || # 11532
    (c >= 0x10b80 && c <= 0x10b91) || # 11550
    (c >= 0x10c00 && c <= 0x10c48) || # 11623
    (c >= 0x11003 && c <= 0x11037) || # 11676
    (c >= 0x11083 && c <= 0x110af) || # 11721
    (c >= 0x110d0 && c <= 0x110e8) || # 11746
    (c >= 0x11103 && c <= 0x11126) || # 11782
    (c >= 0x11150 && c <= 0x11172) || # 11817
    (c == 0x11176) || # 11818
    (c >= 0x11183 && c <= 0x111b2) || # 11866
    (c >= 0x111c1 && c <= 0x111c4) || # 11870
    (c == 0x111da) || # 11871
    (c >= 0x11200 && c <= 0x11211) || # 11889
    (c >= 0x11213 && c <= 0x1122b) || # 11914
    (c >= 0x112b0 && c <= 0x112de) || # 11961
    (c >= 0x11305 && c <= 0x1130c) || # 11969
    (c >= 0x1130f && c <= 0x11310) || # 11971
    (c >= 0x11313 && c <= 0x11328) || # 11993
    (c >= 0x1132a && c <= 0x11330) || # 12000
    (c >= 0x11332 && c <= 0x11333) || # 12002
    (c >= 0x11335 && c <= 0x11339) || # 12007
    (c == 0x1133d) || # 12008
    (c >= 0x1135d && c <= 0x11361) || # 12013
    (c >= 0x11480 && c <= 0x114af) || # 12061
    (c >= 0x114c4 && c <= 0x114c5) || # 12063
    (c == 0x114c7) || # 12064
    (c >= 0x11580 && c <= 0x115ae) || # 12111
    (c >= 0x11600 && c <= 0x1162f) || # 12159
    (c == 0x11644) || # 12160
    (c >= 0x11680 && c <= 0x116aa) || # 12203
    (c >= 0x118a0 && c <= 0x118df) || # 12267
    (c == 0x118ff) || # 12268
    (c >= 0x11ac0 && c <= 0x11af8) || # 12325
    (c >= 0x12000 && c <= 0x12398) || # 13246
    (c >= 0x12400 && c <= 0x1246e) || # 13357
    (c >= 0x13000 && c <= 0x1342e) || # 14428
    (c >= 0x16800 && c <= 0x16a38) || # 14997
    (c >= 0x16a40 && c <= 0x16a5e) || # 15028
    (c >= 0x16ad0 && c <= 0x16aed) || # 15058
    (c >= 0x16b00 && c <= 0x16b2f) || # 15106
    (c >= 0x16b40 && c <= 0x16b43) || # 15110
    (c >= 0x16b63 && c <= 0x16b77) || # 15131
    (c >= 0x16b7d && c <= 0x16b8f) || # 15150
    (c >= 0x16f00 && c <= 0x16f44) || # 15219
    (c == 0x16f50) || # 15220
    (c >= 0x16f93 && c <= 0x16f9f) || # 15233
    (c >= 0x1b000 && c <= 0x1b001) || # 15235
    (c >= 0x1bc00 && c <= 0x1bc6a) || # 15342
    (c >= 0x1bc70 && c <= 0x1bc7c) || # 15355
    (c >= 0x1bc80 && c <= 0x1bc88) || # 15364
    (c >= 0x1bc90 && c <= 0x1bc99) || # 15374
    (c >= 0x1d400 && c <= 0x1d454) || # 15459
    (c >= 0x1d456 && c <= 0x1d49c) || # 15530
    (c >= 0x1d49e && c <= 0x1d49f) || # 15532
    (c == 0x1d4a2) || # 15533
    (c >= 0x1d4a5 && c <= 0x1d4a6) || # 15535
    (c >= 0x1d4a9 && c <= 0x1d4ac) || # 15539
    (c >= 0x1d4ae && c <= 0x1d4b9) || # 15551
    (c == 0x1d4bb) || # 15552
    (c >= 0x1d4bd && c <= 0x1d4c3) || # 15559
    (c >= 0x1d4c5 && c <= 0x1d505) || # 15624
    (c >= 0x1d507 && c <= 0x1d50a) || # 15628
    (c >= 0x1d50d && c <= 0x1d514) || # 15636
    (c >= 0x1d516 && c <= 0x1d51c) || # 15643
    (c >= 0x1d51e && c <= 0x1d539) || # 15671
    (c >= 0x1d53b && c <= 0x1d53e) || # 15675
    (c >= 0x1d540 && c <= 0x1d544) || # 15680
    (c == 0x1d546) || # 15681
    (c >= 0x1d54a && c <= 0x1d550) || # 15688
    (c >= 0x1d552 && c <= 0x1d6a5) || # 16028
    (c >= 0x1d6a8 && c <= 0x1d6c0) || # 16053
    (c >= 0x1d6c2 && c <= 0x1d6da) || # 16078
    (c >= 0x1d6dc && c <= 0x1d6fa) || # 16109
    (c >= 0x1d6fc && c <= 0x1d714) || # 16134
    (c >= 0x1d716 && c <= 0x1d734) || # 16165
    (c >= 0x1d736 && c <= 0x1d74e) || # 16190
    (c >= 0x1d750 && c <= 0x1d76e) || # 16221
    (c >= 0x1d770 && c <= 0x1d788) || # 16246
    (c >= 0x1d78a && c <= 0x1d7a8) || # 16277
    (c >= 0x1d7aa && c <= 0x1d7c2) || # 16302
    (c >= 0x1d7c4 && c <= 0x1d7cb) || # 16310
    (c >= 0x1e800 && c <= 0x1e8c4) || # 16507
    (c >= 0x1ee00 && c <= 0x1ee03) || # 16511
    (c >= 0x1ee05 && c <= 0x1ee1f) || # 16538
    (c >= 0x1ee21 && c <= 0x1ee22) || # 16540
    (c == 0x1ee24) || # 16541
    (c == 0x1ee27) || # 16542
    (c >= 0x1ee29 && c <= 0x1ee32) || # 16552
    (c >= 0x1ee34 && c <= 0x1ee37) || # 16556
    (c == 0x1ee39) || # 16557
    (c == 0x1ee3b) || # 16558
    (c == 0x1ee42) || # 16559
    (c == 0x1ee47) || # 16560
    (c == 0x1ee49) || # 16561
    (c == 0x1ee4b) || # 16562
    (c >= 0x1ee4d && c <= 0x1ee4f) || # 16565
    (c >= 0x1ee51 && c <= 0x1ee52) || # 16567
    (c == 0x1ee54) || # 16568
    (c == 0x1ee57) || # 16569
    (c == 0x1ee59) || # 16570
    (c == 0x1ee5b) || # 16571
    (c == 0x1ee5d) || # 16572
    (c == 0x1ee5f) || # 16573
    (c >= 0x1ee61 && c <= 0x1ee62) || # 16575
    (c == 0x1ee64) || # 16576
    (c >= 0x1ee67 && c <= 0x1ee6a) || # 16580
    (c >= 0x1ee6c && c <= 0x1ee72) || # 16587
    (c >= 0x1ee74 && c <= 0x1ee77) || # 16591
    (c >= 0x1ee79 && c <= 0x1ee7c) || # 16595
    (c == 0x1ee7e) || # 16596
    (c >= 0x1ee80 && c <= 0x1ee89) || # 16606
    (c >= 0x1ee8b && c <= 0x1ee9b) || # 16623
    (c >= 0x1eea1 && c <= 0x1eea3) || # 16626
    (c >= 0x1eea5 && c <= 0x1eea9) || # 16631
    (c >= 0x1eeab && c <= 0x1eebb) || # 16648
    (c == 0x20000) || # 16649
    (c == 0x2a6d6) || # 16650
    (c == 0x2a700) || # 16651
    (c == 0x2b734) || # 16652
    (c == 0x2b740) || # 16653
    (c == 0x2b81d) || # 16654
    (c >= 0x2f800 && c <= 0x2fa1d)  # 17196
        return true
  else
    return false
  end
end
idname?(name) click to toggle source

Tests name is IdentifierName or not.

See ECMA262 7.5 for more detail

# File lib/minjs/ctype.rb, line 1313
def idname?(name)
  return false if name.length == 0
  s = name.codepoints
  return false unless identifier_start?(s[0])
  s.unshift
  s.each do |code|
    return false unless identifier_part?(code)
  end
  return true
end
line_terminator?(code) click to toggle source

Tests character code is LineTerminator or not. LineTerminator is <LF>, <CR>, <LS> and <PS>

@param [Fixnum] code @return true if code is LineTerminator, otherwise false. @see www.ecma-international.org/ecma-262 ECMA262 7.3

# File lib/minjs/ctype.rb, line 66
def line_terminator?(code)
  code == 0x0a || code == 0x0d || code == 0x2028 || code == 0x2029
end
octal_digit?(code) click to toggle source

Tests character code is OctalDigit or not.

@param [Fixnum] code @return true if code is OctalDigit, otherwise false @see www.ecma-international.org/ecma-262 ECMA262 Annex B.

# File lib/minjs/ctype.rb, line 10
def octal_digit?(code)
  code >= 0x30 and code <= 0x37
end
white_space?(code) click to toggle source

Tests character code is WhiteSpace or not.

WhiteSpace is <TAB>, <VT>, <FF>, <SP>, <NBSP>, <BOM> and <USP> any character in the Unicode category Zs

@param [Fixnum] code @return true if code is WhiteSpace, otherwise false. @see www.ecma-international.org/ecma-262 ECMA262 7.2

# File lib/minjs/ctype.rb, line 47
def white_space?(code)
  code == 0x20 || code == 0x9 || code == 0xb || code == 0xc || code == 0xa0 || code == 0xfeff ||
    code == 0x1680 || # OGHAM SPACE MARK
    (code and code >= 0x2000 && code <= 0x200a) ||
    code == 0x202f || # NARROW NO-BREAK SPACE
    code == 0x205f || # MEDIUM MATHEMATICAL SPACE
    code == 0x3000  # IDEOGRAPHIC SPACE
end