638 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
639 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
640 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
641 2, 2, 2, 90, 2, 92, 2, 89, 75, 2,
642 97, 102, 87, 84, 67, 85, 105, 88, 2, 2,
643 2, 2, 2, 2, 2, 2, 2, 2, 70, 101,
644 78, 68, 79, 69, 2, 2, 2, 2, 2, 2,
645 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
646 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
647 2, 103, 2, 104, 74, 2, 2, 2, 2, 2,
648 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
649 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
650 2, 2, 2, 99, 73, 100, 91, 2, 2, 2,
651 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
652 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
653 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
654 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
655 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
656 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
657 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
658 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
659 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
660 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
661 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
662 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
663 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
664 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
665 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
666 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
667 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
668 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
669 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
670 65, 66, 71, 72, 76, 77, 80, 81, 82, 83,
671 86, 93, 94, 95, 96, 98
751 -181, 9, 231, -181, -181, -181, -181, -181, -71, 713,
752 -181, 713, -181, -69, -62, -44, -41, -39, -34, -17,
753 1, -181, 8, -181, 11, -181, 14, 713, -181, -181,
754 -181, 21, -181, 28, 30, 31, -181, 33, 36, 73,
755 713, 713, 713, 713, 101, 73, 73, 619, -181, 64,
756 -181, 35, 893, 40, -181, 46, 47, -55, 713, 44,
757 48, 72, 713, -17, 713, 713, 713, 713, 73, -11,
758 -181, -181, 713, 713, 713, 45, 55, 127, 713, 713,
759 713, 133, 713, -181, -181, -181, -181, -181, -181, -181,
760 -181, -181, 57, 314, 329, 83, -181, -181, 713, -181,
761 713, 713, 713, 713, 713, 713, 713, 713, 713, 713,
762 713, 713, 713, 713, 713, 104, 713, 713, 713, 713,
763 713, 713, 713, -181, -181, -181, 937, 53, 93, -181,
764 -181, -181, -181, -181, -181, -50, -181, -181, 216, -181,
765 411, 60, 19, 75, 76, 77, 99, -181, 508, 78,
766 86, -181, -181, -181, 600, 103, 105, 893, -57, 694,
767 713, -181, -181, -181, 937, 713, 955, 972, 988, 1003,
768 1017, 1031, 1031, 112, 112, 112, 112, 98, 98, 52,
769 52, -181, -181, -181, -181, -181, 916, 106, 111, 937,
770 -181, 713, 72, -181, 100, -181, -181, 713, 523, -181,
771 -181, 523, -2, -181, 523, -181, -181, -181, -181, -181,
772 113, 713, -181, 523, -181, -181, 870, 807, -181, -181,
773 937, -181, -15, -45, 119, -181, -181, -181, 186, 115,
774 788, -181, 231, -181, -53, 121, -181, -181, -181, -181,
775 713, 523, -181, -181, -181, 713, 713, -181, -181, 206,
776 124, -181, -6, 937, 836, 125, -181, 161, -181, 523,
777 102, 160, -181, -181, 108, -181, -181, -4, 129, 220,
778 -181, 163, -181, 231, -181, -181, -181, -181, 141, -181,
779 -181, -181, -181, 426, -181
787 7, 0, 3, 1, 104, 106, 103, 105, 0, 44,
788 102, 44, 11, 118, 0, 0, 0, 0, 0, 131,
789 0, 114, 0, 107, 0, 108, 0, 44, 110, 100,
790 109, 0, 111, 0, 0, 0, 101, 0, 0, 0,
791 0, 0, 0, 0, 0, 0, 0, 0, 7, 2,
792 8, 0, 45, 0, 99, 0, 0, 136, 120, 0,
793 0, 0, 0, 131, 0, 44, 120, 120, 0, 0,
794 112, 132, 0, 120, 120, 0, 0, 0, 120, 120,
795 0, 0, 0, 76, 75, 74, 70, 73, 72, 71,
796 93, 97, 0, 0, 44, 0, 4, 10, 0, 67,
797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799 120, 120, 0, 94, 98, 92, 122, 0, 121, 22,
800 23, 37, 39, 38, 36, 0, 32, 34, 0, 113,
801 0, 0, 136, 0, 0, 0, 134, 135, 0, 0,
802 0, 85, 24, 86, 0, 0, 0, 20, 0, 0,
803 0, 46, 9, 5, 66, 0, 65, 64, 61, 62,
804 60, 58, 59, 48, 55, 56, 57, 53, 54, 63,
805 49, 96, 95, 50, 51, 52, 0, 0, 0, 137,
806 77, 0, 0, 12, 115, 119, 84, 44, 44, 78,
807 79, 44, 0, 133, 44, 89, 88, 87, 80, 81,
808 0, 0, 17, 44, 47, 7, 0, 0, 90, 91,
809 123, 33, 0, 136, 0, 14, 16, 134, 42, 0,
810 0, 19, 6, 68, 118, 0, 116, 139, 138, 35,
811 44, 44, 13, 25, 18, 0, 0, 82, 117, 124,
812 0, 43, 0, 69, 0, 129, 140, 126, 127, 44,
813 0, 0, 21, 26, 7, 28, 83, 0, 0, 0,
814 15, 0, 31, 27, 29, 41, 40, 130, 0, 129,
843 94, 59, 235, 60, 84, 85, 86, 87, 260, 3,
844 211, 93, 261, 122, 246, 275, 146, 192, 225, 76,
845 147, 226, 126, 122, 228, 227, 138, 276, 140, 147,
846 126, 126, 58, 231, 62, 64, 148, 126, 126, 123,
847 124, 154, 126, 126, 157, 212, 159, 143, 144, 247,
848 62, 193, 237, 65, 149, 150, 66, 141, 67, 155,
849 156, 251, 164, 68, 166, 167, 168, 169, 170, 171,
850 172, 173, 174, 175, 176, 177, 178, 179, 180, 270,
851 183, 184, 185, 186, 126, 126, 189, 122, 69, 236,
852 83, 131, 13, 95, 262, 132, 90, 91, 72, 133,
853 19, 187, 188, 134, 21, 73, 4, 5, 74, 6,
854 7, 75, 88, 123, 124, 181, 142, 10, 77, 145,
855 89, 198, 260, 182, 214, 78, 261, 79, 80, 216,
856 81, 4, 5, 82, 6, 7, 97, 119, 8, 116,
857 117, 118, 10, 120, 121, 129, 13, 151, 14, 130,
858 16, 17, 158, 163, 19, 220, 152, 190, 21, 160,
859 191, 197, 22, 23, 24, 25, 26, 232, 28, 29,
860 30, 31, 32, 33, 34, 230, 36, 199, 200, 201,
861 205, 164, 113, 114, 115, 116, 117, 118, 206, 224,
862 -126, -126, -126, -126, 111, 112, 113, 114, 115, 116,
863 117, 118, 39, 222, 202, 208, 241, 209, 218, 253,
864 254, 40, 41, 219, 243, 229, 273, 42, 43, 44,
865 240, 45, 46, 255, 47, 248, 259, -125, 269, 153,
866 272, 278, 250, 281, 283, 4, 5, 279, 6, 7,
867 282, 274, 8, 9, 271, 280, 10, 11, 12, 238,
868 13, 221, 14, 15, 16, 17, 139, 18, 19, 20,
869 203, 0, 21, 0, 0, 0, 22, 23, 24, 25,
870 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
871 36, 37, 38, 98, 0, 99, 0, 100, 101, 102,
872 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
873 113, 114, 115, 116, 117, 118, 39, 0, 0, 0,
874 0, 0, 0, 0, 0, 40, 41, 0, 0, 0,
875 195, 42, 43, 44, 0, 45, 46, 0, 47, 0,
876 48, 0, -44, 4, 5, 0, 6, 7, 0, 0,
877 8, 9, 0, 0, 10, 11, 12, 0, 13, 0,
878 14, 15, 16, 17, 0, 18, 19, 20, 0, 0,
879 21, 0, 0, 0, 22, 23, 24, 25, 26, 27,
880 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
881 38, 98, 0, 99, 0, 100, 101, 102, 103, 104,
882 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
883 115, 116, 117, 118, 39, 0, 0, 0, 0, 0,
884 0, 0, 0, 40, 41, 0, 161, 0, 0, 42,
885 43, 44, 0, 45, 46, 0, 47, 0, 48, 162,
886 4, 5, 0, 6, 7, 0, 0, 8, 9, 0,
887 0, 10, 11, 12, 0, 13, 0, 14, 15, 16,
888 17, 0, 18, 19, 20, 0, 0, 21, 0, 0,
889 0, 22, 23, 24, 25, 26, 27, 28, 29, 30,
890 31, 32, 33, 34, 35, 36, 37, 38, 98, 0,
891 99, 0, 100, 101, 102, 103, 104, 105, 106, 107,
892 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
893 118, 39, 0, 0, 0, 0, 0, 0, 0, 0,
894 40, 41, 0, 196, 0, 0, 42, 43, 44, 0,
895 45, 46, 0, 47, 0, 48, 284, 4, 5, 0,
896 6, 7, 0, 0, 8, 9, 0, 0, 10, 11,
897 12, 0, 13, 0, 14, 15, 16, 17, 0, 18,
898 19, 20, 0, 0, 21, 0, 0, 0, 22, 23,
899 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
900 34, 35, 36, 37, 38, 98, 0, 99, 0, 100,
901 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
902 111, 112, 113, 114, 115, 116, 117, 118, 39, 0,
903 0, 0, 0, 0, 0, 0, 0, 40, 41, 0,
904 204, 0, 0, 42, 43, 44, 0, 45, 46, 0,
905 47, 0, 48, 4, 5, 0, 6, 7, 0, 0,
906 8, 0, 0, 0, 10, 0, 92, 0, 13, 0,
907 14, 0, 16, 17, 0, 0, 19, 0, 0, 0,
908 21, 0, 0, 0, 22, 23, 24, 25, 26, 0,
909 28, 29, 30, 31, 32, 33, 34, 98, 36, 99,
910 0, 100, 101, 102, 103, 104, 105, 106, 107, 108,
911 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
912 0, 0, 0, 0, 39, 0, 0, 0, 0, 0,
913 0, 0, 207, 40, 41, 0, 0, 0, 0, 42,
914 43, 44, 0, 45, 46, 0, 47, 4, 5, 0,
915 6, 7, 0, 0, 8, 0, 0, 0, 10, 0,
916 0, 0, 13, 0, 14, 0, 16, 17, 0, 0,
917 19, 0, 0, 0, 21, 0, 0, 0, 22, 23,
918 24, 25, 26, 0, 28, 29, 30, 31, 32, 33,
919 34, 98, 36, 99, 0, 100, 101, 102, 103, 104,
920 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
921 115, 116, 117, 118, 0, 0, 0, 0, 39, 0,
922 0, 0, 0, 0, 0, 0, 213, 40, 41, 0,
923 0, 0, 0, 42, 43, 44, 0, 45, 46, 0,
924 47, 4, 5, 0, 6, 7, 0, 0, 8, 0,
925 0, 0, 10, 0, 0, 0, 234, 0, 14, 0,
926 16, 17, 0, 0, 19, 0, 0, 0, 21, 0,
927 0, 0, 22, 23, 24, 25, 26, 0, 28, 29,
928 30, 31, 32, 33, 34, 98, 36, 99, 0, 100,
929 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
930 111, 112, 113, 114, 115, 116, 117, 118, 0, 0,
931 0, 0, 39, 0, 0, 0, 0, 0, 0, 0,
932 244, 40, 41, 0, 0, 0, 0, 42, 43, 44,
933 0, 45, 46, 98, 47, 99, 0, 100, 101, 102,
934 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
935 113, 114, 115, 116, 117, 118, 0, 0, 0, 0,
936 0, 0, 0, 0, 0, 0, 0, 98, 266, 99,
937 233, 100, 101, 102, 103, 104, 105, 106, 107, 108,
938 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
939 98, 0, 99, 0, 100, 101, 102, 103, 104, 105,
940 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
941 116, 117, 118, 217, 0, 99, 0, 100, 101, 102,
942 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
943 113, 114, 115, 116, 117, 118, 99, 0, 100, 101,
944 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
945 112, 113, 114, 115, 116, 117, 118, 101, 102, 103,
946 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
947 114, 115, 116, 117, 118, 102, 103, 104, 105, 106,
948 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
949 117, 118, 103, 104, 105, 106, 107, 108, 109, 110,
950 111, 112, 113, 114, 115, 116, 117, 118, 104, 105,
951 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
952 116, 117, 118, 105, 106, 107, 108, 109, 110, 111,
953 112, 113, 114, 115, 116, 117, 118, -126, -126, 107,
954 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
960 48, 9, 17, 11, 40, 41, 42, 43, 14, 0,
961 67, 47, 18, 68, 67, 19, 27, 67, 198, 27,
962 31, 201, 58, 68, 204, 27, 62, 31, 64, 31,
963 66, 67, 103, 213, 103, 97, 72, 73, 74, 94,
964 95, 77, 78, 79, 80, 102, 82, 66, 67, 102,
965 103, 101, 97, 97, 73, 74, 97, 65, 97, 78,
966 79, 241, 98, 97, 100, 101, 102, 103, 104, 105,
967 106, 107, 108, 109, 110, 111, 112, 113, 114, 259,
968 116, 117, 118, 119, 120, 121, 122, 68, 105, 104,
969 39, 19, 19, 29, 100, 23, 45, 46, 97, 27,
970 27, 120, 121, 31, 31, 97, 4, 5, 97, 7,
971 8, 97, 11, 94, 95, 11, 65, 15, 97, 68,
972 19, 102, 14, 19, 160, 97, 18, 97, 97, 165,
973 97, 4, 5, 97, 7, 8, 101, 97, 11, 87,
974 88, 89, 15, 97, 97, 101, 19, 102, 21, 101,
975 23, 24, 19, 70, 27, 191, 101, 104, 31, 102,
976 67, 101, 35, 36, 37, 38, 39, 215, 41, 42,
977 43, 44, 45, 46, 47, 211, 49, 102, 102, 102,
978 102, 217, 84, 85, 86, 87, 88, 89, 102, 197,
979 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
980 88, 89, 75, 103, 105, 102, 20, 102, 102, 245,
981 246, 84, 85, 102, 99, 102, 264, 90, 91, 92,
982 101, 94, 95, 17, 97, 104, 102, 102, 67, 102,
983 70, 102, 240, 70, 282, 4, 5, 17, 7, 8,
984 99, 264, 11, 12, 260, 269, 15, 16, 17, 223,
985 19, 192, 21, 22, 23, 24, 63, 26, 27, 28,
986 146, -1, 31, -1, -1, -1, 35, 36, 37, 38,
987 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
988 49, 50, 51, 67, -1, 69, -1, 71, 72, 73,
989 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
990 84, 85, 86, 87, 88, 89, 75, -1, -1, -1,
991 -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
992 104, 90, 91, 92, -1, 94, 95, -1, 97, -1,
993 99, -1, 101, 4, 5, -1, 7, 8, -1, -1,
994 11, 12, -1, -1, 15, 16, 17, -1, 19, -1,
995 21, 22, 23, 24, -1, 26, 27, 28, -1, -1,
996 31, -1, -1, -1, 35, 36, 37, 38, 39, 40,
997 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
998 51, 67, -1, 69, -1, 71, 72, 73, 74, 75,
999 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1000 86, 87, 88, 89, 75, -1, -1, -1, -1, -1,
1001 -1, -1, -1, 84, 85, -1, 102, -1, -1, 90,
1002 91, 92, -1, 94, 95, -1, 97, -1, 99, 100,
1003 4, 5, -1, 7, 8, -1, -1, 11, 12, -1,
1004 -1, 15, 16, 17, -1, 19, -1, 21, 22, 23,
1005 24, -1, 26, 27, 28, -1, -1, 31, -1, -1,
1006 -1, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1007 44, 45, 46, 47, 48, 49, 50, 51, 67, -1,
1008 69, -1, 71, 72, 73, 74, 75, 76, 77, 78,
1009 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1010 89, 75, -1, -1, -1, -1, -1, -1, -1, -1,
1011 84, 85, -1, 102, -1, -1, 90, 91, 92, -1,
1012 94, 95, -1, 97, -1, 99, 100, 4, 5, -1,
1013 7, 8, -1, -1, 11, 12, -1, -1, 15, 16,
1014 17, -1, 19, -1, 21, 22, 23, 24, -1, 26,
1015 27, 28, -1, -1, 31, -1, -1, -1, 35, 36,
1016 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1017 47, 48, 49, 50, 51, 67, -1, 69, -1, 71,
1018 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1019 82, 83, 84, 85, 86, 87, 88, 89, 75, -1,
1020 -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
1021 102, -1, -1, 90, 91, 92, -1, 94, 95, -1,
1022 97, -1, 99, 4, 5, -1, 7, 8, -1, -1,
1023 11, -1, -1, -1, 15, -1, 17, -1, 19, -1,
1024 21, -1, 23, 24, -1, -1, 27, -1, -1, -1,
1025 31, -1, -1, -1, 35, 36, 37, 38, 39, -1,
1026 41, 42, 43, 44, 45, 46, 47, 67, 49, 69,
1027 -1, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1028 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1029 -1, -1, -1, -1, 75, -1, -1, -1, -1, -1,
1030 -1, -1, 102, 84, 85, -1, -1, -1, -1, 90,
1031 91, 92, -1, 94, 95, -1, 97, 4, 5, -1,
1032 7, 8, -1, -1, 11, -1, -1, -1, 15, -1,
1033 -1, -1, 19, -1, 21, -1, 23, 24, -1, -1,
1034 27, -1, -1, -1, 31, -1, -1, -1, 35, 36,
1035 37, 38, 39, -1, 41, 42, 43, 44, 45, 46,
1036 47, 67, 49, 69, -1, 71, 72, 73, 74, 75,
1037 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1038 86, 87, 88, 89, -1, -1, -1, -1, 75, -1,
1039 -1, -1, -1, -1, -1, -1, 102, 84, 85, -1,
1040 -1, -1, -1, 90, 91, 92, -1, 94, 95, -1,
1041 97, 4, 5, -1, 7, 8, -1, -1, 11, -1,
1042 -1, -1, 15, -1, -1, -1, 19, -1, 21, -1,
1043 23, 24, -1, -1, 27, -1, -1, -1, 31, -1,
1044 -1, -1, 35, 36, 37, 38, 39, -1, 41, 42,
1045 43, 44, 45, 46, 47, 67, 49, 69, -1, 71,
1046 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1047 82, 83, 84, 85, 86, 87, 88, 89, -1, -1,
1048 -1, -1, 75, -1, -1, -1, -1, -1, -1, -1,
1049 102, 84, 85, -1, -1, -1, -1, 90, 91, 92,
1050 -1, 94, 95, 67, 97, 69, -1, 71, 72, 73,
1051 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1052 84, 85, 86, 87, 88, 89, -1, -1, -1, -1,
1053 -1, -1, -1, -1, -1, -1, -1, 67, 102, 69,
1054 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
1055 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1056 67, -1, 69, -1, 71, 72, 73, 74, 75, 76,
1057 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1058 87, 88, 89, 67, -1, 69, -1, 71, 72, 73,
1059 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1060 84, 85, 86, 87, 88, 89, 69, -1, 71, 72,
1061 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1062 83, 84, 85, 86, 87, 88, 89, 72, 73, 74,
1063 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1064 85, 86, 87, 88, 89, 73, 74, 75, 76, 77,
1065 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1066 88, 89, 74, 75, 76, 77, 78, 79, 80, 81,
1067 82, 83, 84, 85, 86, 87, 88, 89, 75, 76,
1068 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1069 87, 88, 89, 76, 77, 78, 79, 80, 81, 82,
1070 83, 84, 85, 86, 87, 88, 89, 76, 77, 78,
1071 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1079 0, 107, 111, 0, 4, 5, 7, 8, 11, 12,
1080 15, 16, 17, 19, 21, 22, 23, 24, 26, 27,
1081 28, 31, 35, 36, 37, 38, 39, 40, 41, 42,
1082 43, 44, 45, 46, 47, 48, 49, 50, 51, 75,
1083 84, 85, 90, 91, 92, 94, 95, 97, 99, 108,
1084 112, 125, 126, 129, 130, 131, 132, 133, 103, 125,
1085 125, 113, 103, 135, 97, 97, 97, 97, 97, 105,
1086 142, 143, 97, 97, 97, 97, 125, 97, 97, 97,
1087 97, 97, 97, 133, 126, 126, 126, 126, 11, 19,
1088 133, 133, 17, 126, 111, 29, 109, 101, 67, 69,
1089 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1090 81, 82, 83, 84, 85, 86, 87, 88, 89, 97,
1091 97, 97, 68, 94, 95, 144, 126, 136, 137, 101,
1092 101, 19, 23, 27, 31, 119, 120, 122, 126, 142,
1093 126, 125, 133, 136, 136, 133, 27, 31, 126, 136,
1094 136, 102, 101, 102, 126, 136, 136, 126, 19, 126,
1095 102, 102, 100, 70, 126, 127, 126, 126, 126, 126,
1096 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
1097 126, 11, 19, 126, 126, 126, 126, 136, 136, 126,
1098 104, 67, 67, 101, 121, 104, 102, 101, 102, 102,
1099 102, 102, 105, 143, 102, 102, 102, 102, 102, 102,
1100 114, 67, 102, 102, 126, 110, 126, 67, 102, 102,
1101 126, 120, 103, 134, 125, 112, 112, 27, 112, 102,
1102 126, 112, 111, 70, 19, 17, 104, 97, 144, 145,
1103 101, 20, 124, 99, 102, 128, 67, 102, 104, 146,
1104 125, 112, 115, 126, 126, 17, 138, 139, 140, 102,
1105 14, 18, 100, 116, 117, 118, 102, 141, 147, 67,
1106 112, 130, 70, 111, 118, 19, 31, 123, 102, 17,
1107 140, 70, 99, 111, 100
1373 int yyerrstatus = 0;
1402#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1408 YYDPRINTF ((stderr,
"Starting parse\n"));
1428 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
1435 if (yyss + yystacksize - 1 <= yyssp)
1436#if !defined yyoverflow && !defined YYSTACK_RELOCATE
1443# if defined yyoverflow
1455 yyoverflow (
YY_(
"memory exhausted"),
1456 &yyss1, yysize *
YYSIZEOF (*yyssp),
1457 &yyvs1, yysize *
YYSIZEOF (*yyvsp),
1479# undef YYSTACK_RELOCATE
1485 yyssp = yyss + yysize - 1;
1486 yyvsp = yyvs + yysize - 1;
1489 YYDPRINTF ((stderr,
"Stack size increased to %ld\n",
1490 YY_CAST (
long, yystacksize)));
1493 if (yyss + yystacksize - 1 <= yyssp)
1522 YYDPRINTF ((stderr,
"Reading a token\n"));
1530 YYDPRINTF ((stderr,
"Now at end of input.\n"));
1604 yyval = yyvsp[1-yylen];
1611#line 180 "../../lib/expr/exparse.y"
1613 if ((yyvsp[-1].
expr)) {
1616 if ((yyvsp[-1].
expr)->op ==
S2B)
1627#line 1628 "exparse.c"
1631#line 201 "../../lib/expr/exparse.y"
1634 exerror(
"no nested function definitions");
1647#line 1648 "exparse.c"
1651#line 216 "../../lib/expr/exparse.y"
1660 if ((yyvsp[0].
expr) && (yyvsp[0].
expr)->op ==
S2B)
1669#line 1670 "exparse.c"
1673#line 236 "../../lib/expr/exparse.y"
1677#line 1678 "exparse.c"
1681#line 240 "../../lib/expr/exparse.y"
1683 if (!(yyvsp[-1].
expr))
1684 (yyval.expr) = (yyvsp[0].expr);
1685 else if (!(yyvsp[0].
expr))
1686 (yyval.expr) = (yyvsp[-1].expr);
1690 (yyval.expr) = (yyvsp[0].
expr);
1692 else (yyval.expr) =
exnewnode(
expr.
program,
';',
true, (yyvsp[0].expr)->type, (yyvsp[-1].expr), (yyvsp[0].expr));
1694#line 1695 "exparse.c"
1698#line 255 "../../lib/expr/exparse.y"
1700 (yyval.expr) = (yyvsp[-1].
expr);
1702#line 1703 "exparse.c"
1706#line 259 "../../lib/expr/exparse.y"
1710#line 1711 "exparse.c"
1714#line 262 "../../lib/expr/exparse.y"
1716#line 1717 "exparse.c"
1720#line 263 "../../lib/expr/exparse.y"
1722 (yyval.expr) = (yyvsp[-1].
expr);
1725#line 1726 "exparse.c"
1729#line 268 "../../lib/expr/exparse.y"
1732 exwarn (
"assignment used as boolean in if statement");
1737 (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)));
1739#line 1740 "exparse.c"
1743#line 278 "../../lib/expr/exparse.y"
1746 (yyval.expr)->
data.generate.array = (yyvsp[-2].expr);
1747 if (!(yyvsp[-2].
expr)->data.variable.index || (yyvsp[-2].expr)->
data.variable.index->op !=
DYNAMIC)
1748 exerror(
"simple index variable expected");
1749 (yyval.expr)->
data.generate.index = (yyvsp[-2].expr)->data.variable.index->data.variable.symbol;
1750 if ((yyvsp[-2].
expr)->op ==
ID && (yyval.expr)->
data.generate.index->type !=
INTEGER)
1751 exerror(
"integer index variable expected");
1753 (yyvsp[-2].expr)->
data.variable.index = 0;
1754 (yyval.expr)->
data.generate.statement = (yyvsp[0].expr);
1756#line 1757 "exparse.c"
1760#line 291 "../../lib/expr/exparse.y"
1762 if (!(yyvsp[-4].
expr))
1765 (yyvsp[-4].expr)->
data.constant.value.integer = 1;
1771 (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)));
1772 if ((yyvsp[-6].
expr))
1775#line 1776 "exparse.c"
1779#line 306 "../../lib/expr/exparse.y"
1782 (yyval.expr)->
data.generate.array = (yyvsp[-2].expr);
1783 if (!(yyvsp[-2].
expr)->data.variable.index || (yyvsp[-2].expr)->
data.variable.index->op !=
DYNAMIC)
1784 exerror(
"simple index variable expected");
1785 (yyval.expr)->
data.generate.index = (yyvsp[-2].expr)->data.variable.index->data.variable.symbol;
1786 if ((yyvsp[-2].
expr)->op ==
ID && (yyval.expr)->
data.generate.index->type !=
INTEGER)
1787 exerror(
"integer index variable expected");
1789 (yyvsp[-2].expr)->
data.variable.index = 0;
1790 (yyval.expr)->
data.generate.statement = (yyvsp[0].expr);
1792#line 1793 "exparse.c"
1796#line 319 "../../lib/expr/exparse.y"
1798 if ((yyvsp[-1].
id)->local ==
NULL)
1799 exerror(
"cannot apply unset to non-array %s", (yyvsp[-1].
id)->name);
1801 (yyval.expr)->
data.variable.symbol = (yyvsp[-1].id);
1802 (yyval.expr)->
data.variable.index =
NULL;
1804#line 1805 "exparse.c"
1808#line 327 "../../lib/expr/exparse.y"
1810 if ((yyvsp[-3].
id)->local ==
NULL)
1811 exerror(
"cannot apply unset to non-array %s", (yyvsp[-3].
id)->name);
1812 if (((yyvsp[-3].
id)->index_type > 0) && ((yyvsp[-1].
expr)->
type != (yyvsp[-3].
id)->index_type))
1813 exerror(
"%s indices must have type %s, not %s",
1816 (yyval.expr)->
data.variable.symbol = (yyvsp[-3].id);
1817 (yyval.expr)->
data.variable.index = (yyvsp[-1].expr);
1819#line 1820 "exparse.c"
1823#line 338 "../../lib/expr/exparse.y"
1826 exwarn (
"assignment used as boolean in while statement");
1831 (yyval.expr) =
exnewnode(
expr.
program, (yyvsp[-4].id)->index,
true,
INTEGER, (yyvsp[-2].expr),
exnewnode(
expr.
program,
';',
true, 0,
NULL, (yyvsp[0].expr)));
1833#line 1834 "exparse.c"
1837#line 347 "../../lib/expr/exparse.y"
1839#line 1840 "exparse.c"
1843#line 348 "../../lib/expr/exparse.y"
1847 (yyval.expr) =
exnewnode(
expr.
program, (yyvsp[-7].id)->index,
true,
INTEGER, (yyvsp[-5].expr),
exnewnode(
expr.
program,
DEFAULT,
true, 0, sw->
defcase, sw->
firstcase));
1853#line 1854 "exparse.c"
1857#line 358 "../../lib/expr/exparse.y"
1860 if (!(yyvsp[-1].
expr))
1863 (yyvsp[-1].expr)->
data.constant.value.integer = 1;
1869#line 1870 "exparse.c"
1873#line 370 "../../lib/expr/exparse.y"
1877#line 1878 "exparse.c"
1881#line 374 "../../lib/expr/exparse.y"
1883 if ((yyvsp[-1].
expr))
1886 exerror(
"return in void function");
1891#line 1892 "exparse.c"
1895#line 386 "../../lib/expr/exparse.y"
1899 if (!(sw = calloc(1,
sizeof(
Switch_t)))) {
1912#line 1913 "exparse.c"
1916#line 406 "../../lib/expr/exparse.y"
1928 const size_t n = sw->
cap;
1931 memcpy((yyval.expr)->data.select.constant, sw->
base, n *
sizeof(
Extype_t*));
1932 (yyval.expr)->
data.select.constant[n] = 0;
1935 (yyval.expr)->data.select.constant = 0;
1940 exerror(
"duplicate default in switch");
1942 sw->
defcase = (yyvsp[0].expr);
1945#line 1946 "exparse.c"
1949#line 441 "../../lib/expr/exparse.y"
1956 exerror(
"too many case labels for switch");
1967#line 1968 "exparse.c"
1971#line 459 "../../lib/expr/exparse.y"
1975#line 1976 "exparse.c"
1979#line 466 "../../lib/expr/exparse.y"
1981 if ((yyvsp[0].
expr))
1982 (yyval.expr) = (yyvsp[-2].
expr) ?
exnewnode(
expr.
program,
',',
true, (yyvsp[0].expr)->type, (yyvsp[-2].expr), (yyvsp[0].expr)) : (yyvsp[0].expr);
1984#line 1985 "exparse.c"
1988#line 472 "../../lib/expr/exparse.y"
1989 {checkName ((yyvsp[0].
id));
expr.
id=(yyvsp[0].id);}
1990#line 1991 "exparse.c"
1994#line 473 "../../lib/expr/exparse.y"
2002 (yyvsp[-3].id)->
type = (yyvsp[0].
expr)->type;
2003 (yyvsp[-3].id)->value = (yyvsp[0].
expr);
2007 if ((yyvsp[-3].
id)->type == 0) {
2008 exerror(
"%s: a variable cannot be void typed", (yyvsp[-3].
id)->name);
2012 if ((yyvsp[-1].integer) && (yyvsp[-3].id)->local ==
NULL)
2026 exerror(
"%s: cannot initialize associative array", (yyvsp[-3].
id)->name);
2027 (yyvsp[-3].id)->index_type = (yyvsp[-1].integer);
2029 if ((yyvsp[0].
expr))
2031 if ((yyvsp[0].
expr)->type != (yyvsp[-3].id)->
type)
2033 (yyvsp[0].expr)->
type = (yyvsp[-3].
id)->type;
2037 (yyvsp[0].expr)->
data.operand.left->data.variable.symbol = (yyvsp[-3].id);
2038 (yyval.expr) = (yyvsp[0].
expr);
2040 else if (!(yyvsp[-1].integer))
2041 (yyvsp[-3].
id)->value->data.value =
exzero((yyvsp[-3].
id)->
type);
2044#line 2045 "exparse.c"
2048#line 535 "../../lib/expr/exparse.y"
2052#line 2053 "exparse.c"
2056#line 539 "../../lib/expr/exparse.y"
2058 (yyval.expr) = (yyvsp[0].
expr);
2060#line 2061 "exparse.c"
2064#line 545 "../../lib/expr/exparse.y"
2068#line 2069 "exparse.c"
2072#line 552 "../../lib/expr/exparse.y"
2074 (yyval.expr) = (yyvsp[-1].
expr);
2076#line 2077 "exparse.c"
2080#line 556 "../../lib/expr/exparse.y"
2082 (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);
2084#line 2085 "exparse.c"
2088#line 560 "../../lib/expr/exparse.y"
2103 (yyvsp[-2].
expr)->type = (yyvsp[0].expr)->
type;
2105 else if (!(yyvsp[0].
expr)->type)
2106 (yyvsp[0].
expr)->type = (yyvsp[-2].expr)->
type;
2107 if ((yyvsp[-2].
expr)->type != (yyvsp[0].expr)->
type)
2110 (yyvsp[-2].
expr) =
excast(
expr.
program, (yyvsp[-2].expr), (yyvsp[0].expr)->type, (yyvsp[0].expr), 0);
2128 if ((yyval.expr)->type ==
STRING) {
2129 (yyval.expr)->
data.constant.value.string =
2132 (yyval.expr)->
binary =
false;
2138 checkBinary(
expr.
program, (yyvsp[-2].expr), (yyval.expr), (yyvsp[0].expr));
2141#line 2142 "exparse.c"
2145#line 613 "../../lib/expr/exparse.y"
2149#line 2150 "exparse.c"
2153#line 617 "../../lib/expr/exparse.y"
2157#line 2158 "exparse.c"
2161#line 621 "../../lib/expr/exparse.y"
2165#line 2166 "exparse.c"
2169#line 625 "../../lib/expr/exparse.y"
2173#line 2174 "exparse.c"
2177#line 629 "../../lib/expr/exparse.y"
2181#line 2182 "exparse.c"
2185#line 633 "../../lib/expr/exparse.y"
2189#line 2190 "exparse.c"
2193#line 637 "../../lib/expr/exparse.y"
2197#line 2198 "exparse.c"
2201#line 641 "../../lib/expr/exparse.y"
2205#line 2206 "exparse.c"
2209#line 645 "../../lib/expr/exparse.y"
2213#line 2214 "exparse.c"
2217#line 649 "../../lib/expr/exparse.y"
2221#line 2222 "exparse.c"
2225#line 653 "../../lib/expr/exparse.y"
2229#line 2230 "exparse.c"
2233#line 657 "../../lib/expr/exparse.y"
2237#line 2238 "exparse.c"
2241#line 661 "../../lib/expr/exparse.y"
2245#line 2246 "exparse.c"
2249#line 665 "../../lib/expr/exparse.y"
2253#line 2254 "exparse.c"
2257#line 669 "../../lib/expr/exparse.y"
2261#line 2262 "exparse.c"
2265#line 673 "../../lib/expr/exparse.y"
2278#line 2279 "exparse.c"
2282#line 686 "../../lib/expr/exparse.y"
2286#line 2287 "exparse.c"
2290#line 690 "../../lib/expr/exparse.y"
2295 (yyval.expr) = (yyvsp[0].
expr);
2298 (yyval.expr) =
exnewnode(
expr.
program,
',',
true, (yyvsp[0].expr)->type, (yyvsp[-2].expr), (yyvsp[0].expr));
2300#line 2301 "exparse.c"
2304#line 699 "../../lib/expr/exparse.y"
2306#line 2307 "exparse.c"
2310#line 699 "../../lib/expr/exparse.y"
2312#line 2313 "exparse.c"
2316#line 700 "../../lib/expr/exparse.y"
2323 (yyvsp[-3].
expr)->type = (yyvsp[0].expr)->
type;
2325 else if (!(yyvsp[0].
expr)->type)
2326 (yyvsp[0].
expr)->type = (yyvsp[-3].expr)->
type;
2331 if ((yyvsp[-3].
expr)->type != (yyvsp[0].expr)->
type)
2334 exerror(
"if statement string type mismatch");
2342 if ((yyvsp[-6].
expr)->
data.constant.value.integer)
2344 (yyval.expr) = (yyvsp[-3].
expr);
2349 (yyval.expr) = (yyvsp[0].
expr);
2355 (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)));
2357#line 2358 "exparse.c"
2361#line 741 "../../lib/expr/exparse.y"
2373 (yyval.expr)->
binary =
false;
2378 checkBinary(
expr.
program, (yyvsp[0].expr), (yyval.expr), 0);
2381#line 2382 "exparse.c"
2385#line 761 "../../lib/expr/exparse.y"
2387 if ((yyvsp[0].
id)->local ==
NULL)
2388 exerror(
"cannot apply '#' operator to non-array %s", (yyvsp[0].
id)->name);
2390 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
2392#line 2393 "exparse.c"
2396#line 768 "../../lib/expr/exparse.y"
2399 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
2401#line 2402 "exparse.c"
2405#line 773 "../../lib/expr/exparse.y"
2409#line 2410 "exparse.c"
2413#line 777 "../../lib/expr/exparse.y"
2417#line 2418 "exparse.c"
2421#line 781 "../../lib/expr/exparse.y"
2423 (yyval.expr) = (yyvsp[0].
expr);
2425#line 2426 "exparse.c"
2429#line 785 "../../lib/expr/exparse.y"
2433#line 2434 "exparse.c"
2437#line 789 "../../lib/expr/exparse.y"
2439 (yyval.expr) =
exnewnode(
expr.
program,
ARRAY,
true,
T((yyvsp[-3].
id)->type), call(0, (yyvsp[-3].
id), (yyvsp[-1].expr)), (yyvsp[-1].expr));
2441#line 2442 "exparse.c"
2445#line 793 "../../lib/expr/exparse.y"
2447 (yyval.expr) =
exnewnode(
expr.
program,
FUNCTION,
true,
T((yyvsp[-3].
id)->type), call(0, (yyvsp[-3].
id), (yyvsp[-1].expr)), (yyvsp[-1].expr));
2449#line 2450 "exparse.c"
2453#line 797 "../../lib/expr/exparse.y"
2457#line 2458 "exparse.c"
2461#line 801 "../../lib/expr/exparse.y"
2465#line 2466 "exparse.c"
2469#line 805 "../../lib/expr/exparse.y"
2471 (yyval.expr) = exnewsubstr (
expr.
program, (yyvsp[-1].expr));
2473#line 2474 "exparse.c"
2477#line 809 "../../lib/expr/exparse.y"
2479 (yyval.expr) = exnewsplit (
expr.
program, (yyvsp[-5].id)->index, (yyvsp[-1].id), (yyvsp[-3].
expr),
NULL);
2481#line 2482 "exparse.c"
2485#line 813 "../../lib/expr/exparse.y"
2487 (yyval.expr) = exnewsplit (
expr.
program, (yyvsp[-7].id)->index, (yyvsp[-3].id), (yyvsp[-5].
expr), (yyvsp[-1].expr));
2489#line 2490 "exparse.c"
2493#line 817 "../../lib/expr/exparse.y"
2499#line 2500 "exparse.c"
2503#line 823 "../../lib/expr/exparse.y"
2507#line 2508 "exparse.c"
2511#line 827 "../../lib/expr/exparse.y"
2515#line 2516 "exparse.c"
2519#line 831 "../../lib/expr/exparse.y"
2525#line 2526 "exparse.c"
2529#line 837 "../../lib/expr/exparse.y"
2532 (yyval.expr)->
data.call.procedure = (yyvsp[-3].id);
2534#line 2535 "exparse.c"
2538#line 842 "../../lib/expr/exparse.y"
2540 (yyval.expr) = exprint(
expr.
program, (yyvsp[-3].id), (yyvsp[-1].expr));
2542#line 2543 "exparse.c"
2546#line 846 "../../lib/expr/exparse.y"
2549 if ((yyvsp[-1].
expr) && (yyvsp[-1].expr)->
data.operand.left->type ==
INTEGER)
2551 (yyval.expr)->
data.print.descriptor = (yyvsp[-1].expr)->data.operand.left;
2552 (yyvsp[-1].expr) = (yyvsp[-1].
expr)->data.operand.right;
2555 switch ((yyvsp[-3].
id)->index)
2559 (yyval.expr)->
data.print.descriptor->data.constant.value.integer = 2;
2563 (yyval.expr)->
data.print.descriptor->data.constant.value.integer = 1;
2566 (yyval.expr)->
data.print.descriptor = 0;
2569 (yyval.expr)->
data.print.args = preprint((yyvsp[-1].
expr));
2571#line 2572 "exparse.c"
2575#line 871 "../../lib/expr/exparse.y"
2580 if ((yyvsp[-1].
expr) && (yyvsp[-1].expr)->
data.operand.left->type ==
INTEGER)
2582 (yyval.expr)->
data.scan.descriptor = (yyvsp[-1].expr)->data.operand.left;
2583 (yyvsp[-1].expr) = (yyvsp[-1].
expr)->data.operand.right;
2586 switch ((yyvsp[-3].
id)->index)
2589 (yyval.expr)->
data.scan.descriptor = 0;
2594 (yyval.expr)->
data.scan.descriptor = (yyvsp[-1].expr)->data.operand.left;
2595 (yyvsp[-1].expr) = (yyvsp[-1].
expr)->data.operand.right;
2598 exerror(
"%s: string argument expected", (yyvsp[-3].
id)->name);
2601 if (!(yyvsp[-1].
expr) || !(yyvsp[-1].
expr)->
data.operand.left || (yyvsp[-1].expr)->data.operand.left->type !=
STRING)
2602 exerror(
"%s: format argument expected", (yyvsp[-3].
id)->name);
2603 (yyval.expr)->
data.scan.format = (yyvsp[-1].expr)->data.operand.left;
2607 exerror(
"%s: address argument expected", (yyvsp[-3].
id)->name);
2611#line 2612 "exparse.c"
2615#line 907 "../../lib/expr/exparse.y"
2617 if ((yyvsp[0].
expr))
2620 exerror(
"%s: variable assignment not supported", (yyvsp[-1].
expr)->
data.variable.symbol->name);
2624 (yyvsp[-1].expr)->
type = (yyvsp[0].
expr)->type;
2625 else if ((yyvsp[0].
expr)->type != (yyvsp[-1].expr)->
type)
2627 (yyvsp[0].expr)->
type = (yyvsp[-1].
expr)->type;
2630 (yyvsp[0].expr)->
data.operand.left = (yyvsp[-1].expr);
2631 (yyval.expr) = (yyvsp[0].
expr);
2635#line 2636 "exparse.c"
2639#line 927 "../../lib/expr/exparse.y"
2643 exerror(
"++ and -- invalid for string variables");
2645 (yyval.expr)->subop =
PRE;
2647#line 2648 "exparse.c"
2651#line 935 "../../lib/expr/exparse.y"
2655 exerror(
"++ and -- invalid for string variables");
2657 (yyval.expr)->subop =
POS;
2659#line 2660 "exparse.c"
2663#line 943 "../../lib/expr/exparse.y"
2665 if ((yyvsp[0].
id)->local ==
NULL)
2666 exerror(
"cannot apply IN to non-array %s", (yyvsp[0].
id)->name);
2667 if ((yyvsp[0].
id)->index_type > 0 && (yyvsp[-2].expr)->
type != (yyvsp[0].
id)->index_type)
2668 exerror(
"%s indices must have type %s, not %s",
2671 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
2672 (yyval.expr)->
data.variable.index = (yyvsp[-2].expr);
2674#line 2675 "exparse.c"
2678#line 954 "../../lib/expr/exparse.y"
2680 if ((yyvsp[0].
id)->index_type > 0 && (yyvsp[-2].expr)->
type != (yyvsp[0].
id)->index_type)
2681 exerror(
"%s indices must have type %s, not %s",
2684 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
2685 (yyval.expr)->
data.variable.index = (yyvsp[-2].expr);
2687#line 2688 "exparse.c"
2691#line 963 "../../lib/expr/exparse.y"
2695#line 2696 "exparse.c"
2699#line 967 "../../lib/expr/exparse.y"
2703#line 2704 "exparse.c"
2707#line 977 "../../lib/expr/exparse.y"
2711 exerror(
"%s: identifier references not supported", (yyvsp[0].
id)->name);
2715#line 2716 "exparse.c"
2719#line 985 "../../lib/expr/exparse.y"
2722 (yyval.expr)->
data.constant.value.floating = (yyvsp[0].floating);
2724#line 2725 "exparse.c"
2728#line 990 "../../lib/expr/exparse.y"
2731 (yyval.expr)->
data.constant.value.integer = (yyvsp[0].integer);
2733#line 2734 "exparse.c"
2737#line 995 "../../lib/expr/exparse.y"
2740 (yyval.expr)->
data.constant.value.string = (yyvsp[0].string);
2742#line 2743 "exparse.c"
2746#line 1000 "../../lib/expr/exparse.y"
2749 (yyval.expr)->
data.constant.value.integer = (yyvsp[0].integer);
2751#line 2752 "exparse.c"
2755#line 1016 "../../lib/expr/exparse.y"
2757 (yyval.expr) = makeVar(
expr.
program, (yyvsp[-1].id), 0, 0, (yyvsp[0].reference));
2759#line 2760 "exparse.c"
2763#line 1020 "../../lib/expr/exparse.y"
2769 exerror(
"%s: is%s an array", (yyvsp[-2].
id)->name, (yyvsp[-2].id)->local !=
NULL ?
"" :
" not");
2770 if ((yyvsp[-2].
id)->local !=
NULL && (yyvsp[-2].id)->index_type > 0) {
2771 if ((yyvsp[-1].
expr)->type != (yyvsp[-2].id)->index_type)
2772 exerror(
"%s: indices must have type %s, not %s",
2775 if ((yyvsp[0].reference)) {
2777 (yyval.expr) = makeVar(
expr.
program, (yyvsp[-2].id), (yyvsp[-1].expr), n, (yyvsp[0].reference));
2779 else (yyval.expr) = n;
2781#line 2782 "exparse.c"
2785#line 1038 "../../lib/expr/exparse.y"
2788 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
2789 (yyval.expr)->
data.variable.reference = 0;
2790 (yyval.expr)->
data.variable.index = 0;
2791 (yyval.expr)->
data.variable.dyna = 0;
2793 exerror(
"unknown identifier");
2795#line 2796 "exparse.c"
2799#line 1050 "../../lib/expr/exparse.y"
2801 (yyval.integer) = 0;
2803#line 2804 "exparse.c"
2807#line 1054 "../../lib/expr/exparse.y"
2809 (yyval.integer) = -1;
2811#line 2812 "exparse.c"
2815#line 1058 "../../lib/expr/exparse.y"
2820 if (
INTEGRAL((yyvsp[-1].
id)->type))
2823 (yyval.integer) = (yyvsp[-1].id)->
type;
2826#line 2827 "exparse.c"
2830#line 1071 "../../lib/expr/exparse.y"
2834#line 2835 "exparse.c"
2838#line 1075 "../../lib/expr/exparse.y"
2840 (yyval.expr) = (yyvsp[-1].
expr);
2842#line 2843 "exparse.c"
2846#line 1081 "../../lib/expr/exparse.y"
2850#line 2851 "exparse.c"
2854#line 1085 "../../lib/expr/exparse.y"
2856 (yyval.expr) = (yyvsp[0].
expr)->data.operand.left;
2857 (yyvsp[0].expr)->
data.operand.left = (yyvsp[0].expr)->data.operand.right = 0;
2860#line 2861 "exparse.c"
2864#line 1093 "../../lib/expr/exparse.y"
2866 (yyval.expr) =
exnewnode(
expr.
program,
',',
true, 0,
exnewnode(
expr.
program,
',',
true, (yyvsp[0].expr)->type, (yyvsp[0].expr),
NULL),
NULL);
2867 (yyval.expr)->
data.operand.right = (yyval.expr)->data.operand.left;
2869#line 2870 "exparse.c"
2873#line 1098 "../../lib/expr/exparse.y"
2875 (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);
2877#line 2878 "exparse.c"
2881#line 1104 "../../lib/expr/exparse.y"
2885#line 2886 "exparse.c"
2889#line 1108 "../../lib/expr/exparse.y"
2892 if ((yyvsp[0].
id)->type)
2895#line 2896 "exparse.c"
2899#line 1117 "../../lib/expr/exparse.y"
2903#line 2904 "exparse.c"
2907#line 1121 "../../lib/expr/exparse.y"
2912 (yyval.expr) = (yyvsp[-2].
expr);
2916#line 2917 "exparse.c"
2920#line 1131 "../../lib/expr/exparse.y"
2922#line 2923 "exparse.c"
2926#line 1132 "../../lib/expr/exparse.y"
2928 if ((yyvsp[-2].
id)->type == 0) {
2929 exerror(
"%s: parameters to functions cannot be void typed", (yyvsp[0].
id)->name);
2932 (yyval.expr)->
data.variable.symbol = (yyvsp[0].id);
2934 (yyvsp[0].id)->
type = (yyvsp[-2].
id)->type;
2939#line 2940 "exparse.c"
2943#line 1147 "../../lib/expr/exparse.y"
2947#line 2948 "exparse.c"
2951#line 1151 "../../lib/expr/exparse.y"
2957 r->
symbol = (yyvsp[0].id);
2963#line 2964 "exparse.c"
2967#line 1163 "../../lib/expr/exparse.y"
2974 r->
symbol = (yyvsp[0].id);
2979 l->
symbol = (yyvsp[-1].id);
2985#line 2986 "exparse.c"
2989#line 1183 "../../lib/expr/exparse.y"
2991 (yyval.id) = (yyvsp[0].
id);
2993#line 2994 "exparse.c"
2997#line 1187 "../../lib/expr/exparse.y"
2999 (yyval.id) = (yyvsp[0].
id);
3001#line 3002 "exparse.c"
3005#line 1192 "../../lib/expr/exparse.y"
3009#line 3010 "exparse.c"
3013#line 1196 "../../lib/expr/exparse.y"
3016 (yyval.expr)->subop = (yyvsp[-1].op);
3018#line 3019 "exparse.c"
3022#line 1203 "../../lib/expr/exparse.y"
3036#line 3037 "exparse.c"
3040#line 1215 "../../lib/expr/exparse.y"
3046#line 3047 "exparse.c"
3050#line 1220 "../../lib/expr/exparse.y"
3061 (void)
dtclose((yyval.expr)->data.procedure.frame);
3062 (yyval.expr)->
data.procedure.frame =
NULL;
3063 (yyval.expr)->
data.procedure.args = (yyvsp[-5].expr);
3074#line 3075 "exparse.c"
3078#line 3079 "exparse.c"
3105 const int yyi =
yypgoto[yylhs] + *yyssp;
3106 yystate = (0 <= yyi && yyi <=
YYLAST &&
yycheck[yyi] == *yyssp
3128 if (yyerrstatus == 3)
3257 while (yyssp != yyss)