Mercurial > vim
comparison src/regexp_nfa.c @ 5351:923738744a60 v7.4.028
updated for version 7.4.028
Problem: Equivalence classes are not working for multi-byte characters.
Solution: Copy the rules from the old to the new regexp engine. Add a test
to check both engines.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Thu, 19 Sep 2013 17:00:20 +0200 |
parents | c514693882b9 |
children | 71e92a1cb37d |
comparison
equal
deleted
inserted
replaced
5350:a83960ec9e6d | 5351:923738744a60 |
---|---|
740 */ | 740 */ |
741 static int | 741 static int |
742 nfa_emit_equi_class(c) | 742 nfa_emit_equi_class(c) |
743 int c; | 743 int c; |
744 { | 744 { |
745 #define EMIT2(c) EMIT(c); EMIT(NFA_CONCAT); | 745 #define EMIT2(c) EMIT(c); EMIT(NFA_CONCAT); |
746 #ifdef FEAT_MBYTE | |
747 # define EMITMBC(c) EMIT(c); EMIT(NFA_CONCAT); | |
748 #else | |
749 # define EMITMBC(c) | |
750 #endif | |
746 | 751 |
747 #ifdef FEAT_MBYTE | 752 #ifdef FEAT_MBYTE |
748 if (enc_utf8 || STRCMP(p_enc, "latin1") == 0 | 753 if (enc_utf8 || STRCMP(p_enc, "latin1") == 0 |
749 || STRCMP(p_enc, "iso-8859-15") == 0) | 754 || STRCMP(p_enc, "iso-8859-15") == 0) |
750 #endif | 755 #endif |
751 { | 756 { |
752 switch (c) | 757 switch (c) |
753 { | 758 { |
754 case 'A': case 0300: case 0301: case 0302: | 759 case 'A': case 0300: case 0301: case 0302: |
755 case 0303: case 0304: case 0305: | 760 case 0303: case 0304: case 0305: |
756 EMIT2('A'); EMIT2(0300); EMIT2(0301); | 761 CASEMBC(0x100) CASEMBC(0x102) CASEMBC(0x104) CASEMBC(0x1cd) |
757 EMIT2(0302); EMIT2(0303); EMIT2(0304); | 762 CASEMBC(0x1de) CASEMBC(0x1e0) CASEMBC(0x1ea2) |
758 EMIT2(0305); | 763 EMIT2('A'); EMIT2(0300); EMIT2(0301); EMIT2(0302); |
764 EMIT2(0303); EMIT2(0304); EMIT2(0305); | |
765 EMITMBC(0x100) EMITMBC(0x102) EMITMBC(0x104) | |
766 EMITMBC(0x1cd) EMITMBC(0x1de) EMITMBC(0x1e0) | |
767 EMITMBC(0x1ea2) | |
759 return OK; | 768 return OK; |
760 | 769 |
770 case 'B': CASEMBC(0x1e02) CASEMBC(0x1e06) | |
771 EMIT2('B'); EMITMBC(0x1e02) EMITMBC(0x1e06) | |
772 return OK; | |
773 | |
761 case 'C': case 0307: | 774 case 'C': case 0307: |
762 EMIT2('C'); EMIT2(0307); | 775 CASEMBC(0x106) CASEMBC(0x108) CASEMBC(0x10a) CASEMBC(0x10c) |
776 EMIT2('C'); EMIT2(0307); EMITMBC(0x106) EMITMBC(0x108) | |
777 EMITMBC(0x10a) EMITMBC(0x10c) | |
763 return OK; | 778 return OK; |
764 | 779 |
780 case 'D': CASEMBC(0x10e) CASEMBC(0x110) CASEMBC(0x1e0a) | |
781 CASEMBC(0x1e0e) CASEMBC(0x1e10) | |
782 EMIT2('D'); EMITMBC(0x10e) EMITMBC(0x110) EMITMBC(0x1e0a) | |
783 EMITMBC(0x1e0e) EMITMBC(0x1e10) | |
784 return OK; | |
785 | |
765 case 'E': case 0310: case 0311: case 0312: case 0313: | 786 case 'E': case 0310: case 0311: case 0312: case 0313: |
766 EMIT2('E'); EMIT2(0310); EMIT2(0311); | 787 CASEMBC(0x112) CASEMBC(0x114) CASEMBC(0x116) CASEMBC(0x118) |
767 EMIT2(0312); EMIT2(0313); | 788 CASEMBC(0x11a) CASEMBC(0x1eba) CASEMBC(0x1ebc) |
789 EMIT2('E'); EMIT2(0310); EMIT2(0311); EMIT2(0312); | |
790 EMIT2(0313); | |
791 EMITMBC(0x112) EMITMBC(0x114) EMITMBC(0x116) | |
792 EMITMBC(0x118) EMITMBC(0x11a) EMITMBC(0x1eba) | |
793 EMITMBC(0x1ebc) | |
768 return OK; | 794 return OK; |
769 | 795 |
796 case 'F': CASEMBC(0x1e1e) | |
797 EMIT2('F'); EMITMBC(0x1e1e) | |
798 return OK; | |
799 | |
800 case 'G': CASEMBC(0x11c) CASEMBC(0x11e) CASEMBC(0x120) | |
801 CASEMBC(0x122) CASEMBC(0x1e4) CASEMBC(0x1e6) CASEMBC(0x1f4) | |
802 CASEMBC(0x1e20) | |
803 EMIT2('G'); EMITMBC(0x11c) EMITMBC(0x11e) EMITMBC(0x120) | |
804 EMITMBC(0x122) EMITMBC(0x1e4) EMITMBC(0x1e6) | |
805 EMITMBC(0x1f4) EMITMBC(0x1e20) | |
806 return OK; | |
807 | |
808 case 'H': CASEMBC(0x124) CASEMBC(0x126) CASEMBC(0x1e22) | |
809 CASEMBC(0x1e26) CASEMBC(0x1e28) | |
810 EMIT2('H'); EMITMBC(0x124) EMITMBC(0x126) EMITMBC(0x1e22) | |
811 EMITMBC(0x1e26) EMITMBC(0x1e28) | |
812 return OK; | |
813 | |
770 case 'I': case 0314: case 0315: case 0316: case 0317: | 814 case 'I': case 0314: case 0315: case 0316: case 0317: |
771 EMIT2('I'); EMIT2(0314); EMIT2(0315); | 815 CASEMBC(0x128) CASEMBC(0x12a) CASEMBC(0x12c) CASEMBC(0x12e) |
772 EMIT2(0316); EMIT2(0317); | 816 CASEMBC(0x130) CASEMBC(0x1cf) CASEMBC(0x1ec8) |
817 EMIT2('I'); EMIT2(0314); EMIT2(0315); EMIT2(0316); | |
818 EMIT2(0317); EMITMBC(0x128) EMITMBC(0x12a) | |
819 EMITMBC(0x12c) EMITMBC(0x12e) EMITMBC(0x130) | |
820 EMITMBC(0x1cf) EMITMBC(0x1ec8) | |
773 return OK; | 821 return OK; |
774 | 822 |
823 case 'J': CASEMBC(0x134) | |
824 EMIT2('J'); EMITMBC(0x134) | |
825 return OK; | |
826 | |
827 case 'K': CASEMBC(0x136) CASEMBC(0x1e8) CASEMBC(0x1e30) | |
828 CASEMBC(0x1e34) | |
829 EMIT2('K'); EMITMBC(0x136) EMITMBC(0x1e8) EMITMBC(0x1e30) | |
830 EMITMBC(0x1e34) | |
831 return OK; | |
832 | |
833 case 'L': CASEMBC(0x139) CASEMBC(0x13b) CASEMBC(0x13d) | |
834 CASEMBC(0x13f) CASEMBC(0x141) CASEMBC(0x1e3a) | |
835 EMIT2('L'); EMITMBC(0x139) EMITMBC(0x13b) EMITMBC(0x13d) | |
836 EMITMBC(0x13f) EMITMBC(0x141) EMITMBC(0x1e3a) | |
837 return OK; | |
838 | |
839 case 'M': CASEMBC(0x1e3e) CASEMBC(0x1e40) | |
840 EMIT2('M'); EMITMBC(0x1e3e) EMITMBC(0x1e40) | |
841 return OK; | |
842 | |
775 case 'N': case 0321: | 843 case 'N': case 0321: |
776 EMIT2('N'); EMIT2(0321); | 844 CASEMBC(0x143) CASEMBC(0x145) CASEMBC(0x147) CASEMBC(0x1e44) |
845 CASEMBC(0x1e48) | |
846 EMIT2('N'); EMIT2(0321); EMITMBC(0x143) EMITMBC(0x145) | |
847 EMITMBC(0x147) EMITMBC(0x1e44) EMITMBC(0x1e48) | |
777 return OK; | 848 return OK; |
778 | 849 |
779 case 'O': case 0322: case 0323: case 0324: case 0325: | 850 case 'O': case 0322: case 0323: case 0324: case 0325: |
780 case 0326: | 851 case 0326: case 0330: |
781 EMIT2('O'); EMIT2(0322); EMIT2(0323); | 852 CASEMBC(0x14c) CASEMBC(0x14e) CASEMBC(0x150) CASEMBC(0x1a0) |
782 EMIT2(0324); EMIT2(0325); EMIT2(0326); | 853 CASEMBC(0x1d1) CASEMBC(0x1ea) CASEMBC(0x1ec) CASEMBC(0x1ece) |
854 EMIT2('O'); EMIT2(0322); EMIT2(0323); EMIT2(0324); | |
855 EMIT2(0325); EMIT2(0326); EMIT2(0330); | |
856 EMITMBC(0x14c) EMITMBC(0x14e) EMITMBC(0x150) | |
857 EMITMBC(0x1a0) EMITMBC(0x1d1) EMITMBC(0x1ea) | |
858 EMITMBC(0x1ec) EMITMBC(0x1ece) | |
783 return OK; | 859 return OK; |
784 | 860 |
861 case 'P': case 0x1e54: case 0x1e56: | |
862 EMIT2('P'); EMITMBC(0x1e54) EMITMBC(0x1e56) | |
863 return OK; | |
864 | |
865 case 'R': CASEMBC(0x154) CASEMBC(0x156) CASEMBC(0x158) | |
866 CASEMBC(0x1e58) CASEMBC(0x1e5e) | |
867 EMIT2('R'); EMITMBC(0x154) EMITMBC(0x156) EMITMBC(0x158) | |
868 EMITMBC(0x1e58) EMITMBC(0x1e5e) | |
869 return OK; | |
870 | |
871 case 'S': CASEMBC(0x15a) CASEMBC(0x15c) CASEMBC(0x15e) | |
872 CASEMBC(0x160) CASEMBC(0x1e60) | |
873 EMIT2('S'); EMITMBC(0x15a) EMITMBC(0x15c) EMITMBC(0x15e) | |
874 EMITMBC(0x160) EMITMBC(0x1e60) | |
875 return OK; | |
876 | |
877 case 'T': CASEMBC(0x162) CASEMBC(0x164) CASEMBC(0x166) | |
878 CASEMBC(0x1e6a) CASEMBC(0x1e6e) | |
879 EMIT2('T'); EMITMBC(0x162) EMITMBC(0x164) EMITMBC(0x166) | |
880 EMITMBC(0x1e6a) EMITMBC(0x1e6e) | |
881 return OK; | |
882 | |
785 case 'U': case 0331: case 0332: case 0333: case 0334: | 883 case 'U': case 0331: case 0332: case 0333: case 0334: |
786 EMIT2('U'); EMIT2(0331); EMIT2(0332); | 884 CASEMBC(0x168) CASEMBC(0x16a) CASEMBC(0x16c) CASEMBC(0x16e) |
787 EMIT2(0333); EMIT2(0334); | 885 CASEMBC(0x170) CASEMBC(0x172) CASEMBC(0x1af) CASEMBC(0x1d3) |
886 CASEMBC(0x1ee6) | |
887 EMIT2('U'); EMIT2(0331); EMIT2(0332); EMIT2(0333); | |
888 EMIT2(0334); EMITMBC(0x168) EMITMBC(0x16a) | |
889 EMITMBC(0x16c) EMITMBC(0x16e) EMITMBC(0x170) | |
890 EMITMBC(0x172) EMITMBC(0x1af) EMITMBC(0x1d3) | |
891 EMITMBC(0x1ee6) | |
788 return OK; | 892 return OK; |
789 | 893 |
894 case 'V': CASEMBC(0x1e7c) | |
895 EMIT2('V'); EMITMBC(0x1e7c) | |
896 return OK; | |
897 | |
898 case 'W': CASEMBC(0x174) CASEMBC(0x1e80) CASEMBC(0x1e82) | |
899 CASEMBC(0x1e84) CASEMBC(0x1e86) | |
900 EMIT2('W'); EMITMBC(0x174) EMITMBC(0x1e80) EMITMBC(0x1e82) | |
901 EMITMBC(0x1e84) EMITMBC(0x1e86) | |
902 return OK; | |
903 | |
904 case 'X': CASEMBC(0x1e8a) CASEMBC(0x1e8c) | |
905 EMIT2('X'); EMITMBC(0x1e8a) EMITMBC(0x1e8c) | |
906 return OK; | |
907 | |
790 case 'Y': case 0335: | 908 case 'Y': case 0335: |
791 EMIT2('Y'); EMIT2(0335); | 909 CASEMBC(0x176) CASEMBC(0x178) CASEMBC(0x1e8e) CASEMBC(0x1ef2) |
910 CASEMBC(0x1ef6) CASEMBC(0x1ef8) | |
911 EMIT2('Y'); EMIT2(0335); EMITMBC(0x176) EMITMBC(0x178) | |
912 EMITMBC(0x1e8e) EMITMBC(0x1ef2) EMITMBC(0x1ef6) | |
913 EMITMBC(0x1ef8) | |
914 return OK; | |
915 | |
916 case 'Z': CASEMBC(0x179) CASEMBC(0x17b) CASEMBC(0x17d) | |
917 CASEMBC(0x1b5) CASEMBC(0x1e90) CASEMBC(0x1e94) | |
918 EMIT2('Z'); EMITMBC(0x179) EMITMBC(0x17b) EMITMBC(0x17d) | |
919 EMITMBC(0x1b5) EMITMBC(0x1e90) EMITMBC(0x1e94) | |
792 return OK; | 920 return OK; |
793 | 921 |
794 case 'a': case 0340: case 0341: case 0342: | 922 case 'a': case 0340: case 0341: case 0342: |
795 case 0343: case 0344: case 0345: | 923 case 0343: case 0344: case 0345: |
796 EMIT2('a'); EMIT2(0340); EMIT2(0341); | 924 CASEMBC(0x101) CASEMBC(0x103) CASEMBC(0x105) CASEMBC(0x1ce) |
797 EMIT2(0342); EMIT2(0343); EMIT2(0344); | 925 CASEMBC(0x1df) CASEMBC(0x1e1) CASEMBC(0x1ea3) |
798 EMIT2(0345); | 926 EMIT2('a'); EMIT2(0340); EMIT2(0341); EMIT2(0342); |
927 EMIT2(0343); EMIT2(0344); EMIT2(0345); | |
928 EMITMBC(0x101) EMITMBC(0x103) EMITMBC(0x105) | |
929 EMITMBC(0x1ce) EMITMBC(0x1df) EMITMBC(0x1e1) | |
930 EMITMBC(0x1ea3) | |
799 return OK; | 931 return OK; |
800 | 932 |
933 case 'b': CASEMBC(0x1e03) CASEMBC(0x1e07) | |
934 EMIT2('b'); EMITMBC(0x1e03) EMITMBC(0x1e07) | |
935 return OK; | |
936 | |
801 case 'c': case 0347: | 937 case 'c': case 0347: |
802 EMIT2('c'); EMIT2(0347); | 938 CASEMBC(0x107) CASEMBC(0x109) CASEMBC(0x10b) CASEMBC(0x10d) |
939 EMIT2('c'); EMIT2(0347); EMITMBC(0x107) EMITMBC(0x109) | |
940 EMITMBC(0x10b) EMITMBC(0x10d) | |
803 return OK; | 941 return OK; |
804 | 942 |
943 case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1d0b) | |
944 CASEMBC(0x1e11) | |
945 EMIT2('d'); EMITMBC(0x10f) EMITMBC(0x111) EMITMBC(0x1e0b) | |
946 EMITMBC(0x01e0f) EMITMBC(0x1e11) | |
947 return OK; | |
948 | |
805 case 'e': case 0350: case 0351: case 0352: case 0353: | 949 case 'e': case 0350: case 0351: case 0352: case 0353: |
806 EMIT2('e'); EMIT2(0350); EMIT2(0351); | 950 CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119) |
807 EMIT2(0352); EMIT2(0353); | 951 CASEMBC(0x11b) CASEMBC(0x1ebb) CASEMBC(0x1ebd) |
952 EMIT2('e'); EMIT2(0350); EMIT2(0351); EMIT2(0352); | |
953 EMIT2(0353); EMITMBC(0x113) EMITMBC(0x115) | |
954 EMITMBC(0x117) EMITMBC(0x119) EMITMBC(0x11b) | |
955 EMITMBC(0x1ebb) EMITMBC(0x1ebd) | |
808 return OK; | 956 return OK; |
809 | 957 |
958 case 'f': CASEMBC(0x1e1f) | |
959 EMIT2('f'); EMITMBC(0x1e1f) | |
960 return OK; | |
961 | |
962 case 'g': CASEMBC(0x11d) CASEMBC(0x11f) CASEMBC(0x121) | |
963 CASEMBC(0x123) CASEMBC(0x1e5) CASEMBC(0x1e7) CASEMBC(0x1f5) | |
964 CASEMBC(0x1e21) | |
965 EMIT2('g'); EMITMBC(0x11d) EMITMBC(0x11f) EMITMBC(0x121) | |
966 EMITMBC(0x123) EMITMBC(0x1e5) EMITMBC(0x1e7) | |
967 EMITMBC(0x1f5) EMITMBC(0x1e21) | |
968 return OK; | |
969 | |
970 case 'h': CASEMBC(0x125) CASEMBC(0x127) CASEMBC(0x1e23) | |
971 CASEMBC(0x1e27) CASEMBC(0x1e29) CASEMBC(0x1e96) | |
972 EMIT2('h'); EMITMBC(0x125) EMITMBC(0x127) EMITMBC(0x1e23) | |
973 EMITMBC(0x1e27) EMITMBC(0x1e29) EMITMBC(0x1e96) | |
974 return OK; | |
975 | |
810 case 'i': case 0354: case 0355: case 0356: case 0357: | 976 case 'i': case 0354: case 0355: case 0356: case 0357: |
811 EMIT2('i'); EMIT2(0354); EMIT2(0355); | 977 CASEMBC(0x129) CASEMBC(0x12b) CASEMBC(0x12d) CASEMBC(0x12f) |
812 EMIT2(0356); EMIT2(0357); | 978 CASEMBC(0x1d0) CASEMBC(0x1ec9) |
979 EMIT2('i'); EMIT2(0354); EMIT2(0355); EMIT2(0356); | |
980 EMIT2(0357); EMITMBC(0x129) EMITMBC(0x12b) | |
981 EMITMBC(0x12d) EMITMBC(0x12f) EMITMBC(0x1d0) | |
982 EMITMBC(0x1ec9) | |
813 return OK; | 983 return OK; |
814 | 984 |
985 case 'j': CASEMBC(0x135) CASEMBC(0x1f0) | |
986 EMIT2('j'); EMITMBC(0x135) EMITMBC(0x1f0) | |
987 return OK; | |
988 | |
989 case 'k': CASEMBC(0x137) CASEMBC(0x1e9) CASEMBC(0x1e31) | |
990 CASEMBC(0x1e35) | |
991 EMIT2('k'); EMITMBC(0x137) EMITMBC(0x1e9) EMITMBC(0x1e31) | |
992 EMITMBC(0x1e35) | |
993 return OK; | |
994 | |
995 case 'l': CASEMBC(0x13a) CASEMBC(0x13c) CASEMBC(0x13e) | |
996 CASEMBC(0x140) CASEMBC(0x142) CASEMBC(0x1e3b) | |
997 EMIT2('l'); EMITMBC(0x13a) EMITMBC(0x13c) EMITMBC(0x13e) | |
998 EMITMBC(0x140) EMITMBC(0x142) EMITMBC(0x1e3b) | |
999 return OK; | |
1000 | |
1001 case 'm': CASEMBC(0x1e3f) CASEMBC(0x1e41) | |
1002 EMIT2('m'); EMITMBC(0x1e3f) EMITMBC(0x1e41) | |
1003 return OK; | |
1004 | |
815 case 'n': case 0361: | 1005 case 'n': case 0361: |
816 EMIT2('n'); EMIT2(0361); | 1006 CASEMBC(0x144) CASEMBC(0x146) CASEMBC(0x148) CASEMBC(0x149) |
1007 CASEMBC(0x1e45) CASEMBC(0x1e49) | |
1008 EMIT2('n'); EMIT2(0361); EMITMBC(0x144) EMITMBC(0x146) | |
1009 EMITMBC(0x148) EMITMBC(0x149) EMITMBC(0x1e45) | |
1010 EMITMBC(0x1e49) | |
817 return OK; | 1011 return OK; |
818 | 1012 |
819 case 'o': case 0362: case 0363: case 0364: case 0365: | 1013 case 'o': case 0362: case 0363: case 0364: case 0365: |
820 case 0366: | 1014 case 0366: case 0370: |
821 EMIT2('o'); EMIT2(0362); EMIT2(0363); | 1015 CASEMBC(0x14d) CASEMBC(0x14f) CASEMBC(0x151) CASEMBC(0x1a1) |
822 EMIT2(0364); EMIT2(0365); EMIT2(0366); | 1016 CASEMBC(0x1d2) CASEMBC(0x1eb) CASEMBC(0x1ed) CASEMBC(0x1ecf) |
1017 EMIT2('o'); EMIT2(0362); EMIT2(0363); EMIT2(0364); | |
1018 EMIT2(0365); EMIT2(0366); EMIT2(0370); | |
1019 EMITMBC(0x14d) EMITMBC(0x14f) EMITMBC(0x151) | |
1020 EMITMBC(0x1a1) EMITMBC(0x1d2) EMITMBC(0x1eb) | |
1021 EMITMBC(0x1ed) EMITMBC(0x1ecf) | |
823 return OK; | 1022 return OK; |
824 | 1023 |
1024 case 'p': CASEMBC(0x1e55) CASEMBC(0x1e57) | |
1025 EMIT2('p'); EMITMBC(0x1e55) EMITMBC(0x1e57) | |
1026 return OK; | |
1027 | |
1028 case 'r': CASEMBC(0x155) CASEMBC(0x157) CASEMBC(0x159) | |
1029 CASEMBC(0x1e59) CASEMBC(0x1e5f) | |
1030 EMIT2('r'); EMITMBC(0x155) EMITMBC(0x157) EMITMBC(0x159) | |
1031 EMITMBC(0x1e59) EMITMBC(0x1e5f) | |
1032 return OK; | |
1033 | |
1034 case 's': CASEMBC(0x15b) CASEMBC(0x15d) CASEMBC(0x15f) | |
1035 CASEMBC(0x161) CASEMBC(0x1e61) | |
1036 EMIT2('s'); EMITMBC(0x15b) EMITMBC(0x15d) EMITMBC(0x15f) | |
1037 EMITMBC(0x161) EMITMBC(0x1e61) | |
1038 return OK; | |
1039 | |
1040 case 't': CASEMBC(0x163) CASEMBC(0x165) CASEMBC(0x167) | |
1041 CASEMBC(0x1e6b) CASEMBC(0x1e6f) CASEMBC(0x1e97) | |
1042 EMIT2('t'); EMITMBC(0x163) EMITMBC(0x165) EMITMBC(0x167) | |
1043 EMITMBC(0x1e6b) EMITMBC(0x1e6f) EMITMBC(0x1e97) | |
1044 return OK; | |
1045 | |
825 case 'u': case 0371: case 0372: case 0373: case 0374: | 1046 case 'u': case 0371: case 0372: case 0373: case 0374: |
826 EMIT2('u'); EMIT2(0371); EMIT2(0372); | 1047 CASEMBC(0x169) CASEMBC(0x16b) CASEMBC(0x16d) CASEMBC(0x16f) |
827 EMIT2(0373); EMIT2(0374); | 1048 CASEMBC(0x171) CASEMBC(0x173) CASEMBC(0x1b0) CASEMBC(0x1d4) |
1049 CASEMBC(0x1ee7) | |
1050 EMIT2('u'); EMIT2(0371); EMIT2(0372); EMIT2(0373); | |
1051 EMIT2(0374); EMITMBC(0x169) EMITMBC(0x16b) | |
1052 EMITMBC(0x16d) EMITMBC(0x16f) EMITMBC(0x171) | |
1053 EMITMBC(0x173) EMITMBC(0x1b0) EMITMBC(0x1d4) | |
1054 EMITMBC(0x1ee7) | |
828 return OK; | 1055 return OK; |
829 | 1056 |
1057 case 'v': CASEMBC(0x1e7d) | |
1058 EMIT2('v'); EMITMBC(0x1e7d) | |
1059 return OK; | |
1060 | |
1061 case 'w': CASEMBC(0x175) CASEMBC(0x1e81) CASEMBC(0x1e83) | |
1062 CASEMBC(0x1e85) CASEMBC(0x1e87) CASEMBC(0x1e98) | |
1063 EMIT2('w'); EMITMBC(0x175) EMITMBC(0x1e81) EMITMBC(0x1e83) | |
1064 EMITMBC(0x1e85) EMITMBC(0x1e87) EMITMBC(0x1e98) | |
1065 return OK; | |
1066 | |
1067 case 'x': CASEMBC(0x1e8b) CASEMBC(0x1e8d) | |
1068 EMIT2('x'); EMITMBC(0x1e8b) EMITMBC(0x1e8d) | |
1069 return OK; | |
1070 | |
830 case 'y': case 0375: case 0377: | 1071 case 'y': case 0375: case 0377: |
831 EMIT2('y'); EMIT2(0375); EMIT2(0377); | 1072 CASEMBC(0x177) CASEMBC(0x1e8f) CASEMBC(0x1e99) |
1073 CASEMBC(0x1ef3) CASEMBC(0x1ef7) CASEMBC(0x1ef9) | |
1074 EMIT2('y'); EMIT2(0375); EMIT2(0377); EMITMBC(0x177) | |
1075 EMITMBC(0x1e8f) EMITMBC(0x1e99) EMITMBC(0x1ef3) | |
1076 EMITMBC(0x1ef7) EMITMBC(0x1ef9) | |
832 return OK; | 1077 return OK; |
833 | 1078 |
834 default: | 1079 case 'z': CASEMBC(0x17a) CASEMBC(0x17c) CASEMBC(0x17e) |
835 return FAIL; | 1080 CASEMBC(0x1b6) CASEMBC(0x1e91) CASEMBC(0x1e95) |
1081 EMIT2('z'); EMITMBC(0x17a) EMITMBC(0x17c) EMITMBC(0x17e) | |
1082 EMITMBC(0x1b6) EMITMBC(0x1e91) EMITMBC(0x1e95) | |
1083 return OK; | |
1084 | |
1085 /* default: character itself */ | |
836 } | 1086 } |
837 } | 1087 } |
838 | 1088 |
839 EMIT(c); | 1089 EMIT2(c); |
840 return OK; | 1090 return OK; |
841 #undef EMIT2 | 1091 #undef EMIT2 |
1092 #undef EMITMBC | |
842 } | 1093 } |
843 | 1094 |
844 /* | 1095 /* |
845 * Code to parse regular expression. | 1096 * Code to parse regular expression. |
846 * | 1097 * |