⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stem_iso_8859_1_porter.c

📁 postgresql8.3.4源码,开源数据库
💻 C
📖 第 1 页 / 共 2 页
字号:
    return 1;}static int r_Step_2(struct SN_env * z) {    int among_var;    z->ket = z->c; /* [, line 58 */    if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;    among_var = find_among_b(z, a_3, 20); /* substring, line 58 */    if (!(among_var)) return 0;    z->bra = z->c; /* ], line 58 */    {   int ret = r_R1(z);        if (ret == 0) return 0; /* call R1, line 58 */        if (ret < 0) return ret;    }    switch(among_var) {        case 0: return 0;        case 1:            {   int ret = slice_from_s(z, 4, s_8); /* <-, line 59 */                if (ret < 0) return ret;            }            break;        case 2:            {   int ret = slice_from_s(z, 4, s_9); /* <-, line 60 */                if (ret < 0) return ret;            }            break;        case 3:            {   int ret = slice_from_s(z, 4, s_10); /* <-, line 61 */                if (ret < 0) return ret;            }            break;        case 4:            {   int ret = slice_from_s(z, 4, s_11); /* <-, line 62 */                if (ret < 0) return ret;            }            break;        case 5:            {   int ret = slice_from_s(z, 3, s_12); /* <-, line 63 */                if (ret < 0) return ret;            }            break;        case 6:            {   int ret = slice_from_s(z, 1, s_13); /* <-, line 64 */                if (ret < 0) return ret;            }            break;        case 7:            {   int ret = slice_from_s(z, 3, s_14); /* <-, line 66 */                if (ret < 0) return ret;            }            break;        case 8:            {   int ret = slice_from_s(z, 3, s_15); /* <-, line 68 */                if (ret < 0) return ret;            }            break;        case 9:            {   int ret = slice_from_s(z, 2, s_16); /* <-, line 69 */                if (ret < 0) return ret;            }            break;        case 10:            {   int ret = slice_from_s(z, 2, s_17); /* <-, line 71 */                if (ret < 0) return ret;            }            break;        case 11:            {   int ret = slice_from_s(z, 3, s_18); /* <-, line 72 */                if (ret < 0) return ret;            }            break;        case 12:            {   int ret = slice_from_s(z, 3, s_19); /* <-, line 74 */                if (ret < 0) return ret;            }            break;        case 13:            {   int ret = slice_from_s(z, 3, s_20); /* <-, line 76 */                if (ret < 0) return ret;            }            break;        case 14:            {   int ret = slice_from_s(z, 3, s_21); /* <-, line 77 */                if (ret < 0) return ret;            }            break;    }    return 1;}static int r_Step_3(struct SN_env * z) {    int among_var;    z->ket = z->c; /* [, line 82 */    if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;    among_var = find_among_b(z, a_4, 7); /* substring, line 82 */    if (!(among_var)) return 0;    z->bra = z->c; /* ], line 82 */    {   int ret = r_R1(z);        if (ret == 0) return 0; /* call R1, line 82 */        if (ret < 0) return ret;    }    switch(among_var) {        case 0: return 0;        case 1:            {   int ret = slice_from_s(z, 2, s_22); /* <-, line 83 */                if (ret < 0) return ret;            }            break;        case 2:            {   int ret = slice_from_s(z, 2, s_23); /* <-, line 85 */                if (ret < 0) return ret;            }            break;        case 3:            {   int ret = slice_del(z); /* delete, line 87 */                if (ret < 0) return ret;            }            break;    }    return 1;}static int r_Step_4(struct SN_env * z) {    int among_var;    z->ket = z->c; /* [, line 92 */    if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;    among_var = find_among_b(z, a_5, 19); /* substring, line 92 */    if (!(among_var)) return 0;    z->bra = z->c; /* ], line 92 */    {   int ret = r_R2(z);        if (ret == 0) return 0; /* call R2, line 92 */        if (ret < 0) return ret;    }    switch(among_var) {        case 0: return 0;        case 1:            {   int ret = slice_del(z); /* delete, line 95 */                if (ret < 0) return ret;            }            break;        case 2:            {   int m1 = z->l - z->c; (void)m1; /* or, line 96 */                if (!(eq_s_b(z, 1, s_24))) goto lab1;                goto lab0;            lab1:                z->c = z->l - m1;                if (!(eq_s_b(z, 1, s_25))) return 0;            }        lab0:            {   int ret = slice_del(z); /* delete, line 96 */                if (ret < 0) return ret;            }            break;    }    return 1;}static int r_Step_5a(struct SN_env * z) {    z->ket = z->c; /* [, line 101 */    if (!(eq_s_b(z, 1, s_26))) return 0;    z->bra = z->c; /* ], line 101 */    {   int m1 = z->l - z->c; (void)m1; /* or, line 102 */        {   int ret = r_R2(z);            if (ret == 0) goto lab1; /* call R2, line 102 */            if (ret < 0) return ret;        }        goto lab0;    lab1:        z->c = z->l - m1;        {   int ret = r_R1(z);            if (ret == 0) return 0; /* call R1, line 102 */            if (ret < 0) return ret;        }        {   int m2 = z->l - z->c; (void)m2; /* not, line 102 */            {   int ret = r_shortv(z);                if (ret == 0) goto lab2; /* call shortv, line 102 */                if (ret < 0) return ret;            }            return 0;        lab2:            z->c = z->l - m2;        }    }lab0:    {   int ret = slice_del(z); /* delete, line 103 */        if (ret < 0) return ret;    }    return 1;}static int r_Step_5b(struct SN_env * z) {    z->ket = z->c; /* [, line 107 */    if (!(eq_s_b(z, 1, s_27))) return 0;    z->bra = z->c; /* ], line 107 */    {   int ret = r_R2(z);        if (ret == 0) return 0; /* call R2, line 108 */        if (ret < 0) return ret;    }    if (!(eq_s_b(z, 1, s_28))) return 0;    {   int ret = slice_del(z); /* delete, line 109 */        if (ret < 0) return ret;    }    return 1;}extern int porter_ISO_8859_1_stem(struct SN_env * z) {    z->B[0] = 0; /* unset Y_found, line 115 */    {   int c1 = z->c; /* do, line 116 */        z->bra = z->c; /* [, line 116 */        if (!(eq_s(z, 1, s_29))) goto lab0;        z->ket = z->c; /* ], line 116 */        {   int ret = slice_from_s(z, 1, s_30); /* <-, line 116 */            if (ret < 0) return ret;        }        z->B[0] = 1; /* set Y_found, line 116 */    lab0:        z->c = c1;    }    {   int c2 = z->c; /* do, line 117 */        while(1) { /* repeat, line 117 */            int c3 = z->c;            while(1) { /* goto, line 117 */                int c4 = z->c;                if (in_grouping(z, g_v, 97, 121, 0)) goto lab3;                z->bra = z->c; /* [, line 117 */                if (!(eq_s(z, 1, s_31))) goto lab3;                z->ket = z->c; /* ], line 117 */                z->c = c4;                break;            lab3:                z->c = c4;                if (z->c >= z->l) goto lab2;                z->c++; /* goto, line 117 */            }            {   int ret = slice_from_s(z, 1, s_32); /* <-, line 117 */                if (ret < 0) return ret;            }            z->B[0] = 1; /* set Y_found, line 117 */            continue;        lab2:            z->c = c3;            break;        }        z->c = c2;    }    z->I[0] = z->l;    z->I[1] = z->l;    {   int c5 = z->c; /* do, line 121 */        {    /* gopast */ /* grouping v, line 122 */            int ret = out_grouping(z, g_v, 97, 121, 1);            if (ret < 0) goto lab4;            z->c += ret;        }        {    /* gopast */ /* non v, line 122 */            int ret = in_grouping(z, g_v, 97, 121, 1);            if (ret < 0) goto lab4;            z->c += ret;        }        z->I[0] = z->c; /* setmark p1, line 122 */        {    /* gopast */ /* grouping v, line 123 */            int ret = out_grouping(z, g_v, 97, 121, 1);            if (ret < 0) goto lab4;            z->c += ret;        }        {    /* gopast */ /* non v, line 123 */            int ret = in_grouping(z, g_v, 97, 121, 1);            if (ret < 0) goto lab4;            z->c += ret;        }        z->I[1] = z->c; /* setmark p2, line 123 */    lab4:        z->c = c5;    }    z->lb = z->c; z->c = z->l; /* backwards, line 126 */    {   int m6 = z->l - z->c; (void)m6; /* do, line 127 */        {   int ret = r_Step_1a(z);            if (ret == 0) goto lab5; /* call Step_1a, line 127 */            if (ret < 0) return ret;        }    lab5:        z->c = z->l - m6;    }    {   int m7 = z->l - z->c; (void)m7; /* do, line 128 */        {   int ret = r_Step_1b(z);            if (ret == 0) goto lab6; /* call Step_1b, line 128 */            if (ret < 0) return ret;        }    lab6:        z->c = z->l - m7;    }    {   int m8 = z->l - z->c; (void)m8; /* do, line 129 */        {   int ret = r_Step_1c(z);            if (ret == 0) goto lab7; /* call Step_1c, line 129 */            if (ret < 0) return ret;        }    lab7:        z->c = z->l - m8;    }    {   int m9 = z->l - z->c; (void)m9; /* do, line 130 */        {   int ret = r_Step_2(z);            if (ret == 0) goto lab8; /* call Step_2, line 130 */            if (ret < 0) return ret;        }    lab8:        z->c = z->l - m9;    }    {   int m10 = z->l - z->c; (void)m10; /* do, line 131 */        {   int ret = r_Step_3(z);            if (ret == 0) goto lab9; /* call Step_3, line 131 */            if (ret < 0) return ret;        }    lab9:        z->c = z->l - m10;    }    {   int m11 = z->l - z->c; (void)m11; /* do, line 132 */        {   int ret = r_Step_4(z);            if (ret == 0) goto lab10; /* call Step_4, line 132 */            if (ret < 0) return ret;        }    lab10:        z->c = z->l - m11;    }    {   int m12 = z->l - z->c; (void)m12; /* do, line 133 */        {   int ret = r_Step_5a(z);            if (ret == 0) goto lab11; /* call Step_5a, line 133 */            if (ret < 0) return ret;        }    lab11:        z->c = z->l - m12;    }    {   int m13 = z->l - z->c; (void)m13; /* do, line 134 */        {   int ret = r_Step_5b(z);            if (ret == 0) goto lab12; /* call Step_5b, line 134 */            if (ret < 0) return ret;        }    lab12:        z->c = z->l - m13;    }    z->c = z->lb;    {   int c14 = z->c; /* do, line 137 */        if (!(z->B[0])) goto lab13; /* Boolean test Y_found, line 137 */        while(1) { /* repeat, line 137 */            int c15 = z->c;            while(1) { /* goto, line 137 */                int c16 = z->c;                z->bra = z->c; /* [, line 137 */                if (!(eq_s(z, 1, s_33))) goto lab15;                z->ket = z->c; /* ], line 137 */                z->c = c16;                break;            lab15:                z->c = c16;                if (z->c >= z->l) goto lab14;                z->c++; /* goto, line 137 */            }            {   int ret = slice_from_s(z, 1, s_34); /* <-, line 137 */                if (ret < 0) return ret;            }            continue;        lab14:            z->c = c15;            break;        }    lab13:        z->c = c14;    }    return 1;}extern struct SN_env * porter_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 1); }extern void porter_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -