comparison src/regexp_nfa.c @ 24351:585695c70392 v8.2.2716

patch 8.2.2716: the equivalent class regexp is missing some characters Commit: https://github.com/vim/vim/commit/0b94e297afd072c51bf2eed12c7ffe3978d93399 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Apr 5 13:59:53 2021 +0200 patch 8.2.2716: the equivalent class regexp is missing some characters Problem: The equivalent class regexp is missing some characters. Solution: Update the list of equivalent characters. (Dominique Pell?, closes #8029)
author Bram Moolenaar <Bram@vim.org>
date Mon, 05 Apr 2021 14:00:15 +0200
parents a7cdfc8e4b6e
children 87ff80c08e4b
comparison
equal deleted inserted replaced
24350:4c571ac0748e 24351:585695c70392
697 */ 697 */
698 static int 698 static int
699 nfa_emit_equi_class(int c) 699 nfa_emit_equi_class(int c)
700 { 700 {
701 #define EMIT2(c) EMIT(c); EMIT(NFA_CONCAT); 701 #define EMIT2(c) EMIT(c); EMIT(NFA_CONCAT);
702 #define EMITMBC(c) EMIT(c); EMIT(NFA_CONCAT);
703 702
704 if (enc_utf8 || STRCMP(p_enc, "latin1") == 0 703 if (enc_utf8 || STRCMP(p_enc, "latin1") == 0
705 || STRCMP(p_enc, "iso-8859-15") == 0) 704 || STRCMP(p_enc, "iso-8859-15") == 0)
706 { 705 {
707 #ifdef EBCDIC 706 #ifdef EBCDIC
818 # define y_diaeresis 0xff 817 # define y_diaeresis 0xff
819 #endif 818 #endif
820 switch (c) 819 switch (c)
821 { 820 {
822 case 'A': case A_grave: case A_acute: case A_circumflex: 821 case 'A': case A_grave: case A_acute: case A_circumflex:
823 case A_virguilla: case A_diaeresis: case A_ring: 822 case A_virguilla: case A_diaeresis: case A_ring:
824 CASEMBC(0x100) CASEMBC(0x102) CASEMBC(0x104) 823 case 0x100: case 0x102: case 0x104: case 0x1cd:
825 CASEMBC(0x1cd) CASEMBC(0x1de) CASEMBC(0x1e0) 824 case 0x1de: case 0x1e0: case 0x1fa: case 0x200:
826 CASEMBC(0x1ea2) 825 case 0x202: case 0x226: case 0x23a: case 0x1e00:
827 EMIT2('A'); EMIT2(A_grave); EMIT2(A_acute); 826 case 0x1ea0: case 0x1ea2: case 0x1ea4: case 0x1ea6:
828 EMIT2(A_circumflex); EMIT2(A_virguilla); 827 case 0x1ea8: case 0x1eaa: case 0x1eac: case 0x1eae:
829 EMIT2(A_diaeresis); EMIT2(A_ring); 828 case 0x1eb0: case 0x1eb2: case 0x1eb4: case 0x1eb6:
830 EMITMBC(0x100) EMITMBC(0x102) EMITMBC(0x104) 829 EMIT2('A') EMIT2(A_grave) EMIT2(A_acute)
831 EMITMBC(0x1cd) EMITMBC(0x1de) EMITMBC(0x1e0) 830 EMIT2(A_circumflex) EMIT2(A_virguilla)
832 EMITMBC(0x1ea2) 831 EMIT2(A_diaeresis) EMIT2(A_ring)
832 EMIT2(0x100) EMIT2(0x102) EMIT2(0x104)
833 EMIT2(0x1cd) EMIT2(0x1de) EMIT2(0x1e0)
834 EMIT2(0x1fa) EMIT2(0x200) EMIT2(0x202)
835 EMIT2(0x226) EMIT2(0x23a) EMIT2(0x1e00)
836 EMIT2(0x1ea0) EMIT2(0x1ea2) EMIT2(0x1ea4)
837 EMIT2(0x1ea6) EMIT2(0x1ea8) EMIT2(0x1eaa)
838 EMIT2(0x1eac) EMIT2(0x1eae) EMIT2(0x1eb0)
839 EMIT2(0x1eb2) EMIT2(0x1eb6) EMIT2(0x1eb4)
833 return OK; 840 return OK;
834 841
835 case 'B': CASEMBC(0x1e02) CASEMBC(0x1e06) 842 case 'B': case 0x181: case 0x243: case 0x1e02:
836 EMIT2('B'); EMITMBC(0x1e02) EMITMBC(0x1e06) 843 case 0x1e04: case 0x1e06:
844 EMIT2('B')
845 EMIT2(0x181) EMIT2(0x243) EMIT2(0x1e02)
846 EMIT2(0x1e04) EMIT2(0x1e06)
837 return OK; 847 return OK;
838 848
839 case 'C': case C_cedilla: CASEMBC(0x106) CASEMBC(0x108) 849 case 'C': case C_cedilla: case 0x106: case 0x108:
840 CASEMBC(0x10a) CASEMBC(0x10c) 850 case 0x10a: case 0x10c: case 0x187: case 0x23b:
841 EMIT2('C'); EMIT2(C_cedilla); 851 case 0x1e08: case 0xa792:
842 EMITMBC(0x106) EMITMBC(0x108) 852 EMIT2('C') EMIT2(C_cedilla)
843 EMITMBC(0x10a) EMITMBC(0x10c) 853 EMIT2(0x106) EMIT2(0x108) EMIT2(0x10a)
854 EMIT2(0x10c) EMIT2(0x187) EMIT2(0x23b)
855 EMIT2(0x1e08) EMIT2(0xa792)
844 return OK; 856 return OK;
845 857
846 case 'D': CASEMBC(0x10e) CASEMBC(0x110) CASEMBC(0x1e0a) 858 case 'D': case 0x10e: case 0x110: case 0x18a:
847 CASEMBC(0x1e0e) CASEMBC(0x1e10) 859 case 0x1e0a: case 0x1e0c: case 0x1e0e: case 0x1e10:
848 EMIT2('D'); EMITMBC(0x10e) EMITMBC(0x110) EMITMBC(0x1e0a) 860 case 0x1e12:
849 EMITMBC(0x1e0e) EMITMBC(0x1e10) 861 EMIT2('D') EMIT2(0x10e) EMIT2(0x110) EMIT2(0x18a)
862 EMIT2(0x1e0a) EMIT2(0x1e0c) EMIT2(0x1e0e)
863 EMIT2(0x1e10) EMIT2(0x1e12)
850 return OK; 864 return OK;
851 865
852 case 'E': case E_grave: case E_acute: case E_circumflex: 866 case 'E': case E_grave: case E_acute: case E_circumflex:
853 case E_diaeresis: CASEMBC(0x112) CASEMBC(0x114) 867 case E_diaeresis: case 0x112: case 0x114: case 0x116:
854 CASEMBC(0x116) CASEMBC(0x118) CASEMBC(0x11a) 868 case 0x118: case 0x11a: case 0x204: case 0x206:
855 CASEMBC(0x1eba) CASEMBC(0x1ebc) 869 case 0x228: case 0x246: case 0x1e14: case 0x1e16:
856 EMIT2('E'); EMIT2(E_grave); EMIT2(E_acute); 870 case 0x1e18: case 0x1e1a: case 0x1e1c: case 0x1eb8:
857 EMIT2(E_circumflex); EMIT2(E_diaeresis); 871 case 0x1eba: case 0x1ebc: case 0x1ebe: case 0x1ec0:
858 EMITMBC(0x112) EMITMBC(0x114) EMITMBC(0x116) 872 case 0x1ec2: case 0x1ec4: case 0x1ec6:
859 EMITMBC(0x118) EMITMBC(0x11a) EMITMBC(0x1eba) 873 EMIT2('E') EMIT2(E_grave) EMIT2(E_acute)
860 EMITMBC(0x1ebc) 874 EMIT2(E_circumflex) EMIT2(E_diaeresis)
875 EMIT2(0x112) EMIT2(0x114) EMIT2(0x116)
876 EMIT2(0x118) EMIT2(0x11a) EMIT2(0x204)
877 EMIT2(0x206) EMIT2(0x228) EMIT2(0x246)
878 EMIT2(0x1e14) EMIT2(0x1e16) EMIT2(0x1e18)
879 EMIT2(0x1e1a) EMIT2(0x1e1c) EMIT2(0x1eb8)
880 EMIT2(0x1eba) EMIT2(0x1ebc) EMIT2(0x1ebe)
881 EMIT2(0x1ec0) EMIT2(0x1ec2) EMIT2(0x1ec4)
882 EMIT2(0x1ec6)
861 return OK; 883 return OK;
862 884
863 case 'F': CASEMBC(0x1e1e) 885 case 'F': case 0x191: case 0x1e1e: case 0xa798:
864 EMIT2('F'); EMITMBC(0x1e1e) 886 EMIT2('F') EMIT2(0x191) EMIT2(0x1e1e) EMIT2(0xa798)
865 return OK; 887 return OK;
866 888
867 case 'G': CASEMBC(0x11c) CASEMBC(0x11e) CASEMBC(0x120) 889 case 'G': case 0x11c: case 0x11e: case 0x120:
868 CASEMBC(0x122) CASEMBC(0x1e4) CASEMBC(0x1e6) 890 case 0x122: case 0x193: case 0x1e4: case 0x1e6:
869 CASEMBC(0x1f4) CASEMBC(0x1e20) 891 case 0x1f4: case 0x1e20: case 0xa7a0:
870 EMIT2('G'); EMITMBC(0x11c) EMITMBC(0x11e) EMITMBC(0x120) 892 EMIT2('G') EMIT2(0x11c) EMIT2(0x11e) EMIT2(0x120)
871 EMITMBC(0x122) EMITMBC(0x1e4) EMITMBC(0x1e6) 893 EMIT2(0x122) EMIT2(0x193) EMIT2(0x1e4)
872 EMITMBC(0x1f4) EMITMBC(0x1e20) 894 EMIT2(0x1e6) EMIT2(0x1f4) EMIT2(0x1e20)
895 EMIT2(0xa7a0)
873 return OK; 896 return OK;
874 897
875 case 'H': CASEMBC(0x124) CASEMBC(0x126) CASEMBC(0x1e22) 898 case 'H': case 0x124: case 0x126: case 0x21e:
876 CASEMBC(0x1e26) CASEMBC(0x1e28) 899 case 0x1e22: case 0x1e24: case 0x1e26: case 0x1e28:
877 EMIT2('H'); EMITMBC(0x124) EMITMBC(0x126) EMITMBC(0x1e22) 900 case 0x1e2a: case 0x2c67:
878 EMITMBC(0x1e26) EMITMBC(0x1e28) 901 EMIT2('H') EMIT2(0x124) EMIT2(0x126) EMIT2(0x21e)
902 EMIT2(0x1e22) EMIT2(0x1e24) EMIT2(0x1e26)
903 EMIT2(0x1e28) EMIT2(0x1e2a) EMIT2(0x2c67)
879 return OK; 904 return OK;
880 905
881 case 'I': case I_grave: case I_acute: case I_circumflex: 906 case 'I': case I_grave: case I_acute: case I_circumflex:
882 case I_diaeresis: CASEMBC(0x128) CASEMBC(0x12a) 907 case I_diaeresis: case 0x128: case 0x12a: case 0x12c:
883 CASEMBC(0x12c) CASEMBC(0x12e) CASEMBC(0x130) 908 case 0x12e: case 0x130: case 0x197: case 0x1cf:
884 CASEMBC(0x1cf) CASEMBC(0x1ec8) 909 case 0x208: case 0x20a: case 0x1e2c: case 0x1e2e:
885 EMIT2('I'); EMIT2(I_grave); EMIT2(I_acute); 910 case 0x1ec8: case 0x1eca:
886 EMIT2(I_circumflex); EMIT2(I_diaeresis); 911 EMIT2('I') EMIT2(I_grave) EMIT2(I_acute)
887 EMITMBC(0x128) EMITMBC(0x12a) 912 EMIT2(I_circumflex) EMIT2(I_diaeresis)
888 EMITMBC(0x12c) EMITMBC(0x12e) EMITMBC(0x130) 913 EMIT2(0x128) EMIT2(0x12a) EMIT2(0x12c)
889 EMITMBC(0x1cf) EMITMBC(0x1ec8) 914 EMIT2(0x12e) EMIT2(0x130) EMIT2(0x197)
915 EMIT2(0x1cf) EMIT2(0x208) EMIT2(0x20a)
916 EMIT2(0x1e2c) EMIT2(0x1e2e) EMIT2(0x1ec8)
917 EMIT2(0x1eca)
890 return OK; 918 return OK;
891 919
892 case 'J': CASEMBC(0x134) 920 case 'J': case 0x134: case 0x248:
893 EMIT2('J'); EMITMBC(0x134) 921 EMIT2('J') EMIT2(0x134) EMIT2(0x248)
894 return OK; 922 return OK;
895 923
896 case 'K': CASEMBC(0x136) CASEMBC(0x1e8) CASEMBC(0x1e30) 924 case 'K': case 0x136: case 0x198: case 0x1e8: case 0x1e30:
897 CASEMBC(0x1e34) 925 case 0x1e32: case 0x1e34: case 0x2c69: case 0xa740:
898 EMIT2('K'); EMITMBC(0x136) EMITMBC(0x1e8) EMITMBC(0x1e30) 926 EMIT2('K') EMIT2(0x136) EMIT2(0x198) EMIT2(0x1e8)
899 EMITMBC(0x1e34) 927 EMIT2(0x1e30) EMIT2(0x1e32) EMIT2(0x1e34)
928 EMIT2(0x2c69) EMIT2(0xa740)
900 return OK; 929 return OK;
901 930
902 case 'L': CASEMBC(0x139) CASEMBC(0x13b) CASEMBC(0x13d) 931 case 'L': case 0x139: case 0x13b: case 0x13d:
903 CASEMBC(0x13f) CASEMBC(0x141) CASEMBC(0x1e3a) 932 case 0x13f: case 0x141: case 0x23d: case 0x1e36:
904 EMIT2('L'); EMITMBC(0x139) EMITMBC(0x13b) EMITMBC(0x13d) 933 case 0x1e38: case 0x1e3a: case 0x1e3c: case 0x2c60:
905 EMITMBC(0x13f) EMITMBC(0x141) EMITMBC(0x1e3a) 934 EMIT2('L') EMIT2(0x139) EMIT2(0x13b)
935 EMIT2(0x13d) EMIT2(0x13f) EMIT2(0x141)
936 EMIT2(0x23d) EMIT2(0x1e36) EMIT2(0x1e38)
937 EMIT2(0x1e3a) EMIT2(0x1e3c) EMIT2(0x2c60)
906 return OK; 938 return OK;
907 939
908 case 'M': CASEMBC(0x1e3e) CASEMBC(0x1e40) 940 case 'M': case 0x1e3e: case 0x1e40: case 0x1e42:
909 EMIT2('M'); EMITMBC(0x1e3e) EMITMBC(0x1e40) 941 EMIT2('M') EMIT2(0x1e3e) EMIT2(0x1e40)
942 EMIT2(0x1e42)
910 return OK; 943 return OK;
911 944
912 case 'N': case N_virguilla: CASEMBC(0x143) CASEMBC(0x145) 945 case 'N': case N_virguilla:
913 CASEMBC(0x147) CASEMBC(0x1e44) CASEMBC(0x1e48) 946 case 0x143: case 0x145: case 0x147: case 0x1f8:
914 EMIT2('N'); EMIT2(N_virguilla); 947 case 0x1e44: case 0x1e46: case 0x1e48: case 0x1e4a:
915 EMITMBC(0x143) EMITMBC(0x145) 948 case 0xa7a4:
916 EMITMBC(0x147) EMITMBC(0x1e44) EMITMBC(0x1e48) 949 EMIT2('N') EMIT2(N_virguilla)
950 EMIT2(0x143) EMIT2(0x145) EMIT2(0x147)
951 EMIT2(0x1f8) EMIT2(0x1e44) EMIT2(0x1e46)
952 EMIT2(0x1e48) EMIT2(0x1e4a) EMIT2(0xa7a4)
917 return OK; 953 return OK;
918 954
919 case 'O': case O_grave: case O_acute: case O_circumflex: 955 case 'O': case O_grave: case O_acute: case O_circumflex:
920 case O_virguilla: case O_diaeresis: case O_slash: 956 case O_virguilla: case O_diaeresis: case O_slash:
921 CASEMBC(0x14c) CASEMBC(0x14e) CASEMBC(0x150) 957 case 0x14c: case 0x14e: case 0x150: case 0x19f:
922 CASEMBC(0x1a0) CASEMBC(0x1d1) CASEMBC(0x1ea) 958 case 0x1a0: case 0x1d1: case 0x1ea: case 0x1ec:
923 CASEMBC(0x1ec) CASEMBC(0x1ece) 959 case 0x1fe: case 0x20c: case 0x20e: case 0x22a:
924 EMIT2('O'); EMIT2(O_grave); EMIT2(O_acute); 960 case 0x22c: case 0x22e: case 0x230: case 0x1e4c:
925 EMIT2(O_circumflex); EMIT2(O_virguilla); 961 case 0x1e4e: case 0x1e50: case 0x1e52: case 0x1ecc:
926 EMIT2(O_diaeresis); EMIT2(O_slash); 962 case 0x1ece: case 0x1ed0: case 0x1ed2: case 0x1ed4:
927 EMITMBC(0x14c) EMITMBC(0x14e) EMITMBC(0x150) 963 case 0x1ed6: case 0x1ed8: case 0x1eda: case 0x1edc:
928 EMITMBC(0x1a0) EMITMBC(0x1d1) EMITMBC(0x1ea) 964 case 0x1ede: case 0x1ee0: case 0x1ee2:
929 EMITMBC(0x1ec) EMITMBC(0x1ece) 965 EMIT2('O') EMIT2(O_grave) EMIT2(O_acute)
966 EMIT2(O_circumflex) EMIT2(O_virguilla)
967 EMIT2(O_diaeresis) EMIT2(O_slash)
968 EMIT2(0x14c) EMIT2(0x14e) EMIT2(0x150)
969 EMIT2(0x19f) EMIT2(0x1a0) EMIT2(0x1d1)
970 EMIT2(0x1ea) EMIT2(0x1ec) EMIT2(0x1fe)
971 EMIT2(0x20c) EMIT2(0x20e) EMIT2(0x22a)
972 EMIT2(0x22c) EMIT2(0x22e) EMIT2(0x230)
973 EMIT2(0x1e4c) EMIT2(0x1e4e) EMIT2(0x1e50)
974 EMIT2(0x1e52) EMIT2(0x1ecc) EMIT2(0x1ece)
975 EMIT2(0x1ed0) EMIT2(0x1ed2) EMIT2(0x1ed4)
976 EMIT2(0x1ed6) EMIT2(0x1ed8) EMIT2(0x1eda)
977 EMIT2(0x1edc) EMIT2(0x1ede) EMIT2(0x1ee0)
978 EMIT2(0x1ee2)
930 return OK; 979 return OK;
931 980
932 case 'P': case 0x1e54: case 0x1e56: 981 case 'P': case 0x1a4: case 0x1e54: case 0x1e56: case 0x2c63:
933 EMIT2('P'); EMITMBC(0x1e54) EMITMBC(0x1e56) 982 EMIT2('P') EMIT2(0x1a4) EMIT2(0x1e54) EMIT2(0x1e56)
983 EMIT2(0x2c63)
934 return OK; 984 return OK;
935 985
936 case 'R': CASEMBC(0x154) CASEMBC(0x156) CASEMBC(0x158) 986 case 'Q': case 0x24a:
937 CASEMBC(0x1e58) CASEMBC(0x1e5e) 987 EMIT2('Q') EMIT2(0x24a)
938 EMIT2('R'); EMITMBC(0x154) EMITMBC(0x156) EMITMBC(0x158)
939 EMITMBC(0x1e58) EMITMBC(0x1e5e)
940 return OK; 988 return OK;
941 989
942 case 'S': CASEMBC(0x15a) CASEMBC(0x15c) CASEMBC(0x15e) 990 case 'R': case 0x154: case 0x156: case 0x158: case 0x210:
943 CASEMBC(0x160) CASEMBC(0x1e60) 991 case 0x212: case 0x24c: case 0x1e58: case 0x1e5a:
944 EMIT2('S'); EMITMBC(0x15a) EMITMBC(0x15c) EMITMBC(0x15e) 992 case 0x1e5c: case 0x1e5e: case 0x2c64: case 0xa7a6:
945 EMITMBC(0x160) EMITMBC(0x1e60) 993 EMIT2('R') EMIT2(0x154) EMIT2(0x156) EMIT2(0x158)
994 EMIT2(0x210) EMIT2(0x212) EMIT2(0x24c) EMIT2(0x1e58)
995 EMIT2(0x1e5a) EMIT2(0x1e5c) EMIT2(0x1e5e) EMIT2(0x2c64)
996 EMIT2(0xa7a6)
946 return OK; 997 return OK;
947 998
948 case 'T': CASEMBC(0x162) CASEMBC(0x164) CASEMBC(0x166) 999 case 'S': case 0x15a: case 0x15c: case 0x15e: case 0x160:
949 CASEMBC(0x1e6a) CASEMBC(0x1e6e) 1000 case 0x218: case 0x1e60: case 0x1e62: case 0x1e64:
950 EMIT2('T'); EMITMBC(0x162) EMITMBC(0x164) EMITMBC(0x166) 1001 case 0x1e66: case 0x1e68: case 0x2c7e: case 0xa7a8:
951 EMITMBC(0x1e6a) EMITMBC(0x1e6e) 1002 EMIT2('S') EMIT2(0x15a) EMIT2(0x15c) EMIT2(0x15e)
1003 EMIT2(0x160) EMIT2(0x218) EMIT2(0x1e60) EMIT2(0x1e62)
1004 EMIT2(0x1e64) EMIT2(0x1e66) EMIT2(0x1e68) EMIT2(0x2c7e)
1005 EMIT2(0xa7a8)
952 return OK; 1006 return OK;
953 1007
1008 case 'T': case 0x162: case 0x164: case 0x166: case 0x1ac:
1009 case 0x1ae: case 0x21a: case 0x23e: case 0x1e6a: case 0x1e6c:
1010 case 0x1e6e: case 0x1e70:
1011 EMIT2('T') EMIT2(0x162) EMIT2(0x164) EMIT2(0x166)
1012 EMIT2(0x1ac) EMIT2(0x1ae) EMIT2(0x23e) EMIT2(0x21a)
1013 EMIT2(0x1e6a) EMIT2(0x1e6c) EMIT2(0x1e6e) EMIT2(0x1e70)
1014 return OK;
1015
954 case 'U': case U_grave: case U_acute: case U_diaeresis: 1016 case 'U': case U_grave: case U_acute: case U_diaeresis:
955 case U_circumflex: CASEMBC(0x168) CASEMBC(0x16a) 1017 case U_circumflex: case 0x168: case 0x16a: case 0x16c:
956 CASEMBC(0x16c) CASEMBC(0x16e) CASEMBC(0x170) 1018 case 0x16e: case 0x170: case 0x172: case 0x1af:
957 CASEMBC(0x172) CASEMBC(0x1af) CASEMBC(0x1d3) 1019 case 0x1d3: case 0x1d5: case 0x1d7: case 0x1d9:
958 CASEMBC(0x1ee6) 1020 case 0x1db: case 0x214: case 0x216: case 0x244:
959 EMIT2('U'); EMIT2(U_grave); EMIT2(U_acute); 1021 case 0x1e72: case 0x1e74: case 0x1e76: case 0x1e78:
960 EMIT2(U_diaeresis); EMIT2(U_circumflex); 1022 case 0x1e7a: case 0x1ee4: case 0x1ee6: case 0x1ee8:
961 EMITMBC(0x168) EMITMBC(0x16a) 1023 case 0x1eea: case 0x1eec: case 0x1eee: case 0x1ef0:
962 EMITMBC(0x16c) EMITMBC(0x16e) EMITMBC(0x170) 1024 EMIT2('U') EMIT2(U_grave) EMIT2(U_acute)
963 EMITMBC(0x172) EMITMBC(0x1af) EMITMBC(0x1d3) 1025 EMIT2(U_diaeresis) EMIT2(U_circumflex)
964 EMITMBC(0x1ee6) 1026 EMIT2(0x168) EMIT2(0x16a)
1027 EMIT2(0x16c) EMIT2(0x16e) EMIT2(0x170)
1028 EMIT2(0x172) EMIT2(0x1af) EMIT2(0x1d3)
1029 EMIT2(0x1d5) EMIT2(0x1d7) EMIT2(0x1d9)
1030 EMIT2(0x1db) EMIT2(0x214) EMIT2(0x216)
1031 EMIT2(0x244) EMIT2(0x1e72) EMIT2(0x1e74)
1032 EMIT2(0x1e76) EMIT2(0x1e78) EMIT2(0x1e7a)
1033 EMIT2(0x1ee4) EMIT2(0x1ee6) EMIT2(0x1ee8)
1034 EMIT2(0x1eea) EMIT2(0x1eec) EMIT2(0x1eee)
1035 EMIT2(0x1ef0)
965 return OK; 1036 return OK;
966 1037
967 case 'V': CASEMBC(0x1e7c) 1038 case 'V': case 0x1b2: case 0x1e7c: case 0x1e7e:
968 EMIT2('V'); EMITMBC(0x1e7c) 1039 EMIT2('V') EMIT2(0x1b2) EMIT2(0x1e7c) EMIT2(0x1e7e)
969 return OK; 1040 return OK;
970 1041
971 case 'W': CASEMBC(0x174) CASEMBC(0x1e80) CASEMBC(0x1e82) 1042 case 'W': case 0x174: case 0x1e80: case 0x1e82: case 0x1e84:
972 CASEMBC(0x1e84) CASEMBC(0x1e86) 1043 case 0x1e86: case 0x1e88:
973 EMIT2('W'); EMITMBC(0x174) EMITMBC(0x1e80) EMITMBC(0x1e82) 1044 EMIT2('W') EMIT2(0x174) EMIT2(0x1e80) EMIT2(0x1e82)
974 EMITMBC(0x1e84) EMITMBC(0x1e86) 1045 EMIT2(0x1e84) EMIT2(0x1e86) EMIT2(0x1e88)
975 return OK; 1046 return OK;
976 1047
977 case 'X': CASEMBC(0x1e8a) CASEMBC(0x1e8c) 1048 case 'X': case 0x1e8a: case 0x1e8c:
978 EMIT2('X'); EMITMBC(0x1e8a) EMITMBC(0x1e8c) 1049 EMIT2('X') EMIT2(0x1e8a) EMIT2(0x1e8c)
979 return OK; 1050 return OK;
980 1051
981 case 'Y': case Y_acute: CASEMBC(0x176) CASEMBC(0x178) 1052 case 'Y': case Y_acute: case 0x176: case 0x178:
982 CASEMBC(0x1e8e) CASEMBC(0x1ef2) CASEMBC(0x1ef6) 1053 case 0x1b3: case 0x232: case 0x24e: case 0x1e8e:
983 CASEMBC(0x1ef8) 1054 case 0x1ef2: case 0x1ef4: case 0x1ef6: case 0x1ef8:
984 EMIT2('Y'); EMIT2(Y_acute); 1055 EMIT2('Y') EMIT2(Y_acute)
985 EMITMBC(0x176) EMITMBC(0x178) 1056 EMIT2(0x176) EMIT2(0x178) EMIT2(0x1b3)
986 EMITMBC(0x1e8e) EMITMBC(0x1ef2) EMITMBC(0x1ef6) 1057 EMIT2(0x232) EMIT2(0x24e) EMIT2(0x1e8e)
987 EMITMBC(0x1ef8) 1058 EMIT2(0x1ef2) EMIT2(0x1ef4) EMIT2(0x1ef6)
1059 EMIT2(0x1ef8)
988 return OK; 1060 return OK;
989 1061
990 case 'Z': CASEMBC(0x179) CASEMBC(0x17b) CASEMBC(0x17d) 1062 case 'Z': case 0x179: case 0x17b: case 0x17d:
991 CASEMBC(0x1b5) CASEMBC(0x1e90) CASEMBC(0x1e94) 1063 case 0x1b5: case 0x1e90: case 0x1e92: case 0x1e94:
992 EMIT2('Z'); EMITMBC(0x179) EMITMBC(0x17b) EMITMBC(0x17d) 1064 case 0x2c6b:
993 EMITMBC(0x1b5) EMITMBC(0x1e90) EMITMBC(0x1e94) 1065 EMIT2('Z') EMIT2(0x179) EMIT2(0x17b) EMIT2(0x17d)
1066 EMIT2(0x1b5) EMIT2(0x1e90) EMIT2(0x1e92)
1067 EMIT2(0x1e94) EMIT2(0x2c6b)
994 return OK; 1068 return OK;
995 1069
996 case 'a': case a_grave: case a_acute: case a_circumflex: 1070 case 'a': case a_grave: case a_acute: case a_circumflex:
997 case a_virguilla: case a_diaeresis: case a_ring: 1071 case a_virguilla: case a_diaeresis: case a_ring:
998 CASEMBC(0x101) CASEMBC(0x103) CASEMBC(0x105) 1072 case 0x101: case 0x103: case 0x105: case 0x1ce:
999 CASEMBC(0x1ce) CASEMBC(0x1df) CASEMBC(0x1e1) 1073 case 0x1df: case 0x1e1: case 0x1fb: case 0x201:
1000 CASEMBC(0x1ea3) 1074 case 0x203: case 0x227: case 0x1d8f: case 0x1e01:
1001 EMIT2('a'); EMIT2(a_grave); EMIT2(a_acute); 1075 case 0x1e9a: case 0x1ea1: case 0x1ea3: case 0x1ea5:
1002 EMIT2(a_circumflex); EMIT2(a_virguilla); 1076 case 0x1ea7: case 0x1ea9: case 0x1eab: case 0x1ead:
1003 EMIT2(a_diaeresis); EMIT2(a_ring); 1077 case 0x1eaf: case 0x1eb1: case 0x1eb3: case 0x1eb5:
1004 EMITMBC(0x101) EMITMBC(0x103) EMITMBC(0x105) 1078 case 0x1eb7: case 0x2c65:
1005 EMITMBC(0x1ce) EMITMBC(0x1df) EMITMBC(0x1e1) 1079 EMIT2('a') EMIT2(a_grave) EMIT2(a_acute)
1006 EMITMBC(0x1ea3) 1080 EMIT2(a_circumflex) EMIT2(a_virguilla)
1081 EMIT2(a_diaeresis) EMIT2(a_ring)
1082 EMIT2(0x101) EMIT2(0x103) EMIT2(0x105)
1083 EMIT2(0x1ce) EMIT2(0x1df) EMIT2(0x1e1)
1084 EMIT2(0x1fb) EMIT2(0x201) EMIT2(0x203)
1085 EMIT2(0x227) EMIT2(0x1d8f) EMIT2(0x1e01)
1086 EMIT2(0x1e9a) EMIT2(0x1ea1) EMIT2(0x1ea3)
1087 EMIT2(0x1ea5) EMIT2(0x1ea7) EMIT2(0x1ea9)
1088 EMIT2(0x1eab) EMIT2(0x1ead) EMIT2(0x1eaf)
1089 EMIT2(0x1eb1) EMIT2(0x1eb3) EMIT2(0x1eb5)
1090 EMIT2(0x1eb7) EMIT2(0x2c65)
1007 return OK; 1091 return OK;
1008 1092
1009 case 'b': CASEMBC(0x1e03) CASEMBC(0x1e07) 1093 case 'b': case 0x180: case 0x253: case 0x1d6c: case 0x1d80:
1010 EMIT2('b'); EMITMBC(0x1e03) EMITMBC(0x1e07) 1094 case 0x1e03: case 0x1e05: case 0x1e07:
1095 EMIT2('b') EMIT2(0x180) EMIT2(0x253) EMIT2(0x1d6c)
1096 EMIT2(0x1d80) EMIT2(0x1e03) EMIT2(0x1e05) EMIT2(0x1e07)
1011 return OK; 1097 return OK;
1012 1098
1013 case 'c': case c_cedilla: CASEMBC(0x107) CASEMBC(0x109) 1099 case 'c': case c_cedilla: case 0x107: case 0x109: case 0x10b:
1014 CASEMBC(0x10b) CASEMBC(0x10d) 1100 case 0x10d: case 0x188: case 0x23c: case 0x1e09: case 0xa793:
1015 EMIT2('c'); EMIT2(c_cedilla); 1101 case 0xa794:
1016 EMITMBC(0x107) EMITMBC(0x109) 1102 EMIT2('c') EMIT2(c_cedilla)
1017 EMITMBC(0x10b) EMITMBC(0x10d) 1103 EMIT2(0x107) EMIT2(0x109) EMIT2(0x10b)
1104 EMIT2(0x10d) EMIT2(0x188) EMIT2(0x23c)
1105 EMIT2(0x1e09) EMIT2(0xa793) EMIT2(0xa794)
1018 return OK; 1106 return OK;
1019 1107
1020 case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1e0b) 1108 case 'd': case 0x10f: case 0x111: case 0x257: case 0x1d6d:
1021 CASEMBC(0x1e0f) CASEMBC(0x1e11) 1109 case 0x1d81: case 0x1d91: case 0x1e0b: case 0x1e0d: case 0x1e0f:
1022 EMIT2('d'); EMITMBC(0x10f) EMITMBC(0x111) 1110 case 0x1e11: case 0x1e13:
1023 EMITMBC(0x1e0b) EMITMBC(0x1e0f) EMITMBC(0x1e11) 1111 EMIT2('d') EMIT2(0x10f) EMIT2(0x111)
1112 EMIT2(0x257) EMIT2(0x1d6d) EMIT2(0x1d81)
1113 EMIT2(0x1d91) EMIT2(0x1e0b) EMIT2(0x1e0d)
1114 EMIT2(0x1e0f) EMIT2(0x1e11) EMIT2(0x1e13)
1024 return OK; 1115 return OK;
1025 1116
1026 case 'e': case e_grave: case e_acute: case e_circumflex: 1117 case 'e': case e_grave: case e_acute: case e_circumflex:
1027 case e_diaeresis: CASEMBC(0x113) CASEMBC(0x115) 1118 case e_diaeresis: case 0x113: case 0x115: case 0x117:
1028 CASEMBC(0x117) CASEMBC(0x119) CASEMBC(0x11b) 1119 case 0x119: case 0x11b: case 0x205: case 0x207:
1029 CASEMBC(0x1ebb) CASEMBC(0x1ebd) 1120 case 0x229: case 0x247: case 0x1d92: case 0x1e15:
1030 EMIT2('e'); EMIT2(e_grave); EMIT2(e_acute); 1121 case 0x1e17: case 0x1e19: case 0x1e1b: case 0x1e1d:
1031 EMIT2(e_circumflex); EMIT2(e_diaeresis); 1122 case 0x1eb9: case 0x1ebb: case 0x1ebd: case 0x1ebf:
1032 EMITMBC(0x113) EMITMBC(0x115) 1123 case 0x1ec1: case 0x1ec3: case 0x1ec5: case 0x1ec7:
1033 EMITMBC(0x117) EMITMBC(0x119) EMITMBC(0x11b) 1124 EMIT2('e') EMIT2(e_grave) EMIT2(e_acute)
1034 EMITMBC(0x1ebb) EMITMBC(0x1ebd) 1125 EMIT2(e_circumflex) EMIT2(e_diaeresis)
1126 EMIT2(0x113) EMIT2(0x115)
1127 EMIT2(0x117) EMIT2(0x119) EMIT2(0x11b)
1128 EMIT2(0x205) EMIT2(0x207) EMIT2(0x229)
1129 EMIT2(0x247) EMIT2(0x1d92) EMIT2(0x1e15)
1130 EMIT2(0x1e17) EMIT2(0x1e19) EMIT2(0x1e1b)
1131 EMIT2(0x1e1d) EMIT2(0x1eb9) EMIT2(0x1ebb)
1132 EMIT2(0x1ebd) EMIT2(0x1ebf) EMIT2(0x1ec1)
1133 EMIT2(0x1ec3) EMIT2(0x1ec5) EMIT2(0x1ec7)
1035 return OK; 1134 return OK;
1036 1135
1037 case 'f': CASEMBC(0x1e1f) 1136 case 'f': case 0x192: case 0x1d6e: case 0x1d82:
1038 EMIT2('f'); EMITMBC(0x1e1f) 1137 case 0x1e1f: case 0xa799:
1138 EMIT2('f') EMIT2(0x192) EMIT2(0x1d6e) EMIT2(0x1d82)
1139 EMIT2(0x1e1f) EMIT2(0xa799)
1039 return OK; 1140 return OK;
1040 1141
1041 case 'g': CASEMBC(0x11d) CASEMBC(0x11f) CASEMBC(0x121) 1142 case 'g': case 0x11d: case 0x11f: case 0x121: case 0x123:
1042 CASEMBC(0x123) CASEMBC(0x1e5) CASEMBC(0x1e7) 1143 case 0x1e5: case 0x1e7: case 0x1f5: case 0x260: case 0x1d83:
1043 CASEMBC(0x1f5) CASEMBC(0x1e21) 1144 case 0x1e21: case 0xa7a1:
1044 EMIT2('g'); EMITMBC(0x11d) EMITMBC(0x11f) EMITMBC(0x121) 1145 EMIT2('g') EMIT2(0x11d) EMIT2(0x11f) EMIT2(0x121)
1045 EMITMBC(0x123) EMITMBC(0x1e5) EMITMBC(0x1e7) 1146 EMIT2(0x123) EMIT2(0x1e5) EMIT2(0x1e7)
1046 EMITMBC(0x1f5) EMITMBC(0x1e21) 1147 EMIT2(0x1f5) EMIT2(0x260) EMIT2(0x1d83)
1148 EMIT2(0x1e21) EMIT2(0xa7a1)
1047 return OK; 1149 return OK;
1048 1150
1049 case 'h': CASEMBC(0x125) CASEMBC(0x127) CASEMBC(0x1e23) 1151 case 'h': case 0x125: case 0x127: case 0x21f: case 0x1e23:
1050 CASEMBC(0x1e27) CASEMBC(0x1e29) CASEMBC(0x1e96) 1152 case 0x1e25: case 0x1e27: case 0x1e29: case 0x1e2b:
1051 EMIT2('h'); EMITMBC(0x125) EMITMBC(0x127) EMITMBC(0x1e23) 1153 case 0x1e96: case 0x2c68: case 0xa795:
1052 EMITMBC(0x1e27) EMITMBC(0x1e29) EMITMBC(0x1e96) 1154 EMIT2('h') EMIT2(0x125) EMIT2(0x127) EMIT2(0x21f)
1155 EMIT2(0x1e23) EMIT2(0x1e25) EMIT2(0x1e27)
1156 EMIT2(0x1e29) EMIT2(0x1e2b) EMIT2(0x1e96)
1157 EMIT2(0x2c68) EMIT2(0xa795)
1053 return OK; 1158 return OK;
1054 1159
1055 case 'i': case i_grave: case i_acute: case i_circumflex: 1160 case 'i': case i_grave: case i_acute: case i_circumflex:
1056 case i_diaeresis: CASEMBC(0x129) CASEMBC(0x12b) 1161 case i_diaeresis: case 0x129: case 0x12b: case 0x12d:
1057 CASEMBC(0x12d) CASEMBC(0x12f) CASEMBC(0x1d0) 1162 case 0x12f: case 0x1d0: case 0x209: case 0x20b:
1058 CASEMBC(0x1ec9) 1163 case 0x268: case 0x1d96: case 0x1e2d: case 0x1e2f:
1059 EMIT2('i'); EMIT2(i_grave); EMIT2(i_acute); 1164 case 0x1ec9: case 0x1ecb:
1060 EMIT2(i_circumflex); EMIT2(i_diaeresis); 1165 EMIT2('i') EMIT2(i_grave) EMIT2(i_acute)
1061 EMITMBC(0x129) EMITMBC(0x12b) 1166 EMIT2(i_circumflex) EMIT2(i_diaeresis)
1062 EMITMBC(0x12d) EMITMBC(0x12f) EMITMBC(0x1d0) 1167 EMIT2(0x129) EMIT2(0x12b) EMIT2(0x12d)
1063 EMITMBC(0x1ec9) 1168 EMIT2(0x12f) EMIT2(0x1d0) EMIT2(0x209)
1169 EMIT2(0x20b) EMIT2(0x268) EMIT2(0x1d96)
1170 EMIT2(0x1e2d) EMIT2(0x1e2f) EMIT2(0x1ec9)
1171 EMIT2(0x1ecb) EMIT2(0x1ecb)
1064 return OK; 1172 return OK;
1065 1173
1066 case 'j': CASEMBC(0x135) CASEMBC(0x1f0) 1174 case 'j': case 0x135: case 0x1f0: case 0x249:
1067 EMIT2('j'); EMITMBC(0x135) EMITMBC(0x1f0) 1175 EMIT2('j') EMIT2(0x135) EMIT2(0x1f0) EMIT2(0x249)
1068 return OK; 1176 return OK;
1069 1177
1070 case 'k': CASEMBC(0x137) CASEMBC(0x1e9) CASEMBC(0x1e31) 1178 case 'k': case 0x137: case 0x199: case 0x1e9: case 0x1d84:
1071 CASEMBC(0x1e35) 1179 case 0x1e31: case 0x1e33: case 0x1e35: case 0x2c6a: case 0xa741:
1072 EMIT2('k'); EMITMBC(0x137) EMITMBC(0x1e9) EMITMBC(0x1e31) 1180 EMIT2('k') EMIT2(0x137) EMIT2(0x199) EMIT2(0x1e9)
1073 EMITMBC(0x1e35) 1181 EMIT2(0x1d84) EMIT2(0x1e31) EMIT2(0x1e33)
1182 EMIT2(0x1e35) EMIT2(0x2c6a) EMIT2(0xa741)
1074 return OK; 1183 return OK;
1075 1184
1076 case 'l': CASEMBC(0x13a) CASEMBC(0x13c) CASEMBC(0x13e) 1185 case 'l': case 0x13a: case 0x13c: case 0x13e: case 0x140:
1077 CASEMBC(0x140) CASEMBC(0x142) CASEMBC(0x1e3b) 1186 case 0x142: case 0x19a: case 0x1e37: case 0x1e39: case 0x1e3b:
1078 EMIT2('l'); EMITMBC(0x13a) EMITMBC(0x13c) EMITMBC(0x13e) 1187 case 0x1e3d: case 0x2c61:
1079 EMITMBC(0x140) EMITMBC(0x142) EMITMBC(0x1e3b) 1188 EMIT2('l') EMIT2(0x13a) EMIT2(0x13c)
1189 EMIT2(0x13e) EMIT2(0x140) EMIT2(0x142)
1190 EMIT2(0x19a) EMIT2(0x1e37) EMIT2(0x1e39)
1191 EMIT2(0x1e3b) EMIT2(0x1e3d) EMIT2(0x2c61)
1080 return OK; 1192 return OK;
1081 1193
1082 case 'm': CASEMBC(0x1e3f) CASEMBC(0x1e41) 1194 case 'm': case 0x1d6f: case 0x1e3f: case 0x1e41: case 0x1e43:
1083 EMIT2('m'); EMITMBC(0x1e3f) EMITMBC(0x1e41) 1195 EMIT2('m') EMIT2(0x1d6f) EMIT2(0x1e3f)
1196 EMIT2(0x1e41) EMIT2(0x1e43)
1084 return OK; 1197 return OK;
1085 1198
1086 case 'n': case n_virguilla: CASEMBC(0x144) CASEMBC(0x146) 1199 case 'n': case n_virguilla: case 0x144: case 0x146: case 0x148:
1087 CASEMBC(0x148) CASEMBC(0x149) CASEMBC(0x1e45) 1200 case 0x149: case 0x1f9: case 0x1d70: case 0x1d87: case 0x1e45:
1088 CASEMBC(0x1e49) 1201 case 0x1e47: case 0x1e49: case 0x1e4b: case 0xa7a5:
1089 EMIT2('n'); EMIT2(n_virguilla); 1202 EMIT2('n') EMIT2(n_virguilla)
1090 EMITMBC(0x144) EMITMBC(0x146) 1203 EMIT2(0x144) EMIT2(0x146) EMIT2(0x148)
1091 EMITMBC(0x148) EMITMBC(0x149) EMITMBC(0x1e45) 1204 EMIT2(0x149) EMIT2(0x1f9) EMIT2(0x1d70)
1092 EMITMBC(0x1e49) 1205 EMIT2(0x1d87) EMIT2(0x1e45) EMIT2(0x1e47)
1206 EMIT2(0x1e49) EMIT2(0x1e4b) EMIT2(0xa7a5)
1093 return OK; 1207 return OK;
1094 1208
1095 case 'o': case o_grave: case o_acute: case o_circumflex: 1209 case 'o': case o_grave: case o_acute: case o_circumflex:
1096 case o_virguilla: case o_diaeresis: case o_slash: 1210 case o_virguilla: case o_diaeresis: case o_slash:
1097 CASEMBC(0x14d) CASEMBC(0x14f) CASEMBC(0x151) 1211 case 0x14d: case 0x14f: case 0x151: case 0x1a1:
1098 CASEMBC(0x1a1) CASEMBC(0x1d2) CASEMBC(0x1eb) 1212 case 0x1d2: case 0x1eb: case 0x1ed: case 0x1ff:
1099 CASEMBC(0x1ed) CASEMBC(0x1ecf) 1213 case 0x20d: case 0x20f: case 0x22b: case 0x22d:
1100 EMIT2('o'); EMIT2(o_grave); EMIT2(o_acute); 1214 case 0x22f: case 0x231: case 0x275: case 0x1e4d:
1101 EMIT2(o_circumflex); EMIT2(o_virguilla); 1215 case 0x1e4f: case 0x1e51: case 0x1e53: case 0x1ecd:
1102 EMIT2(o_diaeresis); EMIT2(o_slash); 1216 case 0x1ecf: case 0x1ed1: case 0x1ed3: case 0x1ed5:
1103 EMITMBC(0x14d) EMITMBC(0x14f) EMITMBC(0x151) 1217 case 0x1ed7: case 0x1ed9: case 0x1edb: case 0x1edd:
1104 EMITMBC(0x1a1) EMITMBC(0x1d2) EMITMBC(0x1eb) 1218 case 0x1edf: case 0x1ee1: case 0x1ee3:
1105 EMITMBC(0x1ed) EMITMBC(0x1ecf) 1219 EMIT2('o') EMIT2(o_grave) EMIT2(o_acute)
1220 EMIT2(o_circumflex) EMIT2(o_virguilla)
1221 EMIT2(o_diaeresis) EMIT2(o_slash)
1222 EMIT2(0x14d) EMIT2(0x14f) EMIT2(0x151)
1223 EMIT2(0x1a1) EMIT2(0x1d2) EMIT2(0x1eb)
1224 EMIT2(0x1ed) EMIT2(0x1ff) EMIT2(0x20d)
1225 EMIT2(0x20f) EMIT2(0x22b) EMIT2(0x22d)
1226 EMIT2(0x22f) EMIT2(0x231) EMIT2(0x275)
1227 EMIT2(0x1e4d) EMIT2(0x1e4f) EMIT2(0x1e51)
1228 EMIT2(0x1e53) EMIT2(0x1ecd) EMIT2(0x1ecf)
1229 EMIT2(0x1ed1) EMIT2(0x1ed3) EMIT2(0x1ed5)
1230 EMIT2(0x1ed7) EMIT2(0x1ed9) EMIT2(0x1edb)
1231 EMIT2(0x1edd) EMIT2(0x1edf) EMIT2(0x1ee1)
1232 EMIT2(0x1ee3)
1106 return OK; 1233 return OK;
1107 1234
1108 case 'p': CASEMBC(0x1e55) CASEMBC(0x1e57) 1235 case 'p': case 0x1a5: case 0x1d71: case 0x1d7d: case 0x1d88:
1109 EMIT2('p'); EMITMBC(0x1e55) EMITMBC(0x1e57) 1236 case 0x1e55: case 0x1e57:
1237 EMIT2('p') EMIT2(0x1a5) EMIT2(0x1d71) EMIT2(0x1d7d)
1238 EMIT2(0x1d88) EMIT2(0x1e55) EMIT2(0x1e57)
1110 return OK; 1239 return OK;
1111 1240
1112 case 'r': CASEMBC(0x155) CASEMBC(0x157) CASEMBC(0x159) 1241 case 'q': case 0x24b: case 0x2a0:
1113 CASEMBC(0x1e59) CASEMBC(0x1e5f) 1242 EMIT2('q') EMIT2(0x24b) EMIT2(0x2a0)
1114 EMIT2('r'); EMITMBC(0x155) EMITMBC(0x157) EMITMBC(0x159)
1115 EMITMBC(0x1e59) EMITMBC(0x1e5f)
1116 return OK; 1243 return OK;
1117 1244
1118 case 's': CASEMBC(0x15b) CASEMBC(0x15d) CASEMBC(0x15f) 1245 case 'r': case 0x155: case 0x157: case 0x159: case 0x211:
1119 CASEMBC(0x161) CASEMBC(0x1e61) 1246 case 0x213: case 0x24d: case 0x27d: case 0x1d72: case 0x1d73:
1120 EMIT2('s'); EMITMBC(0x15b) EMITMBC(0x15d) EMITMBC(0x15f) 1247 case 0x1d89: case 0x1e59: case 0x1e5b: case 0x1e5d: case 0x1e5f:
1121 EMITMBC(0x161) EMITMBC(0x1e61) 1248 case 0xa7a7:
1249 EMIT2('r') EMIT2(0x155) EMIT2(0x157) EMIT2(0x159)
1250 EMIT2(0x211) EMIT2(0x213) EMIT2(0x24d) EMIT2(0x27d)
1251 EMIT2(0x1d72) EMIT2(0x1d73) EMIT2(0x1d89) EMIT2(0x1e59)
1252 EMIT2(0x1e5b) EMIT2(0x1e5d) EMIT2(0x1e5f) EMIT2(0xa7a7)
1122 return OK; 1253 return OK;
1123 1254
1124 case 't': CASEMBC(0x163) CASEMBC(0x165) CASEMBC(0x167) 1255 case 's': case 0x15b: case 0x15d: case 0x15f: case 0x161:
1125 CASEMBC(0x1e6b) CASEMBC(0x1e6f) CASEMBC(0x1e97) 1256 case 0x219: case 0x23f: case 0x1d74: case 0x1d8a: case 0x1e61:
1126 EMIT2('t'); EMITMBC(0x163) EMITMBC(0x165) EMITMBC(0x167) 1257 case 0x1e63: case 0x1e65: case 0x1e67: case 0x1e69: case 0xa7a9:
1127 EMITMBC(0x1e6b) EMITMBC(0x1e6f) EMITMBC(0x1e97) 1258 EMIT2('s') EMIT2(0x15b) EMIT2(0x15d) EMIT2(0x15f)
1259 EMIT2(0x161) EMIT2(0x219) EMIT2(0x23f) EMIT2(0x1d74)
1260 EMIT2(0x1d8a) EMIT2(0x1e61) EMIT2(0x1e63) EMIT2(0x1e65)
1261 EMIT2(0x1e67) EMIT2(0x1e69) EMIT2(0xa7a9)
1128 return OK; 1262 return OK;
1129 1263
1264 case 't': case 0x163: case 0x165: case 0x167: case 0x1ab:
1265 case 0x1ad: case 0x21b: case 0x288: case 0x1d75: case 0x1e6b:
1266 case 0x1e6d: case 0x1e6f: case 0x1e71: case 0x1e97: case 0x2c66:
1267 EMIT2('t') EMIT2(0x163) EMIT2(0x165) EMIT2(0x167)
1268 EMIT2(0x1ab) EMIT2(0x1ad) EMIT2(0x21b) EMIT2(0x288)
1269 EMIT2(0x1d75) EMIT2(0x1e6b) EMIT2(0x1e6d) EMIT2(0x1e6f)
1270 EMIT2(0x1e71) EMIT2(0x1e97) EMIT2(0x2c66)
1271 return OK;
1272
1130 case 'u': case u_grave: case u_acute: case u_circumflex: 1273 case 'u': case u_grave: case u_acute: case u_circumflex:
1131 case u_diaeresis: CASEMBC(0x169) CASEMBC(0x16b) 1274 case u_diaeresis: case 0x169: case 0x16b: case 0x16d:
1132 CASEMBC(0x16d) CASEMBC(0x16f) CASEMBC(0x171) 1275 case 0x16f: case 0x171: case 0x173: case 0x1b0: case 0x1d4:
1133 CASEMBC(0x173) CASEMBC(0x1b0) CASEMBC(0x1d4) 1276 case 0x1d6: case 0x1d8: case 0x1da: case 0x1dc: case 0x215:
1134 CASEMBC(0x1ee7) 1277 case 0x217: case 0x289: case 0x1d7e: case 0x1d99: case 0x1e73:
1135 EMIT2('u'); EMIT2(u_grave); EMIT2(u_acute); 1278 case 0x1e75: case 0x1e77: case 0x1e79: case 0x1e7b:
1136 EMIT2(u_circumflex); EMIT2(u_diaeresis); 1279 case 0x1ee5: case 0x1ee7: case 0x1ee9: case 0x1eeb:
1137 EMITMBC(0x169) EMITMBC(0x16b) 1280 case 0x1eed: case 0x1eef: case 0x1ef1:
1138 EMITMBC(0x16d) EMITMBC(0x16f) EMITMBC(0x171) 1281 EMIT2('u') EMIT2(u_grave) EMIT2(u_acute)
1139 EMITMBC(0x173) EMITMBC(0x1b0) EMITMBC(0x1d4) 1282 EMIT2(u_circumflex) EMIT2(u_diaeresis)
1140 EMITMBC(0x1ee7) 1283 EMIT2(0x169) EMIT2(0x16b)
1284 EMIT2(0x16d) EMIT2(0x16f) EMIT2(0x171)
1285 EMIT2(0x173) EMIT2(0x1d6) EMIT2(0x1d8)
1286 EMIT2(0x215) EMIT2(0x217) EMIT2(0x1b0)
1287 EMIT2(0x1d4) EMIT2(0x1da) EMIT2(0x1dc)
1288 EMIT2(0x289) EMIT2(0x1e73) EMIT2(0x1d7e)
1289 EMIT2(0x1d99) EMIT2(0x1e75) EMIT2(0x1e77)
1290 EMIT2(0x1e79) EMIT2(0x1e7b) EMIT2(0x1ee5)
1291 EMIT2(0x1ee7) EMIT2(0x1ee9) EMIT2(0x1eeb)
1292 EMIT2(0x1eed) EMIT2(0x1eef) EMIT2(0x1ef1)
1141 return OK; 1293 return OK;
1142 1294
1143 case 'v': CASEMBC(0x1e7d) 1295 case 'v': case 0x28b: case 0x1d8c: case 0x1e7d: case 0x1e7f:
1144 EMIT2('v'); EMITMBC(0x1e7d) 1296 EMIT2('v') EMIT2(0x28b) EMIT2(0x1d8c) EMIT2(0x1e7d)
1297 EMIT2(0x1e7f)
1145 return OK; 1298 return OK;
1146 1299
1147 case 'w': CASEMBC(0x175) CASEMBC(0x1e81) CASEMBC(0x1e83) 1300 case 'w': case 0x175: case 0x1e81: case 0x1e83: case 0x1e85:
1148 CASEMBC(0x1e85) CASEMBC(0x1e87) CASEMBC(0x1e98) 1301 case 0x1e87: case 0x1e89: case 0x1e98:
1149 EMIT2('w'); EMITMBC(0x175) EMITMBC(0x1e81) EMITMBC(0x1e83) 1302 EMIT2('w') EMIT2(0x175) EMIT2(0x1e81) EMIT2(0x1e83)
1150 EMITMBC(0x1e85) EMITMBC(0x1e87) EMITMBC(0x1e98) 1303 EMIT2(0x1e85) EMIT2(0x1e87) EMIT2(0x1e89) EMIT2(0x1e98)
1151 return OK; 1304 return OK;
1152 1305
1153 case 'x': CASEMBC(0x1e8b) CASEMBC(0x1e8d) 1306 case 'x': case 0x1e8b: case 0x1e8d:
1154 EMIT2('x'); EMITMBC(0x1e8b) EMITMBC(0x1e8d) 1307 EMIT2('x') EMIT2(0x1e8b) EMIT2(0x1e8d)
1155 return OK; 1308 return OK;
1156 1309
1157 case 'y': case y_acute: case y_diaeresis: CASEMBC(0x177) 1310 case 'y': case y_acute: case y_diaeresis: case 0x177:
1158 CASEMBC(0x1e8f) CASEMBC(0x1e99) CASEMBC(0x1ef3) 1311 case 0x1b4: case 0x233: case 0x24f: case 0x1e8f:
1159 CASEMBC(0x1ef7) CASEMBC(0x1ef9) 1312 case 0x1e99: case 0x1ef3: case 0x1ef5: case 0x1ef7:
1160 EMIT2('y'); EMIT2(y_acute); EMIT2(y_diaeresis); 1313 case 0x1ef9:
1161 EMITMBC(0x177) 1314 EMIT2('y') EMIT2(y_acute) EMIT2(y_diaeresis)
1162 EMITMBC(0x1e8f) EMITMBC(0x1e99) EMITMBC(0x1ef3) 1315 EMIT2(0x177) EMIT2(0x1b4) EMIT2(0x233) EMIT2(0x24f)
1163 EMITMBC(0x1ef7) EMITMBC(0x1ef9) 1316 EMIT2(0x1e8f) EMIT2(0x1e99) EMIT2(0x1ef3)
1317 EMIT2(0x1ef5) EMIT2(0x1ef7) EMIT2(0x1ef9)
1164 return OK; 1318 return OK;
1165 1319
1166 case 'z': CASEMBC(0x17a) CASEMBC(0x17c) CASEMBC(0x17e) 1320 case 'z': case 0x17a: case 0x17c: case 0x17e: case 0x1b6:
1167 CASEMBC(0x1b6) CASEMBC(0x1e91) CASEMBC(0x1e95) 1321 case 0x1d76: case 0x1d8e: case 0x1e91: case 0x1e93:
1168 EMIT2('z'); EMITMBC(0x17a) EMITMBC(0x17c) EMITMBC(0x17e) 1322 case 0x1e95: case 0x2c6c:
1169 EMITMBC(0x1b6) EMITMBC(0x1e91) EMITMBC(0x1e95) 1323 EMIT2('z') EMIT2(0x17a) EMIT2(0x17c) EMIT2(0x17e)
1324 EMIT2(0x1b6) EMIT2(0x1d76) EMIT2(0x1d8e) EMIT2(0x1e91)
1325 EMIT2(0x1e93) EMIT2(0x1e95) EMIT2(0x2c6c)
1170 return OK; 1326 return OK;
1171 1327
1172 // default: character itself 1328 // default: character itself
1173 } 1329 }
1174 } 1330 }
1175 1331
1176 EMIT2(c); 1332 EMIT2(c);
1177 return OK; 1333 return OK;
1178 #undef EMIT2 1334 #undef EMIT2
1179 #undef EMITMBC 1335 #undef EMIT2
1180 } 1336 }
1181 1337
1182 /* 1338 /*
1183 * Code to parse regular expression. 1339 * Code to parse regular expression.
1184 * 1340 *