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)
1896 x = (yyvsp[-1].expr);
1905#line 1906 "exparse.c"
1909#line 203 "../../lib/expr/exparse.y"
1912 exerror(
"no nested function definitions");
1925#line 1926 "exparse.c"
1929#line 218 "../../lib/expr/exparse.y"
1938 if ((yyvsp[0].
expr) && (yyvsp[0].
expr)->op ==
S2B)
1942 x = (yyvsp[0].expr);
1949#line 1950 "exparse.c"
1953#line 240 "../../lib/expr/exparse.y"
1957#line 1958 "exparse.c"
1961#line 244 "../../lib/expr/exparse.y"
1963 if (!(yyvsp[-1].
expr))
1964 (yyval.expr) = (yyvsp[0].expr);
1965 else if (!(yyvsp[0].
expr))
1966 (yyval.expr) = (yyvsp[-1].expr);
1970 (yyval.expr) = (yyvsp[0].
expr);
1972 else (yyval.expr) =
exnewnode(
expr.
program,
';',
true, (yyvsp[0].expr)->type, (yyvsp[-1].expr), (yyvsp[0].expr));
1974#line 1975 "exparse.c"
1978#line 259 "../../lib/expr/exparse.y"
1980 (yyval.expr) = (yyvsp[-1].
expr);
1982#line 1983 "exparse.c"
1986#line 263 "../../lib/expr/exparse.y"
1990#line 1991 "exparse.c"
1994#line 266 "../../lib/expr/exparse.y"
1996#line 1997 "exparse.c"
2000#line 267 "../../lib/expr/exparse.y"
2002 (yyval.expr) = (yyvsp[-1].
expr);
2005#line 2006 "exparse.c"
2009#line 272 "../../lib/expr/exparse.y"
2012 exwarn (
"assignment used as boolean in if statement");
2017 (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)));
2019#line 2020 "exparse.c"
2023#line 282 "../../lib/expr/exparse.y"
2026 (yyval.expr)->
data.generate.array = (yyvsp[-2].expr);
2027 if (!(yyvsp[-2].
expr)->data.variable.index || (yyvsp[-2].expr)->
data.variable.index->op !=
DYNAMIC)
2028 exerror(
"simple index variable expected");
2029 (yyval.expr)->
data.generate.index = (yyvsp[-2].expr)->data.variable.index->data.variable.symbol;
2030 if ((yyvsp[-2].
expr)->op ==
ID && (yyval.expr)->
data.generate.index->type !=
INTEGER)
2031 exerror(
"integer index variable expected");
2033 (yyvsp[-2].expr)->
data.variable.index = 0;
2034 (yyval.expr)->
data.generate.statement = (yyvsp[0].expr);
2036#line 2037 "exparse.c"
2040#line 295 "../../lib/expr/exparse.y"
2042 if (!(yyvsp[-4].
expr))
2045 (yyvsp[-4].expr)->
data.constant.value.integer = 1;
2051 (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)));
2052 if ((yyvsp[-6].
expr))
2055#line 2056 "exparse.c"
2059#line 310 "../../lib/expr/exparse.y"
2062 (yyval.expr)->
data.generate.array = (yyvsp[-2].expr);
2063 if (!(yyvsp[-2].
expr)->data.variable.index || (yyvsp[-2].expr)->
data.variable.index->op !=
DYNAMIC)
2064 exerror(
"simple index variable expected");
2065 (yyval.expr)->
data.generate.index = (yyvsp[-2].expr)->data.variable.index->data.variable.symbol;
2066 if ((yyvsp[-2].
expr)->op ==
ID && (yyval.expr)->
data.generate.index->type !=
INTEGER)
2067 exerror(
"integer index variable expected");
2069 (yyvsp[-2].expr)->
data.variable.index = 0;
2070 (yyval.expr)->
data.generate.statement = (yyvsp[0].expr);
2072#line 2073 "exparse.c"
2076#line 323 "../../lib/expr/exparse.y"
2078 if ((yyvsp[-1].
id)->local ==
NULL)
2079 exerror(
"cannot apply unset to non-array %s", (yyvsp[-1].
id)->name);
2081 (yyval.expr)->
data.variable.symbol = (yyvsp[-1].id);
2082 (yyval.expr)->
data.variable.index =
NULL;
2084#line 2085 "exparse.c"
2088#line 331 "../../lib/expr/exparse.y"
2090 if ((yyvsp[-3].
id)->local ==
NULL)
2091 exerror(
"cannot apply unset to non-array %s", (yyvsp[-3].
id)->name);
2092 if (((yyvsp[-3].
id)->index_type > 0) && ((yyvsp[-1].
expr)->
type != (yyvsp[-3].
id)->index_type))
2093 exerror(
"%s indices must have type %s, not %s",
2096 (yyval.expr)->
data.variable.symbol = (yyvsp[-3].id);
2097 (yyval.expr)->
data.variable.index = (yyvsp[-1].expr);
2099#line 2100 "exparse.c"
2103#line 342 "../../lib/expr/exparse.y"
2106 exwarn (
"assignment used as boolean in while statement");
2111 (yyval.expr) =
exnewnode(
expr.
program, (yyvsp[-4].id)->index,
true,
INTEGER, (yyvsp[-2].expr),
exnewnode(
expr.
program,
';',
true, 0,
NULL, (yyvsp[0].expr)));
2113#line 2114 "exparse.c"
2117#line 351 "../../lib/expr/exparse.y"
2119#line 2120 "exparse.c"
2123#line 352 "../../lib/expr/exparse.y"
2127 (yyval.expr) =
exnewnode(
expr.
program, (yyvsp[-7].id)->index,
true,
INTEGER, (yyvsp[-5].expr),
exnewnode(
expr.
program,
DEFAULT,
true, 0, sw->
defcase, sw->
firstcase));
2134#line 2135 "exparse.c"
2138#line 363 "../../lib/expr/exparse.y"
2141 if (!(yyvsp[-1].
expr))
2144 (yyvsp[-1].expr)->
data.constant.value.integer = 1;
2150#line 2151 "exparse.c"
2154#line 375 "../../lib/expr/exparse.y"
2158#line 2159 "exparse.c"
2162#line 379 "../../lib/expr/exparse.y"
2164 if ((yyvsp[-1].
expr))
2167 exerror(
"return in void function");
2172#line 2173 "exparse.c"
2176#line 391 "../../lib/expr/exparse.y"
2182 if (!(sw = calloc(1,
sizeof(
Switch_t))))
2206#line 2207 "exparse.c"
2210#line 424 "../../lib/expr/exparse.y"
2222 size_t n = (size_t)(sw->
cur - sw->
base);
2225 memcpy((yyval.expr)->data.select.constant, sw->
base, n *
sizeof(
Extype_t*));
2226 (yyval.expr)->
data.select.constant[n] = 0;
2229 (yyval.expr)->data.select.constant = 0;
2234 exerror(
"duplicate default in switch");
2236 sw->
defcase = (yyvsp[0].expr);
2239#line 2240 "exparse.c"
2243#line 459 "../../lib/expr/exparse.y"
2250 exerror(
"too many case labels for switch");
2262#line 2263 "exparse.c"
2266#line 478 "../../lib/expr/exparse.y"
2270#line 2271 "exparse.c"
2274#line 485 "../../lib/expr/exparse.y"
2276 if ((yyvsp[0].
expr))
2277 (yyval.expr) = (yyvsp[-2].expr) ?
exnewnode(
expr.
program,
',',
true, (yyvsp[0].expr)->type, (yyvsp[-2].expr), (yyvsp[0].
expr)) : (yyvsp[0].expr);
2279#line 2280 "exparse.c"
2283#line 491 "../../lib/expr/exparse.y"
2284 {checkName ((yyvsp[0].
id));
expr.
id=(yyvsp[0].id);}
2285#line 2286 "exparse.c"
2289#line 492 "../../lib/expr/exparse.y"
2297 (yyvsp[-3].id)->
type = (yyvsp[0].
expr)->type;
2298 (yyvsp[-3].id)->value = (yyvsp[0].
expr);
2302 if ((yyvsp[-3].
id)->type == 0) {
2303 exerror(
"%s: a variable cannot be void typed", (yyvsp[-3].
id)->name);
2307 if ((yyvsp[-1].integer) && (yyvsp[-3].id)->local ==
NULL)
2317 exerror(
"%s: cannot initialize associative array", (yyvsp[-3].
id)->name);
2318 (yyvsp[-3].id)->index_type = (yyvsp[-1].integer);
2320 if ((yyvsp[0].
expr))
2322 if ((yyvsp[0].
expr)->type != (yyvsp[-3].id)->
type)
2324 (yyvsp[0].expr)->
type = (yyvsp[-3].
id)->type;
2328 (yyvsp[0].expr)->
data.operand.left->data.variable.symbol = (yyvsp[-3].id);
2329 (yyval.expr) = (yyvsp[0].
expr);
2331 else if (!(yyvsp[-1].integer))
2332 (yyvsp[-3].
id)->value->data.value =
exzero((yyvsp[-3].
id)->
type);
2335#line 2336 "exparse.c"
2339#line 550 "../../lib/expr/exparse.y"
2343#line 2344 "exparse.c"
2347#line 554 "../../lib/expr/exparse.y"
2349 (yyval.expr) = (yyvsp[0].
expr);
2351#line 2352 "exparse.c"
2355#line 560 "../../lib/expr/exparse.y"
2359#line 2360 "exparse.c"
2363#line 567 "../../lib/expr/exparse.y"
2365 (yyval.expr) = (yyvsp[-1].
expr);
2367#line 2368 "exparse.c"
2371#line 571 "../../lib/expr/exparse.y"
2373 (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);
2375#line 2376 "exparse.c"
2379#line 575 "../../lib/expr/exparse.y"
2394 (yyvsp[-2].
expr)->type = (yyvsp[0].expr)->
type;
2396 else if (!(yyvsp[0].
expr)->type)
2397 (yyvsp[0].
expr)->type = (yyvsp[-2].expr)->
type;
2398 if ((yyvsp[-2].
expr)->type != (yyvsp[0].expr)->
type)
2401 (yyvsp[-2].
expr) =
excast(
expr.
program, (yyvsp[-2].expr), (yyvsp[0].expr)->type, (yyvsp[0].expr), 0);
2419 if ((yyval.expr)->type ==
STRING) {
2420 (yyval.expr)->
data.constant.value.string =
2423 (yyval.expr)->
binary =
false;
2429 checkBinary(
expr.
program, (yyvsp[-2].expr), (yyval.expr), (yyvsp[0].expr));
2432#line 2433 "exparse.c"
2436#line 628 "../../lib/expr/exparse.y"
2440#line 2441 "exparse.c"
2444#line 632 "../../lib/expr/exparse.y"
2448#line 2449 "exparse.c"
2452#line 636 "../../lib/expr/exparse.y"
2456#line 2457 "exparse.c"
2460#line 640 "../../lib/expr/exparse.y"
2464#line 2465 "exparse.c"
2468#line 644 "../../lib/expr/exparse.y"
2472#line 2473 "exparse.c"
2476#line 648 "../../lib/expr/exparse.y"
2480#line 2481 "exparse.c"
2484#line 652 "../../lib/expr/exparse.y"
2488#line 2489 "exparse.c"
2492#line 656 "../../lib/expr/exparse.y"
2496#line 2497 "exparse.c"
2500#line 660 "../../lib/expr/exparse.y"
2504#line 2505 "exparse.c"
2508#line 664 "../../lib/expr/exparse.y"
2512#line 2513 "exparse.c"
2516#line 668 "../../lib/expr/exparse.y"
2520#line 2521 "exparse.c"
2524#line 672 "../../lib/expr/exparse.y"
2528#line 2529 "exparse.c"
2532#line 676 "../../lib/expr/exparse.y"
2536#line 2537 "exparse.c"
2540#line 680 "../../lib/expr/exparse.y"
2544#line 2545 "exparse.c"
2548#line 684 "../../lib/expr/exparse.y"
2552#line 2553 "exparse.c"
2556#line 688 "../../lib/expr/exparse.y"
2569#line 2570 "exparse.c"
2573#line 701 "../../lib/expr/exparse.y"
2577#line 2578 "exparse.c"
2581#line 705 "../../lib/expr/exparse.y"
2586 (yyval.expr) = (yyvsp[0].
expr);
2589 (yyval.expr) =
exnewnode(
expr.
program,
',',
true, (yyvsp[0].expr)->type, (yyvsp[-2].expr), (yyvsp[0].expr));
2591#line 2592 "exparse.c"
2595#line 714 "../../lib/expr/exparse.y"
2597#line 2598 "exparse.c"
2601#line 714 "../../lib/expr/exparse.y"
2603#line 2604 "exparse.c"
2607#line 715 "../../lib/expr/exparse.y"
2614 (yyvsp[-3].
expr)->type = (yyvsp[0].expr)->
type;
2616 else if (!(yyvsp[0].
expr)->type)
2617 (yyvsp[0].
expr)->type = (yyvsp[-3].expr)->
type;
2622 if ((yyvsp[-3].
expr)->type != (yyvsp[0].expr)->
type)
2625 exerror(
"if statement string type mismatch");
2633 if ((yyvsp[-6].
expr)->
data.constant.value.integer)
2635 (yyval.expr) = (yyvsp[-3].
expr);
2640 (yyval.expr) = (yyvsp[0].
expr);
2646 (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)));
2648#line 2649 "exparse.c"
2652#line 756 "../../lib/expr/exparse.y"
2664 (yyval.expr)->
binary =
false;
2669 checkBinary(
expr.
program, (yyvsp[0].expr), (yyval.expr), 0);
2672#line 2673 "exparse.c"
2676#line 776 "../../lib/expr/exparse.y"
2678 if ((yyvsp[0].
id)->local ==
NULL)
2679 exerror(
"cannot apply '#' operator to non-array %s", (yyvsp[0].
id)->name);
2681 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
2683#line 2684 "exparse.c"
2687#line 783 "../../lib/expr/exparse.y"
2691#line 2692 "exparse.c"
2695#line 787 "../../lib/expr/exparse.y"
2699#line 2700 "exparse.c"
2703#line 791 "../../lib/expr/exparse.y"
2705 (yyval.expr) = (yyvsp[0].
expr);
2707#line 2708 "exparse.c"
2711#line 795 "../../lib/expr/exparse.y"
2715#line 2716 "exparse.c"
2719#line 799 "../../lib/expr/exparse.y"
2721 (yyval.expr) =
exnewnode(
expr.
program,
ARRAY,
true,
T((yyvsp[-3].
id)->type), call(0, (yyvsp[-3].
id), (yyvsp[-1].expr)), (yyvsp[-1].expr));
2723#line 2724 "exparse.c"
2727#line 803 "../../lib/expr/exparse.y"
2729 (yyval.expr) =
exnewnode(
expr.
program,
FUNCTION,
true,
T((yyvsp[-3].
id)->type), call(0, (yyvsp[-3].
id), (yyvsp[-1].expr)), (yyvsp[-1].expr));
2731#line 2732 "exparse.c"
2735#line 807 "../../lib/expr/exparse.y"
2739#line 2740 "exparse.c"
2743#line 811 "../../lib/expr/exparse.y"
2747#line 2748 "exparse.c"
2751#line 815 "../../lib/expr/exparse.y"
2753 (yyval.expr) = exnewsubstr (
expr.
program, (yyvsp[-1].expr));
2755#line 2756 "exparse.c"
2759#line 819 "../../lib/expr/exparse.y"
2761 (yyval.expr) = exnewsplit (
expr.
program, (yyvsp[-5].id)->index, (yyvsp[-1].id), (yyvsp[-3].
expr),
NULL);
2763#line 2764 "exparse.c"
2767#line 823 "../../lib/expr/exparse.y"
2769 (yyval.expr) = exnewsplit (
expr.
program, (yyvsp[-7].id)->index, (yyvsp[-3].id), (yyvsp[-5].
expr), (yyvsp[-1].expr));
2771#line 2772 "exparse.c"
2775#line 827 "../../lib/expr/exparse.y"
2781#line 2782 "exparse.c"
2785#line 833 "../../lib/expr/exparse.y"
2789#line 2790 "exparse.c"
2793#line 837 "../../lib/expr/exparse.y"
2797#line 2798 "exparse.c"
2801#line 841 "../../lib/expr/exparse.y"
2807#line 2808 "exparse.c"
2811#line 847 "../../lib/expr/exparse.y"
2814 (yyval.expr)->
data.call.procedure = (yyvsp[-3].id);
2816#line 2817 "exparse.c"
2820#line 852 "../../lib/expr/exparse.y"
2822 (yyval.expr) = exprint(
expr.
program, (yyvsp[-3].id), (yyvsp[-1].expr));
2824#line 2825 "exparse.c"
2828#line 856 "../../lib/expr/exparse.y"
2831 if ((yyvsp[-1].
expr) && (yyvsp[-1].expr)->
data.operand.left->type ==
INTEGER)
2833 (yyval.expr)->
data.print.descriptor = (yyvsp[-1].expr)->data.operand.left;
2834 (yyvsp[-1].expr) = (yyvsp[-1].
expr)->data.operand.right;
2837 switch ((yyvsp[-3].
id)->index)
2841 (yyval.expr)->
data.print.descriptor->data.constant.value.integer = 2;
2845 (yyval.expr)->
data.print.descriptor->data.constant.value.integer = 1;
2848 (yyval.expr)->
data.print.descriptor = 0;
2851 (yyval.expr)->
data.print.args = preprint((yyvsp[-1].
expr));
2853#line 2854 "exparse.c"
2857#line 881 "../../lib/expr/exparse.y"
2862 if ((yyvsp[-1].
expr) && (yyvsp[-1].expr)->
data.operand.left->type ==
INTEGER)
2864 (yyval.expr)->
data.scan.descriptor = (yyvsp[-1].expr)->data.operand.left;
2865 (yyvsp[-1].expr) = (yyvsp[-1].
expr)->data.operand.right;
2868 switch ((yyvsp[-3].
id)->index)
2871 (yyval.expr)->
data.scan.descriptor = 0;
2876 (yyval.expr)->
data.scan.descriptor = (yyvsp[-1].expr)->data.operand.left;
2877 (yyvsp[-1].expr) = (yyvsp[-1].
expr)->data.operand.right;
2880 exerror(
"%s: string argument expected", (yyvsp[-3].
id)->name);
2883 if (!(yyvsp[-1].
expr) || !(yyvsp[-1].
expr)->
data.operand.left || (yyvsp[-1].expr)->data.operand.left->type !=
STRING)
2884 exerror(
"%s: format argument expected", (yyvsp[-3].
id)->name);
2885 (yyval.expr)->
data.scan.format = (yyvsp[-1].expr)->data.operand.left;
2889 exerror(
"%s: address argument expected", (yyvsp[-3].
id)->name);
2893#line 2894 "exparse.c"
2897#line 917 "../../lib/expr/exparse.y"
2899 if ((yyvsp[0].
expr))
2902 exerror(
"%s: variable assignment not supported", (yyvsp[-1].
expr)->
data.variable.symbol->name);
2906 (yyvsp[-1].expr)->
type = (yyvsp[0].
expr)->type;
2907 else if ((yyvsp[0].
expr)->type != (yyvsp[-1].expr)->
type)
2909 (yyvsp[0].expr)->
type = (yyvsp[-1].
expr)->type;
2912 (yyvsp[0].expr)->
data.operand.left = (yyvsp[-1].expr);
2913 (yyval.expr) = (yyvsp[0].
expr);
2917#line 2918 "exparse.c"
2921#line 937 "../../lib/expr/exparse.y"
2925 exerror(
"++ and -- invalid for string variables");
2927 (yyval.expr)->subop =
PRE;
2929#line 2930 "exparse.c"
2933#line 945 "../../lib/expr/exparse.y"
2937 exerror(
"++ and -- invalid for string variables");
2939 (yyval.expr)->subop =
POS;
2941#line 2942 "exparse.c"
2945#line 953 "../../lib/expr/exparse.y"
2947 if ((yyvsp[0].
id)->local ==
NULL)
2948 exerror(
"cannot apply IN to non-array %s", (yyvsp[0].
id)->name);
2949 if (((yyvsp[0].
id)->index_type > 0) && ((yyvsp[-2].
expr)->type != (yyvsp[0].id)->index_type))
2950 exerror(
"%s indices must have type %s, not %s",
2953 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
2954 (yyval.expr)->
data.variable.index = (yyvsp[-2].expr);
2956#line 2957 "exparse.c"
2960#line 964 "../../lib/expr/exparse.y"
2964#line 2965 "exparse.c"
2968#line 968 "../../lib/expr/exparse.y"
2972#line 2973 "exparse.c"
2976#line 978 "../../lib/expr/exparse.y"
2980 exerror(
"%s: identifier references not supported", (yyvsp[0].
id)->name);
2984#line 2985 "exparse.c"
2988#line 986 "../../lib/expr/exparse.y"
2991 (yyval.expr)->
data.constant.value.floating = (yyvsp[0].floating);
2993#line 2994 "exparse.c"
2997#line 991 "../../lib/expr/exparse.y"
3000 (yyval.expr)->
data.constant.value.integer = (yyvsp[0].integer);
3002#line 3003 "exparse.c"
3006#line 996 "../../lib/expr/exparse.y"
3009 (yyval.expr)->
data.constant.value.string = (yyvsp[0].string);
3011#line 3012 "exparse.c"
3015#line 1001 "../../lib/expr/exparse.y"
3018 (yyval.expr)->
data.constant.value.integer = (yyvsp[0].integer);
3020#line 3021 "exparse.c"
3024#line 1017 "../../lib/expr/exparse.y"
3026 (yyval.expr) = makeVar(
expr.
program, (yyvsp[-1].id), 0, 0, (yyvsp[0].reference));
3028#line 3029 "exparse.c"
3032#line 1021 "../../lib/expr/exparse.y"
3038 exerror(
"%s: is%s an array", (yyvsp[-2].
id)->name, (yyvsp[-2].id)->local !=
NULL ?
"" :
" not");
3039 if ((yyvsp[-2].
id)->local !=
NULL && ((yyvsp[-2].id)->index_type > 0)) {
3040 if ((yyvsp[-1].
expr)->type != (yyvsp[-2].id)->index_type)
3041 exerror(
"%s: indices must have type %s, not %s",
3044 if ((yyvsp[0].reference)) {
3046 (yyval.expr) = makeVar(
expr.
program, (yyvsp[-2].id), (yyvsp[-1].expr), n, (yyvsp[0].reference));
3048 else (yyval.expr) = n;
3050#line 3051 "exparse.c"
3054#line 1039 "../../lib/expr/exparse.y"
3057 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
3058 (yyval.expr)->
data.variable.reference = 0;
3059 (yyval.expr)->
data.variable.index = 0;
3060 (yyval.expr)->
data.variable.dyna = 0;
3062 exerror(
"unknown identifier");
3064#line 3065 "exparse.c"
3068#line 1051 "../../lib/expr/exparse.y"
3070 (yyval.integer) = 0;
3072#line 3073 "exparse.c"
3076#line 1055 "../../lib/expr/exparse.y"
3078 (yyval.integer) = -1;
3080#line 3081 "exparse.c"
3084#line 1059 "../../lib/expr/exparse.y"
3089 if (
INTEGRAL((yyvsp[-1].
id)->type))
3092 (yyval.integer) = (yyvsp[-1].id)->
type;
3095#line 3096 "exparse.c"
3099#line 1072 "../../lib/expr/exparse.y"
3103#line 3104 "exparse.c"
3107#line 1076 "../../lib/expr/exparse.y"
3109 (yyval.expr) = (yyvsp[-1].
expr);
3111#line 3112 "exparse.c"
3115#line 1082 "../../lib/expr/exparse.y"
3119#line 3120 "exparse.c"
3123#line 1086 "../../lib/expr/exparse.y"
3125 (yyval.expr) = (yyvsp[0].
expr)->data.operand.left;
3126 (yyvsp[0].expr)->
data.operand.left = (yyvsp[0].expr)->data.operand.right = 0;
3129#line 3130 "exparse.c"
3133#line 1094 "../../lib/expr/exparse.y"
3135 (yyval.expr) =
exnewnode(
expr.
program,
',',
true, 0,
exnewnode(
expr.
program,
',',
true, (yyvsp[0].expr)->type, (yyvsp[0].expr),
NULL),
NULL);
3136 (yyval.expr)->
data.operand.right = (yyval.expr)->data.operand.left;
3138#line 3139 "exparse.c"
3142#line 1099 "../../lib/expr/exparse.y"
3144 (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);
3146#line 3147 "exparse.c"
3150#line 1105 "../../lib/expr/exparse.y"
3154#line 3155 "exparse.c"
3158#line 1109 "../../lib/expr/exparse.y"
3161 if ((yyvsp[0].
id)->type)
3164#line 3165 "exparse.c"
3168#line 1118 "../../lib/expr/exparse.y"
3172#line 3173 "exparse.c"
3176#line 1122 "../../lib/expr/exparse.y"
3181 (yyval.expr) = (yyvsp[-2].
expr);
3185#line 3186 "exparse.c"
3189#line 1132 "../../lib/expr/exparse.y"
3191#line 3192 "exparse.c"
3195#line 1133 "../../lib/expr/exparse.y"
3197 if ((yyvsp[-2].
id)->type == 0) {
3198 exerror(
"%s: parameters to functions cannot be void typed", (yyvsp[0].
id)->name);
3201 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
3203 (yyvsp[0].id)->
type = (yyvsp[-2].
id)->type;
3208#line 3209 "exparse.c"
3212#line 1148 "../../lib/expr/exparse.y"
3216#line 3217 "exparse.c"
3220#line 1152 "../../lib/expr/exparse.y"
3226 r->
symbol = (yyvsp[0].id);
3232#line 3233 "exparse.c"
3236#line 1164 "../../lib/expr/exparse.y"
3243 r->
symbol = (yyvsp[0].id);
3248 l->
symbol = (yyvsp[-1].id);
3254#line 3255 "exparse.c"
3258#line 1184 "../../lib/expr/exparse.y"
3260 (yyval.id) = (yyvsp[0].
id);
3262#line 3263 "exparse.c"
3266#line 1188 "../../lib/expr/exparse.y"
3268 (yyval.id) = (yyvsp[0].
id);
3270#line 3271 "exparse.c"
3274#line 1193 "../../lib/expr/exparse.y"
3278#line 3279 "exparse.c"
3282#line 1197 "../../lib/expr/exparse.y"
3285 (yyval.expr)->subop = (yyvsp[-1].op);
3287#line 3288 "exparse.c"
3291#line 1204 "../../lib/expr/exparse.y"
3305#line 3306 "exparse.c"
3309#line 1216 "../../lib/expr/exparse.y"
3315#line 3316 "exparse.c"
3319#line 1221 "../../lib/expr/exparse.y"
3329 (yyval.expr)->
data.operand.left = (yyvsp[-5].expr);
3340#line 3341 "exparse.c"
3344#line 3345 "exparse.c"
3372 const int yyi =
yypgoto[yylhs] + *yyssp;
3373 yystate = (0 <= yyi && yyi <=
YYLAST &&
yycheck[yyi] == *yyssp
3393#if ! YYERROR_VERBOSE
3396# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
3399 char const *yymsgp =
YY_(
"syntax error");
3400 int yysyntax_error_status;
3401 yysyntax_error_status = YYSYNTAX_ERROR;
3402 if (yysyntax_error_status == 0)
3404 else if (yysyntax_error_status == 1)
3406 if (yymsg != yymsgbuf)
3412 yymsg_alloc =
sizeof yymsgbuf;
3413 yysyntax_error_status = 2;
3417 yysyntax_error_status = YYSYNTAX_ERROR;
3422 if (yysyntax_error_status == 2)
3423 goto yyexhaustedlab;
3425# undef YYSYNTAX_ERROR
3431 if (yyerrstatus == 3)
3533#if !defined yyoverflow || YYERROR_VERBOSE
3560 while (yyssp != yyss)
3571 if (yymsg != yymsgbuf)