681 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
682 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
683 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
684 2, 2, 2, 90, 2, 92, 2, 89, 75, 2,
685 97, 102, 87, 84, 67, 85, 105, 88, 2, 2,
686 2, 2, 2, 2, 2, 2, 2, 2, 70, 101,
687 78, 68, 79, 69, 2, 2, 2, 2, 2, 2,
688 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
689 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
690 2, 103, 2, 104, 74, 2, 2, 2, 2, 2,
691 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
692 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
693 2, 2, 2, 99, 73, 100, 91, 2, 2, 2,
694 2, 2, 2, 2, 2, 2, 2, 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, 1, 2, 3, 4,
707 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
708 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
709 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
710 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
711 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
712 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
713 65, 66, 71, 72, 76, 77, 80, 81, 82, 83,
714 86, 93, 94, 95, 96, 98
799 -180, 29, 229, -180, -180, -180, -180, -180, -63, 711,
800 -180, 711, -180, -41, -7, -4, 4, 5, 6, 1,
801 10, -180, 11, -180, 14, -180, 17, 711, -180, -180,
802 -180, 20, -180, 23, 24, 25, -180, 27, 30, 28,
803 711, 711, 711, 711, 106, 28, 28, 617, -180, 102,
804 -180, 33, 891, 38, -180, 40, 41, 18, 711, 42,
805 44, 68, 711, 1, 711, 711, 711, 711, 28, 8,
806 -180, -180, 711, 711, 711, 37, 46, 125, 711, 711,
807 711, 122, 711, -180, -180, -180, -180, -180, -180, -180,
808 -180, 52, 312, 327, 72, -180, -180, 711, -180, 711,
809 711, 711, 711, 711, 711, 711, 711, 711, 711, 711,
810 711, 711, 711, 711, 136, 711, 711, 711, 711, 711,
811 711, 711, -180, -180, -180, 935, 53, 91, -180, -180,
812 -180, -180, -180, -180, -49, -180, -180, 214, -180, 409,
813 58, -44, 73, 74, 75, 81, -180, 506, 76, 99,
814 -180, -180, -180, 598, 100, 101, 891, -57, 692, 711,
815 -180, -180, -180, 935, 711, 953, 970, 986, 1001, 1015,
816 1029, 1029, 110, 110, 110, 110, 96, 96, -73, -73,
817 -180, -180, -180, -180, 914, 103, 104, 935, -180, 711,
818 68, -180, 108, -180, -180, 711, 521, -180, -180, 521,
819 61, -180, 521, -180, -180, -180, -180, -180, 116, 711,
820 -180, 521, -180, -180, 868, 805, -180, -180, 935, -180,
821 -15, -43, 112, -180, -180, -180, 184, 113, 786, -180,
822 229, -180, -54, 117, -180, -180, -180, -180, 711, 521,
823 -180, -180, -180, 711, 711, -180, -180, 206, 123, -180,
824 -6, 935, 834, 124, -180, 157, -180, 521, 111, 158,
825 -180, -180, 82, -180, -180, -10, 127, 218, -180, 161,
826 -180, 229, -180, -180, -180, -180, 139, -180, -180, -180,
835 7, 0, 3, 1, 102, 104, 101, 103, 0, 44,
836 100, 44, 11, 116, 0, 0, 0, 0, 0, 129,
837 0, 112, 0, 105, 0, 106, 0, 44, 108, 98,
838 107, 0, 109, 0, 0, 0, 99, 0, 0, 0,
839 0, 0, 0, 0, 0, 0, 0, 0, 7, 2,
840 8, 0, 45, 0, 97, 0, 0, 134, 118, 0,
841 0, 0, 0, 129, 0, 44, 118, 118, 0, 0,
842 110, 130, 0, 118, 118, 0, 0, 0, 118, 118,
843 0, 0, 0, 75, 74, 73, 70, 72, 71, 92,
844 95, 0, 0, 44, 0, 4, 10, 0, 67, 0,
845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
846 0, 0, 0, 0, 0, 0, 0, 0, 0, 118,
847 118, 0, 93, 96, 91, 120, 0, 119, 22, 23,
848 37, 39, 38, 36, 0, 32, 34, 0, 111, 0,
849 0, 134, 0, 0, 0, 132, 133, 0, 0, 0,
850 84, 24, 85, 0, 0, 0, 20, 0, 0, 0,
851 46, 9, 5, 66, 0, 65, 64, 61, 62, 60,
852 58, 59, 48, 55, 56, 57, 53, 54, 63, 49,
853 94, 50, 51, 52, 0, 0, 0, 135, 76, 0,
854 0, 12, 113, 117, 83, 44, 44, 77, 78, 44,
855 0, 131, 44, 88, 87, 86, 79, 80, 0, 0,
856 17, 44, 47, 7, 0, 0, 89, 90, 121, 33,
857 0, 134, 0, 14, 16, 132, 42, 0, 0, 19,
858 6, 68, 116, 0, 114, 137, 136, 35, 44, 44,
859 13, 25, 18, 0, 0, 81, 115, 122, 0, 43,
860 0, 69, 0, 127, 138, 124, 125, 44, 0, 0,
861 21, 26, 7, 28, 82, 0, 0, 0, 15, 0,
862 31, 27, 29, 41, 40, 128, 0, 127, 126, 30,
891 93, 59, 233, 60, 84, 85, 86, 87, 258, 273,
892 209, 92, 259, 244, 115, 116, 117, 223, 190, 76,
893 224, 274, 125, 226, 121, 121, 137, 83, 139, 3,
894 125, 125, 229, 89, 90, 145, 147, 125, 125, 146,
895 58, 153, 125, 125, 156, 210, 158, 13, 245, 62,
896 122, 123, 191, 141, 235, 19, 144, 140, 196, 21,
897 249, 163, 62, 165, 166, 167, 168, 169, 170, 171,
898 172, 173, 174, 175, 176, 177, 178, 179, 268, 181,
899 182, 183, 184, 125, 125, 187, 121, 130, 225, 234,
900 64, 131, 146, 65, 260, 132, 258, 142, 143, 133,
901 259, 66, 67, 68, 148, 149, 69, 72, 73, 154,
902 155, 74, 122, 123, 75, 4, 5, 77, 6, 7,
903 78, 79, 80, 212, 81, 88, 10, 82, 214, 4,
904 5, 94, 6, 7, 96, 118, 8, 119, 120, 150,
905 10, 157, 162, 128, 13, 129, 14, 151, 16, 17,
906 185, 186, 19, 218, 159, 180, 21, 188, 189, 195,
907 22, 23, 24, 25, 26, 230, 28, 29, 30, 31,
908 32, 33, 34, 228, 36, 197, 198, 199, 203, 163,
909 112, 113, 114, 115, 116, 117, 200, 222, -124, -124,
910 -124, -124, 110, 111, 112, 113, 114, 115, 116, 117,
911 39, 204, 206, 207, 239, 216, 217, 251, 252, 40,
912 41, 220, 241, 238, 271, 42, 43, 44, 227, 45,
913 46, 246, 47, 253, 267, 257, -123, 152, 270, 276,
914 248, 279, 281, 4, 5, 277, 6, 7, 280, 272,
915 8, 9, 269, 278, 10, 11, 12, 219, 13, 138,
916 14, 15, 16, 17, 201, 18, 19, 20, 0, 0,
917 21, 0, 0, 0, 22, 23, 24, 25, 26, 27,
918 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
919 38, 97, 0, 98, 236, 99, 100, 101, 102, 103,
920 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
921 114, 115, 116, 117, 39, 0, 0, 0, 0, 0,
922 0, 0, 0, 40, 41, 0, 0, 0, 193, 42,
923 43, 44, 0, 45, 46, 0, 47, 0, 48, 0,
924 -44, 4, 5, 0, 6, 7, 0, 0, 8, 9,
925 0, 0, 10, 11, 12, 0, 13, 0, 14, 15,
926 16, 17, 0, 18, 19, 20, 0, 0, 21, 0,
927 0, 0, 22, 23, 24, 25, 26, 27, 28, 29,
928 30, 31, 32, 33, 34, 35, 36, 37, 38, 97,
929 0, 98, 0, 99, 100, 101, 102, 103, 104, 105,
930 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
931 116, 117, 39, 0, 0, 0, 0, 0, 0, 0,
932 0, 40, 41, 0, 160, 0, 0, 42, 43, 44,
933 0, 45, 46, 0, 47, 0, 48, 161, 4, 5,
934 0, 6, 7, 0, 0, 8, 9, 0, 0, 10,
935 11, 12, 0, 13, 0, 14, 15, 16, 17, 0,
936 18, 19, 20, 0, 0, 21, 0, 0, 0, 22,
937 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
938 33, 34, 35, 36, 37, 38, 97, 0, 98, 0,
939 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
940 109, 110, 111, 112, 113, 114, 115, 116, 117, 39,
941 0, 0, 0, 0, 0, 0, 0, 0, 40, 41,
942 0, 194, 0, 0, 42, 43, 44, 0, 45, 46,
943 0, 47, 0, 48, 282, 4, 5, 0, 6, 7,
944 0, 0, 8, 9, 0, 0, 10, 11, 12, 0,
945 13, 0, 14, 15, 16, 17, 0, 18, 19, 20,
946 0, 0, 21, 0, 0, 0, 22, 23, 24, 25,
947 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
948 36, 37, 38, 97, 0, 98, 0, 99, 100, 101,
949 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
950 112, 113, 114, 115, 116, 117, 39, 0, 0, 0,
951 0, 0, 0, 0, 0, 40, 41, 0, 202, 0,
952 0, 42, 43, 44, 0, 45, 46, 0, 47, 0,
953 48, 4, 5, 0, 6, 7, 0, 0, 8, 0,
954 0, 0, 10, 0, 91, 0, 13, 0, 14, 0,
955 16, 17, 0, 0, 19, 0, 0, 0, 21, 0,
956 0, 0, 22, 23, 24, 25, 26, 0, 28, 29,
957 30, 31, 32, 33, 34, 97, 36, 98, 0, 99,
958 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
959 110, 111, 112, 113, 114, 115, 116, 117, 0, 0,
960 0, 0, 39, 0, 0, 0, 0, 0, 0, 0,
961 205, 40, 41, 0, 0, 0, 0, 42, 43, 44,
962 0, 45, 46, 0, 47, 4, 5, 0, 6, 7,
963 0, 0, 8, 0, 0, 0, 10, 0, 0, 0,
964 13, 0, 14, 0, 16, 17, 0, 0, 19, 0,
965 0, 0, 21, 0, 0, 0, 22, 23, 24, 25,
966 26, 0, 28, 29, 30, 31, 32, 33, 34, 97,
967 36, 98, 0, 99, 100, 101, 102, 103, 104, 105,
968 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
969 116, 117, 0, 0, 0, 0, 39, 0, 0, 0,
970 0, 0, 0, 0, 211, 40, 41, 0, 0, 0,
971 0, 42, 43, 44, 0, 45, 46, 0, 47, 4,
972 5, 0, 6, 7, 0, 0, 8, 0, 0, 0,
973 10, 0, 0, 0, 232, 0, 14, 0, 16, 17,
974 0, 0, 19, 0, 0, 0, 21, 0, 0, 0,
975 22, 23, 24, 25, 26, 0, 28, 29, 30, 31,
976 32, 33, 34, 97, 36, 98, 0, 99, 100, 101,
977 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
978 112, 113, 114, 115, 116, 117, 0, 0, 0, 0,
979 39, 0, 0, 0, 0, 0, 0, 0, 242, 40,
980 41, 0, 0, 0, 0, 42, 43, 44, 0, 45,
981 46, 97, 47, 98, 0, 99, 100, 101, 102, 103,
982 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
983 114, 115, 116, 117, 0, 0, 0, 0, 0, 0,
984 0, 0, 0, 0, 0, 97, 264, 98, 231, 99,
985 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
986 110, 111, 112, 113, 114, 115, 116, 117, 97, 0,
987 98, 0, 99, 100, 101, 102, 103, 104, 105, 106,
988 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
989 117, 215, 0, 98, 0, 99, 100, 101, 102, 103,
990 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
991 114, 115, 116, 117, 98, 0, 99, 100, 101, 102,
992 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
993 113, 114, 115, 116, 117, 100, 101, 102, 103, 104,
994 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
995 115, 116, 117, 101, 102, 103, 104, 105, 106, 107,
996 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
997 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
998 112, 113, 114, 115, 116, 117, 103, 104, 105, 106,
999 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1000 117, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1001 113, 114, 115, 116, 117, -124, -124, 106, 107, 108,
1002 109, 110, 111, 112, 113, 114, 115, 116, 117
1007 48, 9, 17, 11, 40, 41, 42, 43, 14, 19,
1008 67, 47, 18, 67, 87, 88, 89, 196, 67, 27,
1009 199, 31, 58, 202, 68, 68, 62, 39, 64, 0,
1010 66, 67, 211, 45, 46, 27, 72, 73, 74, 31,
1011 103, 77, 78, 79, 80, 102, 82, 19, 102, 103,
1012 94, 95, 101, 65, 97, 27, 68, 65, 102, 31,
1013 239, 97, 103, 99, 100, 101, 102, 103, 104, 105,
1014 106, 107, 108, 109, 110, 111, 112, 113, 257, 115,
1015 116, 117, 118, 119, 120, 121, 68, 19, 27, 104,
1016 97, 23, 31, 97, 100, 27, 14, 66, 67, 31,
1017 18, 97, 97, 97, 73, 74, 105, 97, 97, 78,
1018 79, 97, 94, 95, 97, 4, 5, 97, 7, 8,
1019 97, 97, 97, 159, 97, 19, 15, 97, 164, 4,
1020 5, 29, 7, 8, 101, 97, 11, 97, 97, 102,
1021 15, 19, 70, 101, 19, 101, 21, 101, 23, 24,
1022 119, 120, 27, 189, 102, 19, 31, 104, 67, 101,
1023 35, 36, 37, 38, 39, 213, 41, 42, 43, 44,
1024 45, 46, 47, 209, 49, 102, 102, 102, 102, 215,
1025 84, 85, 86, 87, 88, 89, 105, 195, 78, 79,
1026 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1027 75, 102, 102, 102, 20, 102, 102, 243, 244, 84,
1028 85, 103, 99, 101, 262, 90, 91, 92, 102, 94,
1029 95, 104, 97, 17, 67, 102, 102, 102, 70, 102,
1030 238, 70, 280, 4, 5, 17, 7, 8, 99, 262,
1031 11, 12, 258, 267, 15, 16, 17, 190, 19, 63,
1032 21, 22, 23, 24, 145, 26, 27, 28, -1, -1,
1033 31, -1, -1, -1, 35, 36, 37, 38, 39, 40,
1034 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1035 51, 67, -1, 69, 221, 71, 72, 73, 74, 75,
1036 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1037 86, 87, 88, 89, 75, -1, -1, -1, -1, -1,
1038 -1, -1, -1, 84, 85, -1, -1, -1, 104, 90,
1039 91, 92, -1, 94, 95, -1, 97, -1, 99, -1,
1040 101, 4, 5, -1, 7, 8, -1, -1, 11, 12,
1041 -1, -1, 15, 16, 17, -1, 19, -1, 21, 22,
1042 23, 24, -1, 26, 27, 28, -1, -1, 31, -1,
1043 -1, -1, 35, 36, 37, 38, 39, 40, 41, 42,
1044 43, 44, 45, 46, 47, 48, 49, 50, 51, 67,
1045 -1, 69, -1, 71, 72, 73, 74, 75, 76, 77,
1046 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1047 88, 89, 75, -1, -1, -1, -1, -1, -1, -1,
1048 -1, 84, 85, -1, 102, -1, -1, 90, 91, 92,
1049 -1, 94, 95, -1, 97, -1, 99, 100, 4, 5,
1050 -1, 7, 8, -1, -1, 11, 12, -1, -1, 15,
1051 16, 17, -1, 19, -1, 21, 22, 23, 24, -1,
1052 26, 27, 28, -1, -1, 31, -1, -1, -1, 35,
1053 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1054 46, 47, 48, 49, 50, 51, 67, -1, 69, -1,
1055 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1056 81, 82, 83, 84, 85, 86, 87, 88, 89, 75,
1057 -1, -1, -1, -1, -1, -1, -1, -1, 84, 85,
1058 -1, 102, -1, -1, 90, 91, 92, -1, 94, 95,
1059 -1, 97, -1, 99, 100, 4, 5, -1, 7, 8,
1060 -1, -1, 11, 12, -1, -1, 15, 16, 17, -1,
1061 19, -1, 21, 22, 23, 24, -1, 26, 27, 28,
1062 -1, -1, 31, -1, -1, -1, 35, 36, 37, 38,
1063 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1064 49, 50, 51, 67, -1, 69, -1, 71, 72, 73,
1065 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1066 84, 85, 86, 87, 88, 89, 75, -1, -1, -1,
1067 -1, -1, -1, -1, -1, 84, 85, -1, 102, -1,
1068 -1, 90, 91, 92, -1, 94, 95, -1, 97, -1,
1069 99, 4, 5, -1, 7, 8, -1, -1, 11, -1,
1070 -1, -1, 15, -1, 17, -1, 19, -1, 21, -1,
1071 23, 24, -1, -1, 27, -1, -1, -1, 31, -1,
1072 -1, -1, 35, 36, 37, 38, 39, -1, 41, 42,
1073 43, 44, 45, 46, 47, 67, 49, 69, -1, 71,
1074 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1075 82, 83, 84, 85, 86, 87, 88, 89, -1, -1,
1076 -1, -1, 75, -1, -1, -1, -1, -1, -1, -1,
1077 102, 84, 85, -1, -1, -1, -1, 90, 91, 92,
1078 -1, 94, 95, -1, 97, 4, 5, -1, 7, 8,
1079 -1, -1, 11, -1, -1, -1, 15, -1, -1, -1,
1080 19, -1, 21, -1, 23, 24, -1, -1, 27, -1,
1081 -1, -1, 31, -1, -1, -1, 35, 36, 37, 38,
1082 39, -1, 41, 42, 43, 44, 45, 46, 47, 67,
1083 49, 69, -1, 71, 72, 73, 74, 75, 76, 77,
1084 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1085 88, 89, -1, -1, -1, -1, 75, -1, -1, -1,
1086 -1, -1, -1, -1, 102, 84, 85, -1, -1, -1,
1087 -1, 90, 91, 92, -1, 94, 95, -1, 97, 4,
1088 5, -1, 7, 8, -1, -1, 11, -1, -1, -1,
1089 15, -1, -1, -1, 19, -1, 21, -1, 23, 24,
1090 -1, -1, 27, -1, -1, -1, 31, -1, -1, -1,
1091 35, 36, 37, 38, 39, -1, 41, 42, 43, 44,
1092 45, 46, 47, 67, 49, 69, -1, 71, 72, 73,
1093 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1094 84, 85, 86, 87, 88, 89, -1, -1, -1, -1,
1095 75, -1, -1, -1, -1, -1, -1, -1, 102, 84,
1096 85, -1, -1, -1, -1, 90, 91, 92, -1, 94,
1097 95, 67, 97, 69, -1, 71, 72, 73, 74, 75,
1098 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1099 86, 87, 88, 89, -1, -1, -1, -1, -1, -1,
1100 -1, -1, -1, -1, -1, 67, 102, 69, 70, 71,
1101 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1102 82, 83, 84, 85, 86, 87, 88, 89, 67, -1,
1103 69, -1, 71, 72, 73, 74, 75, 76, 77, 78,
1104 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1105 89, 67, -1, 69, -1, 71, 72, 73, 74, 75,
1106 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1107 86, 87, 88, 89, 69, -1, 71, 72, 73, 74,
1108 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1109 85, 86, 87, 88, 89, 72, 73, 74, 75, 76,
1110 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1111 87, 88, 89, 73, 74, 75, 76, 77, 78, 79,
1112 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1113 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1114 84, 85, 86, 87, 88, 89, 75, 76, 77, 78,
1115 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1116 89, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1117 85, 86, 87, 88, 89, 76, 77, 78, 79, 80,
1118 81, 82, 83, 84, 85, 86, 87, 88, 89
1125 0, 107, 111, 0, 4, 5, 7, 8, 11, 12,
1126 15, 16, 17, 19, 21, 22, 23, 24, 26, 27,
1127 28, 31, 35, 36, 37, 38, 39, 40, 41, 42,
1128 43, 44, 45, 46, 47, 48, 49, 50, 51, 75,
1129 84, 85, 90, 91, 92, 94, 95, 97, 99, 108,
1130 112, 125, 126, 129, 130, 131, 132, 133, 103, 125,
1131 125, 113, 103, 135, 97, 97, 97, 97, 97, 105,
1132 142, 143, 97, 97, 97, 97, 125, 97, 97, 97,
1133 97, 97, 97, 133, 126, 126, 126, 126, 19, 133,
1134 133, 17, 126, 111, 29, 109, 101, 67, 69, 71,
1135 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1136 82, 83, 84, 85, 86, 87, 88, 89, 97, 97,
1137 97, 68, 94, 95, 144, 126, 136, 137, 101, 101,
1138 19, 23, 27, 31, 119, 120, 122, 126, 142, 126,
1139 125, 133, 136, 136, 133, 27, 31, 126, 136, 136,
1140 102, 101, 102, 126, 136, 136, 126, 19, 126, 102,
1141 102, 100, 70, 126, 127, 126, 126, 126, 126, 126,
1142 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
1143 19, 126, 126, 126, 126, 136, 136, 126, 104, 67,
1144 67, 101, 121, 104, 102, 101, 102, 102, 102, 102,
1145 105, 143, 102, 102, 102, 102, 102, 102, 114, 67,
1146 102, 102, 126, 110, 126, 67, 102, 102, 126, 120,
1147 103, 134, 125, 112, 112, 27, 112, 102, 126, 112,
1148 111, 70, 19, 17, 104, 97, 144, 145, 101, 20,
1149 124, 99, 102, 128, 67, 102, 104, 146, 125, 112,
1150 115, 126, 126, 17, 138, 139, 140, 102, 14, 18,
1151 100, 116, 117, 118, 102, 141, 147, 67, 112, 130,
1152 70, 111, 118, 19, 31, 123, 102, 17, 140, 70,
1681 char *yymsg = yymsgbuf;
1685#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1691 yyssp = yyss = yyssa;
1692 yyvsp = yyvs = yyvsa;
1695 YYDPRINTF ((stderr,
"Starting parse\n"));
1717 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
1723 if (yyss + yystacksize - 1 <= yyssp)
1724#if !defined yyoverflow && !defined YYSTACK_RELOCATE
1725 goto yyexhaustedlab;
1731# if defined yyoverflow
1743 yyoverflow (
YY_(
"memory exhausted"),
1744 &yyss1, yysize *
YYSIZEOF (*yyssp),
1745 &yyvs1, yysize *
YYSIZEOF (*yyvsp),
1753 goto yyexhaustedlab;
1764 goto yyexhaustedlab;
1767# undef YYSTACK_RELOCATE
1773 yyssp = yyss + yysize - 1;
1774 yyvsp = yyvs + yysize - 1;
1777 YYDPRINTF ((stderr,
"Stack size increased to %ld\n",
1778 YY_CAST (
long, yystacksize)));
1781 if (yyss + yystacksize - 1 <= yyssp)
1809 YYDPRINTF ((stderr,
"Reading a token: "));
1816 YYDPRINTF ((stderr,
"Now at end of input.\n"));
1880 yyval = yyvsp[1-yylen];
1887#line 180 "../../lib/expr/exparse.y"
1889 if ((yyvsp[-1].
expr)) {
1892 if ((yyvsp[-1].
expr)->op ==
S2B)
1903#line 1904 "exparse.c"
1907#line 201 "../../lib/expr/exparse.y"
1910 exerror(
"no nested function definitions");
1923#line 1924 "exparse.c"
1927#line 216 "../../lib/expr/exparse.y"
1936 if ((yyvsp[0].
expr) && (yyvsp[0].
expr)->op ==
S2B)
1945#line 1946 "exparse.c"
1949#line 236 "../../lib/expr/exparse.y"
1953#line 1954 "exparse.c"
1957#line 240 "../../lib/expr/exparse.y"
1959 if (!(yyvsp[-1].
expr))
1960 (yyval.expr) = (yyvsp[0].expr);
1961 else if (!(yyvsp[0].
expr))
1962 (yyval.expr) = (yyvsp[-1].expr);
1966 (yyval.expr) = (yyvsp[0].
expr);
1968 else (yyval.expr) =
exnewnode(
expr.
program,
';',
true, (yyvsp[0].expr)->type, (yyvsp[-1].expr), (yyvsp[0].expr));
1970#line 1971 "exparse.c"
1974#line 255 "../../lib/expr/exparse.y"
1976 (yyval.expr) = (yyvsp[-1].
expr);
1978#line 1979 "exparse.c"
1982#line 259 "../../lib/expr/exparse.y"
1986#line 1987 "exparse.c"
1990#line 262 "../../lib/expr/exparse.y"
1992#line 1993 "exparse.c"
1996#line 263 "../../lib/expr/exparse.y"
1998 (yyval.expr) = (yyvsp[-1].
expr);
2001#line 2002 "exparse.c"
2005#line 268 "../../lib/expr/exparse.y"
2008 exwarn (
"assignment used as boolean in if statement");
2013 (yyval.expr) =
exnewnode(
expr.
program, (yyvsp[-5].id)->index,
true,
INTEGER, (yyvsp[-3].expr),
exnewnode(
expr.
program,
':',
true, (yyvsp[-1].expr) ? (yyvsp[-1].expr)->
type : 0, (yyvsp[-1].expr), (yyvsp[0].
expr)));
2015#line 2016 "exparse.c"
2019#line 278 "../../lib/expr/exparse.y"
2022 (yyval.expr)->
data.generate.array = (yyvsp[-2].expr);
2023 if (!(yyvsp[-2].
expr)->data.variable.index || (yyvsp[-2].expr)->
data.variable.index->op !=
DYNAMIC)
2024 exerror(
"simple index variable expected");
2025 (yyval.expr)->
data.generate.index = (yyvsp[-2].expr)->data.variable.index->data.variable.symbol;
2026 if ((yyvsp[-2].
expr)->op ==
ID && (yyval.expr)->
data.generate.index->type !=
INTEGER)
2027 exerror(
"integer index variable expected");
2029 (yyvsp[-2].expr)->
data.variable.index = 0;
2030 (yyval.expr)->
data.generate.statement = (yyvsp[0].expr);
2032#line 2033 "exparse.c"
2036#line 291 "../../lib/expr/exparse.y"
2038 if (!(yyvsp[-4].
expr))
2041 (yyvsp[-4].expr)->
data.constant.value.integer = 1;
2047 (yyval.expr) =
exnewnode(
expr.
program, (yyvsp[-8].id)->index,
true,
INTEGER, (yyvsp[-4].expr),
exnewnode(
expr.
program,
';', 1, 0, (yyvsp[-2].expr), (yyvsp[0].expr)));
2048 if ((yyvsp[-6].
expr))
2051#line 2052 "exparse.c"
2055#line 306 "../../lib/expr/exparse.y"
2058 (yyval.expr)->
data.generate.array = (yyvsp[-2].expr);
2059 if (!(yyvsp[-2].
expr)->data.variable.index || (yyvsp[-2].expr)->
data.variable.index->op !=
DYNAMIC)
2060 exerror(
"simple index variable expected");
2061 (yyval.expr)->
data.generate.index = (yyvsp[-2].expr)->data.variable.index->data.variable.symbol;
2062 if ((yyvsp[-2].
expr)->op ==
ID && (yyval.expr)->
data.generate.index->type !=
INTEGER)
2063 exerror(
"integer index variable expected");
2065 (yyvsp[-2].expr)->
data.variable.index = 0;
2066 (yyval.expr)->
data.generate.statement = (yyvsp[0].expr);
2068#line 2069 "exparse.c"
2072#line 319 "../../lib/expr/exparse.y"
2074 if ((yyvsp[-1].
id)->local ==
NULL)
2075 exerror(
"cannot apply unset to non-array %s", (yyvsp[-1].
id)->name);
2077 (yyval.expr)->
data.variable.symbol = (yyvsp[-1].id);
2078 (yyval.expr)->
data.variable.index =
NULL;
2080#line 2081 "exparse.c"
2084#line 327 "../../lib/expr/exparse.y"
2086 if ((yyvsp[-3].
id)->local ==
NULL)
2087 exerror(
"cannot apply unset to non-array %s", (yyvsp[-3].
id)->name);
2088 if (((yyvsp[-3].
id)->index_type > 0) && ((yyvsp[-1].
expr)->
type != (yyvsp[-3].
id)->index_type))
2089 exerror(
"%s indices must have type %s, not %s",
2092 (yyval.expr)->
data.variable.symbol = (yyvsp[-3].id);
2093 (yyval.expr)->
data.variable.index = (yyvsp[-1].expr);
2095#line 2096 "exparse.c"
2099#line 338 "../../lib/expr/exparse.y"
2102 exwarn (
"assignment used as boolean in while statement");
2107 (yyval.expr) =
exnewnode(
expr.
program, (yyvsp[-4].id)->index,
true,
INTEGER, (yyvsp[-2].expr),
exnewnode(
expr.
program,
';',
true, 0,
NULL, (yyvsp[0].expr)));
2109#line 2110 "exparse.c"
2113#line 347 "../../lib/expr/exparse.y"
2115#line 2116 "exparse.c"
2119#line 348 "../../lib/expr/exparse.y"
2123 (yyval.expr) =
exnewnode(
expr.
program, (yyvsp[-7].id)->index,
true,
INTEGER, (yyvsp[-5].expr),
exnewnode(
expr.
program,
DEFAULT,
true, 0, sw->
defcase, sw->
firstcase));
2129#line 2130 "exparse.c"
2133#line 358 "../../lib/expr/exparse.y"
2136 if (!(yyvsp[-1].
expr))
2139 (yyvsp[-1].expr)->
data.constant.value.integer = 1;
2145#line 2146 "exparse.c"
2149#line 370 "../../lib/expr/exparse.y"
2153#line 2154 "exparse.c"
2157#line 374 "../../lib/expr/exparse.y"
2159 if ((yyvsp[-1].
expr))
2162 exerror(
"return in void function");
2167#line 2168 "exparse.c"
2171#line 386 "../../lib/expr/exparse.y"
2175 if (!(sw = calloc(1,
sizeof(
Switch_t)))) {
2188#line 2189 "exparse.c"
2192#line 406 "../../lib/expr/exparse.y"
2204 const size_t n = sw->
cap;
2207 memcpy((yyval.expr)->data.select.constant, sw->
base, n *
sizeof(
Extype_t*));
2208 (yyval.expr)->
data.select.constant[n] = 0;
2211 (yyval.expr)->data.select.constant = 0;
2216 exerror(
"duplicate default in switch");
2218 sw->
defcase = (yyvsp[0].expr);
2221#line 2222 "exparse.c"
2225#line 441 "../../lib/expr/exparse.y"
2232 exerror(
"too many case labels for switch");
2243#line 2244 "exparse.c"
2247#line 459 "../../lib/expr/exparse.y"
2251#line 2252 "exparse.c"
2255#line 466 "../../lib/expr/exparse.y"
2257 if ((yyvsp[0].
expr))
2258 (yyval.expr) = (yyvsp[-2].
expr) ?
exnewnode(
expr.
program,
',',
true, (yyvsp[0].expr)->type, (yyvsp[-2].expr), (yyvsp[0].expr)) : (yyvsp[0].expr);
2260#line 2261 "exparse.c"
2264#line 472 "../../lib/expr/exparse.y"
2265 {checkName ((yyvsp[0].
id));
expr.
id=(yyvsp[0].id);}
2266#line 2267 "exparse.c"
2270#line 473 "../../lib/expr/exparse.y"
2278 (yyvsp[-3].id)->
type = (yyvsp[0].
expr)->type;
2279 (yyvsp[-3].id)->value = (yyvsp[0].
expr);
2283 if ((yyvsp[-3].
id)->type == 0) {
2284 exerror(
"%s: a variable cannot be void typed", (yyvsp[-3].
id)->name);
2288 if ((yyvsp[-1].integer) && (yyvsp[-3].id)->local ==
NULL)
2298 exerror(
"%s: cannot initialize associative array", (yyvsp[-3].
id)->name);
2299 (yyvsp[-3].id)->index_type = (yyvsp[-1].integer);
2301 if ((yyvsp[0].
expr))
2303 if ((yyvsp[0].
expr)->type != (yyvsp[-3].id)->
type)
2305 (yyvsp[0].expr)->
type = (yyvsp[-3].
id)->type;
2309 (yyvsp[0].expr)->
data.operand.left->data.variable.symbol = (yyvsp[-3].id);
2310 (yyval.expr) = (yyvsp[0].
expr);
2312 else if (!(yyvsp[-1].integer))
2313 (yyvsp[-3].
id)->value->data.value =
exzero((yyvsp[-3].
id)->
type);
2316#line 2317 "exparse.c"
2320#line 531 "../../lib/expr/exparse.y"
2324#line 2325 "exparse.c"
2328#line 535 "../../lib/expr/exparse.y"
2330 (yyval.expr) = (yyvsp[0].
expr);
2332#line 2333 "exparse.c"
2336#line 541 "../../lib/expr/exparse.y"
2340#line 2341 "exparse.c"
2344#line 548 "../../lib/expr/exparse.y"
2346 (yyval.expr) = (yyvsp[-1].
expr);
2348#line 2349 "exparse.c"
2352#line 552 "../../lib/expr/exparse.y"
2354 (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);
2356#line 2357 "exparse.c"
2360#line 556 "../../lib/expr/exparse.y"
2375 (yyvsp[-2].
expr)->type = (yyvsp[0].expr)->
type;
2377 else if (!(yyvsp[0].
expr)->type)
2378 (yyvsp[0].
expr)->type = (yyvsp[-2].expr)->
type;
2379 if ((yyvsp[-2].
expr)->type != (yyvsp[0].expr)->
type)
2382 (yyvsp[-2].
expr) =
excast(
expr.
program, (yyvsp[-2].expr), (yyvsp[0].expr)->type, (yyvsp[0].expr), 0);
2400 if ((yyval.expr)->type ==
STRING) {
2401 (yyval.expr)->
data.constant.value.string =
2404 (yyval.expr)->
binary =
false;
2410 checkBinary(
expr.
program, (yyvsp[-2].expr), (yyval.expr), (yyvsp[0].expr));
2413#line 2414 "exparse.c"
2417#line 609 "../../lib/expr/exparse.y"
2421#line 2422 "exparse.c"
2425#line 613 "../../lib/expr/exparse.y"
2429#line 2430 "exparse.c"
2433#line 617 "../../lib/expr/exparse.y"
2437#line 2438 "exparse.c"
2441#line 621 "../../lib/expr/exparse.y"
2445#line 2446 "exparse.c"
2449#line 625 "../../lib/expr/exparse.y"
2453#line 2454 "exparse.c"
2457#line 629 "../../lib/expr/exparse.y"
2461#line 2462 "exparse.c"
2465#line 633 "../../lib/expr/exparse.y"
2469#line 2470 "exparse.c"
2473#line 637 "../../lib/expr/exparse.y"
2477#line 2478 "exparse.c"
2481#line 641 "../../lib/expr/exparse.y"
2485#line 2486 "exparse.c"
2489#line 645 "../../lib/expr/exparse.y"
2493#line 2494 "exparse.c"
2497#line 649 "../../lib/expr/exparse.y"
2501#line 2502 "exparse.c"
2505#line 653 "../../lib/expr/exparse.y"
2509#line 2510 "exparse.c"
2513#line 657 "../../lib/expr/exparse.y"
2517#line 2518 "exparse.c"
2521#line 661 "../../lib/expr/exparse.y"
2525#line 2526 "exparse.c"
2529#line 665 "../../lib/expr/exparse.y"
2533#line 2534 "exparse.c"
2537#line 669 "../../lib/expr/exparse.y"
2550#line 2551 "exparse.c"
2554#line 682 "../../lib/expr/exparse.y"
2558#line 2559 "exparse.c"
2562#line 686 "../../lib/expr/exparse.y"
2567 (yyval.expr) = (yyvsp[0].
expr);
2570 (yyval.expr) =
exnewnode(
expr.
program,
',',
true, (yyvsp[0].expr)->type, (yyvsp[-2].expr), (yyvsp[0].expr));
2572#line 2573 "exparse.c"
2576#line 695 "../../lib/expr/exparse.y"
2578#line 2579 "exparse.c"
2582#line 695 "../../lib/expr/exparse.y"
2584#line 2585 "exparse.c"
2588#line 696 "../../lib/expr/exparse.y"
2595 (yyvsp[-3].
expr)->type = (yyvsp[0].expr)->
type;
2597 else if (!(yyvsp[0].
expr)->type)
2598 (yyvsp[0].
expr)->type = (yyvsp[-3].expr)->
type;
2603 if ((yyvsp[-3].
expr)->type != (yyvsp[0].expr)->
type)
2606 exerror(
"if statement string type mismatch");
2614 if ((yyvsp[-6].
expr)->
data.constant.value.integer)
2616 (yyval.expr) = (yyvsp[-3].
expr);
2621 (yyval.expr) = (yyvsp[0].
expr);
2627 (yyval.expr) =
exnewnode(
expr.
program,
'?',
true, (yyvsp[-3].expr)->type, (yyvsp[-6].expr),
exnewnode(
expr.
program,
':',
true, (yyvsp[-3].expr)->type, (yyvsp[-3].expr), (yyvsp[0].expr)));
2629#line 2630 "exparse.c"
2633#line 737 "../../lib/expr/exparse.y"
2645 (yyval.expr)->
binary =
false;
2650 checkBinary(
expr.
program, (yyvsp[0].expr), (yyval.expr), 0);
2653#line 2654 "exparse.c"
2657#line 757 "../../lib/expr/exparse.y"
2659 if ((yyvsp[0].
id)->local ==
NULL)
2660 exerror(
"cannot apply '#' operator to non-array %s", (yyvsp[0].
id)->name);
2662 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
2664#line 2665 "exparse.c"
2668#line 764 "../../lib/expr/exparse.y"
2672#line 2673 "exparse.c"
2676#line 768 "../../lib/expr/exparse.y"
2680#line 2681 "exparse.c"
2684#line 772 "../../lib/expr/exparse.y"
2686 (yyval.expr) = (yyvsp[0].
expr);
2688#line 2689 "exparse.c"
2692#line 776 "../../lib/expr/exparse.y"
2696#line 2697 "exparse.c"
2700#line 780 "../../lib/expr/exparse.y"
2702 (yyval.expr) =
exnewnode(
expr.
program,
ARRAY,
true,
T((yyvsp[-3].
id)->type), call(0, (yyvsp[-3].
id), (yyvsp[-1].expr)), (yyvsp[-1].expr));
2704#line 2705 "exparse.c"
2708#line 784 "../../lib/expr/exparse.y"
2710 (yyval.expr) =
exnewnode(
expr.
program,
FUNCTION,
true,
T((yyvsp[-3].
id)->type), call(0, (yyvsp[-3].
id), (yyvsp[-1].expr)), (yyvsp[-1].expr));
2712#line 2713 "exparse.c"
2716#line 788 "../../lib/expr/exparse.y"
2720#line 2721 "exparse.c"
2724#line 792 "../../lib/expr/exparse.y"
2728#line 2729 "exparse.c"
2732#line 796 "../../lib/expr/exparse.y"
2734 (yyval.expr) = exnewsubstr (
expr.
program, (yyvsp[-1].expr));
2736#line 2737 "exparse.c"
2740#line 800 "../../lib/expr/exparse.y"
2742 (yyval.expr) = exnewsplit (
expr.
program, (yyvsp[-5].id)->index, (yyvsp[-1].id), (yyvsp[-3].
expr),
NULL);
2744#line 2745 "exparse.c"
2748#line 804 "../../lib/expr/exparse.y"
2750 (yyval.expr) = exnewsplit (
expr.
program, (yyvsp[-7].id)->index, (yyvsp[-3].id), (yyvsp[-5].
expr), (yyvsp[-1].expr));
2752#line 2753 "exparse.c"
2756#line 808 "../../lib/expr/exparse.y"
2762#line 2763 "exparse.c"
2766#line 814 "../../lib/expr/exparse.y"
2770#line 2771 "exparse.c"
2774#line 818 "../../lib/expr/exparse.y"
2778#line 2779 "exparse.c"
2782#line 822 "../../lib/expr/exparse.y"
2788#line 2789 "exparse.c"
2792#line 828 "../../lib/expr/exparse.y"
2795 (yyval.expr)->
data.call.procedure = (yyvsp[-3].id);
2797#line 2798 "exparse.c"
2801#line 833 "../../lib/expr/exparse.y"
2803 (yyval.expr) = exprint(
expr.
program, (yyvsp[-3].id), (yyvsp[-1].expr));
2805#line 2806 "exparse.c"
2809#line 837 "../../lib/expr/exparse.y"
2812 if ((yyvsp[-1].
expr) && (yyvsp[-1].expr)->
data.operand.left->type ==
INTEGER)
2814 (yyval.expr)->
data.print.descriptor = (yyvsp[-1].expr)->data.operand.left;
2815 (yyvsp[-1].expr) = (yyvsp[-1].
expr)->data.operand.right;
2818 switch ((yyvsp[-3].
id)->index)
2822 (yyval.expr)->
data.print.descriptor->data.constant.value.integer = 2;
2826 (yyval.expr)->
data.print.descriptor->data.constant.value.integer = 1;
2829 (yyval.expr)->
data.print.descriptor = 0;
2832 (yyval.expr)->
data.print.args = preprint((yyvsp[-1].
expr));
2834#line 2835 "exparse.c"
2838#line 862 "../../lib/expr/exparse.y"
2843 if ((yyvsp[-1].
expr) && (yyvsp[-1].expr)->
data.operand.left->type ==
INTEGER)
2845 (yyval.expr)->
data.scan.descriptor = (yyvsp[-1].expr)->data.operand.left;
2846 (yyvsp[-1].expr) = (yyvsp[-1].
expr)->data.operand.right;
2849 switch ((yyvsp[-3].
id)->index)
2852 (yyval.expr)->
data.scan.descriptor = 0;
2857 (yyval.expr)->
data.scan.descriptor = (yyvsp[-1].expr)->data.operand.left;
2858 (yyvsp[-1].expr) = (yyvsp[-1].
expr)->data.operand.right;
2861 exerror(
"%s: string argument expected", (yyvsp[-3].
id)->name);
2864 if (!(yyvsp[-1].
expr) || !(yyvsp[-1].
expr)->
data.operand.left || (yyvsp[-1].expr)->data.operand.left->type !=
STRING)
2865 exerror(
"%s: format argument expected", (yyvsp[-3].
id)->name);
2866 (yyval.expr)->
data.scan.format = (yyvsp[-1].expr)->data.operand.left;
2870 exerror(
"%s: address argument expected", (yyvsp[-3].
id)->name);
2874#line 2875 "exparse.c"
2878#line 898 "../../lib/expr/exparse.y"
2880 if ((yyvsp[0].
expr))
2883 exerror(
"%s: variable assignment not supported", (yyvsp[-1].
expr)->
data.variable.symbol->name);
2887 (yyvsp[-1].expr)->
type = (yyvsp[0].
expr)->type;
2888 else if ((yyvsp[0].
expr)->type != (yyvsp[-1].expr)->
type)
2890 (yyvsp[0].expr)->
type = (yyvsp[-1].
expr)->type;
2893 (yyvsp[0].expr)->
data.operand.left = (yyvsp[-1].expr);
2894 (yyval.expr) = (yyvsp[0].
expr);
2898#line 2899 "exparse.c"
2902#line 918 "../../lib/expr/exparse.y"
2906 exerror(
"++ and -- invalid for string variables");
2908 (yyval.expr)->subop =
PRE;
2910#line 2911 "exparse.c"
2914#line 926 "../../lib/expr/exparse.y"
2918 exerror(
"++ and -- invalid for string variables");
2920 (yyval.expr)->subop =
POS;
2922#line 2923 "exparse.c"
2926#line 934 "../../lib/expr/exparse.y"
2928 if ((yyvsp[0].
id)->local ==
NULL)
2929 exerror(
"cannot apply IN to non-array %s", (yyvsp[0].
id)->name);
2930 if ((yyvsp[0].
id)->index_type > 0 && (yyvsp[-2].expr)->
type != (yyvsp[0].
id)->index_type)
2931 exerror(
"%s indices must have type %s, not %s",
2934 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
2935 (yyval.expr)->
data.variable.index = (yyvsp[-2].expr);
2937#line 2938 "exparse.c"
2941#line 945 "../../lib/expr/exparse.y"
2945#line 2946 "exparse.c"
2949#line 949 "../../lib/expr/exparse.y"
2953#line 2954 "exparse.c"
2957#line 959 "../../lib/expr/exparse.y"
2961 exerror(
"%s: identifier references not supported", (yyvsp[0].
id)->name);
2965#line 2966 "exparse.c"
2969#line 967 "../../lib/expr/exparse.y"
2972 (yyval.expr)->
data.constant.value.floating = (yyvsp[0].floating);
2974#line 2975 "exparse.c"
2978#line 972 "../../lib/expr/exparse.y"
2981 (yyval.expr)->
data.constant.value.integer = (yyvsp[0].integer);
2983#line 2984 "exparse.c"
2987#line 977 "../../lib/expr/exparse.y"
2990 (yyval.expr)->
data.constant.value.string = (yyvsp[0].string);
2992#line 2993 "exparse.c"
2996#line 982 "../../lib/expr/exparse.y"
2999 (yyval.expr)->
data.constant.value.integer = (yyvsp[0].integer);
3001#line 3002 "exparse.c"
3005#line 998 "../../lib/expr/exparse.y"
3007 (yyval.expr) = makeVar(
expr.
program, (yyvsp[-1].id), 0, 0, (yyvsp[0].reference));
3009#line 3010 "exparse.c"
3013#line 1002 "../../lib/expr/exparse.y"
3019 exerror(
"%s: is%s an array", (yyvsp[-2].
id)->name, (yyvsp[-2].id)->local !=
NULL ?
"" :
" not");
3020 if ((yyvsp[-2].
id)->local !=
NULL && (yyvsp[-2].id)->index_type > 0) {
3021 if ((yyvsp[-1].
expr)->type != (yyvsp[-2].id)->index_type)
3022 exerror(
"%s: indices must have type %s, not %s",
3025 if ((yyvsp[0].reference)) {
3027 (yyval.expr) = makeVar(
expr.
program, (yyvsp[-2].id), (yyvsp[-1].expr), n, (yyvsp[0].reference));
3029 else (yyval.expr) = n;
3031#line 3032 "exparse.c"
3035#line 1020 "../../lib/expr/exparse.y"
3038 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
3039 (yyval.expr)->
data.variable.reference = 0;
3040 (yyval.expr)->
data.variable.index = 0;
3041 (yyval.expr)->
data.variable.dyna = 0;
3043 exerror(
"unknown identifier");
3045#line 3046 "exparse.c"
3049#line 1032 "../../lib/expr/exparse.y"
3051 (yyval.integer) = 0;
3053#line 3054 "exparse.c"
3057#line 1036 "../../lib/expr/exparse.y"
3059 (yyval.integer) = -1;
3061#line 3062 "exparse.c"
3065#line 1040 "../../lib/expr/exparse.y"
3070 if (
INTEGRAL((yyvsp[-1].
id)->type))
3073 (yyval.integer) = (yyvsp[-1].id)->
type;
3076#line 3077 "exparse.c"
3080#line 1053 "../../lib/expr/exparse.y"
3084#line 3085 "exparse.c"
3088#line 1057 "../../lib/expr/exparse.y"
3090 (yyval.expr) = (yyvsp[-1].
expr);
3092#line 3093 "exparse.c"
3096#line 1063 "../../lib/expr/exparse.y"
3100#line 3101 "exparse.c"
3104#line 1067 "../../lib/expr/exparse.y"
3106 (yyval.expr) = (yyvsp[0].
expr)->data.operand.left;
3107 (yyvsp[0].expr)->
data.operand.left = (yyvsp[0].expr)->data.operand.right = 0;
3110#line 3111 "exparse.c"
3114#line 1075 "../../lib/expr/exparse.y"
3116 (yyval.expr) =
exnewnode(
expr.
program,
',',
true, 0,
exnewnode(
expr.
program,
',',
true, (yyvsp[0].expr)->type, (yyvsp[0].expr),
NULL),
NULL);
3117 (yyval.expr)->
data.operand.right = (yyval.expr)->data.operand.left;
3119#line 3120 "exparse.c"
3123#line 1080 "../../lib/expr/exparse.y"
3125 (yyvsp[-2].expr)->
data.operand.right = (yyvsp[-2].expr)->data.operand.right->data.operand.right =
exnewnode(
expr.
program,
',',
true, (yyvsp[-2].expr)->type, (yyvsp[0].expr),
NULL);
3127#line 3128 "exparse.c"
3131#line 1086 "../../lib/expr/exparse.y"
3135#line 3136 "exparse.c"
3139#line 1090 "../../lib/expr/exparse.y"
3142 if ((yyvsp[0].
id)->type)
3145#line 3146 "exparse.c"
3149#line 1099 "../../lib/expr/exparse.y"
3153#line 3154 "exparse.c"
3157#line 1103 "../../lib/expr/exparse.y"
3162 (yyval.expr) = (yyvsp[-2].
expr);
3166#line 3167 "exparse.c"
3170#line 1113 "../../lib/expr/exparse.y"
3172#line 3173 "exparse.c"
3176#line 1114 "../../lib/expr/exparse.y"
3178 if ((yyvsp[-2].
id)->type == 0) {
3179 exerror(
"%s: parameters to functions cannot be void typed", (yyvsp[0].
id)->name);
3182 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
3184 (yyvsp[0].id)->
type = (yyvsp[-2].
id)->type;
3189#line 3190 "exparse.c"
3193#line 1129 "../../lib/expr/exparse.y"
3197#line 3198 "exparse.c"
3201#line 1133 "../../lib/expr/exparse.y"
3207 r->
symbol = (yyvsp[0].id);
3213#line 3214 "exparse.c"
3217#line 1145 "../../lib/expr/exparse.y"
3224 r->
symbol = (yyvsp[0].id);
3229 l->
symbol = (yyvsp[-1].id);
3235#line 3236 "exparse.c"
3239#line 1165 "../../lib/expr/exparse.y"
3241 (yyval.id) = (yyvsp[0].
id);
3243#line 3244 "exparse.c"
3247#line 1169 "../../lib/expr/exparse.y"
3249 (yyval.id) = (yyvsp[0].
id);
3251#line 3252 "exparse.c"
3255#line 1174 "../../lib/expr/exparse.y"
3259#line 3260 "exparse.c"
3263#line 1178 "../../lib/expr/exparse.y"
3266 (yyval.expr)->subop = (yyvsp[-1].op);
3268#line 3269 "exparse.c"
3272#line 1185 "../../lib/expr/exparse.y"
3286#line 3287 "exparse.c"
3290#line 1197 "../../lib/expr/exparse.y"
3296#line 3297 "exparse.c"
3300#line 1202 "../../lib/expr/exparse.y"
3311 (void)
dtclose((yyval.expr)->data.procedure.frame);
3312 (yyval.expr)->
data.procedure.frame =
NULL;
3313 (yyval.expr)->
data.procedure.args = (yyvsp[-5].expr);
3324#line 3325 "exparse.c"
3328#line 3329 "exparse.c"
3356 const int yyi =
yypgoto[yylhs] + *yyssp;
3357 yystate = (0 <= yyi && yyi <=
YYLAST &&
yycheck[yyi] == *yyssp
3377#if ! YYERROR_VERBOSE
3380# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
3383 char const *yymsgp =
YY_(
"syntax error");
3384 int yysyntax_error_status;
3385 yysyntax_error_status = YYSYNTAX_ERROR;
3386 if (yysyntax_error_status == 0)
3388 else if (yysyntax_error_status == 1)
3390 if (yymsg != yymsgbuf)
3396 yymsg_alloc =
sizeof yymsgbuf;
3397 yysyntax_error_status = 2;
3401 yysyntax_error_status = YYSYNTAX_ERROR;
3406 if (yysyntax_error_status == 2)
3407 goto yyexhaustedlab;
3409# undef YYSYNTAX_ERROR
3415 if (yyerrstatus == 3)
3517#if !defined yyoverflow || YYERROR_VERBOSE
3544 while (yyssp != yyss)
3555 if (yymsg != yymsgbuf)