0001: // This file was generated automatically by the Snowball to Java compiler
0002:
0003: package net.sf.snowball.ext;
0004:
0005: import net.sf.snowball.SnowballProgram;
0006: import net.sf.snowball.Among;
0007:
0008: /**
0009: * Generated class implementing code defined by a snowball script.
0010: */
0011: public class PortugueseStemmer extends SnowballProgram {
0012:
0013: private Among a_0[] = { new Among("", -1, 3, "", this ),
0014: new Among("\u00E3", 0, 1, "", this ),
0015: new Among("\u00F5", 0, 2, "", this ) };
0016:
0017: private Among a_1[] = { new Among("", -1, 3, "", this ),
0018: new Among("a~", 0, 1, "", this ),
0019: new Among("o~", 0, 2, "", this ) };
0020:
0021: private Among a_2[] = { new Among("ic", -1, -1, "", this ),
0022: new Among("ad", -1, -1, "", this ),
0023: new Among("os", -1, -1, "", this ),
0024: new Among("iv", -1, 1, "", this ) };
0025:
0026: private Among a_3[] = { new Among("avel", -1, 1, "", this ),
0027: new Among("\u00EDvel", -1, 1, "", this ) };
0028:
0029: private Among a_4[] = { new Among("ic", -1, 1, "", this ),
0030: new Among("abil", -1, 1, "", this ),
0031: new Among("iv", -1, 1, "", this ) };
0032:
0033: private Among a_5[] = { new Among("ica", -1, 1, "", this ),
0034: new Among("\u00EAncia", -1, 4, "", this ),
0035: new Among("ira", -1, 9, "", this ),
0036: new Among("adora", -1, 1, "", this ),
0037: new Among("osa", -1, 1, "", this ),
0038: new Among("ista", -1, 1, "", this ),
0039: new Among("iva", -1, 8, "", this ),
0040: new Among("eza", -1, 1, "", this ),
0041: new Among("log\u00EDa", -1, 2, "", this ),
0042: new Among("idade", -1, 7, "", this ),
0043: new Among("mente", -1, 6, "", this ),
0044: new Among("amente", 10, 5, "", this ),
0045: new Among("\u00E1vel", -1, 1, "", this ),
0046: new Among("\u00EDvel", -1, 1, "", this ),
0047: new Among("uci\u00F3n", -1, 3, "", this ),
0048: new Among("ico", -1, 1, "", this ),
0049: new Among("ismo", -1, 1, "", this ),
0050: new Among("oso", -1, 1, "", this ),
0051: new Among("amento", -1, 1, "", this ),
0052: new Among("imento", -1, 1, "", this ),
0053: new Among("ivo", -1, 8, "", this ),
0054: new Among("a\u00E7a~o", -1, 1, "", this ),
0055: new Among("ador", -1, 1, "", this ),
0056: new Among("icas", -1, 1, "", this ),
0057: new Among("\u00EAncias", -1, 4, "", this ),
0058: new Among("iras", -1, 9, "", this ),
0059: new Among("adoras", -1, 1, "", this ),
0060: new Among("osas", -1, 1, "", this ),
0061: new Among("istas", -1, 1, "", this ),
0062: new Among("ivas", -1, 8, "", this ),
0063: new Among("ezas", -1, 1, "", this ),
0064: new Among("log\u00EDas", -1, 2, "", this ),
0065: new Among("idades", -1, 7, "", this ),
0066: new Among("uciones", -1, 3, "", this ),
0067: new Among("adores", -1, 1, "", this ),
0068: new Among("a\u00E7o~es", -1, 1, "", this ),
0069: new Among("icos", -1, 1, "", this ),
0070: new Among("ismos", -1, 1, "", this ),
0071: new Among("osos", -1, 1, "", this ),
0072: new Among("amentos", -1, 1, "", this ),
0073: new Among("imentos", -1, 1, "", this ),
0074: new Among("ivos", -1, 8, "", this ) };
0075:
0076: private Among a_6[] = { new Among("ada", -1, 1, "", this ),
0077: new Among("ida", -1, 1, "", this ),
0078: new Among("ia", -1, 1, "", this ),
0079: new Among("aria", 2, 1, "", this ),
0080: new Among("eria", 2, 1, "", this ),
0081: new Among("iria", 2, 1, "", this ),
0082: new Among("ara", -1, 1, "", this ),
0083: new Among("era", -1, 1, "", this ),
0084: new Among("ira", -1, 1, "", this ),
0085: new Among("ava", -1, 1, "", this ),
0086: new Among("asse", -1, 1, "", this ),
0087: new Among("esse", -1, 1, "", this ),
0088: new Among("isse", -1, 1, "", this ),
0089: new Among("aste", -1, 1, "", this ),
0090: new Among("este", -1, 1, "", this ),
0091: new Among("iste", -1, 1, "", this ),
0092: new Among("ei", -1, 1, "", this ),
0093: new Among("arei", 16, 1, "", this ),
0094: new Among("erei", 16, 1, "", this ),
0095: new Among("irei", 16, 1, "", this ),
0096: new Among("am", -1, 1, "", this ),
0097: new Among("iam", 20, 1, "", this ),
0098: new Among("ariam", 21, 1, "", this ),
0099: new Among("eriam", 21, 1, "", this ),
0100: new Among("iriam", 21, 1, "", this ),
0101: new Among("aram", 20, 1, "", this ),
0102: new Among("eram", 20, 1, "", this ),
0103: new Among("iram", 20, 1, "", this ),
0104: new Among("avam", 20, 1, "", this ),
0105: new Among("em", -1, 1, "", this ),
0106: new Among("arem", 29, 1, "", this ),
0107: new Among("erem", 29, 1, "", this ),
0108: new Among("irem", 29, 1, "", this ),
0109: new Among("assem", 29, 1, "", this ),
0110: new Among("essem", 29, 1, "", this ),
0111: new Among("issem", 29, 1, "", this ),
0112: new Among("ado", -1, 1, "", this ),
0113: new Among("ido", -1, 1, "", this ),
0114: new Among("ando", -1, 1, "", this ),
0115: new Among("endo", -1, 1, "", this ),
0116: new Among("indo", -1, 1, "", this ),
0117: new Among("ara~o", -1, 1, "", this ),
0118: new Among("era~o", -1, 1, "", this ),
0119: new Among("ira~o", -1, 1, "", this ),
0120: new Among("ar", -1, 1, "", this ),
0121: new Among("er", -1, 1, "", this ),
0122: new Among("ir", -1, 1, "", this ),
0123: new Among("as", -1, 1, "", this ),
0124: new Among("adas", 47, 1, "", this ),
0125: new Among("idas", 47, 1, "", this ),
0126: new Among("ias", 47, 1, "", this ),
0127: new Among("arias", 50, 1, "", this ),
0128: new Among("erias", 50, 1, "", this ),
0129: new Among("irias", 50, 1, "", this ),
0130: new Among("aras", 47, 1, "", this ),
0131: new Among("eras", 47, 1, "", this ),
0132: new Among("iras", 47, 1, "", this ),
0133: new Among("avas", 47, 1, "", this ),
0134: new Among("es", -1, 1, "", this ),
0135: new Among("ardes", 58, 1, "", this ),
0136: new Among("erdes", 58, 1, "", this ),
0137: new Among("irdes", 58, 1, "", this ),
0138: new Among("ares", 58, 1, "", this ),
0139: new Among("eres", 58, 1, "", this ),
0140: new Among("ires", 58, 1, "", this ),
0141: new Among("asses", 58, 1, "", this ),
0142: new Among("esses", 58, 1, "", this ),
0143: new Among("isses", 58, 1, "", this ),
0144: new Among("astes", 58, 1, "", this ),
0145: new Among("estes", 58, 1, "", this ),
0146: new Among("istes", 58, 1, "", this ),
0147: new Among("is", -1, 1, "", this ),
0148: new Among("ais", 71, 1, "", this ),
0149: new Among("eis", 71, 1, "", this ),
0150: new Among("areis", 73, 1, "", this ),
0151: new Among("ereis", 73, 1, "", this ),
0152: new Among("ireis", 73, 1, "", this ),
0153: new Among("\u00E1reis", 73, 1, "", this ),
0154: new Among("\u00E9reis", 73, 1, "", this ),
0155: new Among("\u00EDreis", 73, 1, "", this ),
0156: new Among("\u00E1sseis", 73, 1, "", this ),
0157: new Among("\u00E9sseis", 73, 1, "", this ),
0158: new Among("\u00EDsseis", 73, 1, "", this ),
0159: new Among("\u00E1veis", 73, 1, "", this ),
0160: new Among("\u00EDeis", 73, 1, "", this ),
0161: new Among("ar\u00EDeis", 84, 1, "", this ),
0162: new Among("er\u00EDeis", 84, 1, "", this ),
0163: new Among("ir\u00EDeis", 84, 1, "", this ),
0164: new Among("ados", -1, 1, "", this ),
0165: new Among("idos", -1, 1, "", this ),
0166: new Among("amos", -1, 1, "", this ),
0167: new Among("\u00E1ramos", 90, 1, "", this ),
0168: new Among("\u00E9ramos", 90, 1, "", this ),
0169: new Among("\u00EDramos", 90, 1, "", this ),
0170: new Among("\u00E1vamos", 90, 1, "", this ),
0171: new Among("\u00EDamos", 90, 1, "", this ),
0172: new Among("ar\u00EDamos", 95, 1, "", this ),
0173: new Among("er\u00EDamos", 95, 1, "", this ),
0174: new Among("ir\u00EDamos", 95, 1, "", this ),
0175: new Among("emos", -1, 1, "", this ),
0176: new Among("aremos", 99, 1, "", this ),
0177: new Among("eremos", 99, 1, "", this ),
0178: new Among("iremos", 99, 1, "", this ),
0179: new Among("\u00E1ssemos", 99, 1, "", this ),
0180: new Among("\u00EAssemos", 99, 1, "", this ),
0181: new Among("\u00EDssemos", 99, 1, "", this ),
0182: new Among("imos", -1, 1, "", this ),
0183: new Among("armos", -1, 1, "", this ),
0184: new Among("ermos", -1, 1, "", this ),
0185: new Among("irmos", -1, 1, "", this ),
0186: new Among("\u00E1mos", -1, 1, "", this ),
0187: new Among("ar\u00E1s", -1, 1, "", this ),
0188: new Among("er\u00E1s", -1, 1, "", this ),
0189: new Among("ir\u00E1s", -1, 1, "", this ),
0190: new Among("eu", -1, 1, "", this ),
0191: new Among("iu", -1, 1, "", this ),
0192: new Among("ou", -1, 1, "", this ),
0193: new Among("ar\u00E1", -1, 1, "", this ),
0194: new Among("er\u00E1", -1, 1, "", this ),
0195: new Among("ir\u00E1", -1, 1, "", this ) };
0196:
0197: private Among a_7[] = { new Among("a", -1, 1, "", this ),
0198: new Among("i", -1, 1, "", this ),
0199: new Among("o", -1, 1, "", this ),
0200: new Among("os", -1, 1, "", this ),
0201: new Among("\u00E1", -1, 1, "", this ),
0202: new Among("\u00ED", -1, 1, "", this ),
0203: new Among("\u00F3", -1, 1, "", this ) };
0204:
0205: private Among a_8[] = { new Among("e", -1, 1, "", this ),
0206: new Among("\u00E7", -1, 2, "", this ),
0207: new Among("\u00E9", -1, 1, "", this ),
0208: new Among("\u00EA", -1, 1, "", this ) };
0209:
0210: private static final char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0,
0211: 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 };
0212:
0213: private int I_p2;
0214: private int I_p1;
0215: private int I_pV;
0216:
0217: private void copy_from(PortugueseStemmer other) {
0218: I_p2 = other.I_p2;
0219: I_p1 = other.I_p1;
0220: I_pV = other.I_pV;
0221: super .copy_from(other);
0222: }
0223:
0224: private boolean r_prelude() {
0225: int among_var;
0226: int v_1;
0227: // repeat, line 36
0228: replab0: while (true) {
0229: v_1 = cursor;
0230: lab1: do {
0231: // (, line 36
0232: // [, line 37
0233: bra = cursor;
0234: // substring, line 37
0235: among_var = find_among(a_0, 3);
0236: if (among_var == 0) {
0237: break lab1;
0238: }
0239: // ], line 37
0240: ket = cursor;
0241: switch (among_var) {
0242: case 0:
0243: break lab1;
0244: case 1:
0245: // (, line 38
0246: // <-, line 38
0247: slice_from("a~");
0248: break;
0249: case 2:
0250: // (, line 39
0251: // <-, line 39
0252: slice_from("o~");
0253: break;
0254: case 3:
0255: // (, line 40
0256: // next, line 40
0257: if (cursor >= limit) {
0258: break lab1;
0259: }
0260: cursor++;
0261: break;
0262: }
0263: continue replab0;
0264: } while (false);
0265: cursor = v_1;
0266: break replab0;
0267: }
0268: return true;
0269: }
0270:
0271: private boolean r_mark_regions() {
0272: int v_1;
0273: int v_2;
0274: int v_3;
0275: int v_6;
0276: int v_8;
0277: // (, line 44
0278: I_pV = limit;
0279: I_p1 = limit;
0280: I_p2 = limit;
0281: // do, line 50
0282: v_1 = cursor;
0283: lab0: do {
0284: // (, line 50
0285: // or, line 52
0286: lab1: do {
0287: v_2 = cursor;
0288: lab2: do {
0289: // (, line 51
0290: if (!(in_grouping(g_v, 97, 250))) {
0291: break lab2;
0292: }
0293: // or, line 51
0294: lab3: do {
0295: v_3 = cursor;
0296: lab4: do {
0297: // (, line 51
0298: if (!(out_grouping(g_v, 97, 250))) {
0299: break lab4;
0300: }
0301: // gopast, line 51
0302: golab5: while (true) {
0303: lab6: do {
0304: if (!(in_grouping(g_v, 97, 250))) {
0305: break lab6;
0306: }
0307: break golab5;
0308: } while (false);
0309: if (cursor >= limit) {
0310: break lab4;
0311: }
0312: cursor++;
0313: }
0314: break lab3;
0315: } while (false);
0316: cursor = v_3;
0317: // (, line 51
0318: if (!(in_grouping(g_v, 97, 250))) {
0319: break lab2;
0320: }
0321: // gopast, line 51
0322: golab7: while (true) {
0323: lab8: do {
0324: if (!(out_grouping(g_v, 97, 250))) {
0325: break lab8;
0326: }
0327: break golab7;
0328: } while (false);
0329: if (cursor >= limit) {
0330: break lab2;
0331: }
0332: cursor++;
0333: }
0334: } while (false);
0335: break lab1;
0336: } while (false);
0337: cursor = v_2;
0338: // (, line 53
0339: if (!(out_grouping(g_v, 97, 250))) {
0340: break lab0;
0341: }
0342: // or, line 53
0343: lab9: do {
0344: v_6 = cursor;
0345: lab10: do {
0346: // (, line 53
0347: if (!(out_grouping(g_v, 97, 250))) {
0348: break lab10;
0349: }
0350: // gopast, line 53
0351: golab11: while (true) {
0352: lab12: do {
0353: if (!(in_grouping(g_v, 97, 250))) {
0354: break lab12;
0355: }
0356: break golab11;
0357: } while (false);
0358: if (cursor >= limit) {
0359: break lab10;
0360: }
0361: cursor++;
0362: }
0363: break lab9;
0364: } while (false);
0365: cursor = v_6;
0366: // (, line 53
0367: if (!(in_grouping(g_v, 97, 250))) {
0368: break lab0;
0369: }
0370: // next, line 53
0371: if (cursor >= limit) {
0372: break lab0;
0373: }
0374: cursor++;
0375: } while (false);
0376: } while (false);
0377: // setmark pV, line 54
0378: I_pV = cursor;
0379: } while (false);
0380: cursor = v_1;
0381: // do, line 56
0382: v_8 = cursor;
0383: lab13: do {
0384: // (, line 56
0385: // gopast, line 57
0386: golab14: while (true) {
0387: lab15: do {
0388: if (!(in_grouping(g_v, 97, 250))) {
0389: break lab15;
0390: }
0391: break golab14;
0392: } while (false);
0393: if (cursor >= limit) {
0394: break lab13;
0395: }
0396: cursor++;
0397: }
0398: // gopast, line 57
0399: golab16: while (true) {
0400: lab17: do {
0401: if (!(out_grouping(g_v, 97, 250))) {
0402: break lab17;
0403: }
0404: break golab16;
0405: } while (false);
0406: if (cursor >= limit) {
0407: break lab13;
0408: }
0409: cursor++;
0410: }
0411: // setmark p1, line 57
0412: I_p1 = cursor;
0413: // gopast, line 58
0414: golab18: while (true) {
0415: lab19: do {
0416: if (!(in_grouping(g_v, 97, 250))) {
0417: break lab19;
0418: }
0419: break golab18;
0420: } while (false);
0421: if (cursor >= limit) {
0422: break lab13;
0423: }
0424: cursor++;
0425: }
0426: // gopast, line 58
0427: golab20: while (true) {
0428: lab21: do {
0429: if (!(out_grouping(g_v, 97, 250))) {
0430: break lab21;
0431: }
0432: break golab20;
0433: } while (false);
0434: if (cursor >= limit) {
0435: break lab13;
0436: }
0437: cursor++;
0438: }
0439: // setmark p2, line 58
0440: I_p2 = cursor;
0441: } while (false);
0442: cursor = v_8;
0443: return true;
0444: }
0445:
0446: private boolean r_postlude() {
0447: int among_var;
0448: int v_1;
0449: // repeat, line 62
0450: replab0: while (true) {
0451: v_1 = cursor;
0452: lab1: do {
0453: // (, line 62
0454: // [, line 63
0455: bra = cursor;
0456: // substring, line 63
0457: among_var = find_among(a_1, 3);
0458: if (among_var == 0) {
0459: break lab1;
0460: }
0461: // ], line 63
0462: ket = cursor;
0463: switch (among_var) {
0464: case 0:
0465: break lab1;
0466: case 1:
0467: // (, line 64
0468: // <-, line 64
0469: slice_from("\u00E3");
0470: break;
0471: case 2:
0472: // (, line 65
0473: // <-, line 65
0474: slice_from("\u00F5");
0475: break;
0476: case 3:
0477: // (, line 66
0478: // next, line 66
0479: if (cursor >= limit) {
0480: break lab1;
0481: }
0482: cursor++;
0483: break;
0484: }
0485: continue replab0;
0486: } while (false);
0487: cursor = v_1;
0488: break replab0;
0489: }
0490: return true;
0491: }
0492:
0493: private boolean r_RV() {
0494: if (!(I_pV <= cursor)) {
0495: return false;
0496: }
0497: return true;
0498: }
0499:
0500: private boolean r_R1() {
0501: if (!(I_p1 <= cursor)) {
0502: return false;
0503: }
0504: return true;
0505: }
0506:
0507: private boolean r_R2() {
0508: if (!(I_p2 <= cursor)) {
0509: return false;
0510: }
0511: return true;
0512: }
0513:
0514: private boolean r_standard_suffix() {
0515: int among_var;
0516: int v_1;
0517: int v_2;
0518: int v_3;
0519: int v_4;
0520: // (, line 76
0521: // [, line 77
0522: ket = cursor;
0523: // substring, line 77
0524: among_var = find_among_b(a_5, 42);
0525: if (among_var == 0) {
0526: return false;
0527: }
0528: // ], line 77
0529: bra = cursor;
0530: switch (among_var) {
0531: case 0:
0532: return false;
0533: case 1:
0534: // (, line 91
0535: // call R2, line 92
0536: if (!r_R2()) {
0537: return false;
0538: }
0539: // delete, line 92
0540: slice_del();
0541: break;
0542: case 2:
0543: // (, line 96
0544: // call R2, line 97
0545: if (!r_R2()) {
0546: return false;
0547: }
0548: // <-, line 97
0549: slice_from("log");
0550: break;
0551: case 3:
0552: // (, line 100
0553: // call R2, line 101
0554: if (!r_R2()) {
0555: return false;
0556: }
0557: // <-, line 101
0558: slice_from("u");
0559: break;
0560: case 4:
0561: // (, line 104
0562: // call R2, line 105
0563: if (!r_R2()) {
0564: return false;
0565: }
0566: // <-, line 105
0567: slice_from("ente");
0568: break;
0569: case 5:
0570: // (, line 108
0571: // call R1, line 109
0572: if (!r_R1()) {
0573: return false;
0574: }
0575: // delete, line 109
0576: slice_del();
0577: // try, line 110
0578: v_1 = limit - cursor;
0579: lab0: do {
0580: // (, line 110
0581: // [, line 111
0582: ket = cursor;
0583: // substring, line 111
0584: among_var = find_among_b(a_2, 4);
0585: if (among_var == 0) {
0586: cursor = limit - v_1;
0587: break lab0;
0588: }
0589: // ], line 111
0590: bra = cursor;
0591: // call R2, line 111
0592: if (!r_R2()) {
0593: cursor = limit - v_1;
0594: break lab0;
0595: }
0596: // delete, line 111
0597: slice_del();
0598: switch (among_var) {
0599: case 0:
0600: cursor = limit - v_1;
0601: break lab0;
0602: case 1:
0603: // (, line 112
0604: // [, line 112
0605: ket = cursor;
0606: // literal, line 112
0607: if (!(eq_s_b(2, "at"))) {
0608: cursor = limit - v_1;
0609: break lab0;
0610: }
0611: // ], line 112
0612: bra = cursor;
0613: // call R2, line 112
0614: if (!r_R2()) {
0615: cursor = limit - v_1;
0616: break lab0;
0617: }
0618: // delete, line 112
0619: slice_del();
0620: break;
0621: }
0622: } while (false);
0623: break;
0624: case 6:
0625: // (, line 120
0626: // call R2, line 121
0627: if (!r_R2()) {
0628: return false;
0629: }
0630: // delete, line 121
0631: slice_del();
0632: // try, line 122
0633: v_2 = limit - cursor;
0634: lab1: do {
0635: // (, line 122
0636: // [, line 123
0637: ket = cursor;
0638: // substring, line 123
0639: among_var = find_among_b(a_3, 2);
0640: if (among_var == 0) {
0641: cursor = limit - v_2;
0642: break lab1;
0643: }
0644: // ], line 123
0645: bra = cursor;
0646: switch (among_var) {
0647: case 0:
0648: cursor = limit - v_2;
0649: break lab1;
0650: case 1:
0651: // (, line 125
0652: // call R2, line 125
0653: if (!r_R2()) {
0654: cursor = limit - v_2;
0655: break lab1;
0656: }
0657: // delete, line 125
0658: slice_del();
0659: break;
0660: }
0661: } while (false);
0662: break;
0663: case 7:
0664: // (, line 131
0665: // call R2, line 132
0666: if (!r_R2()) {
0667: return false;
0668: }
0669: // delete, line 132
0670: slice_del();
0671: // try, line 133
0672: v_3 = limit - cursor;
0673: lab2: do {
0674: // (, line 133
0675: // [, line 134
0676: ket = cursor;
0677: // substring, line 134
0678: among_var = find_among_b(a_4, 3);
0679: if (among_var == 0) {
0680: cursor = limit - v_3;
0681: break lab2;
0682: }
0683: // ], line 134
0684: bra = cursor;
0685: switch (among_var) {
0686: case 0:
0687: cursor = limit - v_3;
0688: break lab2;
0689: case 1:
0690: // (, line 137
0691: // call R2, line 137
0692: if (!r_R2()) {
0693: cursor = limit - v_3;
0694: break lab2;
0695: }
0696: // delete, line 137
0697: slice_del();
0698: break;
0699: }
0700: } while (false);
0701: break;
0702: case 8:
0703: // (, line 143
0704: // call R2, line 144
0705: if (!r_R2()) {
0706: return false;
0707: }
0708: // delete, line 144
0709: slice_del();
0710: // try, line 145
0711: v_4 = limit - cursor;
0712: lab3: do {
0713: // (, line 145
0714: // [, line 146
0715: ket = cursor;
0716: // literal, line 146
0717: if (!(eq_s_b(2, "at"))) {
0718: cursor = limit - v_4;
0719: break lab3;
0720: }
0721: // ], line 146
0722: bra = cursor;
0723: // call R2, line 146
0724: if (!r_R2()) {
0725: cursor = limit - v_4;
0726: break lab3;
0727: }
0728: // delete, line 146
0729: slice_del();
0730: } while (false);
0731: break;
0732: case 9:
0733: // (, line 150
0734: // call RV, line 151
0735: if (!r_RV()) {
0736: return false;
0737: }
0738: // literal, line 151
0739: if (!(eq_s_b(1, "e"))) {
0740: return false;
0741: }
0742: // <-, line 152
0743: slice_from("ir");
0744: break;
0745: }
0746: return true;
0747: }
0748:
0749: private boolean r_verb_suffix() {
0750: int among_var;
0751: int v_1;
0752: int v_2;
0753: // setlimit, line 157
0754: v_1 = limit - cursor;
0755: // tomark, line 157
0756: if (cursor < I_pV) {
0757: return false;
0758: }
0759: cursor = I_pV;
0760: v_2 = limit_backward;
0761: limit_backward = cursor;
0762: cursor = limit - v_1;
0763: // (, line 157
0764: // [, line 158
0765: ket = cursor;
0766: // substring, line 158
0767: among_var = find_among_b(a_6, 120);
0768: if (among_var == 0) {
0769: limit_backward = v_2;
0770: return false;
0771: }
0772: // ], line 158
0773: bra = cursor;
0774: switch (among_var) {
0775: case 0:
0776: limit_backward = v_2;
0777: return false;
0778: case 1:
0779: // (, line 177
0780: // delete, line 177
0781: slice_del();
0782: break;
0783: }
0784: limit_backward = v_2;
0785: return true;
0786: }
0787:
0788: private boolean r_residual_suffix() {
0789: int among_var;
0790: // (, line 181
0791: // [, line 182
0792: ket = cursor;
0793: // substring, line 182
0794: among_var = find_among_b(a_7, 7);
0795: if (among_var == 0) {
0796: return false;
0797: }
0798: // ], line 182
0799: bra = cursor;
0800: switch (among_var) {
0801: case 0:
0802: return false;
0803: case 1:
0804: // (, line 185
0805: // call RV, line 185
0806: if (!r_RV()) {
0807: return false;
0808: }
0809: // delete, line 185
0810: slice_del();
0811: break;
0812: }
0813: return true;
0814: }
0815:
0816: private boolean r_residual_form() {
0817: int among_var;
0818: int v_1;
0819: int v_2;
0820: int v_3;
0821: // (, line 189
0822: // [, line 190
0823: ket = cursor;
0824: // substring, line 190
0825: among_var = find_among_b(a_8, 4);
0826: if (among_var == 0) {
0827: return false;
0828: }
0829: // ], line 190
0830: bra = cursor;
0831: switch (among_var) {
0832: case 0:
0833: return false;
0834: case 1:
0835: // (, line 192
0836: // call RV, line 192
0837: if (!r_RV()) {
0838: return false;
0839: }
0840: // delete, line 192
0841: slice_del();
0842: // [, line 192
0843: ket = cursor;
0844: // or, line 192
0845: lab0: do {
0846: v_1 = limit - cursor;
0847: lab1: do {
0848: // (, line 192
0849: // literal, line 192
0850: if (!(eq_s_b(1, "u"))) {
0851: break lab1;
0852: }
0853: // ], line 192
0854: bra = cursor;
0855: // test, line 192
0856: v_2 = limit - cursor;
0857: // literal, line 192
0858: if (!(eq_s_b(1, "g"))) {
0859: break lab1;
0860: }
0861: cursor = limit - v_2;
0862: break lab0;
0863: } while (false);
0864: cursor = limit - v_1;
0865: // (, line 193
0866: // literal, line 193
0867: if (!(eq_s_b(1, "i"))) {
0868: return false;
0869: }
0870: // ], line 193
0871: bra = cursor;
0872: // test, line 193
0873: v_3 = limit - cursor;
0874: // literal, line 193
0875: if (!(eq_s_b(1, "c"))) {
0876: return false;
0877: }
0878: cursor = limit - v_3;
0879: } while (false);
0880: // call RV, line 193
0881: if (!r_RV()) {
0882: return false;
0883: }
0884: // delete, line 193
0885: slice_del();
0886: break;
0887: case 2:
0888: // (, line 194
0889: // <-, line 194
0890: slice_from("c");
0891: break;
0892: }
0893: return true;
0894: }
0895:
0896: public boolean stem() {
0897: int v_1;
0898: int v_2;
0899: int v_3;
0900: int v_4;
0901: int v_5;
0902: int v_6;
0903: int v_7;
0904: int v_8;
0905: int v_9;
0906: int v_10;
0907: // (, line 199
0908: // do, line 200
0909: v_1 = cursor;
0910: lab0: do {
0911: // call prelude, line 200
0912: if (!r_prelude()) {
0913: break lab0;
0914: }
0915: } while (false);
0916: cursor = v_1;
0917: // do, line 201
0918: v_2 = cursor;
0919: lab1: do {
0920: // call mark_regions, line 201
0921: if (!r_mark_regions()) {
0922: break lab1;
0923: }
0924: } while (false);
0925: cursor = v_2;
0926: // backwards, line 202
0927: limit_backward = cursor;
0928: cursor = limit;
0929: // (, line 202
0930: // do, line 203
0931: v_3 = limit - cursor;
0932: lab2: do {
0933: // (, line 203
0934: // or, line 207
0935: lab3: do {
0936: v_4 = limit - cursor;
0937: lab4: do {
0938: // (, line 204
0939: // and, line 205
0940: v_5 = limit - cursor;
0941: // (, line 204
0942: // or, line 204
0943: lab5: do {
0944: v_6 = limit - cursor;
0945: lab6: do {
0946: // call standard_suffix, line 204
0947: if (!r_standard_suffix()) {
0948: break lab6;
0949: }
0950: break lab5;
0951: } while (false);
0952: cursor = limit - v_6;
0953: // call verb_suffix, line 204
0954: if (!r_verb_suffix()) {
0955: break lab4;
0956: }
0957: } while (false);
0958: cursor = limit - v_5;
0959: // do, line 205
0960: v_7 = limit - cursor;
0961: lab7: do {
0962: // (, line 205
0963: // [, line 205
0964: ket = cursor;
0965: // literal, line 205
0966: if (!(eq_s_b(1, "i"))) {
0967: break lab7;
0968: }
0969: // ], line 205
0970: bra = cursor;
0971: // test, line 205
0972: v_8 = limit - cursor;
0973: // literal, line 205
0974: if (!(eq_s_b(1, "c"))) {
0975: break lab7;
0976: }
0977: cursor = limit - v_8;
0978: // call RV, line 205
0979: if (!r_RV()) {
0980: break lab7;
0981: }
0982: // delete, line 205
0983: slice_del();
0984: } while (false);
0985: cursor = limit - v_7;
0986: break lab3;
0987: } while (false);
0988: cursor = limit - v_4;
0989: // call residual_suffix, line 207
0990: if (!r_residual_suffix()) {
0991: break lab2;
0992: }
0993: } while (false);
0994: } while (false);
0995: cursor = limit - v_3;
0996: // do, line 209
0997: v_9 = limit - cursor;
0998: lab8: do {
0999: // call residual_form, line 209
1000: if (!r_residual_form()) {
1001: break lab8;
1002: }
1003: } while (false);
1004: cursor = limit - v_9;
1005: cursor = limit_backward; // do, line 211
1006: v_10 = cursor;
1007: lab9: do {
1008: // call postlude, line 211
1009: if (!r_postlude()) {
1010: break lab9;
1011: }
1012: } while (false);
1013: cursor = v_10;
1014: return true;
1015: }
1016:
1017: }
|