682 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
683 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
684 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
685 2, 2, 2, 91, 2, 93, 2, 90, 76, 2,
686 98, 103, 88, 85, 68, 86, 106, 89, 2, 2,
687 2, 2, 2, 2, 2, 2, 2, 2, 71, 102,
688 79, 69, 80, 70, 2, 2, 2, 2, 2, 2,
689 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
690 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
691 2, 104, 2, 105, 75, 2, 2, 2, 2, 2,
692 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
693 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
694 2, 2, 2, 100, 74, 101, 92, 2, 2, 2,
695 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
696 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
697 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
698 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
699 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
700 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
701 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
702 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
703 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
704 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
705 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
706 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
707 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
708 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
709 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
710 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
711 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
712 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
713 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
714 65, 66, 67, 72, 73, 77, 78, 81, 82, 83,
715 84, 87, 94, 95, 96, 97, 99
802 -144, 9, 200, -144, -144, -144, -144, -144, -144, -89,
803 691, -144, 691, -80, -71, -64, -63, -43, -35, -27,
804 -11, -144, 11, -144, 16, -144, 20, 691, -144, -144,
805 -144, 23, -144, 31, 39, 41, -144, 56, 57, 1,
806 691, 691, 691, 691, 79, 1, 1, 596, -144, 92,
807 -144, -144, 49, 872, 58, -144, 60, 61, -37, 691,
808 65, 66, 691, -27, 691, 691, 691, 691, 1, -12,
809 -144, -144, 691, 691, 691, 59, 68, 88, 691, 691,
810 691, 140, 691, -144, -144, -144, -144, -144, -144, -144,
811 -144, 72, 284, 299, 100, -144, 158, -144, 691, -144,
812 691, 691, 691, 691, 691, 691, 691, 691, 691, 691,
813 691, 691, 691, 691, 691, 143, 691, 691, 691, 691,
814 691, 691, 691, -144, -144, -144, 916, 77, 109, -144,
815 -144, 185, -144, 383, 83, -56, 84, 85, 95, 93,
816 -144, 482, 97, 98, -144, -144, -144, 577, 106, 108,
817 872, -51, 672, 691, -144, -144, -144, -144, 916, 691,
818 934, 951, 967, 982, 996, 1010, 1010, 1022, 1022, 1022,
819 1022, 107, 107, 53, 53, -144, -144, -144, -144, 895,
820 111, 112, 916, -144, 691, -144, -144, 691, 497, -144,
821 -144, 497, 29, -144, 497, -144, -144, -144, -144, -144,
822 116, 691, -144, 497, -144, -144, 87, 849, 786, -144,
823 -144, 916, 124, -144, -144, -144, 168, 90, 767, -144,
824 200, -144, -144, -144, -144, -49, -144, -144, -144, -54,
825 691, 497, -144, -144, -144, 87, -144, 126, 691, 691,
826 -144, 128, -144, -7, -144, -16, -44, 916, 815, 497,
827 145, 162, -144, -144, 86, -144, 129, -144, -144, -144,
828 -144, -144, -144, 183, -144, 200, -144, -144, 238, -144,
829 174, -144, 210, -144, -10, 176, 262, -144, -144, -144,
830 181, -144, -144, -144, 398, -144
838 7, 0, 3, 1, 105, 107, 104, 106, 34, 0,
839 47, 103, 47, 119, 0, 0, 0, 0, 0, 132,
840 0, 115, 0, 108, 0, 109, 0, 47, 111, 101,
841 110, 0, 112, 0, 0, 0, 102, 0, 0, 0,
842 0, 0, 0, 0, 0, 0, 0, 0, 7, 2,
843 8, 11, 0, 48, 0, 100, 0, 0, 137, 121,
844 0, 0, 0, 132, 0, 47, 121, 121, 0, 0,
845 113, 133, 0, 121, 121, 0, 0, 0, 121, 121,
846 0, 0, 0, 78, 77, 76, 73, 75, 74, 95,
847 98, 0, 0, 33, 0, 4, 0, 10, 0, 70,
848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
850 121, 121, 0, 96, 99, 94, 123, 0, 122, 23,
851 24, 0, 114, 0, 0, 137, 0, 0, 0, 135,
852 136, 0, 0, 0, 87, 25, 88, 0, 0, 0,
853 21, 0, 0, 0, 49, 9, 5, 12, 69, 0,
854 68, 67, 64, 65, 63, 61, 62, 51, 58, 59,
855 60, 56, 57, 66, 52, 97, 53, 54, 55, 0,
856 0, 0, 138, 79, 0, 120, 86, 47, 33, 80,
857 81, 33, 0, 134, 33, 91, 90, 89, 82, 83,
858 0, 0, 18, 33, 50, 7, 0, 0, 0, 92,
859 93, 124, 0, 15, 17, 135, 45, 0, 0, 20,
860 6, 40, 42, 41, 39, 0, 35, 37, 71, 119,
861 47, 33, 14, 26, 19, 0, 13, 116, 0, 0,
862 84, 0, 46, 0, 36, 0, 137, 72, 0, 33,
863 0, 0, 22, 27, 7, 29, 0, 117, 140, 139,
864 38, 85, 16, 0, 32, 28, 30, 118, 125, 31,
865 130, 141, 127, 128, 0, 0, 0, 44, 43, 131,
866 0, 130, 129, 7, 33, 142
894 93, 60, 256, 61, 84, 85, 86, 87, 250, 3,
895 277, 92, 251, 122, 239, 59, 139, 201, 76, 235,
896 140, 13, 278, 126, 62, 122, 131, 64, 133, 19,
897 126, 126, 122, 21, 65, 66, 141, 126, 126, 123,
898 124, 147, 126, 126, 150, 213, 152, 188, 214, 240,
899 62, 216, 202, 236, 258, 67, 134, 215, 123, 124,
900 219, 140, 158, 68, 160, 161, 162, 163, 164, 165,
901 166, 167, 168, 169, 170, 171, 172, 173, 174, 69,
902 176, 177, 178, 179, 126, 126, 182, 72, 242, 257,
903 136, 137, 4, 5, 252, 6, 7, 142, 143, 88,
904 9, 250, 148, 149, 11, 251, 262, 221, 13, 73,
905 14, 222, 16, 17, 74, 223, 19, 204, 75, 224,
906 21, 77, 94, 207, 22, 23, 24, 25, 26, 78,
907 28, 29, 30, 31, 32, 33, 34, 79, 36, 80,
908 83, 116, 117, 118, 180, 181, 89, 90, 211, 4,
909 5, 97, 6, 7, 81, 82, 119, 220, 120, 121,
910 151, 11, 144, 175, 39, 218, 135, 129, 130, 138,
911 145, 156, 158, 40, 41, 153, 157, 184, 212, 42,
912 43, 44, 183, 45, 46, 187, 47, 189, 190, 231,
913 233, 146, 113, 114, 115, 116, 117, 118, 191, 192,
914 195, 196, 247, 248, 4, 5, 265, 6, 7, 198,
915 8, 199, 9, 10, 209, 210, 11, 12, -33, 217,
916 13, 241, 14, 15, 16, 17, 230, 18, 19, 20,
917 245, 249, 21, 264, 267, 284, 22, 23, 24, 25,
918 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
919 36, 37, 38, 98, 269, 99, 270, 100, 101, 102,
920 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
921 113, 114, 115, 116, 117, 118, 39, -126, 276, 280,
922 281, 283, 266, 244, 263, 40, 41, 132, 282, 193,
923 185, 42, 43, 44, 0, 45, 46, 259, 47, 0,
924 48, 0, -47, 4, 5, 0, 6, 7, 0, 8,
925 0, 9, 10, 0, 0, 11, 12, 0, 0, 13,
926 0, 14, 15, 16, 17, 0, 18, 19, 20, 0,
927 0, 21, 0, 0, 0, 22, 23, 24, 25, 26,
928 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
929 37, 38, 98, 0, 99, 0, 100, 101, 102, 103,
930 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
931 114, 115, 116, 117, 118, 39, 0, 0, 0, 0,
932 0, 0, 0, 0, 40, 41, 0, 154, 0, 0,
933 42, 43, 44, 0, 45, 46, 0, 47, 0, 48,
934 155, -47, 4, 5, 0, 6, 7, 0, 8, 0,
935 9, 10, 0, 0, 11, 12, 0, 0, 13, 0,
936 14, 15, 16, 17, 0, 18, 19, 20, 0, 0,
937 21, 0, 0, 0, 22, 23, 24, 25, 26, 27,
938 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
939 38, 98, 0, 99, 0, 100, 101, 102, 103, 104,
940 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
941 115, 116, 117, 118, 39, 0, 0, 0, 0, 0,
942 0, 0, 0, 40, 41, 0, 186, 0, 0, 42,
943 43, 44, 0, 45, 46, 0, 47, 0, 48, 285,
944 -47, 4, 5, 0, 6, 7, 0, 8, 0, 9,
945 10, 0, 0, 11, 12, 0, 0, 13, 0, 14,
946 15, 16, 17, 0, 18, 19, 20, 0, 0, 21,
947 0, 0, 0, 22, 23, 24, 25, 26, 27, 28,
948 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
949 98, 0, 99, 0, 100, 101, 102, 103, 104, 105,
950 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
951 116, 117, 118, 39, 0, 0, 0, 0, 0, 0,
952 0, 0, 40, 41, 0, 194, 0, 0, 42, 43,
953 44, 0, 45, 46, 0, 47, 0, 48, 0, -47,
954 4, 5, 0, 6, 7, 0, 0, 0, 9, 0,
955 0, 0, 11, 0, 91, 0, 13, 0, 14, 0,
956 16, 17, 0, 0, 19, 0, 0, 0, 21, 0,
957 0, 0, 22, 23, 24, 25, 26, 0, 28, 29,
958 30, 31, 32, 33, 34, 98, 36, 99, 0, 100,
959 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
960 111, 112, 113, 114, 115, 116, 117, 118, 0, 0,
961 0, 0, 39, 0, 0, 0, 0, 0, 0, 0,
962 197, 40, 41, 0, 0, 0, 0, 42, 43, 44,
963 0, 45, 46, 0, 47, 4, 5, 0, 6, 7,
964 0, 0, 0, 9, 0, 0, 0, 11, 0, 0,
965 0, 13, 0, 14, 0, 16, 17, 0, 0, 19,
966 0, 0, 0, 21, 0, 0, 0, 22, 23, 24,
967 25, 26, 0, 28, 29, 30, 31, 32, 33, 34,
968 98, 36, 99, 0, 100, 101, 102, 103, 104, 105,
969 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
970 116, 117, 118, 0, 0, 0, 0, 39, 0, 0,
971 0, 0, 0, 0, 0, 203, 40, 41, 0, 0,
972 0, 0, 42, 43, 44, 0, 45, 46, 0, 47,
973 4, 5, 0, 6, 7, 0, 0, 0, 9, 0,
974 0, 0, 11, 0, 0, 0, 229, 0, 14, 0,
975 16, 17, 0, 0, 19, 0, 0, 0, 21, 0,
976 0, 0, 22, 23, 24, 25, 26, 0, 28, 29,
977 30, 31, 32, 33, 34, 98, 36, 99, 0, 100,
978 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
979 111, 112, 113, 114, 115, 116, 117, 118, 0, 0,
980 0, 0, 39, 0, 0, 0, 0, 0, 0, 0,
981 234, 40, 41, 0, 0, 0, 0, 42, 43, 44,
982 0, 45, 46, 98, 47, 99, 0, 100, 101, 102,
983 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
984 113, 114, 115, 116, 117, 118, 0, 0, 0, 0,
985 0, 0, 0, 0, 0, 0, 0, 98, 261, 99,
986 228, 100, 101, 102, 103, 104, 105, 106, 107, 108,
987 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
988 98, 0, 99, 0, 100, 101, 102, 103, 104, 105,
989 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
990 116, 117, 118, 208, 0, 99, 0, 100, 101, 102,
991 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
992 113, 114, 115, 116, 117, 118, 99, 0, 100, 101,
993 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
994 112, 113, 114, 115, 116, 117, 118, 101, 102, 103,
995 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
996 114, 115, 116, 117, 118, 102, 103, 104, 105, 106,
997 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
998 117, 118, 103, 104, 105, 106, 107, 108, 109, 110,
999 111, 112, 113, 114, 115, 116, 117, 118, 104, 105,
1000 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1001 116, 117, 118, 105, 106, 107, 108, 109, 110, 111,
1002 112, 113, 114, 115, 116, 117, 118, -127, -127, 107,
1003 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1004 118, -127, -127, -127, -127, 111, 112, 113, 114, 115,
1010 48, 10, 18, 12, 40, 41, 42, 43, 15, 0,
1011 20, 47, 19, 69, 68, 104, 28, 68, 27, 68,
1012 32, 20, 32, 59, 104, 69, 62, 98, 64, 28,
1013 66, 67, 69, 32, 98, 98, 72, 73, 74, 95,
1014 96, 77, 78, 79, 80, 188, 82, 103, 191, 103,
1015 104, 194, 103, 102, 98, 98, 65, 28, 95, 96,
1016 203, 32, 98, 98, 100, 101, 102, 103, 104, 105,
1017 106, 107, 108, 109, 110, 111, 112, 113, 114, 106,
1018 116, 117, 118, 119, 120, 121, 122, 98, 231, 105,
1019 66, 67, 4, 5, 101, 7, 8, 73, 74, 20,
1020 12, 15, 78, 79, 16, 19, 249, 20, 20, 98,
1021 22, 24, 24, 25, 98, 28, 28, 153, 98, 32,
1022 32, 98, 30, 159, 36, 37, 38, 39, 40, 98,
1023 42, 43, 44, 45, 46, 47, 48, 98, 50, 98,
1024 39, 88, 89, 90, 120, 121, 45, 46, 184, 4,
1025 5, 102, 7, 8, 98, 98, 98, 205, 98, 98,
1026 20, 16, 103, 20, 76, 201, 65, 102, 102, 68,
1027 102, 71, 208, 85, 86, 103, 18, 68, 187, 91,
1028 92, 93, 105, 95, 96, 102, 98, 103, 103, 21,
1029 100, 103, 85, 86, 87, 88, 89, 90, 103, 106,
1030 103, 103, 238, 239, 4, 5, 254, 7, 8, 103,
1031 10, 103, 12, 13, 103, 103, 16, 17, 18, 103,
1032 20, 230, 22, 23, 24, 25, 102, 27, 28, 29,
1033 104, 103, 32, 71, 105, 283, 36, 37, 38, 39,
1034 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1035 50, 51, 52, 68, 71, 70, 18, 72, 73, 74,
1036 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1037 85, 86, 87, 88, 89, 90, 76, 103, 68, 103,
1038 18, 100, 254, 235, 250, 85, 86, 63, 276, 139,
1039 105, 91, 92, 93, -1, 95, 96, 246, 98, -1,
1040 100, -1, 102, 4, 5, -1, 7, 8, -1, 10,
1041 -1, 12, 13, -1, -1, 16, 17, -1, -1, 20,
1042 -1, 22, 23, 24, 25, -1, 27, 28, 29, -1,
1043 -1, 32, -1, -1, -1, 36, 37, 38, 39, 40,
1044 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1045 51, 52, 68, -1, 70, -1, 72, 73, 74, 75,
1046 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1047 86, 87, 88, 89, 90, 76, -1, -1, -1, -1,
1048 -1, -1, -1, -1, 85, 86, -1, 103, -1, -1,
1049 91, 92, 93, -1, 95, 96, -1, 98, -1, 100,
1050 101, 102, 4, 5, -1, 7, 8, -1, 10, -1,
1051 12, 13, -1, -1, 16, 17, -1, -1, 20, -1,
1052 22, 23, 24, 25, -1, 27, 28, 29, -1, -1,
1053 32, -1, -1, -1, 36, 37, 38, 39, 40, 41,
1054 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1055 52, 68, -1, 70, -1, 72, 73, 74, 75, 76,
1056 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1057 87, 88, 89, 90, 76, -1, -1, -1, -1, -1,
1058 -1, -1, -1, 85, 86, -1, 103, -1, -1, 91,
1059 92, 93, -1, 95, 96, -1, 98, -1, 100, 101,
1060 102, 4, 5, -1, 7, 8, -1, 10, -1, 12,
1061 13, -1, -1, 16, 17, -1, -1, 20, -1, 22,
1062 23, 24, 25, -1, 27, 28, 29, -1, -1, 32,
1063 -1, -1, -1, 36, 37, 38, 39, 40, 41, 42,
1064 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1065 68, -1, 70, -1, 72, 73, 74, 75, 76, 77,
1066 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1067 88, 89, 90, 76, -1, -1, -1, -1, -1, -1,
1068 -1, -1, 85, 86, -1, 103, -1, -1, 91, 92,
1069 93, -1, 95, 96, -1, 98, -1, 100, -1, 102,
1070 4, 5, -1, 7, 8, -1, -1, -1, 12, -1,
1071 -1, -1, 16, -1, 18, -1, 20, -1, 22, -1,
1072 24, 25, -1, -1, 28, -1, -1, -1, 32, -1,
1073 -1, -1, 36, 37, 38, 39, 40, -1, 42, 43,
1074 44, 45, 46, 47, 48, 68, 50, 70, -1, 72,
1075 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1076 83, 84, 85, 86, 87, 88, 89, 90, -1, -1,
1077 -1, -1, 76, -1, -1, -1, -1, -1, -1, -1,
1078 103, 85, 86, -1, -1, -1, -1, 91, 92, 93,
1079 -1, 95, 96, -1, 98, 4, 5, -1, 7, 8,
1080 -1, -1, -1, 12, -1, -1, -1, 16, -1, -1,
1081 -1, 20, -1, 22, -1, 24, 25, -1, -1, 28,
1082 -1, -1, -1, 32, -1, -1, -1, 36, 37, 38,
1083 39, 40, -1, 42, 43, 44, 45, 46, 47, 48,
1084 68, 50, 70, -1, 72, 73, 74, 75, 76, 77,
1085 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1086 88, 89, 90, -1, -1, -1, -1, 76, -1, -1,
1087 -1, -1, -1, -1, -1, 103, 85, 86, -1, -1,
1088 -1, -1, 91, 92, 93, -1, 95, 96, -1, 98,
1089 4, 5, -1, 7, 8, -1, -1, -1, 12, -1,
1090 -1, -1, 16, -1, -1, -1, 20, -1, 22, -1,
1091 24, 25, -1, -1, 28, -1, -1, -1, 32, -1,
1092 -1, -1, 36, 37, 38, 39, 40, -1, 42, 43,
1093 44, 45, 46, 47, 48, 68, 50, 70, -1, 72,
1094 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1095 83, 84, 85, 86, 87, 88, 89, 90, -1, -1,
1096 -1, -1, 76, -1, -1, -1, -1, -1, -1, -1,
1097 103, 85, 86, -1, -1, -1, -1, 91, 92, 93,
1098 -1, 95, 96, 68, 98, 70, -1, 72, 73, 74,
1099 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1100 85, 86, 87, 88, 89, 90, -1, -1, -1, -1,
1101 -1, -1, -1, -1, -1, -1, -1, 68, 103, 70,
1102 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1103 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1104 68, -1, 70, -1, 72, 73, 74, 75, 76, 77,
1105 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1106 88, 89, 90, 68, -1, 70, -1, 72, 73, 74,
1107 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1108 85, 86, 87, 88, 89, 90, 70, -1, 72, 73,
1109 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1110 84, 85, 86, 87, 88, 89, 90, 73, 74, 75,
1111 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1112 86, 87, 88, 89, 90, 74, 75, 76, 77, 78,
1113 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1114 89, 90, 75, 76, 77, 78, 79, 80, 81, 82,
1115 83, 84, 85, 86, 87, 88, 89, 90, 76, 77,
1116 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1117 88, 89, 90, 77, 78, 79, 80, 81, 82, 83,
1118 84, 85, 86, 87, 88, 89, 90, 77, 78, 79,
1119 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1120 90, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1128 0, 108, 112, 0, 4, 5, 7, 8, 10, 12,
1129 13, 16, 17, 20, 22, 23, 24, 25, 27, 28,
1130 29, 32, 36, 37, 38, 39, 40, 41, 42, 43,
1131 44, 45, 46, 47, 48, 49, 50, 51, 52, 76,
1132 85, 86, 91, 92, 93, 95, 96, 98, 100, 109,
1133 113, 121, 128, 129, 132, 133, 134, 135, 136, 104,
1134 128, 128, 104, 138, 98, 98, 98, 98, 98, 106,
1135 145, 146, 98, 98, 98, 98, 128, 98, 98, 98,
1136 98, 98, 98, 136, 129, 129, 129, 129, 20, 136,
1137 136, 18, 129, 112, 30, 110, 114, 102, 68, 70,
1138 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1139 82, 83, 84, 85, 86, 87, 88, 89, 90, 98,
1140 98, 98, 69, 95, 96, 147, 129, 139, 140, 102,
1141 102, 129, 145, 129, 128, 136, 139, 139, 136, 28,
1142 32, 129, 139, 139, 103, 102, 103, 129, 139, 139,
1143 129, 20, 129, 103, 103, 101, 71, 18, 129, 130,
1144 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
1145 129, 129, 129, 129, 129, 20, 129, 129, 129, 129,
1146 139, 139, 129, 105, 68, 105, 103, 102, 103, 103,
1147 103, 103, 106, 146, 103, 103, 103, 103, 103, 103,
1148 116, 68, 103, 103, 129, 111, 115, 129, 68, 103,
1149 103, 129, 128, 113, 113, 28, 113, 103, 129, 113,
1150 112, 20, 24, 28, 32, 122, 123, 125, 71, 20,
1151 102, 21, 127, 100, 103, 68, 102, 124, 131, 68,
1152 103, 128, 113, 117, 123, 104, 137, 129, 129, 103,
1153 15, 19, 101, 118, 119, 120, 18, 105, 98, 147,
1154 148, 103, 113, 133, 71, 112, 120, 105, 149, 71,
1155 18, 141, 142, 143, 144, 150, 68, 20, 32, 126,
1156 103, 18, 143, 100, 112, 101
1686 char *yymsg = yymsgbuf;
1690#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1696 yyssp = yyss = yyssa;
1697 yyvsp = yyvs = yyvsa;
1700 YYDPRINTF ((stderr,
"Starting parse\n"));
1722 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
1728 if (yyss + yystacksize - 1 <= yyssp)
1729#if !defined yyoverflow && !defined YYSTACK_RELOCATE
1730 goto yyexhaustedlab;
1736# if defined yyoverflow
1748 yyoverflow (
YY_(
"memory exhausted"),
1749 &yyss1, yysize *
YYSIZEOF (*yyssp),
1750 &yyvs1, yysize *
YYSIZEOF (*yyvsp),
1758 goto yyexhaustedlab;
1769 goto yyexhaustedlab;
1772# undef YYSTACK_RELOCATE
1778 yyssp = yyss + yysize - 1;
1779 yyvsp = yyvs + yysize - 1;
1782 YYDPRINTF ((stderr,
"Stack size increased to %ld\n",
1783 YY_CAST (
long, yystacksize)));
1786 if (yyss + yystacksize - 1 <= yyssp)
1814 YYDPRINTF ((stderr,
"Reading a token: "));
1821 YYDPRINTF ((stderr,
"Now at end of input.\n"));
1885 yyval = yyvsp[1-yylen];
1892#line 181 "../../lib/expr/exparse.y"
1894 if ((yyvsp[-1].
expr)) {
1897 if ((yyvsp[-1].
expr)->op ==
S2B)
1901 x = (yyvsp[-1].expr);
1910#line 1911 "exparse.c"
1914#line 204 "../../lib/expr/exparse.y"
1919 exerror(
"no nested function definitions");
1923 if (!(disc = calloc(1,
sizeof(
Dtdisc_t))))
1933#line 1934 "exparse.c"
1937#line 222 "../../lib/expr/exparse.y"
1946 if ((yyvsp[0].
expr) && (yyvsp[0].
expr)->op ==
S2B)
1950 x = (yyvsp[0].expr);
1957#line 1958 "exparse.c"
1961#line 244 "../../lib/expr/exparse.y"
1965#line 1966 "exparse.c"
1969#line 248 "../../lib/expr/exparse.y"
1971 if (!(yyvsp[-1].
expr))
1972 (yyval.expr) = (yyvsp[0].expr);
1973 else if (!(yyvsp[0].
expr))
1974 (yyval.expr) = (yyvsp[-1].expr);
1978 (yyval.expr) = (yyvsp[0].
expr);
1980 else (yyval.expr) =
exnewnode(
expr.
program,
';', 1, (yyvsp[0].expr)->type, (yyvsp[-1].expr), (yyvsp[0].expr));
1982#line 1983 "exparse.c"
1986#line 263 "../../lib/expr/exparse.y"
1988 (yyval.expr) = (yyvsp[-1].
expr);
1990#line 1991 "exparse.c"
1994#line 267 "../../lib/expr/exparse.y"
1998#line 1999 "exparse.c"
2002#line 270 "../../lib/expr/exparse.y"
2004#line 2005 "exparse.c"
2008#line 270 "../../lib/expr/exparse.y"
2010#line 2011 "exparse.c"
2014#line 271 "../../lib/expr/exparse.y"
2016 (yyval.expr) = (yyvsp[-1].
expr);
2019#line 2020 "exparse.c"
2023#line 276 "../../lib/expr/exparse.y"
2026 exwarn (
"assignment used as boolean in if statement");
2031 (yyval.expr) =
exnewnode(
expr.
program, (yyvsp[-5].id)->index, 1,
INTEGER, (yyvsp[-3].expr),
exnewnode(
expr.
program,
':', 1, (yyvsp[-1].expr) ? (yyvsp[-1].expr)->
type : 0, (yyvsp[-1].expr), (yyvsp[0].
expr)));
2033#line 2034 "exparse.c"
2037#line 286 "../../lib/expr/exparse.y"
2040 (yyval.expr)->
data.generate.array = (yyvsp[-2].expr);
2041 if (!(yyvsp[-2].
expr)->data.variable.index || (yyvsp[-2].expr)->
data.variable.index->op !=
DYNAMIC)
2042 exerror(
"simple index variable expected");
2043 (yyval.expr)->
data.generate.index = (yyvsp[-2].expr)->data.variable.index->data.variable.symbol;
2044 if ((yyvsp[-2].
expr)->op ==
ID && (yyval.expr)->
data.generate.index->type !=
INTEGER)
2045 exerror(
"integer index variable expected");
2047 (yyvsp[-2].expr)->
data.variable.index = 0;
2048 (yyval.expr)->
data.generate.statement = (yyvsp[0].expr);
2050#line 2051 "exparse.c"
2054#line 299 "../../lib/expr/exparse.y"
2056 if (!(yyvsp[-4].
expr))
2059 (yyvsp[-4].expr)->
data.constant.value.integer = 1;
2065 (yyval.expr) =
exnewnode(
expr.
program, (yyvsp[-8].id)->index, 1,
INTEGER, (yyvsp[-4].expr),
exnewnode(
expr.
program,
';', 1, 0, (yyvsp[-2].expr), (yyvsp[0].expr)));
2066 if ((yyvsp[-6].
expr))
2069#line 2070 "exparse.c"
2073#line 314 "../../lib/expr/exparse.y"
2076 (yyval.expr)->
data.generate.array = (yyvsp[-2].expr);
2077 if (!(yyvsp[-2].
expr)->data.variable.index || (yyvsp[-2].expr)->
data.variable.index->op !=
DYNAMIC)
2078 exerror(
"simple index variable expected");
2079 (yyval.expr)->
data.generate.index = (yyvsp[-2].expr)->data.variable.index->data.variable.symbol;
2080 if ((yyvsp[-2].
expr)->op ==
ID && (yyval.expr)->
data.generate.index->type !=
INTEGER)
2081 exerror(
"integer index variable expected");
2083 (yyvsp[-2].expr)->
data.variable.index = 0;
2084 (yyval.expr)->
data.generate.statement = (yyvsp[0].expr);
2086#line 2087 "exparse.c"
2090#line 327 "../../lib/expr/exparse.y"
2092 if ((yyvsp[-1].
id)->local ==
NULL)
2093 exerror(
"cannot apply unset to non-array %s", (yyvsp[-1].
id)->name);
2095 (yyval.expr)->
data.variable.symbol = (yyvsp[-1].id);
2096 (yyval.expr)->
data.variable.index =
NULL;
2098#line 2099 "exparse.c"
2102#line 335 "../../lib/expr/exparse.y"
2104 if ((yyvsp[-3].
id)->local ==
NULL)
2105 exerror(
"cannot apply unset to non-array %s", (yyvsp[-3].
id)->name);
2106 if (((yyvsp[-3].
id)->index_type > 0) && ((yyvsp[-1].
expr)->
type != (yyvsp[-3].
id)->index_type))
2107 exerror(
"%s indices must have type %s, not %s",
2110 (yyval.expr)->
data.variable.symbol = (yyvsp[-3].id);
2111 (yyval.expr)->
data.variable.index = (yyvsp[-1].expr);
2113#line 2114 "exparse.c"
2117#line 346 "../../lib/expr/exparse.y"
2120 exwarn (
"assignment used as boolean in while statement");
2125 (yyval.expr) =
exnewnode(
expr.
program, (yyvsp[-4].id)->index, 1,
INTEGER, (yyvsp[-2].expr),
exnewnode(
expr.
program,
';', 1, 0,
NULL, (yyvsp[0].expr)));
2127#line 2128 "exparse.c"
2131#line 355 "../../lib/expr/exparse.y"
2133#line 2134 "exparse.c"
2137#line 356 "../../lib/expr/exparse.y"
2141 (yyval.expr) =
exnewnode(
expr.
program, (yyvsp[-7].id)->index, 1,
INTEGER, (yyvsp[-5].expr),
exnewnode(
expr.
program,
DEFAULT, 1, 0, sw->
defcase, sw->
firstcase));
2148#line 2149 "exparse.c"
2152#line 367 "../../lib/expr/exparse.y"
2155 if (!(yyvsp[-1].
expr))
2158 (yyvsp[-1].expr)->
data.constant.value.integer = 1;
2164#line 2165 "exparse.c"
2168#line 379 "../../lib/expr/exparse.y"
2172#line 2173 "exparse.c"
2176#line 383 "../../lib/expr/exparse.y"
2178 if ((yyvsp[-1].
expr))
2181 exerror(
"return in void function");
2186#line 2187 "exparse.c"
2190#line 395 "../../lib/expr/exparse.y"
2196 if (!(sw = calloc(1,
sizeof(
Switch_t))))
2220#line 2221 "exparse.c"
2224#line 428 "../../lib/expr/exparse.y"
2236 size_t n = (size_t)(sw->
cur - sw->
base);
2239 memcpy((yyval.expr)->data.select.constant, sw->
base, n *
sizeof(
Extype_t*));
2240 (yyval.expr)->
data.select.constant[n] = 0;
2243 (yyval.expr)->data.select.constant = 0;
2248 exerror(
"duplicate default in switch");
2250 sw->
defcase = (yyvsp[0].expr);
2253#line 2254 "exparse.c"
2257#line 463 "../../lib/expr/exparse.y"
2264 exerror(
"too many case labels for switch");
2276#line 2277 "exparse.c"
2280#line 482 "../../lib/expr/exparse.y"
2284#line 2285 "exparse.c"
2288#line 488 "../../lib/expr/exparse.y"
2290 (yyval.integer) = 0;
2292#line 2293 "exparse.c"
2296#line 492 "../../lib/expr/exparse.y"
2298 (yyval.integer) = 1;
2300#line 2301 "exparse.c"
2304#line 499 "../../lib/expr/exparse.y"
2306 if ((yyvsp[0].
expr))
2307 (yyval.expr) = (yyvsp[-2].expr) ?
exnewnode(
expr.
program,
',', 1, (yyvsp[0].expr)->type, (yyvsp[-2].expr), (yyvsp[0].
expr)) : (yyvsp[0].expr);
2309#line 2310 "exparse.c"
2313#line 505 "../../lib/expr/exparse.y"
2314 {checkName ((yyvsp[0].
id));
expr.
id=(yyvsp[0].id);}
2315#line 2316 "exparse.c"
2319#line 506 "../../lib/expr/exparse.y"
2327 (yyvsp[-3].id)->
type = (yyvsp[0].
expr)->type;
2328 (yyvsp[-3].id)->value = (yyvsp[0].
expr);
2334 if ((yyvsp[-1].integer) && (yyvsp[-3].id)->local ==
NULL)
2338 if (!(disc = calloc(1,
sizeof(
Dtdisc_t))))
2340 if ((yyvsp[-1].integer) ==
INTEGER) {
2348 exerror(
"%s: cannot initialize associative array", (yyvsp[-3].
id)->name);
2349 (yyvsp[-3].id)->index_type = (yyvsp[-1].integer);
2351 if ((yyvsp[0].
expr))
2353 if ((yyvsp[0].
expr)->type != (yyvsp[-3].id)->
type)
2355 (yyvsp[0].expr)->
type = (yyvsp[-3].
id)->type;
2359 (yyvsp[0].expr)->
data.operand.left->data.variable.symbol = (yyvsp[-3].id);
2360 (yyval.expr) = (yyvsp[0].
expr);
2362 else if (!(yyvsp[-1].integer))
2363 (yyvsp[-3].
id)->value->data.value =
exzero((yyvsp[-3].
id)->
type);
2366#line 2367 "exparse.c"
2370#line 565 "../../lib/expr/exparse.y"
2374#line 2375 "exparse.c"
2378#line 569 "../../lib/expr/exparse.y"
2380 (yyval.expr) = (yyvsp[0].
expr);
2382#line 2383 "exparse.c"
2386#line 575 "../../lib/expr/exparse.y"
2390#line 2391 "exparse.c"
2394#line 582 "../../lib/expr/exparse.y"
2396 (yyval.expr) = (yyvsp[-1].
expr);
2398#line 2399 "exparse.c"
2402#line 586 "../../lib/expr/exparse.y"
2404 (yyval.expr) = ((yyvsp[0].
expr)->type == (yyvsp[-2].id)->
type) ? (yyvsp[0].expr) :
excast(
expr.
program, (yyvsp[0].expr), (yyvsp[-2].id)->type,
NULL, 0);
2406#line 2407 "exparse.c"
2410#line 590 "../../lib/expr/exparse.y"
2425 (yyvsp[-2].
expr)->type = (yyvsp[0].expr)->
type;
2427 else if (!(yyvsp[0].
expr)->type)
2428 (yyvsp[0].
expr)->type = (yyvsp[-2].expr)->
type;
2429 if ((yyvsp[-2].
expr)->type != (yyvsp[0].expr)->
type)
2432 (yyvsp[-2].
expr) =
excast(
expr.
program, (yyvsp[-2].expr), (yyvsp[0].expr)->type, (yyvsp[0].expr), 0);
2450 if ((yyval.expr)->type ==
STRING) {
2451 (yyval.expr)->
data.constant.value.string =
2454 (yyval.expr)->
binary = 0;
2460 checkBinary(
expr.
program, (yyvsp[-2].expr), (yyval.expr), (yyvsp[0].expr));
2463#line 2464 "exparse.c"
2467#line 643 "../../lib/expr/exparse.y"
2471#line 2472 "exparse.c"
2475#line 647 "../../lib/expr/exparse.y"
2479#line 2480 "exparse.c"
2483#line 651 "../../lib/expr/exparse.y"
2487#line 2488 "exparse.c"
2491#line 655 "../../lib/expr/exparse.y"
2495#line 2496 "exparse.c"
2499#line 659 "../../lib/expr/exparse.y"
2503#line 2504 "exparse.c"
2507#line 663 "../../lib/expr/exparse.y"
2511#line 2512 "exparse.c"
2515#line 667 "../../lib/expr/exparse.y"
2519#line 2520 "exparse.c"
2523#line 671 "../../lib/expr/exparse.y"
2527#line 2528 "exparse.c"
2531#line 675 "../../lib/expr/exparse.y"
2535#line 2536 "exparse.c"
2539#line 679 "../../lib/expr/exparse.y"
2543#line 2544 "exparse.c"
2547#line 683 "../../lib/expr/exparse.y"
2551#line 2552 "exparse.c"
2555#line 687 "../../lib/expr/exparse.y"
2559#line 2560 "exparse.c"
2563#line 691 "../../lib/expr/exparse.y"
2567#line 2568 "exparse.c"
2571#line 695 "../../lib/expr/exparse.y"
2575#line 2576 "exparse.c"
2579#line 699 "../../lib/expr/exparse.y"
2583#line 2584 "exparse.c"
2587#line 703 "../../lib/expr/exparse.y"
2600#line 2601 "exparse.c"
2604#line 716 "../../lib/expr/exparse.y"
2608#line 2609 "exparse.c"
2612#line 720 "../../lib/expr/exparse.y"
2617 (yyval.expr) = (yyvsp[0].
expr);
2620 (yyval.expr) =
exnewnode(
expr.
program,
',', 1, (yyvsp[0].expr)->type, (yyvsp[-2].expr), (yyvsp[0].expr));
2622#line 2623 "exparse.c"
2626#line 729 "../../lib/expr/exparse.y"
2628#line 2629 "exparse.c"
2632#line 729 "../../lib/expr/exparse.y"
2634#line 2635 "exparse.c"
2638#line 730 "../../lib/expr/exparse.y"
2645 (yyvsp[-3].
expr)->type = (yyvsp[0].expr)->
type;
2647 else if (!(yyvsp[0].
expr)->type)
2648 (yyvsp[0].
expr)->type = (yyvsp[-3].expr)->
type;
2653 if ((yyvsp[-3].
expr)->type != (yyvsp[0].expr)->
type)
2656 exerror(
"if statement string type mismatch");
2664 if ((yyvsp[-6].
expr)->
data.constant.value.integer)
2666 (yyval.expr) = (yyvsp[-3].
expr);
2671 (yyval.expr) = (yyvsp[0].
expr);
2677 (yyval.expr) =
exnewnode(
expr.
program,
'?', 1, (yyvsp[-3].expr)->type, (yyvsp[-6].expr),
exnewnode(
expr.
program,
':', 1, (yyvsp[-3].expr)->type, (yyvsp[-3].expr), (yyvsp[0].expr)));
2679#line 2680 "exparse.c"
2683#line 771 "../../lib/expr/exparse.y"
2695 (yyval.expr)->
binary = 0;
2700 checkBinary(
expr.
program, (yyvsp[0].expr), (yyval.expr), 0);
2703#line 2704 "exparse.c"
2707#line 791 "../../lib/expr/exparse.y"
2709 if ((yyvsp[0].
id)->local ==
NULL)
2710 exerror(
"cannot apply '#' operator to non-array %s", (yyvsp[0].
id)->name);
2712 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
2714#line 2715 "exparse.c"
2718#line 798 "../../lib/expr/exparse.y"
2722#line 2723 "exparse.c"
2726#line 802 "../../lib/expr/exparse.y"
2730#line 2731 "exparse.c"
2734#line 806 "../../lib/expr/exparse.y"
2736 (yyval.expr) = (yyvsp[0].
expr);
2738#line 2739 "exparse.c"
2742#line 810 "../../lib/expr/exparse.y"
2746#line 2747 "exparse.c"
2750#line 814 "../../lib/expr/exparse.y"
2752 (yyval.expr) =
exnewnode(
expr.
program,
ARRAY, 1,
T((yyvsp[-3].
id)->type), call(0, (yyvsp[-3].
id), (yyvsp[-1].expr)), (yyvsp[-1].expr));
2754#line 2755 "exparse.c"
2758#line 818 "../../lib/expr/exparse.y"
2762#line 2763 "exparse.c"
2766#line 822 "../../lib/expr/exparse.y"
2770#line 2771 "exparse.c"
2774#line 826 "../../lib/expr/exparse.y"
2778#line 2779 "exparse.c"
2782#line 830 "../../lib/expr/exparse.y"
2784 (yyval.expr) = exnewsubstr (
expr.
program, (yyvsp[-1].expr));
2786#line 2787 "exparse.c"
2790#line 834 "../../lib/expr/exparse.y"
2792 (yyval.expr) = exnewsplit (
expr.
program, (yyvsp[-5].id)->index, (yyvsp[-1].id), (yyvsp[-3].
expr),
NULL);
2794#line 2795 "exparse.c"
2798#line 838 "../../lib/expr/exparse.y"
2800 (yyval.expr) = exnewsplit (
expr.
program, (yyvsp[-7].id)->index, (yyvsp[-3].id), (yyvsp[-5].
expr), (yyvsp[-1].expr));
2802#line 2803 "exparse.c"
2806#line 842 "../../lib/expr/exparse.y"
2812#line 2813 "exparse.c"
2816#line 848 "../../lib/expr/exparse.y"
2820#line 2821 "exparse.c"
2824#line 852 "../../lib/expr/exparse.y"
2828#line 2829 "exparse.c"
2832#line 856 "../../lib/expr/exparse.y"
2838#line 2839 "exparse.c"
2842#line 862 "../../lib/expr/exparse.y"
2845 (yyval.expr)->
data.call.procedure = (yyvsp[-3].id);
2847#line 2848 "exparse.c"
2851#line 867 "../../lib/expr/exparse.y"
2853 (yyval.expr) = exprint(
expr.
program, (yyvsp[-3].id), (yyvsp[-1].expr));
2855#line 2856 "exparse.c"
2859#line 871 "../../lib/expr/exparse.y"
2862 if ((yyvsp[-1].
expr) && (yyvsp[-1].expr)->
data.operand.left->type ==
INTEGER)
2864 (yyval.expr)->
data.print.descriptor = (yyvsp[-1].expr)->data.operand.left;
2865 (yyvsp[-1].expr) = (yyvsp[-1].
expr)->data.operand.right;
2868 switch ((yyvsp[-3].
id)->index)
2872 (yyval.expr)->
data.print.descriptor->data.constant.value.integer = 2;
2876 (yyval.expr)->
data.print.descriptor->data.constant.value.integer = 1;
2879 (yyval.expr)->
data.print.descriptor = 0;
2882 (yyval.expr)->
data.print.args = preprint((yyvsp[-1].
expr));
2884#line 2885 "exparse.c"
2888#line 896 "../../lib/expr/exparse.y"
2893 if ((yyvsp[-1].
expr) && (yyvsp[-1].expr)->
data.operand.left->type ==
INTEGER)
2895 (yyval.expr)->
data.scan.descriptor = (yyvsp[-1].expr)->data.operand.left;
2896 (yyvsp[-1].expr) = (yyvsp[-1].
expr)->data.operand.right;
2899 switch ((yyvsp[-3].
id)->index)
2902 (yyval.expr)->
data.scan.descriptor = 0;
2907 (yyval.expr)->
data.scan.descriptor = (yyvsp[-1].expr)->data.operand.left;
2908 (yyvsp[-1].expr) = (yyvsp[-1].
expr)->data.operand.right;
2911 exerror(
"%s: string argument expected", (yyvsp[-3].
id)->name);
2914 if (!(yyvsp[-1].
expr) || !(yyvsp[-1].
expr)->
data.operand.left || (yyvsp[-1].expr)->data.operand.left->type !=
STRING)
2915 exerror(
"%s: format argument expected", (yyvsp[-3].
id)->name);
2916 (yyval.expr)->
data.scan.format = (yyvsp[-1].expr)->data.operand.left;
2920 exerror(
"%s: address argument expected", (yyvsp[-3].
id)->name);
2924#line 2925 "exparse.c"
2928#line 932 "../../lib/expr/exparse.y"
2930 if ((yyvsp[0].
expr))
2933 exerror(
"%s: variable assignment not supported", (yyvsp[-1].
expr)->
data.variable.symbol->name);
2937 (yyvsp[-1].expr)->
type = (yyvsp[0].
expr)->type;
2938 else if ((yyvsp[0].
expr)->type != (yyvsp[-1].expr)->
type)
2940 (yyvsp[0].expr)->
type = (yyvsp[-1].
expr)->type;
2943 (yyvsp[0].expr)->
data.operand.left = (yyvsp[-1].expr);
2944 (yyval.expr) = (yyvsp[0].
expr);
2948#line 2949 "exparse.c"
2952#line 952 "../../lib/expr/exparse.y"
2956 exerror(
"++ and -- invalid for string variables");
2958 (yyval.expr)->subop =
PRE;
2960#line 2961 "exparse.c"
2964#line 960 "../../lib/expr/exparse.y"
2968 exerror(
"++ and -- invalid for string variables");
2970 (yyval.expr)->subop =
POS;
2972#line 2973 "exparse.c"
2976#line 968 "../../lib/expr/exparse.y"
2978 if ((yyvsp[0].
id)->local ==
NULL)
2979 exerror(
"cannot apply IN to non-array %s", (yyvsp[0].
id)->name);
2980 if (((yyvsp[0].
id)->index_type > 0) && ((yyvsp[-2].
expr)->type != (yyvsp[0].id)->index_type))
2981 exerror(
"%s indices must have type %s, not %s",
2984 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
2985 (yyval.expr)->
data.variable.index = (yyvsp[-2].expr);
2987#line 2988 "exparse.c"
2991#line 979 "../../lib/expr/exparse.y"
2995#line 2996 "exparse.c"
2999#line 983 "../../lib/expr/exparse.y"
3003#line 3004 "exparse.c"
3007#line 993 "../../lib/expr/exparse.y"
3011 exerror(
"%s: identifier references not supported", (yyvsp[0].
id)->name);
3015#line 3016 "exparse.c"
3019#line 1001 "../../lib/expr/exparse.y"
3022 (yyval.expr)->
data.constant.value.floating = (yyvsp[0].floating);
3024#line 3025 "exparse.c"
3028#line 1006 "../../lib/expr/exparse.y"
3031 (yyval.expr)->
data.constant.value.integer = (yyvsp[0].integer);
3033#line 3034 "exparse.c"
3037#line 1011 "../../lib/expr/exparse.y"
3040 (yyval.expr)->
data.constant.value.string = (yyvsp[0].string);
3042#line 3043 "exparse.c"
3046#line 1016 "../../lib/expr/exparse.y"
3049 (yyval.expr)->
data.constant.value.integer = (yyvsp[0].integer);
3051#line 3052 "exparse.c"
3055#line 1032 "../../lib/expr/exparse.y"
3057 (yyval.expr) = makeVar(
expr.
program, (yyvsp[-1].id), 0, 0, (yyvsp[0].reference));
3059#line 3060 "exparse.c"
3063#line 1036 "../../lib/expr/exparse.y"
3071 exerror(
"%s: is%s an array", (yyvsp[-2].
id)->name, (yyvsp[-2].id)->local !=
NULL ?
"" :
" not");
3072 if ((yyvsp[-2].
id)->local !=
NULL && ((yyvsp[-2].id)->index_type > 0)) {
3073 if ((yyvsp[-1].
expr)->type != (yyvsp[-2].id)->index_type)
3074 exerror(
"%s: indices must have type %s, not %s",
3077 if ((yyvsp[0].reference)) {
3079 (yyval.expr) = makeVar(
expr.
program, (yyvsp[-2].id), (yyvsp[-1].expr), n, (yyvsp[0].reference));
3081 else (yyval.expr) = n;
3083#line 3084 "exparse.c"
3087#line 1056 "../../lib/expr/exparse.y"
3090 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
3091 (yyval.expr)->
data.variable.reference = 0;
3092 (yyval.expr)->
data.variable.index = 0;
3093 (yyval.expr)->
data.variable.dyna = 0;
3095 exerror(
"unknown identifier");
3097#line 3098 "exparse.c"
3101#line 1068 "../../lib/expr/exparse.y"
3103 (yyval.integer) = 0;
3105#line 3106 "exparse.c"
3109#line 1072 "../../lib/expr/exparse.y"
3111 (yyval.integer) = -1;
3113#line 3114 "exparse.c"
3117#line 1076 "../../lib/expr/exparse.y"
3122 if (
INTEGRAL((yyvsp[-1].
id)->type))
3125 (yyval.integer) = (yyvsp[-1].id)->
type;
3128#line 3129 "exparse.c"
3132#line 1089 "../../lib/expr/exparse.y"
3136#line 3137 "exparse.c"
3140#line 1093 "../../lib/expr/exparse.y"
3142 (yyval.expr) = (yyvsp[-1].
expr);
3144#line 3145 "exparse.c"
3148#line 1099 "../../lib/expr/exparse.y"
3152#line 3153 "exparse.c"
3156#line 1103 "../../lib/expr/exparse.y"
3158 (yyval.expr) = (yyvsp[0].
expr)->data.operand.left;
3159 (yyvsp[0].expr)->
data.operand.left = (yyvsp[0].expr)->data.operand.right = 0;
3162#line 3163 "exparse.c"
3166#line 1111 "../../lib/expr/exparse.y"
3168 (yyval.expr) =
exnewnode(
expr.
program,
',', 1, 0,
exnewnode(
expr.
program,
',', 1, (yyvsp[0].expr)->type, (yyvsp[0].expr),
NULL),
NULL);
3169 (yyval.expr)->
data.operand.right = (yyval.expr)->data.operand.left;
3171#line 3172 "exparse.c"
3175#line 1116 "../../lib/expr/exparse.y"
3177 (yyvsp[-2].expr)->
data.operand.right = (yyvsp[-2].expr)->data.operand.right->data.operand.right =
exnewnode(
expr.
program,
',', 1, (yyvsp[-2].expr)->type, (yyvsp[0].expr),
NULL);
3179#line 3180 "exparse.c"
3183#line 1122 "../../lib/expr/exparse.y"
3187#line 3188 "exparse.c"
3191#line 1126 "../../lib/expr/exparse.y"
3194 if ((yyvsp[0].
id)->type)
3197#line 3198 "exparse.c"
3201#line 1135 "../../lib/expr/exparse.y"
3205#line 3206 "exparse.c"
3209#line 1139 "../../lib/expr/exparse.y"
3214 (yyval.expr) = (yyvsp[-2].
expr);
3218#line 3219 "exparse.c"
3222#line 1149 "../../lib/expr/exparse.y"
3224#line 3225 "exparse.c"
3228#line 1150 "../../lib/expr/exparse.y"
3231 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
3233 (yyvsp[0].id)->
type = (yyvsp[-2].
id)->type;
3238#line 3239 "exparse.c"
3242#line 1162 "../../lib/expr/exparse.y"
3246#line 3247 "exparse.c"
3250#line 1166 "../../lib/expr/exparse.y"
3256 r->
symbol = (yyvsp[0].id);
3262#line 3263 "exparse.c"
3266#line 1178 "../../lib/expr/exparse.y"
3273 r->
symbol = (yyvsp[0].id);
3278 l->
symbol = (yyvsp[-1].id);
3284#line 3285 "exparse.c"
3288#line 1198 "../../lib/expr/exparse.y"
3290 (yyval.id) = (yyvsp[0].
id);
3292#line 3293 "exparse.c"
3296#line 1202 "../../lib/expr/exparse.y"
3298 (yyval.id) = (yyvsp[0].
id);
3300#line 3301 "exparse.c"
3304#line 1207 "../../lib/expr/exparse.y"
3308#line 3309 "exparse.c"
3312#line 1211 "../../lib/expr/exparse.y"
3315 (yyval.expr)->subop = (yyvsp[-1].op);
3317#line 3318 "exparse.c"
3321#line 1218 "../../lib/expr/exparse.y"
3328 if (!(disc = calloc(1,
sizeof(
Dtdisc_t))))
3340#line 3341 "exparse.c"
3344#line 1235 "../../lib/expr/exparse.y"
3351#line 3352 "exparse.c"
3355#line 1241 "../../lib/expr/exparse.y"
3365 (yyval.expr)->
data.operand.left = (yyvsp[-5].expr);
3376#line 3377 "exparse.c"
3380#line 3381 "exparse.c"
3408 const int yyi =
yypgoto[yylhs] + *yyssp;
3409 yystate = (0 <= yyi && yyi <=
YYLAST &&
yycheck[yyi] == *yyssp
3429#if ! YYERROR_VERBOSE
3432# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
3435 char const *yymsgp =
YY_(
"syntax error");
3436 int yysyntax_error_status;
3437 yysyntax_error_status = YYSYNTAX_ERROR;
3438 if (yysyntax_error_status == 0)
3440 else if (yysyntax_error_status == 1)
3442 if (yymsg != yymsgbuf)
3448 yymsg_alloc =
sizeof yymsgbuf;
3449 yysyntax_error_status = 2;
3453 yysyntax_error_status = YYSYNTAX_ERROR;
3458 if (yysyntax_error_status == 2)
3459 goto yyexhaustedlab;
3461# undef YYSYNTAX_ERROR
3467 if (yyerrstatus == 3)
3569#if !defined yyoverflow || YYERROR_VERBOSE
3596 while (yyssp != yyss)
3607 if (yymsg != yymsgbuf)