/* Generated by Parser/pgen */ #include "pgenheaders.h" #include "grammar.h" PyAPI_DATA(grammar) _PyParser_Grammar; static arc arcs_0_0[3] = { {2, 1}, {3, 1}, {4, 2}, }; static arc arcs_0_1[1] = { {0, 1}, }; static arc arcs_0_2[1] = { {2, 1}, }; static state states_0[3] = { {3, arcs_0_0}, {1, arcs_0_1}, {1, arcs_0_2}, }; static arc arcs_1_0[3] = { {2, 0}, {6, 0}, {7, 1}, }; static arc arcs_1_1[1] = { {0, 1}, }; static state states_1[2] = { {3, arcs_1_0}, {1, arcs_1_1}, }; static arc arcs_2_0[1] = { {9, 1}, }; static arc arcs_2_1[2] = { {2, 1}, {7, 2}, }; static arc arcs_2_2[1] = { {0, 2}, }; static state states_2[3] = { {1, arcs_2_0}, {2, arcs_2_1}, {1, arcs_2_2}, }; static arc arcs_3_0[1] = { {11, 1}, }; static arc arcs_3_1[1] = { {12, 2}, }; static arc arcs_3_2[2] = { {13, 3}, {2, 4}, }; static arc arcs_3_3[2] = { {14, 5}, {15, 6}, }; static arc arcs_3_4[1] = { {0, 4}, }; static arc arcs_3_5[1] = { {15, 6}, }; static arc arcs_3_6[1] = { {2, 4}, }; static state states_3[7] = { {1, arcs_3_0}, {1, arcs_3_1}, {2, arcs_3_2}, {2, arcs_3_3}, {1, arcs_3_4}, {1, arcs_3_5}, {1, arcs_3_6}, }; static arc arcs_4_0[1] = { {10, 1}, }; static arc arcs_4_1[2] = { {10, 1}, {0, 1}, }; static state states_4[2] = { {1, arcs_4_0}, {2, arcs_4_1}, }; static arc arcs_5_0[1] = { {16, 1}, }; static arc arcs_5_1[2] = { {18, 2}, {19, 2}, }; static arc arcs_5_2[1] = { {0, 2}, }; static state states_5[3] = { {1, arcs_5_0}, {2, arcs_5_1}, {1, arcs_5_2}, }; static arc arcs_6_0[1] = { {20, 1}, }; static arc arcs_6_1[1] = { {21, 2}, }; static arc arcs_6_2[1] = { {22, 3}, }; static arc arcs_6_3[2] = { {23, 4}, {25, 5}, }; static arc arcs_6_4[1] = { {24, 6}, }; static arc arcs_6_5[1] = { {26, 7}, }; static arc arcs_6_6[1] = { {25, 5}, }; static arc arcs_6_7[1] = { {0, 7}, }; static state states_6[8] = { {1, arcs_6_0}, {1, arcs_6_1}, {1, arcs_6_2}, {2, arcs_6_3}, {1, arcs_6_4}, {1, arcs_6_5}, {1, arcs_6_6}, {1, arcs_6_7}, }; static arc arcs_7_0[1] = { {13, 1}, }; static arc arcs_7_1[2] = { {27, 2}, {15, 3}, }; static arc arcs_7_2[1] = { {15, 3}, }; static arc arcs_7_3[1] = { {0, 3}, }; static state states_7[4] = { {1, arcs_7_0}, {2, arcs_7_1}, {1, arcs_7_2}, {1, arcs_7_3}, }; static arc arcs_8_0[3] = { {28, 1}, {31, 2}, {32, 3}, }; static arc arcs_8_1[3] = { {29, 4}, {30, 5}, {0, 1}, }; static arc arcs_8_2[3] = { {28, 6}, {30, 7}, {0, 2}, }; static arc arcs_8_3[1] = { {28, 8}, }; static arc arcs_8_4[1] = { {24, 9}, }; static arc arcs_8_5[4] = { {28, 1}, {31, 2}, {32, 3}, {0, 5}, }; static arc arcs_8_6[2] = { {30, 7}, {0, 6}, }; static arc arcs_8_7[2] = { {28, 10}, {32, 3}, }; static arc arcs_8_8[1] = { {0, 8}, }; static arc arcs_8_9[2] = { {30, 5}, {0, 9}, }; static arc arcs_8_10[3] = { {30, 7}, {29, 11}, {0, 10}, }; static arc arcs_8_11[1] = { {24, 6}, }; static state states_8[12] = { {3, arcs_8_0}, {3, arcs_8_1}, {3, arcs_8_2}, {1, arcs_8_3}, {1, arcs_8_4}, {4, arcs_8_5}, {2, arcs_8_6}, {2, arcs_8_7}, {1, arcs_8_8}, {2, arcs_8_9}, {3, arcs_8_10}, {1, arcs_8_11}, }; static arc arcs_9_0[1] = { {21, 1}, }; static arc arcs_9_1[2] = { {25, 2}, {0, 1}, }; static arc arcs_9_2[1] = { {24, 3}, }; static arc arcs_9_3[1] = { {0, 3}, }; static state states_9[4] = { {1, arcs_9_0}, {2, arcs_9_1}, {1, arcs_9_2}, {1, arcs_9_3}, }; static arc arcs_10_0[3] = { {34, 1}, {31, 2}, {32, 3}, }; static arc arcs_10_1[3] = { {29, 4}, {30, 5}, {0, 1}, }; static arc arcs_10_2[3] = { {34, 6}, {30, 7}, {0, 2}, }; static arc arcs_10_3[1] = { {34, 8}, }; static arc arcs_10_4[1] = { {24, 9}, }; static arc arcs_10_5[4] = { {34, 1}, {31, 2}, {32, 3}, {0, 5}, }; static arc arcs_10_6[2] = { {30, 7}, {0, 6}, }; static arc arcs_10_7[2] = { {34, 10}, {32, 3}, }; static arc arcs_10_8[1] = { {0, 8}, }; static arc arcs_10_9[2] = { {30, 5}, {0, 9}, }; static arc arcs_10_10[3] = { {30, 7}, {29, 11}, {0, 10}, }; static arc arcs_10_11[1] = { {24, 6}, }; static state states_10[12] = { {3, arcs_10_0}, {3, arcs_10_1}, {3, arcs_10_2}, {1, arcs_10_3}, {1, arcs_10_4}, {4, arcs_10_5}, {2, arcs_10_6}, {2, arcs_10_7}, {1, arcs_10_8}, {2, arcs_10_9}, {3, arcs_10_10}, {1, arcs_10_11}, }; static arc arcs_11_0[1] = { {21, 1}, }; static arc arcs_11_1[1] = { {0, 1}, }; static state states_11[2] = { {1, arcs_11_0}, {1, arcs_11_1}, }; static arc arcs_12_0[2] = { {3, 1}, {4, 1}, }; static arc arcs_12_1[1] = { {0, 1}, }; static state states_12[2] = { {2, arcs_12_0}, {1, arcs_12_1}, }; static arc arcs_13_0[1] = { {35, 1}, }; static arc arcs_13_1[2] = { {36, 2}, {2, 3}, }; static arc arcs_13_2[2] = { {35, 1}, {2, 3}, }; static arc arcs_13_3[1] = { {0, 3}, }; static state states_13[4] = { {1, arcs_13_0}, {2, arcs_13_1}, {2, arcs_13_2}, {1, arcs_13_3}, }; static arc arcs_14_0[8] = { {37, 1}, {38, 1}, {39, 1}, {40, 1}, {41, 1}, {42, 1}, {43, 1}, {44, 1}, }; static arc arcs_14_1[1] = { {0, 1}, }; static state states_14[2] = { {8, arcs_14_0}, {1, arcs_14_1}, }; static arc arcs_15_0[1] = { {45, 1}, }; static arc arcs_15_1[3] = { {46, 2}, {29, 3}, {0, 1}, }; static arc arcs_15_2[2] = { {47, 4}, {9, 4}, }; static arc arcs_15_3[2] = { {47, 5}, {45, 5}, }; static arc arcs_15_4[1] = { {0, 4}, }; static arc arcs_15_5[2] = { {29, 3}, {0, 5}, }; static state states_15[6] = { {1, arcs_15_0}, {3, arcs_15_1}, {2, arcs_15_2}, {2, arcs_15_3}, {1, arcs_15_4}, {2, arcs_15_5}, }; static arc arcs_16_0[2] = { {24, 1}, {48, 1}, }; static arc arcs_16_1[2] = { {30, 2}, {0, 1}, }; static arc arcs_16_2[3] = { {24, 1}, {48, 1}, {0, 2}, }; static state states_16[3] = { {2, arcs_16_0}, {2, arcs_16_1}, {3, arcs_16_2}, }; static arc arcs_17_0[12] = { {49, 1}, {50, 1}, {51, 1}, {52, 1}, {53, 1}, {54, 1}, {55, 1}, {56, 1}, {57, 1}, {58, 1}, {59, 1}, {60, 1}, }; static arc arcs_17_1[1] = { {0, 1}, }; static state states_17[2] = { {12, arcs_17_0}, {1, arcs_17_1}, }; static arc arcs_18_0[1] = { {61, 1}, }; static arc arcs_18_1[1] = { {62, 2}, }; static arc arcs_18_2[1] = { {0, 2}, }; static state states_18[3] = { {1, arcs_18_0}, {1, arcs_18_1}, {1, arcs_18_2}, }; static arc arcs_19_0[1] = { {63, 1}, }; static arc arcs_19_1[1] = { {0, 1}, }; static state states_19[2] = { {1, arcs_19_0}, {1, arcs_19_1}, }; static arc arcs_20_0[5] = { {64, 1}, {65, 1}, {66, 1}, {67, 1}, {68, 1}, }; static arc arcs_20_1[1] = { {0, 1}, }; static state states_20[2] = { {5, arcs_20_0}, {1, arcs_20_1}, }; static arc arcs_21_0[1] = { {69, 1}, }; static arc arcs_21_1[1] = { {0, 1}, }; static state states_21[2] = { {1, arcs_21_0}, {1, arcs_21_1}, }; static arc arcs_22_0[1] = { {70, 1}, }; static arc arcs_22_1[1] = { {0, 1}, }; static state states_22[2] = { {1, arcs_22_0}, {1, arcs_22_1}, }; static arc arcs_23_0[1] = { {71, 1}, }; static arc arcs_23_1[2] = { {9, 2}, {0, 1}, }; static arc arcs_23_2[1] = { {0, 2}, }; static state states_23[3] = { {1, arcs_23_0}, {2, arcs_23_1}, {1, arcs_23_2}, }; static arc arcs_24_0[1] = { {47, 1}, }; static arc arcs_24_1[1] = { {0, 1}, }; static state states_24[2] = { {1, arcs_24_0}, {1, arcs_24_1}, }; static arc arcs_25_0[1] = { {72, 1}, }; static arc arcs_25_1[2] = { {24, 2}, {0, 1}, }; static arc arcs_25_2[2] = { {73, 3}, {0, 2}, }; static arc arcs_25_3[1] = { {24, 4}, }; static arc arcs_25_4[1] = { {0, 4}, }; static state states_25[5] = { {1, arcs_25_0}, {2, arcs_25_1}, {2, arcs_25_2}, {1, arcs_25_3}, {1, arcs_25_4}, }; static arc arcs_26_0[2] = { {74, 1}, {75, 1}, }; static arc arcs_26_1[1] = { {0, 1}, }; static state states_26[2] = { {2, arcs_26_0}, {1, arcs_26_1}, }; static arc arcs_27_0[1] = { {76, 1}, }; static arc arcs_27_1[1] = { {77, 2}, }; static arc arcs_27_2[1] = { {0, 2}, }; static state states_27[3] = { {1, arcs_27_0}, {1, arcs_27_1}, {1, arcs_27_2}, }; static arc arcs_28_0[1] = { {73, 1}, }; static arc arcs_28_1[3] = { {78, 2}, {79, 2}, {12, 3}, }; static arc arcs_28_2[4] = { {78, 2}, {79, 2}, {12, 3}, {76, 4}, }; static arc arcs_28_3[1] = { {76, 4}, }; static arc arcs_28_4[3] = { {31, 5}, {13, 6}, {80, 5}, }; static arc arcs_28_5[1] = { {0, 5}, }; static arc arcs_28_6[1] = { {80, 7}, }; static arc arcs_28_7[1] = { {15, 5}, }; static state states_28[8] = { {1, arcs_28_0}, {3, arcs_28_1}, {4, arcs_28_2}, {1, arcs_28_3}, {3, arcs_28_4}, {1, arcs_28_5}, {1, arcs_28_6}, {1, arcs_28_7}, }; static arc arcs_29_0[1] = { {21, 1}, }; static arc arcs_29_1[2] = { {82, 2}, {0, 1}, }; static arc arcs_29_2[1] = { {21, 3}, }; static arc arcs_29_3[1] = { {0, 3}, }; static state states_29[4] = { {1, arcs_29_0}, {2, arcs_29_1}, {1, arcs_29_2}, {1, arcs_29_3}, }; static arc arcs_30_0[1] = { {12, 1}, }; static arc arcs_30_1[2] = { {82, 2}, {0, 1}, }; static arc arcs_30_2[1] = { {21, 3}, }; static arc arcs_30_3[1] = { {0, 3}, }; static state states_30[4] = { {1, arcs_30_0}, {2, arcs_30_1}, {1, arcs_30_2}, {1, arcs_30_3}, }; static arc arcs_31_0[1] = { {81, 1}, }; static arc arcs_31_1[2] = { {30, 2}, {0, 1}, }; static arc arcs_31_2[2] = { {81, 1}, {0, 2}, }; static state states_31[3] = { {1, arcs_31_0}, {2, arcs_31_1}, {2, arcs_31_2}, }; static arc arcs_32_0[1] = { {83, 1}, }; static arc arcs_32_1[2] = { {30, 0}, {0, 1}, }; static state states_32[2] = { {1, arcs_32_0}, {2, arcs_32_1}, }; static arc arcs_33_0[1] = { {21, 1}, }; static arc arcs_33_1[2] = { {78, 0}, {0, 1}, }; static state states_33[2] = { {1, arcs_33_0}, {2, arcs_33_1}, }; static arc arcs_34_0[1] = { {84, 1}, }; static arc arcs_34_1[1] = { {21, 2}, }; static arc arcs_34_2[2] = { {30, 1}, {0, 2}, }; static state states_34[3] = { {1, arcs_34_0}, {1, arcs_34_1}, {2, arcs_34_2}, }; static arc arcs_35_0[1] = { {85, 1}, }; static arc arcs_35_1[1] = { {21, 2}, }; static arc arcs_35_2[2] = { {30, 1}, {0, 2}, }; static state states_35[3] = { {1, arcs_35_0}, {1, arcs_35_1}, {2, arcs_35_2}, }; static arc arcs_36_0[1] = { {86, 1}, }; static arc arcs_36_1[1] = { {24, 2}, }; static arc arcs_36_2[2] = { {30, 3}, {0, 2}, }; static arc arcs_36_3[1] = { {24, 4}, }; static arc arcs_36_4[1] = { {0, 4}, }; static state states_36[5] = { {1, arcs_36_0}, {1, arcs_36_1}, {2, arcs_36_2}, {1, arcs_36_3}, {1, arcs_36_4}, }; static arc arcs_37_0[8] = { {87, 1}, {88, 1}, {89, 1}, {90, 1}, {91, 1}, {19, 1}, {18, 1}, {17, 1}, }; static arc arcs_37_1[1] = { {0, 1}, }; static state states_37[2] = { {8, arcs_37_0}, {1, arcs_37_1}, }; static arc arcs_38_0[1] = { {92, 1}, }; static arc arcs_38_1[1] = { {24, 2}, }; static arc arcs_38_2[1] = { {25, 3}, }; static arc arcs_38_3[1] = { {26, 4}, }; static arc arcs_38_4[3] = { {93, 1}, {94, 5}, {0, 4}, }; static arc arcs_38_5[1] = { {25, 6}, }; static arc arcs_38_6[1] = { {26, 7}, }; static arc arcs_38_7[1] = { {0, 7}, }; static state states_38[8] = { {1, arcs_38_0}, {1, arcs_38_1}, {1, arcs_38_2}, {1, arcs_38_3}, {3, arcs_38_4}, {1, arcs_38_5}, {1, arcs_38_6}, {1, arcs_38_7}, }; static arc arcs_39_0[1] = { {95, 1}, }; static arc arcs_39_1[1] = { {24, 2}, }; static arc arcs_39_2[1] = { {25, 3}, }; static arc arcs_39_3[1] = { {26, 4}, }; static arc arcs_39_4[2] = { {94, 5}, {0, 4}, }; static arc arcs_39_5[1] = { {25, 6}, }; static arc arcs_39_6[1] = { {26, 7}, }; static arc arcs_39_7[1] = { {0, 7}, }; static state states_39[8] = { {1, arcs_39_0}, {1, arcs_39_1}, {1, arcs_39_2}, {1, arcs_39_3}, {2, arcs_39_4}, {1, arcs_39_5}, {1, arcs_39_6}, {1, arcs_39_7}, }; static arc arcs_40_0[1] = { {96, 1}, }; static arc arcs_40_1[1] = { {62, 2}, }; static arc arcs_40_2[1] = { {97, 3}, }; static arc arcs_40_3[1] = { {9, 4}, }; static arc arcs_40_4[1] = { {25, 5}, }; static arc arcs_40_5[1] = { {26, 6}, }; static arc arcs_40_6[2] = { {94, 7}, {0, 6}, }; static arc arcs_40_7[1] = { {25, 8}, }; static arc arcs_40_8[1] = { {26, 9}, }; static arc arcs_40_9[1] = { {0, 9}, }; static state states_40[10] = { {1, arcs_40_0}, {1, arcs_40_1}, {1, arcs_40_2}, {1, arcs_40_3}, {1, arcs_40_4}, {1, arcs_40_5}, {2, arcs_40_6}, {1, arcs_40_7}, {1, arcs_40_8}, {1, arcs_40_9}, }; static arc arcs_41_0[1] = { {98, 1}, }; static arc arcs_41_1[1] = { {25, 2}, }; static arc arcs_41_2[1] = { {26, 3}, }; static arc arcs_41_3[2] = { {99, 4}, {100, 5}, }; static arc arcs_41_4[1] = { {25, 6}, }; static arc arcs_41_5[1] = { {25, 7}, }; static arc arcs_41_6[1] = { {26, 8}, }; static arc arcs_41_7[1] = { {26, 9}, }; static arc arcs_41_8[4] = { {99, 4}, {94, 10}, {100, 5}, {0, 8}, }; static arc arcs_41_9[1] = { {0, 9}, }; static arc arcs_41_10[1] = { {25, 11}, }; static arc arcs_41_11[1] = { {26, 12}, }; static arc arcs_41_12[2] = { {100, 5}, {0, 12}, }; static state states_41[13] = { {1, arcs_41_0}, {1, arcs_41_1}, {1, arcs_41_2}, {2, arcs_41_3}, {1, arcs_41_4}, {1, arcs_41_5}, {1, arcs_41_6}, {1, arcs_41_7}, {4, arcs_41_8}, {1, arcs_41_9}, {1, arcs_41_10}, {1, arcs_41_11}, {2, arcs_41_12}, }; static arc arcs_42_0[1] = { {101, 1}, }; static arc arcs_42_1[1] = { {102, 2}, }; static arc arcs_42_2[2] = { {30, 1}, {25, 3}, }; static arc arcs_42_3[1] = { {26, 4}, }; static arc arcs_42_4[1] = { {0, 4}, }; static state states_42[5] = { {1, arcs_42_0}, {1, arcs_42_1}, {2, arcs_42_2}, {1, arcs_42_3}, {1, arcs_42_4}, }; static arc arcs_43_0[1] = { {24, 1}, }; static arc arcs_43_1[2] = { {82, 2}, {0, 1}, }; static arc arcs_43_2[1] = { {103, 3}, }; static arc arcs_43_3[1] = { {0, 3}, }; static state states_43[4] = { {1, arcs_43_0}, {2, arcs_43_1}, {1, arcs_43_2}, {1, arcs_43_3}, }; static arc arcs_44_0[1] = { {104, 1}, }; static arc arcs_44_1[2] = { {24, 2}, {0, 1}, }; static arc arcs_44_2[2] = { {82, 3}, {0, 2}, }; static arc arcs_44_3[1] = { {21, 4}, }; static arc arcs_44_4[1] = { {0, 4}, }; static state states_44[5] = { {1, arcs_44_0}, {2, arcs_44_1}, {2, arcs_44_2}, {1, arcs_44_3}, {1, arcs_44_4}, }; static arc arcs_45_0[2] = { {3, 1}, {2, 2}, }; static arc arcs_45_1[1] = { {0, 1}, }; static arc arcs_45_2[1] = { {105, 3}, }; static arc arcs_45_3[1] = { {6, 4}, }; static arc arcs_45_4[2] = { {6, 4}, {106, 1}, }; static state states_45[5] = { {2, arcs_45_0}, {1, arcs_45_1}, {1, arcs_45_2}, {1, arcs_45_3}, {2, arcs_45_4}, }; static arc arcs_46_0[2] = { {107, 1}, {108, 2}, }; static arc arcs_46_1[2] = { {92, 3}, {0, 1}, }; static arc arcs_46_2[1] = { {0, 2}, }; static arc arcs_46_3[1] = { {107, 4}, }; static arc arcs_46_4[1] = { {94, 5}, }; static arc arcs_46_5[1] = { {24, 2}, }; static state states_46[6] = { {2, arcs_46_0}, {2, arcs_46_1}, {1, arcs_46_2}, {1, arcs_46_3}, {1, arcs_46_4}, {1, arcs_46_5}, }; static arc arcs_47_0[2] = { {107, 1}, {110, 1}, }; static arc arcs_47_1[1] = { {0, 1}, }; static state states_47[2] = { {2, arcs_47_0}, {1, arcs_47_1}, }; static arc arcs_48_0[1] = { {111, 1}, }; static arc arcs_48_1[2] = { {33, 2}, {25, 3}, }; static arc arcs_48_2[1] = { {25, 3}, }; static arc arcs_48_3[1] = { {24, 4}, }; static arc arcs_48_4[1] = { {0, 4}, }; static state states_48[5] = { {1, arcs_48_0}, {2, arcs_48_1}, {1, arcs_48_2}, {1, arcs_48_3}, {1, arcs_48_4}, }; static arc arcs_49_0[1] = { {111, 1}, }; static arc arcs_49_1[2] = { {33, 2}, {25, 3}, }; static arc arcs_49_2[1] = { {25, 3}, }; static arc arcs_49_3[1] = { {109, 4}, }; static arc arcs_49_4[1] = { {0, 4}, }; static state states_49[5] = { {1, arcs_49_0}, {2, arcs_49_1}, {1, arcs_49_2}, {1, arcs_49_3}, {1, arcs_49_4}, }; static arc arcs_50_0[1] = { {112, 1}, }; static arc arcs_50_1[2] = { {113, 0}, {0, 1}, }; static state states_50[2] = { {1, arcs_50_0}, {2, arcs_50_1}, }; static arc arcs_51_0[1] = { {114, 1}, }; static arc arcs_51_1[2] = { {115, 0}, {0, 1}, }; static state states_51[2] = { {1, arcs_51_0}, {2, arcs_51_1}, }; static arc arcs_52_0[2] = { {116, 1}, {117, 2}, }; static arc arcs_52_1[1] = { {114, 2}, }; static arc arcs_52_2[1] = { {0, 2}, }; static state states_52[3] = { {2, arcs_52_0}, {1, arcs_52_1}, {1, arcs_52_2}, }; static arc arcs_53_0[1] = { {103, 1}, }; static arc arcs_53_1[2] = { {118, 0}, {0, 1}, }; static state states_53[2] = { {1, arcs_53_0}, {2, arcs_53_1}, }; static arc arcs_54_0[10] = { {119, 1}, {120, 1}, {121, 1}, {122, 1}, {123, 1}, {124, 1}, {125, 1}, {97, 1}, {116, 2}, {126, 3}, }; static arc arcs_54_1[1] = { {0, 1}, }; static arc arcs_54_2[1] = { {97, 1}, }; static arc arcs_54_3[2] = { {116, 1}, {0, 3}, }; static state states_54[4] = { {10, arcs_54_0}, {1, arcs_54_1}, {1, arcs_54_2}, {2, arcs_54_3}, }; static arc arcs_55_0[1] = { {31, 1}, }; static arc arcs_55_1[1] = { {103, 2}, }; static arc arcs_55_2[1] = { {0, 2}, }; static state states_55[3] = { {1, arcs_55_0}, {1, arcs_55_1}, {1, arcs_55_2}, }; static arc arcs_56_0[1] = { {127, 1}, }; static arc arcs_56_1[2] = { {12 -- executable + those containing "python" as a -- substring (like the "python[version]" binary or -- "libpython[version].a" in case it's a shared lib). */ offset = (unsigned int)ldiptr->ldinfo_next; ldiptr = (struct ld_info *)((char*)ldiptr + offset); continue; } if ((modptr = (ModulePtr)malloc(sizeof(Module))) == NULL) { PyErr_SetString(PyExc_ImportError, strerror(errno)); while (*modlistptr) { modptr = (ModulePtr)*modlistptr; *modlistptr = (void *)modptr->next; free(modptr); } return -1; } modptr->entry = ldiptr->ldinfo_dataorg; modptr->next = NULL; if (prevmodptr == NULL) *modlistptr = (void *)modptr; else prevmodptr->next = modptr; prevmodptr = modptr; offset = (unsigned int)ldiptr->ldinfo_next; ldiptr = (struct ld_info *)((char*)ldiptr + offset); } while (offset); free(ldibuf); return 0; } static void aix_loaderror(const char *pathname) { char *message[1024], errbuf[1024]; register int i,j; struct errtab { int errNo; char *errstr; } load_errtab[] = { {L_ERROR_TOOMANY, "too many errors, rest skipped."}, {L_ERROR_NOLIB, "can't load library:"}, {L_ERROR_UNDEF, "can't find symbol in library:"}, {L_ERROR_RLDBAD, "RLD index out of range or bad relocation type:"}, {L_ERROR_FORMAT, "not a valid, executable xcoff file:"}, {L_ERROR_MEMBER, "file not an archive or does not contain requested member:"}, {L_ERROR_TYPE, "symbol table mismatch:"}, {L_ERROR_ALIGN, "text alignment in file is wrong."}, {L_ERROR_SYSTEM, "System error:"}, {L_ERROR_ERRNO, NULL} }; #define LOAD_ERRTAB_LEN (sizeof(load_errtab)/sizeof(load_errtab[0])) #define ERRBUF_APPEND(s) strncat(errbuf, s, sizeof(errbuf)-strlen(errbuf)-1) PyOS_snprintf(errbuf, sizeof(errbuf), "from module %.200s ", pathname); if (!loadquery(L_GETMESSAGES, &message[0], sizeof(message))) { ERRBUF_APPEND(strerror(errno)); ERRBUF_APPEND("\n"); } for(i = 0; message[i] && *message[i]; i++) { int nerr = atoi(message[i]); for (j=0; j<LOAD_ERRTAB_LEN ; j++) { if (nerr == load_errtab[j].errNo && load_errtab[j].errstr) ERRBUF_APPEND(load_errtab[j].errstr); } while (isdigit(Py_CHARMASK(*message[i]))) message[i]++ ; ERRBUF_APPEND(message[i]); ERRBUF_APPEND("\n"); } errbuf[strlen(errbuf)-1] = '\0'; /* trim off last newline */ PyErr_SetString(PyExc_ImportError, errbuf); return; } dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname, const char *pathname, FILE *fp) { dl_funcptr p; /* -- Invoke load() with L_NOAUTODEFER leaving the imported symbols -- of the shared module unresolved. Thus we have to resolve them -- explicitly with loadbind. The new module is loaded, then we -- resolve its symbols using the list of already loaded modules -- (only those that belong to the python executable). Get these -- with loadquery(L_GETINFO). */ static void *staticmodlistptr = NULL; if (!staticmodlistptr) if (aix_getoldmodules(&staticmodlistptr) == -1) return NULL; p = (dl_funcptr) aix_load((char *)pathname, L_NOAUTODEFER, 0); if (p == NULL) { aix_loaderror(pathname); return NULL; } return p; }