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
800 -181, 9, 231, -181, -181, -181, -181, -181, -71, 713,
801 -181, 713, -181, -69, -62, -44, -41, -39, -34, -17,
802 1, -181, 8, -181, 11, -181, 14, 713, -181, -181,
803 -181, 21, -181, 28, 30, 31, -181, 33, 36, 73,
804 713, 713, 713, 713, 101, 73, 73, 619, -181, 64,
805 -181, 35, 893, 40, -181, 46, 47, -55, 713, 44,
806 48, 72, 713, -17, 713, 713, 713, 713, 73, -11,
807 -181, -181, 713, 713, 713, 45, 55, 127, 713, 713,
808 713, 133, 713, -181, -181, -181, -181, -181, -181, -181,
809 -181, -181, 57, 314, 329, 83, -181, -181, 713, -181,
810 713, 713, 713, 713, 713, 713, 713, 713, 713, 713,
811 713, 713, 713, 713, 713, 104, 713, 713, 713, 713,
812 713, 713, 713, -181, -181, -181, 937, 53, 93, -181,
813 -181, -181, -181, -181, -181, -50, -181, -181, 216, -181,
814 411, 60, 19, 75, 76, 77, 99, -181, 508, 78,
815 86, -181, -181, -181, 600, 103, 105, 893, -57, 694,
816 713, -181, -181, -181, 937, 713, 955, 972, 988, 1003,
817 1017, 1031, 1031, 112, 112, 112, 112, 98, 98, 52,
818 52, -181, -181, -181, -181, -181, 916, 106, 111, 937,
819 -181, 713, 72, -181, 100, -181, -181, 713, 523, -181,
820 -181, 523, -2, -181, 523, -181, -181, -181, -181, -181,
821 113, 713, -181, 523, -181, -181, 870, 807, -181, -181,
822 937, -181, -15, -45, 119, -181, -181, -181, 186, 115,
823 788, -181, 231, -181, -53, 121, -181, -181, -181, -181,
824 713, 523, -181, -181, -181, 713, 713, -181, -181, 206,
825 124, -181, -6, 937, 836, 125, -181, 161, -181, 523,
826 102, 160, -181, -181, 108, -181, -181, -4, 129, 220,
827 -181, 163, -181, 231, -181, -181, -181, -181, 141, -181,
828 -181, -181, -181, 426, -181
836 7, 0, 3, 1, 104, 106, 103, 105, 0, 44,
837 102, 44, 11, 118, 0, 0, 0, 0, 0, 131,
838 0, 114, 0, 107, 0, 108, 0, 44, 110, 100,
839 109, 0, 111, 0, 0, 0, 101, 0, 0, 0,
840 0, 0, 0, 0, 0, 0, 0, 0, 7, 2,
841 8, 0, 45, 0, 99, 0, 0, 136, 120, 0,
842 0, 0, 0, 131, 0, 44, 120, 120, 0, 0,
843 112, 132, 0, 120, 120, 0, 0, 0, 120, 120,
844 0, 0, 0, 76, 75, 74, 70, 73, 72, 71,
845 93, 97, 0, 0, 44, 0, 4, 10, 0, 67,
846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
848 120, 120, 0, 94, 98, 92, 122, 0, 121, 22,
849 23, 37, 39, 38, 36, 0, 32, 34, 0, 113,
850 0, 0, 136, 0, 0, 0, 134, 135, 0, 0,
851 0, 85, 24, 86, 0, 0, 0, 20, 0, 0,
852 0, 46, 9, 5, 66, 0, 65, 64, 61, 62,
853 60, 58, 59, 48, 55, 56, 57, 53, 54, 63,
854 49, 96, 95, 50, 51, 52, 0, 0, 0, 137,
855 77, 0, 0, 12, 115, 119, 84, 44, 44, 78,
856 79, 44, 0, 133, 44, 89, 88, 87, 80, 81,
857 0, 0, 17, 44, 47, 7, 0, 0, 90, 91,
858 123, 33, 0, 136, 0, 14, 16, 134, 42, 0,
859 0, 19, 6, 68, 118, 0, 116, 139, 138, 35,
860 44, 44, 13, 25, 18, 0, 0, 82, 117, 124,
861 0, 43, 0, 69, 0, 129, 140, 126, 127, 44,
862 0, 0, 21, 26, 7, 28, 83, 0, 0, 0,
863 15, 0, 31, 27, 29, 41, 40, 130, 0, 129,
892 94, 59, 235, 60, 84, 85, 86, 87, 260, 3,
893 211, 93, 261, 122, 246, 275, 146, 192, 225, 76,
894 147, 226, 126, 122, 228, 227, 138, 276, 140, 147,
895 126, 126, 58, 231, 62, 64, 148, 126, 126, 123,
896 124, 154, 126, 126, 157, 212, 159, 143, 144, 247,
897 62, 193, 237, 65, 149, 150, 66, 141, 67, 155,
898 156, 251, 164, 68, 166, 167, 168, 169, 170, 171,
899 172, 173, 174, 175, 176, 177, 178, 179, 180, 270,
900 183, 184, 185, 186, 126, 126, 189, 122, 69, 236,
901 83, 131, 13, 95, 262, 132, 90, 91, 72, 133,
902 19, 187, 188, 134, 21, 73, 4, 5, 74, 6,
903 7, 75, 88, 123, 124, 181, 142, 10, 77, 145,
904 89, 198, 260, 182, 214, 78, 261, 79, 80, 216,
905 81, 4, 5, 82, 6, 7, 97, 119, 8, 116,
906 117, 118, 10, 120, 121, 129, 13, 151, 14, 130,
907 16, 17, 158, 163, 19, 220, 152, 190, 21, 160,
908 191, 197, 22, 23, 24, 25, 26, 232, 28, 29,
909 30, 31, 32, 33, 34, 230, 36, 199, 200, 201,
910 205, 164, 113, 114, 115, 116, 117, 118, 206, 224,
911 -126, -126, -126, -126, 111, 112, 113, 114, 115, 116,
912 117, 118, 39, 222, 202, 208, 241, 209, 218, 253,
913 254, 40, 41, 219, 243, 229, 273, 42, 43, 44,
914 240, 45, 46, 255, 47, 248, 259, -125, 269, 153,
915 272, 278, 250, 281, 283, 4, 5, 279, 6, 7,
916 282, 274, 8, 9, 271, 280, 10, 11, 12, 238,
917 13, 221, 14, 15, 16, 17, 139, 18, 19, 20,
918 203, 0, 21, 0, 0, 0, 22, 23, 24, 25,
919 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
920 36, 37, 38, 98, 0, 99, 0, 100, 101, 102,
921 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
922 113, 114, 115, 116, 117, 118, 39, 0, 0, 0,
923 0, 0, 0, 0, 0, 40, 41, 0, 0, 0,
924 195, 42, 43, 44, 0, 45, 46, 0, 47, 0,
925 48, 0, -44, 4, 5, 0, 6, 7, 0, 0,
926 8, 9, 0, 0, 10, 11, 12, 0, 13, 0,
927 14, 15, 16, 17, 0, 18, 19, 20, 0, 0,
928 21, 0, 0, 0, 22, 23, 24, 25, 26, 27,
929 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
930 38, 98, 0, 99, 0, 100, 101, 102, 103, 104,
931 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
932 115, 116, 117, 118, 39, 0, 0, 0, 0, 0,
933 0, 0, 0, 40, 41, 0, 161, 0, 0, 42,
934 43, 44, 0, 45, 46, 0, 47, 0, 48, 162,
935 4, 5, 0, 6, 7, 0, 0, 8, 9, 0,
936 0, 10, 11, 12, 0, 13, 0, 14, 15, 16,
937 17, 0, 18, 19, 20, 0, 0, 21, 0, 0,
938 0, 22, 23, 24, 25, 26, 27, 28, 29, 30,
939 31, 32, 33, 34, 35, 36, 37, 38, 98, 0,
940 99, 0, 100, 101, 102, 103, 104, 105, 106, 107,
941 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
942 118, 39, 0, 0, 0, 0, 0, 0, 0, 0,
943 40, 41, 0, 196, 0, 0, 42, 43, 44, 0,
944 45, 46, 0, 47, 0, 48, 284, 4, 5, 0,
945 6, 7, 0, 0, 8, 9, 0, 0, 10, 11,
946 12, 0, 13, 0, 14, 15, 16, 17, 0, 18,
947 19, 20, 0, 0, 21, 0, 0, 0, 22, 23,
948 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
949 34, 35, 36, 37, 38, 98, 0, 99, 0, 100,
950 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
951 111, 112, 113, 114, 115, 116, 117, 118, 39, 0,
952 0, 0, 0, 0, 0, 0, 0, 40, 41, 0,
953 204, 0, 0, 42, 43, 44, 0, 45, 46, 0,
954 47, 0, 48, 4, 5, 0, 6, 7, 0, 0,
955 8, 0, 0, 0, 10, 0, 92, 0, 13, 0,
956 14, 0, 16, 17, 0, 0, 19, 0, 0, 0,
957 21, 0, 0, 0, 22, 23, 24, 25, 26, 0,
958 28, 29, 30, 31, 32, 33, 34, 98, 36, 99,
959 0, 100, 101, 102, 103, 104, 105, 106, 107, 108,
960 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
961 0, 0, 0, 0, 39, 0, 0, 0, 0, 0,
962 0, 0, 207, 40, 41, 0, 0, 0, 0, 42,
963 43, 44, 0, 45, 46, 0, 47, 4, 5, 0,
964 6, 7, 0, 0, 8, 0, 0, 0, 10, 0,
965 0, 0, 13, 0, 14, 0, 16, 17, 0, 0,
966 19, 0, 0, 0, 21, 0, 0, 0, 22, 23,
967 24, 25, 26, 0, 28, 29, 30, 31, 32, 33,
968 34, 98, 36, 99, 0, 100, 101, 102, 103, 104,
969 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
970 115, 116, 117, 118, 0, 0, 0, 0, 39, 0,
971 0, 0, 0, 0, 0, 0, 213, 40, 41, 0,
972 0, 0, 0, 42, 43, 44, 0, 45, 46, 0,
973 47, 4, 5, 0, 6, 7, 0, 0, 8, 0,
974 0, 0, 10, 0, 0, 0, 234, 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 244, 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, 266, 99,
986 233, 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, 217, 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, -126, -126, 107,
1003 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1009 48, 9, 17, 11, 40, 41, 42, 43, 14, 0,
1010 67, 47, 18, 68, 67, 19, 27, 67, 198, 27,
1011 31, 201, 58, 68, 204, 27, 62, 31, 64, 31,
1012 66, 67, 103, 213, 103, 97, 72, 73, 74, 94,
1013 95, 77, 78, 79, 80, 102, 82, 66, 67, 102,
1014 103, 101, 97, 97, 73, 74, 97, 65, 97, 78,
1015 79, 241, 98, 97, 100, 101, 102, 103, 104, 105,
1016 106, 107, 108, 109, 110, 111, 112, 113, 114, 259,
1017 116, 117, 118, 119, 120, 121, 122, 68, 105, 104,
1018 39, 19, 19, 29, 100, 23, 45, 46, 97, 27,
1019 27, 120, 121, 31, 31, 97, 4, 5, 97, 7,
1020 8, 97, 11, 94, 95, 11, 65, 15, 97, 68,
1021 19, 102, 14, 19, 160, 97, 18, 97, 97, 165,
1022 97, 4, 5, 97, 7, 8, 101, 97, 11, 87,
1023 88, 89, 15, 97, 97, 101, 19, 102, 21, 101,
1024 23, 24, 19, 70, 27, 191, 101, 104, 31, 102,
1025 67, 101, 35, 36, 37, 38, 39, 215, 41, 42,
1026 43, 44, 45, 46, 47, 211, 49, 102, 102, 102,
1027 102, 217, 84, 85, 86, 87, 88, 89, 102, 197,
1028 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1029 88, 89, 75, 103, 105, 102, 20, 102, 102, 245,
1030 246, 84, 85, 102, 99, 102, 264, 90, 91, 92,
1031 101, 94, 95, 17, 97, 104, 102, 102, 67, 102,
1032 70, 102, 240, 70, 282, 4, 5, 17, 7, 8,
1033 99, 264, 11, 12, 260, 269, 15, 16, 17, 223,
1034 19, 192, 21, 22, 23, 24, 63, 26, 27, 28,
1035 146, -1, 31, -1, -1, -1, 35, 36, 37, 38,
1036 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1037 49, 50, 51, 67, -1, 69, -1, 71, 72, 73,
1038 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1039 84, 85, 86, 87, 88, 89, 75, -1, -1, -1,
1040 -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
1041 104, 90, 91, 92, -1, 94, 95, -1, 97, -1,
1042 99, -1, 101, 4, 5, -1, 7, 8, -1, -1,
1043 11, 12, -1, -1, 15, 16, 17, -1, 19, -1,
1044 21, 22, 23, 24, -1, 26, 27, 28, -1, -1,
1045 31, -1, -1, -1, 35, 36, 37, 38, 39, 40,
1046 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1047 51, 67, -1, 69, -1, 71, 72, 73, 74, 75,
1048 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1049 86, 87, 88, 89, 75, -1, -1, -1, -1, -1,
1050 -1, -1, -1, 84, 85, -1, 102, -1, -1, 90,
1051 91, 92, -1, 94, 95, -1, 97, -1, 99, 100,
1052 4, 5, -1, 7, 8, -1, -1, 11, 12, -1,
1053 -1, 15, 16, 17, -1, 19, -1, 21, 22, 23,
1054 24, -1, 26, 27, 28, -1, -1, 31, -1, -1,
1055 -1, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1056 44, 45, 46, 47, 48, 49, 50, 51, 67, -1,
1057 69, -1, 71, 72, 73, 74, 75, 76, 77, 78,
1058 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1059 89, 75, -1, -1, -1, -1, -1, -1, -1, -1,
1060 84, 85, -1, 102, -1, -1, 90, 91, 92, -1,
1061 94, 95, -1, 97, -1, 99, 100, 4, 5, -1,
1062 7, 8, -1, -1, 11, 12, -1, -1, 15, 16,
1063 17, -1, 19, -1, 21, 22, 23, 24, -1, 26,
1064 27, 28, -1, -1, 31, -1, -1, -1, 35, 36,
1065 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1066 47, 48, 49, 50, 51, 67, -1, 69, -1, 71,
1067 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1068 82, 83, 84, 85, 86, 87, 88, 89, 75, -1,
1069 -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
1070 102, -1, -1, 90, 91, 92, -1, 94, 95, -1,
1071 97, -1, 99, 4, 5, -1, 7, 8, -1, -1,
1072 11, -1, -1, -1, 15, -1, 17, -1, 19, -1,
1073 21, -1, 23, 24, -1, -1, 27, -1, -1, -1,
1074 31, -1, -1, -1, 35, 36, 37, 38, 39, -1,
1075 41, 42, 43, 44, 45, 46, 47, 67, 49, 69,
1076 -1, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1077 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1078 -1, -1, -1, -1, 75, -1, -1, -1, -1, -1,
1079 -1, -1, 102, 84, 85, -1, -1, -1, -1, 90,
1080 91, 92, -1, 94, 95, -1, 97, 4, 5, -1,
1081 7, 8, -1, -1, 11, -1, -1, -1, 15, -1,
1082 -1, -1, 19, -1, 21, -1, 23, 24, -1, -1,
1083 27, -1, -1, -1, 31, -1, -1, -1, 35, 36,
1084 37, 38, 39, -1, 41, 42, 43, 44, 45, 46,
1085 47, 67, 49, 69, -1, 71, 72, 73, 74, 75,
1086 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1087 86, 87, 88, 89, -1, -1, -1, -1, 75, -1,
1088 -1, -1, -1, -1, -1, -1, 102, 84, 85, -1,
1089 -1, -1, -1, 90, 91, 92, -1, 94, 95, -1,
1090 97, 4, 5, -1, 7, 8, -1, -1, 11, -1,
1091 -1, -1, 15, -1, -1, -1, 19, -1, 21, -1,
1092 23, 24, -1, -1, 27, -1, -1, -1, 31, -1,
1093 -1, -1, 35, 36, 37, 38, 39, -1, 41, 42,
1094 43, 44, 45, 46, 47, 67, 49, 69, -1, 71,
1095 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1096 82, 83, 84, 85, 86, 87, 88, 89, -1, -1,
1097 -1, -1, 75, -1, -1, -1, -1, -1, -1, -1,
1098 102, 84, 85, -1, -1, -1, -1, 90, 91, 92,
1099 -1, 94, 95, 67, 97, 69, -1, 71, 72, 73,
1100 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1101 84, 85, 86, 87, 88, 89, -1, -1, -1, -1,
1102 -1, -1, -1, -1, -1, -1, -1, 67, 102, 69,
1103 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1104 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1105 67, -1, 69, -1, 71, 72, 73, 74, 75, 76,
1106 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1107 87, 88, 89, 67, -1, 69, -1, 71, 72, 73,
1108 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1109 84, 85, 86, 87, 88, 89, 69, -1, 71, 72,
1110 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1111 83, 84, 85, 86, 87, 88, 89, 72, 73, 74,
1112 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1113 85, 86, 87, 88, 89, 73, 74, 75, 76, 77,
1114 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1115 88, 89, 74, 75, 76, 77, 78, 79, 80, 81,
1116 82, 83, 84, 85, 86, 87, 88, 89, 75, 76,
1117 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1118 87, 88, 89, 76, 77, 78, 79, 80, 81, 82,
1119 83, 84, 85, 86, 87, 88, 89, 76, 77, 78,
1120 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1128 0, 107, 111, 0, 4, 5, 7, 8, 11, 12,
1129 15, 16, 17, 19, 21, 22, 23, 24, 26, 27,
1130 28, 31, 35, 36, 37, 38, 39, 40, 41, 42,
1131 43, 44, 45, 46, 47, 48, 49, 50, 51, 75,
1132 84, 85, 90, 91, 92, 94, 95, 97, 99, 108,
1133 112, 125, 126, 129, 130, 131, 132, 133, 103, 125,
1134 125, 113, 103, 135, 97, 97, 97, 97, 97, 105,
1135 142, 143, 97, 97, 97, 97, 125, 97, 97, 97,
1136 97, 97, 97, 133, 126, 126, 126, 126, 11, 19,
1137 133, 133, 17, 126, 111, 29, 109, 101, 67, 69,
1138 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1139 81, 82, 83, 84, 85, 86, 87, 88, 89, 97,
1140 97, 97, 68, 94, 95, 144, 126, 136, 137, 101,
1141 101, 19, 23, 27, 31, 119, 120, 122, 126, 142,
1142 126, 125, 133, 136, 136, 133, 27, 31, 126, 136,
1143 136, 102, 101, 102, 126, 136, 136, 126, 19, 126,
1144 102, 102, 100, 70, 126, 127, 126, 126, 126, 126,
1145 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
1146 126, 11, 19, 126, 126, 126, 126, 136, 136, 126,
1147 104, 67, 67, 101, 121, 104, 102, 101, 102, 102,
1148 102, 102, 105, 143, 102, 102, 102, 102, 102, 102,
1149 114, 67, 102, 102, 126, 110, 126, 67, 102, 102,
1150 126, 120, 103, 134, 125, 112, 112, 27, 112, 102,
1151 126, 112, 111, 70, 19, 17, 104, 97, 144, 145,
1152 101, 20, 124, 99, 102, 128, 67, 102, 104, 146,
1153 125, 112, 115, 126, 126, 17, 138, 139, 140, 102,
1154 14, 18, 100, 116, 117, 118, 102, 141, 147, 67,
1155 112, 130, 70, 111, 118, 19, 31, 123, 102, 17,
1156 140, 70, 99, 111, 100
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 180 "../../lib/expr/exparse.y"
1894 if ((yyvsp[-1].
expr)) {
1897 if ((yyvsp[-1].
expr)->op ==
S2B)
1908#line 1909 "exparse.c"
1912#line 201 "../../lib/expr/exparse.y"
1915 exerror(
"no nested function definitions");
1928#line 1929 "exparse.c"
1932#line 216 "../../lib/expr/exparse.y"
1941 if ((yyvsp[0].
expr) && (yyvsp[0].
expr)->op ==
S2B)
1950#line 1951 "exparse.c"
1954#line 236 "../../lib/expr/exparse.y"
1958#line 1959 "exparse.c"
1962#line 240 "../../lib/expr/exparse.y"
1964 if (!(yyvsp[-1].
expr))
1965 (yyval.expr) = (yyvsp[0].expr);
1966 else if (!(yyvsp[0].
expr))
1967 (yyval.expr) = (yyvsp[-1].expr);
1971 (yyval.expr) = (yyvsp[0].
expr);
1973 else (yyval.expr) =
exnewnode(
expr.
program,
';',
true, (yyvsp[0].expr)->type, (yyvsp[-1].expr), (yyvsp[0].expr));
1975#line 1976 "exparse.c"
1979#line 255 "../../lib/expr/exparse.y"
1981 (yyval.expr) = (yyvsp[-1].
expr);
1983#line 1984 "exparse.c"
1987#line 259 "../../lib/expr/exparse.y"
1991#line 1992 "exparse.c"
1995#line 262 "../../lib/expr/exparse.y"
1997#line 1998 "exparse.c"
2001#line 263 "../../lib/expr/exparse.y"
2003 (yyval.expr) = (yyvsp[-1].
expr);
2006#line 2007 "exparse.c"
2010#line 268 "../../lib/expr/exparse.y"
2013 exwarn (
"assignment used as boolean in if statement");
2018 (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)));
2020#line 2021 "exparse.c"
2024#line 278 "../../lib/expr/exparse.y"
2027 (yyval.expr)->
data.generate.array = (yyvsp[-2].expr);
2028 if (!(yyvsp[-2].
expr)->data.variable.index || (yyvsp[-2].expr)->
data.variable.index->op !=
DYNAMIC)
2029 exerror(
"simple index variable expected");
2030 (yyval.expr)->
data.generate.index = (yyvsp[-2].expr)->data.variable.index->data.variable.symbol;
2031 if ((yyvsp[-2].
expr)->op ==
ID && (yyval.expr)->
data.generate.index->type !=
INTEGER)
2032 exerror(
"integer index variable expected");
2034 (yyvsp[-2].expr)->
data.variable.index = 0;
2035 (yyval.expr)->
data.generate.statement = (yyvsp[0].expr);
2037#line 2038 "exparse.c"
2041#line 291 "../../lib/expr/exparse.y"
2043 if (!(yyvsp[-4].
expr))
2046 (yyvsp[-4].expr)->
data.constant.value.integer = 1;
2052 (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)));
2053 if ((yyvsp[-6].
expr))
2056#line 2057 "exparse.c"
2060#line 306 "../../lib/expr/exparse.y"
2063 (yyval.expr)->
data.generate.array = (yyvsp[-2].expr);
2064 if (!(yyvsp[-2].
expr)->data.variable.index || (yyvsp[-2].expr)->
data.variable.index->op !=
DYNAMIC)
2065 exerror(
"simple index variable expected");
2066 (yyval.expr)->
data.generate.index = (yyvsp[-2].expr)->data.variable.index->data.variable.symbol;
2067 if ((yyvsp[-2].
expr)->op ==
ID && (yyval.expr)->
data.generate.index->type !=
INTEGER)
2068 exerror(
"integer index variable expected");
2070 (yyvsp[-2].expr)->
data.variable.index = 0;
2071 (yyval.expr)->
data.generate.statement = (yyvsp[0].expr);
2073#line 2074 "exparse.c"
2077#line 319 "../../lib/expr/exparse.y"
2079 if ((yyvsp[-1].
id)->local ==
NULL)
2080 exerror(
"cannot apply unset to non-array %s", (yyvsp[-1].
id)->name);
2082 (yyval.expr)->
data.variable.symbol = (yyvsp[-1].id);
2083 (yyval.expr)->
data.variable.index =
NULL;
2085#line 2086 "exparse.c"
2089#line 327 "../../lib/expr/exparse.y"
2091 if ((yyvsp[-3].
id)->local ==
NULL)
2092 exerror(
"cannot apply unset to non-array %s", (yyvsp[-3].
id)->name);
2093 if (((yyvsp[-3].
id)->index_type > 0) && ((yyvsp[-1].
expr)->
type != (yyvsp[-3].
id)->index_type))
2094 exerror(
"%s indices must have type %s, not %s",
2097 (yyval.expr)->
data.variable.symbol = (yyvsp[-3].id);
2098 (yyval.expr)->
data.variable.index = (yyvsp[-1].expr);
2100#line 2101 "exparse.c"
2104#line 338 "../../lib/expr/exparse.y"
2107 exwarn (
"assignment used as boolean in while statement");
2112 (yyval.expr) =
exnewnode(
expr.
program, (yyvsp[-4].id)->index,
true,
INTEGER, (yyvsp[-2].expr),
exnewnode(
expr.
program,
';',
true, 0,
NULL, (yyvsp[0].expr)));
2114#line 2115 "exparse.c"
2118#line 347 "../../lib/expr/exparse.y"
2120#line 2121 "exparse.c"
2124#line 348 "../../lib/expr/exparse.y"
2128 (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 358 "../../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 370 "../../lib/expr/exparse.y"
2158#line 2159 "exparse.c"
2162#line 374 "../../lib/expr/exparse.y"
2164 if ((yyvsp[-1].
expr))
2167 exerror(
"return in void function");
2172#line 2173 "exparse.c"
2176#line 386 "../../lib/expr/exparse.y"
2180 if (!(sw = calloc(1,
sizeof(
Switch_t)))) {
2193#line 2194 "exparse.c"
2197#line 406 "../../lib/expr/exparse.y"
2209 const size_t n = sw->
cap;
2212 memcpy((yyval.expr)->data.select.constant, sw->
base, n *
sizeof(
Extype_t*));
2213 (yyval.expr)->
data.select.constant[n] = 0;
2216 (yyval.expr)->data.select.constant = 0;
2221 exerror(
"duplicate default in switch");
2223 sw->
defcase = (yyvsp[0].expr);
2226#line 2227 "exparse.c"
2230#line 441 "../../lib/expr/exparse.y"
2237 exerror(
"too many case labels for switch");
2248#line 2249 "exparse.c"
2252#line 459 "../../lib/expr/exparse.y"
2256#line 2257 "exparse.c"
2260#line 466 "../../lib/expr/exparse.y"
2262 if ((yyvsp[0].
expr))
2263 (yyval.expr) = (yyvsp[-2].
expr) ?
exnewnode(
expr.
program,
',',
true, (yyvsp[0].expr)->type, (yyvsp[-2].expr), (yyvsp[0].expr)) : (yyvsp[0].expr);
2265#line 2266 "exparse.c"
2269#line 472 "../../lib/expr/exparse.y"
2270 {checkName ((yyvsp[0].
id));
expr.
id=(yyvsp[0].id);}
2271#line 2272 "exparse.c"
2275#line 473 "../../lib/expr/exparse.y"
2283 (yyvsp[-3].id)->
type = (yyvsp[0].
expr)->type;
2284 (yyvsp[-3].id)->value = (yyvsp[0].
expr);
2288 if ((yyvsp[-3].
id)->type == 0) {
2289 exerror(
"%s: a variable cannot be void typed", (yyvsp[-3].
id)->name);
2293 if ((yyvsp[-1].integer) && (yyvsp[-3].id)->local ==
NULL)
2303 exerror(
"%s: cannot initialize associative array", (yyvsp[-3].
id)->name);
2304 (yyvsp[-3].id)->index_type = (yyvsp[-1].integer);
2306 if ((yyvsp[0].
expr))
2308 if ((yyvsp[0].
expr)->type != (yyvsp[-3].id)->
type)
2310 (yyvsp[0].expr)->
type = (yyvsp[-3].
id)->type;
2314 (yyvsp[0].expr)->
data.operand.left->data.variable.symbol = (yyvsp[-3].id);
2315 (yyval.expr) = (yyvsp[0].
expr);
2317 else if (!(yyvsp[-1].integer))
2318 (yyvsp[-3].
id)->value->data.value =
exzero((yyvsp[-3].
id)->
type);
2321#line 2322 "exparse.c"
2325#line 531 "../../lib/expr/exparse.y"
2329#line 2330 "exparse.c"
2333#line 535 "../../lib/expr/exparse.y"
2335 (yyval.expr) = (yyvsp[0].
expr);
2337#line 2338 "exparse.c"
2341#line 541 "../../lib/expr/exparse.y"
2345#line 2346 "exparse.c"
2349#line 548 "../../lib/expr/exparse.y"
2351 (yyval.expr) = (yyvsp[-1].
expr);
2353#line 2354 "exparse.c"
2357#line 552 "../../lib/expr/exparse.y"
2359 (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);
2361#line 2362 "exparse.c"
2365#line 556 "../../lib/expr/exparse.y"
2380 (yyvsp[-2].
expr)->type = (yyvsp[0].expr)->
type;
2382 else if (!(yyvsp[0].
expr)->type)
2383 (yyvsp[0].
expr)->type = (yyvsp[-2].expr)->
type;
2384 if ((yyvsp[-2].
expr)->type != (yyvsp[0].expr)->
type)
2387 (yyvsp[-2].
expr) =
excast(
expr.
program, (yyvsp[-2].expr), (yyvsp[0].expr)->type, (yyvsp[0].expr), 0);
2405 if ((yyval.expr)->type ==
STRING) {
2406 (yyval.expr)->
data.constant.value.string =
2409 (yyval.expr)->
binary =
false;
2415 checkBinary(
expr.
program, (yyvsp[-2].expr), (yyval.expr), (yyvsp[0].expr));
2418#line 2419 "exparse.c"
2422#line 609 "../../lib/expr/exparse.y"
2426#line 2427 "exparse.c"
2430#line 613 "../../lib/expr/exparse.y"
2434#line 2435 "exparse.c"
2438#line 617 "../../lib/expr/exparse.y"
2442#line 2443 "exparse.c"
2446#line 621 "../../lib/expr/exparse.y"
2450#line 2451 "exparse.c"
2454#line 625 "../../lib/expr/exparse.y"
2458#line 2459 "exparse.c"
2462#line 629 "../../lib/expr/exparse.y"
2466#line 2467 "exparse.c"
2470#line 633 "../../lib/expr/exparse.y"
2474#line 2475 "exparse.c"
2478#line 637 "../../lib/expr/exparse.y"
2482#line 2483 "exparse.c"
2486#line 641 "../../lib/expr/exparse.y"
2490#line 2491 "exparse.c"
2494#line 645 "../../lib/expr/exparse.y"
2498#line 2499 "exparse.c"
2502#line 649 "../../lib/expr/exparse.y"
2506#line 2507 "exparse.c"
2510#line 653 "../../lib/expr/exparse.y"
2514#line 2515 "exparse.c"
2518#line 657 "../../lib/expr/exparse.y"
2522#line 2523 "exparse.c"
2526#line 661 "../../lib/expr/exparse.y"
2530#line 2531 "exparse.c"
2534#line 665 "../../lib/expr/exparse.y"
2538#line 2539 "exparse.c"
2542#line 669 "../../lib/expr/exparse.y"
2555#line 2556 "exparse.c"
2559#line 682 "../../lib/expr/exparse.y"
2563#line 2564 "exparse.c"
2567#line 686 "../../lib/expr/exparse.y"
2572 (yyval.expr) = (yyvsp[0].
expr);
2575 (yyval.expr) =
exnewnode(
expr.
program,
',',
true, (yyvsp[0].expr)->type, (yyvsp[-2].expr), (yyvsp[0].expr));
2577#line 2578 "exparse.c"
2581#line 695 "../../lib/expr/exparse.y"
2583#line 2584 "exparse.c"
2587#line 695 "../../lib/expr/exparse.y"
2589#line 2590 "exparse.c"
2593#line 696 "../../lib/expr/exparse.y"
2600 (yyvsp[-3].
expr)->type = (yyvsp[0].expr)->
type;
2602 else if (!(yyvsp[0].
expr)->type)
2603 (yyvsp[0].
expr)->type = (yyvsp[-3].expr)->
type;
2608 if ((yyvsp[-3].
expr)->type != (yyvsp[0].expr)->
type)
2611 exerror(
"if statement string type mismatch");
2619 if ((yyvsp[-6].
expr)->
data.constant.value.integer)
2621 (yyval.expr) = (yyvsp[-3].
expr);
2626 (yyval.expr) = (yyvsp[0].
expr);
2632 (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)));
2634#line 2635 "exparse.c"
2638#line 737 "../../lib/expr/exparse.y"
2650 (yyval.expr)->
binary =
false;
2655 checkBinary(
expr.
program, (yyvsp[0].expr), (yyval.expr), 0);
2658#line 2659 "exparse.c"
2662#line 757 "../../lib/expr/exparse.y"
2664 if ((yyvsp[0].
id)->local ==
NULL)
2665 exerror(
"cannot apply '#' operator to non-array %s", (yyvsp[0].
id)->name);
2667 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
2669#line 2670 "exparse.c"
2673#line 764 "../../lib/expr/exparse.y"
2676 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
2678#line 2679 "exparse.c"
2682#line 769 "../../lib/expr/exparse.y"
2686#line 2687 "exparse.c"
2690#line 773 "../../lib/expr/exparse.y"
2694#line 2695 "exparse.c"
2698#line 777 "../../lib/expr/exparse.y"
2700 (yyval.expr) = (yyvsp[0].
expr);
2702#line 2703 "exparse.c"
2706#line 781 "../../lib/expr/exparse.y"
2710#line 2711 "exparse.c"
2714#line 785 "../../lib/expr/exparse.y"
2716 (yyval.expr) =
exnewnode(
expr.
program,
ARRAY,
true,
T((yyvsp[-3].
id)->type), call(0, (yyvsp[-3].
id), (yyvsp[-1].expr)), (yyvsp[-1].expr));
2718#line 2719 "exparse.c"
2722#line 789 "../../lib/expr/exparse.y"
2724 (yyval.expr) =
exnewnode(
expr.
program,
FUNCTION,
true,
T((yyvsp[-3].
id)->type), call(0, (yyvsp[-3].
id), (yyvsp[-1].expr)), (yyvsp[-1].expr));
2726#line 2727 "exparse.c"
2730#line 793 "../../lib/expr/exparse.y"
2734#line 2735 "exparse.c"
2738#line 797 "../../lib/expr/exparse.y"
2742#line 2743 "exparse.c"
2746#line 801 "../../lib/expr/exparse.y"
2748 (yyval.expr) = exnewsubstr (
expr.
program, (yyvsp[-1].expr));
2750#line 2751 "exparse.c"
2754#line 805 "../../lib/expr/exparse.y"
2756 (yyval.expr) = exnewsplit (
expr.
program, (yyvsp[-5].id)->index, (yyvsp[-1].id), (yyvsp[-3].
expr),
NULL);
2758#line 2759 "exparse.c"
2762#line 809 "../../lib/expr/exparse.y"
2764 (yyval.expr) = exnewsplit (
expr.
program, (yyvsp[-7].id)->index, (yyvsp[-3].id), (yyvsp[-5].
expr), (yyvsp[-1].expr));
2766#line 2767 "exparse.c"
2770#line 813 "../../lib/expr/exparse.y"
2776#line 2777 "exparse.c"
2780#line 819 "../../lib/expr/exparse.y"
2784#line 2785 "exparse.c"
2788#line 823 "../../lib/expr/exparse.y"
2792#line 2793 "exparse.c"
2796#line 827 "../../lib/expr/exparse.y"
2802#line 2803 "exparse.c"
2806#line 833 "../../lib/expr/exparse.y"
2809 (yyval.expr)->
data.call.procedure = (yyvsp[-3].id);
2811#line 2812 "exparse.c"
2815#line 838 "../../lib/expr/exparse.y"
2817 (yyval.expr) = exprint(
expr.
program, (yyvsp[-3].id), (yyvsp[-1].expr));
2819#line 2820 "exparse.c"
2823#line 842 "../../lib/expr/exparse.y"
2826 if ((yyvsp[-1].
expr) && (yyvsp[-1].expr)->
data.operand.left->type ==
INTEGER)
2828 (yyval.expr)->
data.print.descriptor = (yyvsp[-1].expr)->data.operand.left;
2829 (yyvsp[-1].expr) = (yyvsp[-1].
expr)->data.operand.right;
2832 switch ((yyvsp[-3].
id)->index)
2836 (yyval.expr)->
data.print.descriptor->data.constant.value.integer = 2;
2840 (yyval.expr)->
data.print.descriptor->data.constant.value.integer = 1;
2843 (yyval.expr)->
data.print.descriptor = 0;
2846 (yyval.expr)->
data.print.args = preprint((yyvsp[-1].
expr));
2848#line 2849 "exparse.c"
2852#line 867 "../../lib/expr/exparse.y"
2857 if ((yyvsp[-1].
expr) && (yyvsp[-1].expr)->
data.operand.left->type ==
INTEGER)
2859 (yyval.expr)->
data.scan.descriptor = (yyvsp[-1].expr)->data.operand.left;
2860 (yyvsp[-1].expr) = (yyvsp[-1].
expr)->data.operand.right;
2863 switch ((yyvsp[-3].
id)->index)
2866 (yyval.expr)->
data.scan.descriptor = 0;
2871 (yyval.expr)->
data.scan.descriptor = (yyvsp[-1].expr)->data.operand.left;
2872 (yyvsp[-1].expr) = (yyvsp[-1].
expr)->data.operand.right;
2875 exerror(
"%s: string argument expected", (yyvsp[-3].
id)->name);
2878 if (!(yyvsp[-1].
expr) || !(yyvsp[-1].
expr)->
data.operand.left || (yyvsp[-1].expr)->data.operand.left->type !=
STRING)
2879 exerror(
"%s: format argument expected", (yyvsp[-3].
id)->name);
2880 (yyval.expr)->
data.scan.format = (yyvsp[-1].expr)->data.operand.left;
2884 exerror(
"%s: address argument expected", (yyvsp[-3].
id)->name);
2888#line 2889 "exparse.c"
2892#line 903 "../../lib/expr/exparse.y"
2894 if ((yyvsp[0].
expr))
2897 exerror(
"%s: variable assignment not supported", (yyvsp[-1].
expr)->
data.variable.symbol->name);
2901 (yyvsp[-1].expr)->
type = (yyvsp[0].
expr)->type;
2902 else if ((yyvsp[0].
expr)->type != (yyvsp[-1].expr)->
type)
2904 (yyvsp[0].expr)->
type = (yyvsp[-1].
expr)->type;
2907 (yyvsp[0].expr)->
data.operand.left = (yyvsp[-1].expr);
2908 (yyval.expr) = (yyvsp[0].
expr);
2912#line 2913 "exparse.c"
2916#line 923 "../../lib/expr/exparse.y"
2920 exerror(
"++ and -- invalid for string variables");
2922 (yyval.expr)->subop =
PRE;
2924#line 2925 "exparse.c"
2928#line 931 "../../lib/expr/exparse.y"
2932 exerror(
"++ and -- invalid for string variables");
2934 (yyval.expr)->subop =
POS;
2936#line 2937 "exparse.c"
2940#line 939 "../../lib/expr/exparse.y"
2942 if ((yyvsp[0].
id)->local ==
NULL)
2943 exerror(
"cannot apply IN to non-array %s", (yyvsp[0].
id)->name);
2944 if ((yyvsp[0].
id)->index_type > 0 && (yyvsp[-2].expr)->
type != (yyvsp[0].
id)->index_type)
2945 exerror(
"%s indices must have type %s, not %s",
2948 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
2949 (yyval.expr)->
data.variable.index = (yyvsp[-2].expr);
2951#line 2952 "exparse.c"
2955#line 950 "../../lib/expr/exparse.y"
2957 if ((yyvsp[0].
id)->index_type > 0 && (yyvsp[-2].expr)->
type != (yyvsp[0].
id)->index_type)
2958 exerror(
"%s indices must have type %s, not %s",
2961 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
2962 (yyval.expr)->
data.variable.index = (yyvsp[-2].expr);
2964#line 2965 "exparse.c"
2968#line 959 "../../lib/expr/exparse.y"
2972#line 2973 "exparse.c"
2976#line 963 "../../lib/expr/exparse.y"
2980#line 2981 "exparse.c"
2984#line 973 "../../lib/expr/exparse.y"
2988 exerror(
"%s: identifier references not supported", (yyvsp[0].
id)->name);
2992#line 2993 "exparse.c"
2996#line 981 "../../lib/expr/exparse.y"
2999 (yyval.expr)->
data.constant.value.floating = (yyvsp[0].floating);
3001#line 3002 "exparse.c"
3005#line 986 "../../lib/expr/exparse.y"
3008 (yyval.expr)->
data.constant.value.integer = (yyvsp[0].integer);
3010#line 3011 "exparse.c"
3014#line 991 "../../lib/expr/exparse.y"
3017 (yyval.expr)->
data.constant.value.string = (yyvsp[0].string);
3019#line 3020 "exparse.c"
3023#line 996 "../../lib/expr/exparse.y"
3026 (yyval.expr)->
data.constant.value.integer = (yyvsp[0].integer);
3028#line 3029 "exparse.c"
3032#line 1012 "../../lib/expr/exparse.y"
3034 (yyval.expr) = makeVar(
expr.
program, (yyvsp[-1].id), 0, 0, (yyvsp[0].reference));
3036#line 3037 "exparse.c"
3040#line 1016 "../../lib/expr/exparse.y"
3046 exerror(
"%s: is%s an array", (yyvsp[-2].
id)->name, (yyvsp[-2].id)->local !=
NULL ?
"" :
" not");
3047 if ((yyvsp[-2].
id)->local !=
NULL && (yyvsp[-2].id)->index_type > 0) {
3048 if ((yyvsp[-1].
expr)->type != (yyvsp[-2].id)->index_type)
3049 exerror(
"%s: indices must have type %s, not %s",
3052 if ((yyvsp[0].reference)) {
3054 (yyval.expr) = makeVar(
expr.
program, (yyvsp[-2].id), (yyvsp[-1].expr), n, (yyvsp[0].reference));
3056 else (yyval.expr) = n;
3058#line 3059 "exparse.c"
3062#line 1034 "../../lib/expr/exparse.y"
3065 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
3066 (yyval.expr)->
data.variable.reference = 0;
3067 (yyval.expr)->
data.variable.index = 0;
3068 (yyval.expr)->
data.variable.dyna = 0;
3070 exerror(
"unknown identifier");
3072#line 3073 "exparse.c"
3076#line 1046 "../../lib/expr/exparse.y"
3078 (yyval.integer) = 0;
3080#line 3081 "exparse.c"
3084#line 1050 "../../lib/expr/exparse.y"
3086 (yyval.integer) = -1;
3088#line 3089 "exparse.c"
3092#line 1054 "../../lib/expr/exparse.y"
3097 if (
INTEGRAL((yyvsp[-1].
id)->type))
3100 (yyval.integer) = (yyvsp[-1].id)->
type;
3103#line 3104 "exparse.c"
3107#line 1067 "../../lib/expr/exparse.y"
3111#line 3112 "exparse.c"
3115#line 1071 "../../lib/expr/exparse.y"
3117 (yyval.expr) = (yyvsp[-1].
expr);
3119#line 3120 "exparse.c"
3123#line 1077 "../../lib/expr/exparse.y"
3127#line 3128 "exparse.c"
3131#line 1081 "../../lib/expr/exparse.y"
3133 (yyval.expr) = (yyvsp[0].
expr)->data.operand.left;
3134 (yyvsp[0].expr)->
data.operand.left = (yyvsp[0].expr)->data.operand.right = 0;
3137#line 3138 "exparse.c"
3141#line 1089 "../../lib/expr/exparse.y"
3143 (yyval.expr) =
exnewnode(
expr.
program,
',',
true, 0,
exnewnode(
expr.
program,
',',
true, (yyvsp[0].expr)->type, (yyvsp[0].expr),
NULL),
NULL);
3144 (yyval.expr)->
data.operand.right = (yyval.expr)->data.operand.left;
3146#line 3147 "exparse.c"
3150#line 1094 "../../lib/expr/exparse.y"
3152 (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);
3154#line 3155 "exparse.c"
3158#line 1100 "../../lib/expr/exparse.y"
3162#line 3163 "exparse.c"
3166#line 1104 "../../lib/expr/exparse.y"
3169 if ((yyvsp[0].
id)->type)
3172#line 3173 "exparse.c"
3176#line 1113 "../../lib/expr/exparse.y"
3180#line 3181 "exparse.c"
3184#line 1117 "../../lib/expr/exparse.y"
3189 (yyval.expr) = (yyvsp[-2].
expr);
3193#line 3194 "exparse.c"
3197#line 1127 "../../lib/expr/exparse.y"
3199#line 3200 "exparse.c"
3203#line 1128 "../../lib/expr/exparse.y"
3205 if ((yyvsp[-2].
id)->type == 0) {
3206 exerror(
"%s: parameters to functions cannot be void typed", (yyvsp[0].
id)->name);
3209 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
3211 (yyvsp[0].id)->
type = (yyvsp[-2].
id)->type;
3216#line 3217 "exparse.c"
3220#line 1143 "../../lib/expr/exparse.y"
3224#line 3225 "exparse.c"
3228#line 1147 "../../lib/expr/exparse.y"
3234 r->
symbol = (yyvsp[0].id);
3240#line 3241 "exparse.c"
3244#line 1159 "../../lib/expr/exparse.y"
3251 r->
symbol = (yyvsp[0].id);
3256 l->
symbol = (yyvsp[-1].id);
3262#line 3263 "exparse.c"
3266#line 1179 "../../lib/expr/exparse.y"
3268 (yyval.id) = (yyvsp[0].
id);
3270#line 3271 "exparse.c"
3274#line 1183 "../../lib/expr/exparse.y"
3276 (yyval.id) = (yyvsp[0].
id);
3278#line 3279 "exparse.c"
3282#line 1188 "../../lib/expr/exparse.y"
3286#line 3287 "exparse.c"
3290#line 1192 "../../lib/expr/exparse.y"
3293 (yyval.expr)->subop = (yyvsp[-1].op);
3295#line 3296 "exparse.c"
3299#line 1199 "../../lib/expr/exparse.y"
3313#line 3314 "exparse.c"
3317#line 1211 "../../lib/expr/exparse.y"
3323#line 3324 "exparse.c"
3327#line 1216 "../../lib/expr/exparse.y"
3338 (void)
dtclose((yyval.expr)->data.procedure.frame);
3339 (yyval.expr)->
data.procedure.frame =
NULL;
3340 (yyval.expr)->
data.procedure.args = (yyvsp[-5].expr);
3351#line 3352 "exparse.c"
3355#line 3356 "exparse.c"
3383 const int yyi =
yypgoto[yylhs] + *yyssp;
3384 yystate = (0 <= yyi && yyi <=
YYLAST &&
yycheck[yyi] == *yyssp
3404#if ! YYERROR_VERBOSE
3407# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
3410 char const *yymsgp =
YY_(
"syntax error");
3411 int yysyntax_error_status;
3412 yysyntax_error_status = YYSYNTAX_ERROR;
3413 if (yysyntax_error_status == 0)
3415 else if (yysyntax_error_status == 1)
3417 if (yymsg != yymsgbuf)
3423 yymsg_alloc =
sizeof yymsgbuf;
3424 yysyntax_error_status = 2;
3428 yysyntax_error_status = YYSYNTAX_ERROR;
3433 if (yysyntax_error_status == 2)
3434 goto yyexhaustedlab;
3436# undef YYSYNTAX_ERROR
3442 if (yyerrstatus == 3)
3544#if !defined yyoverflow || YYERROR_VERBOSE
3571 while (yyssp != yyss)
3582 if (yymsg != yymsgbuf)