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 ItalianStemmer extends SnowballProgram {
0012:
0013: private Among a_0[] = { new Among("", -1, 7, "", this ),
0014: new Among("qu", 0, 6, "", this ),
0015: new Among("\u00E1", 0, 1, "", this ),
0016: new Among("\u00E9", 0, 2, "", this ),
0017: new Among("\u00ED", 0, 3, "", this ),
0018: new Among("\u00F3", 0, 4, "", this ),
0019: new Among("\u00FA", 0, 5, "", this ) };
0020:
0021: private Among a_1[] = { new Among("", -1, 3, "", this ),
0022: new Among("I", 0, 1, "", this ),
0023: new Among("U", 0, 2, "", this ) };
0024:
0025: private Among a_2[] = { new Among("la", -1, -1, "", this ),
0026: new Among("cela", 0, -1, "", this ),
0027: new Among("gliela", 0, -1, "", this ),
0028: new Among("mela", 0, -1, "", this ),
0029: new Among("tela", 0, -1, "", this ),
0030: new Among("vela", 0, -1, "", this ),
0031: new Among("le", -1, -1, "", this ),
0032: new Among("cele", 6, -1, "", this ),
0033: new Among("gliele", 6, -1, "", this ),
0034: new Among("mele", 6, -1, "", this ),
0035: new Among("tele", 6, -1, "", this ),
0036: new Among("vele", 6, -1, "", this ),
0037: new Among("ne", -1, -1, "", this ),
0038: new Among("cene", 12, -1, "", this ),
0039: new Among("gliene", 12, -1, "", this ),
0040: new Among("mene", 12, -1, "", this ),
0041: new Among("sene", 12, -1, "", this ),
0042: new Among("tene", 12, -1, "", this ),
0043: new Among("vene", 12, -1, "", this ),
0044: new Among("ci", -1, -1, "", this ),
0045: new Among("li", -1, -1, "", this ),
0046: new Among("celi", 20, -1, "", this ),
0047: new Among("glieli", 20, -1, "", this ),
0048: new Among("meli", 20, -1, "", this ),
0049: new Among("teli", 20, -1, "", this ),
0050: new Among("veli", 20, -1, "", this ),
0051: new Among("gli", 20, -1, "", this ),
0052: new Among("mi", -1, -1, "", this ),
0053: new Among("si", -1, -1, "", this ),
0054: new Among("ti", -1, -1, "", this ),
0055: new Among("vi", -1, -1, "", this ),
0056: new Among("lo", -1, -1, "", this ),
0057: new Among("celo", 31, -1, "", this ),
0058: new Among("glielo", 31, -1, "", this ),
0059: new Among("melo", 31, -1, "", this ),
0060: new Among("telo", 31, -1, "", this ),
0061: new Among("velo", 31, -1, "", this ) };
0062:
0063: private Among a_3[] = { new Among("ando", -1, 1, "", this ),
0064: new Among("endo", -1, 1, "", this ),
0065: new Among("ar", -1, 2, "", this ),
0066: new Among("er", -1, 2, "", this ),
0067: new Among("ir", -1, 2, "", this ) };
0068:
0069: private Among a_4[] = { new Among("ic", -1, -1, "", this ),
0070: new Among("abil", -1, -1, "", this ),
0071: new Among("os", -1, -1, "", this ),
0072: new Among("iv", -1, 1, "", this ) };
0073:
0074: private Among a_5[] = { new Among("ic", -1, 1, "", this ),
0075: new Among("abil", -1, 1, "", this ),
0076: new Among("iv", -1, 1, "", this ) };
0077:
0078: private Among a_6[] = { new Among("ica", -1, 1, "", this ),
0079: new Among("logia", -1, 3, "", this ),
0080: new Among("osa", -1, 1, "", this ),
0081: new Among("ista", -1, 1, "", this ),
0082: new Among("iva", -1, 9, "", this ),
0083: new Among("anza", -1, 1, "", this ),
0084: new Among("enza", -1, 5, "", this ),
0085: new Among("ice", -1, 1, "", this ),
0086: new Among("atrice", 7, 1, "", this ),
0087: new Among("iche", -1, 1, "", this ),
0088: new Among("logie", -1, 3, "", this ),
0089: new Among("abile", -1, 1, "", this ),
0090: new Among("ibile", -1, 1, "", this ),
0091: new Among("usione", -1, 4, "", this ),
0092: new Among("azione", -1, 2, "", this ),
0093: new Among("uzione", -1, 4, "", this ),
0094: new Among("atore", -1, 2, "", this ),
0095: new Among("ose", -1, 1, "", this ),
0096: new Among("mente", -1, 1, "", this ),
0097: new Among("amente", 18, 7, "", this ),
0098: new Among("iste", -1, 1, "", this ),
0099: new Among("ive", -1, 9, "", this ),
0100: new Among("anze", -1, 1, "", this ),
0101: new Among("enze", -1, 5, "", this ),
0102: new Among("ici", -1, 1, "", this ),
0103: new Among("atrici", 24, 1, "", this ),
0104: new Among("ichi", -1, 1, "", this ),
0105: new Among("abili", -1, 1, "", this ),
0106: new Among("ibili", -1, 1, "", this ),
0107: new Among("ismi", -1, 1, "", this ),
0108: new Among("usioni", -1, 4, "", this ),
0109: new Among("azioni", -1, 2, "", this ),
0110: new Among("uzioni", -1, 4, "", this ),
0111: new Among("atori", -1, 2, "", this ),
0112: new Among("osi", -1, 1, "", this ),
0113: new Among("amenti", -1, 6, "", this ),
0114: new Among("imenti", -1, 6, "", this ),
0115: new Among("isti", -1, 1, "", this ),
0116: new Among("ivi", -1, 9, "", this ),
0117: new Among("ico", -1, 1, "", this ),
0118: new Among("ismo", -1, 1, "", this ),
0119: new Among("oso", -1, 1, "", this ),
0120: new Among("amento", -1, 6, "", this ),
0121: new Among("imento", -1, 6, "", this ),
0122: new Among("ivo", -1, 9, "", this ),
0123: new Among("it\u00E0", -1, 8, "", this ),
0124: new Among("ist\u00E0", -1, 1, "", this ),
0125: new Among("ist\u00E8", -1, 1, "", this ),
0126: new Among("ist\u00EC", -1, 1, "", this ) };
0127:
0128: private Among a_7[] = { new Among("isca", -1, 1, "", this ),
0129: new Among("enda", -1, 1, "", this ),
0130: new Among("ata", -1, 1, "", this ),
0131: new Among("ita", -1, 1, "", this ),
0132: new Among("uta", -1, 1, "", this ),
0133: new Among("ava", -1, 1, "", this ),
0134: new Among("eva", -1, 1, "", this ),
0135: new Among("iva", -1, 1, "", this ),
0136: new Among("erebbe", -1, 1, "", this ),
0137: new Among("irebbe", -1, 1, "", this ),
0138: new Among("isce", -1, 1, "", this ),
0139: new Among("ende", -1, 1, "", this ),
0140: new Among("are", -1, 1, "", this ),
0141: new Among("ere", -1, 1, "", this ),
0142: new Among("ire", -1, 1, "", this ),
0143: new Among("asse", -1, 1, "", this ),
0144: new Among("ate", -1, 1, "", this ),
0145: new Among("avate", 16, 1, "", this ),
0146: new Among("evate", 16, 1, "", this ),
0147: new Among("ivate", 16, 1, "", this ),
0148: new Among("ete", -1, 1, "", this ),
0149: new Among("erete", 20, 1, "", this ),
0150: new Among("irete", 20, 1, "", this ),
0151: new Among("ite", -1, 1, "", this ),
0152: new Among("ereste", -1, 1, "", this ),
0153: new Among("ireste", -1, 1, "", this ),
0154: new Among("ute", -1, 1, "", this ),
0155: new Among("erai", -1, 1, "", this ),
0156: new Among("irai", -1, 1, "", this ),
0157: new Among("isci", -1, 1, "", this ),
0158: new Among("endi", -1, 1, "", this ),
0159: new Among("erei", -1, 1, "", this ),
0160: new Among("irei", -1, 1, "", this ),
0161: new Among("assi", -1, 1, "", this ),
0162: new Among("ati", -1, 1, "", this ),
0163: new Among("iti", -1, 1, "", this ),
0164: new Among("eresti", -1, 1, "", this ),
0165: new Among("iresti", -1, 1, "", this ),
0166: new Among("uti", -1, 1, "", this ),
0167: new Among("avi", -1, 1, "", this ),
0168: new Among("evi", -1, 1, "", this ),
0169: new Among("ivi", -1, 1, "", this ),
0170: new Among("isco", -1, 1, "", this ),
0171: new Among("ando", -1, 1, "", this ),
0172: new Among("endo", -1, 1, "", this ),
0173: new Among("Yamo", -1, 1, "", this ),
0174: new Among("iamo", -1, 1, "", this ),
0175: new Among("avamo", -1, 1, "", this ),
0176: new Among("evamo", -1, 1, "", this ),
0177: new Among("ivamo", -1, 1, "", this ),
0178: new Among("eremo", -1, 1, "", this ),
0179: new Among("iremo", -1, 1, "", this ),
0180: new Among("assimo", -1, 1, "", this ),
0181: new Among("ammo", -1, 1, "", this ),
0182: new Among("emmo", -1, 1, "", this ),
0183: new Among("eremmo", 54, 1, "", this ),
0184: new Among("iremmo", 54, 1, "", this ),
0185: new Among("immo", -1, 1, "", this ),
0186: new Among("ano", -1, 1, "", this ),
0187: new Among("iscano", 58, 1, "", this ),
0188: new Among("avano", 58, 1, "", this ),
0189: new Among("evano", 58, 1, "", this ),
0190: new Among("ivano", 58, 1, "", this ),
0191: new Among("eranno", -1, 1, "", this ),
0192: new Among("iranno", -1, 1, "", this ),
0193: new Among("ono", -1, 1, "", this ),
0194: new Among("iscono", 65, 1, "", this ),
0195: new Among("arono", 65, 1, "", this ),
0196: new Among("erono", 65, 1, "", this ),
0197: new Among("irono", 65, 1, "", this ),
0198: new Among("erebbero", -1, 1, "", this ),
0199: new Among("irebbero", -1, 1, "", this ),
0200: new Among("assero", -1, 1, "", this ),
0201: new Among("essero", -1, 1, "", this ),
0202: new Among("issero", -1, 1, "", this ),
0203: new Among("ato", -1, 1, "", this ),
0204: new Among("ito", -1, 1, "", this ),
0205: new Among("uto", -1, 1, "", this ),
0206: new Among("avo", -1, 1, "", this ),
0207: new Among("evo", -1, 1, "", this ),
0208: new Among("ivo", -1, 1, "", this ),
0209: new Among("ar", -1, 1, "", this ),
0210: new Among("ir", -1, 1, "", this ),
0211: new Among("er\u00E0", -1, 1, "", this ),
0212: new Among("ir\u00E0", -1, 1, "", this ),
0213: new Among("er\u00F2", -1, 1, "", this ),
0214: new Among("ir\u00F2", -1, 1, "", this ) };
0215:
0216: private static final char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0,
0217: 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 };
0218:
0219: private static final char g_AEIO[] = { 17, 65, 0, 0, 0, 0, 0, 0, 0,
0220: 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 };
0221:
0222: private static final char g_CG[] = { 17 };
0223:
0224: private int I_p2;
0225: private int I_p1;
0226: private int I_pV;
0227:
0228: private void copy_from(ItalianStemmer other) {
0229: I_p2 = other.I_p2;
0230: I_p1 = other.I_p1;
0231: I_pV = other.I_pV;
0232: super .copy_from(other);
0233: }
0234:
0235: private boolean r_prelude() {
0236: int among_var;
0237: int v_1;
0238: int v_2;
0239: int v_3;
0240: int v_4;
0241: int v_5;
0242: // (, line 34
0243: // test, line 35
0244: v_1 = cursor;
0245: // repeat, line 35
0246: replab0: while (true) {
0247: v_2 = cursor;
0248: lab1: do {
0249: // (, line 35
0250: // [, line 36
0251: bra = cursor;
0252: // substring, line 36
0253: among_var = find_among(a_0, 7);
0254: if (among_var == 0) {
0255: break lab1;
0256: }
0257: // ], line 36
0258: ket = cursor;
0259: switch (among_var) {
0260: case 0:
0261: break lab1;
0262: case 1:
0263: // (, line 37
0264: // <-, line 37
0265: slice_from("\u00E0");
0266: break;
0267: case 2:
0268: // (, line 38
0269: // <-, line 38
0270: slice_from("\u00E8");
0271: break;
0272: case 3:
0273: // (, line 39
0274: // <-, line 39
0275: slice_from("\u00EC");
0276: break;
0277: case 4:
0278: // (, line 40
0279: // <-, line 40
0280: slice_from("\u00F2");
0281: break;
0282: case 5:
0283: // (, line 41
0284: // <-, line 41
0285: slice_from("\u00F9");
0286: break;
0287: case 6:
0288: // (, line 42
0289: // <-, line 42
0290: slice_from("qU");
0291: break;
0292: case 7:
0293: // (, line 43
0294: // next, line 43
0295: if (cursor >= limit) {
0296: break lab1;
0297: }
0298: cursor++;
0299: break;
0300: }
0301: continue replab0;
0302: } while (false);
0303: cursor = v_2;
0304: break replab0;
0305: }
0306: cursor = v_1;
0307: // repeat, line 46
0308: replab2: while (true) {
0309: v_3 = cursor;
0310: lab3: do {
0311: // goto, line 46
0312: golab4: while (true) {
0313: v_4 = cursor;
0314: lab5: do {
0315: // (, line 46
0316: if (!(in_grouping(g_v, 97, 249))) {
0317: break lab5;
0318: }
0319: // [, line 47
0320: bra = cursor;
0321: // or, line 47
0322: lab6: do {
0323: v_5 = cursor;
0324: lab7: do {
0325: // (, line 47
0326: // literal, line 47
0327: if (!(eq_s(1, "u"))) {
0328: break lab7;
0329: }
0330: // ], line 47
0331: ket = cursor;
0332: if (!(in_grouping(g_v, 97, 249))) {
0333: break lab7;
0334: }
0335: // <-, line 47
0336: slice_from("U");
0337: break lab6;
0338: } while (false);
0339: cursor = v_5;
0340: // (, line 48
0341: // literal, line 48
0342: if (!(eq_s(1, "i"))) {
0343: break lab5;
0344: }
0345: // ], line 48
0346: ket = cursor;
0347: if (!(in_grouping(g_v, 97, 249))) {
0348: break lab5;
0349: }
0350: // <-, line 48
0351: slice_from("I");
0352: } while (false);
0353: cursor = v_4;
0354: break golab4;
0355: } while (false);
0356: cursor = v_4;
0357: if (cursor >= limit) {
0358: break lab3;
0359: }
0360: cursor++;
0361: }
0362: continue replab2;
0363: } while (false);
0364: cursor = v_3;
0365: break replab2;
0366: }
0367: return true;
0368: }
0369:
0370: private boolean r_mark_regions() {
0371: int v_1;
0372: int v_2;
0373: int v_3;
0374: int v_6;
0375: int v_8;
0376: // (, line 52
0377: I_pV = limit;
0378: I_p1 = limit;
0379: I_p2 = limit;
0380: // do, line 58
0381: v_1 = cursor;
0382: lab0: do {
0383: // (, line 58
0384: // or, line 60
0385: lab1: do {
0386: v_2 = cursor;
0387: lab2: do {
0388: // (, line 59
0389: if (!(in_grouping(g_v, 97, 249))) {
0390: break lab2;
0391: }
0392: // or, line 59
0393: lab3: do {
0394: v_3 = cursor;
0395: lab4: do {
0396: // (, line 59
0397: if (!(out_grouping(g_v, 97, 249))) {
0398: break lab4;
0399: }
0400: // gopast, line 59
0401: golab5: while (true) {
0402: lab6: do {
0403: if (!(in_grouping(g_v, 97, 249))) {
0404: break lab6;
0405: }
0406: break golab5;
0407: } while (false);
0408: if (cursor >= limit) {
0409: break lab4;
0410: }
0411: cursor++;
0412: }
0413: break lab3;
0414: } while (false);
0415: cursor = v_3;
0416: // (, line 59
0417: if (!(in_grouping(g_v, 97, 249))) {
0418: break lab2;
0419: }
0420: // gopast, line 59
0421: golab7: while (true) {
0422: lab8: do {
0423: if (!(out_grouping(g_v, 97, 249))) {
0424: break lab8;
0425: }
0426: break golab7;
0427: } while (false);
0428: if (cursor >= limit) {
0429: break lab2;
0430: }
0431: cursor++;
0432: }
0433: } while (false);
0434: break lab1;
0435: } while (false);
0436: cursor = v_2;
0437: // (, line 61
0438: if (!(out_grouping(g_v, 97, 249))) {
0439: break lab0;
0440: }
0441: // or, line 61
0442: lab9: do {
0443: v_6 = cursor;
0444: lab10: do {
0445: // (, line 61
0446: if (!(out_grouping(g_v, 97, 249))) {
0447: break lab10;
0448: }
0449: // gopast, line 61
0450: golab11: while (true) {
0451: lab12: do {
0452: if (!(in_grouping(g_v, 97, 249))) {
0453: break lab12;
0454: }
0455: break golab11;
0456: } while (false);
0457: if (cursor >= limit) {
0458: break lab10;
0459: }
0460: cursor++;
0461: }
0462: break lab9;
0463: } while (false);
0464: cursor = v_6;
0465: // (, line 61
0466: if (!(in_grouping(g_v, 97, 249))) {
0467: break lab0;
0468: }
0469: // next, line 61
0470: if (cursor >= limit) {
0471: break lab0;
0472: }
0473: cursor++;
0474: } while (false);
0475: } while (false);
0476: // setmark pV, line 62
0477: I_pV = cursor;
0478: } while (false);
0479: cursor = v_1;
0480: // do, line 64
0481: v_8 = cursor;
0482: lab13: do {
0483: // (, line 64
0484: // gopast, line 65
0485: golab14: while (true) {
0486: lab15: do {
0487: if (!(in_grouping(g_v, 97, 249))) {
0488: break lab15;
0489: }
0490: break golab14;
0491: } while (false);
0492: if (cursor >= limit) {
0493: break lab13;
0494: }
0495: cursor++;
0496: }
0497: // gopast, line 65
0498: golab16: while (true) {
0499: lab17: do {
0500: if (!(out_grouping(g_v, 97, 249))) {
0501: break lab17;
0502: }
0503: break golab16;
0504: } while (false);
0505: if (cursor >= limit) {
0506: break lab13;
0507: }
0508: cursor++;
0509: }
0510: // setmark p1, line 65
0511: I_p1 = cursor;
0512: // gopast, line 66
0513: golab18: while (true) {
0514: lab19: do {
0515: if (!(in_grouping(g_v, 97, 249))) {
0516: break lab19;
0517: }
0518: break golab18;
0519: } while (false);
0520: if (cursor >= limit) {
0521: break lab13;
0522: }
0523: cursor++;
0524: }
0525: // gopast, line 66
0526: golab20: while (true) {
0527: lab21: do {
0528: if (!(out_grouping(g_v, 97, 249))) {
0529: break lab21;
0530: }
0531: break golab20;
0532: } while (false);
0533: if (cursor >= limit) {
0534: break lab13;
0535: }
0536: cursor++;
0537: }
0538: // setmark p2, line 66
0539: I_p2 = cursor;
0540: } while (false);
0541: cursor = v_8;
0542: return true;
0543: }
0544:
0545: private boolean r_postlude() {
0546: int among_var;
0547: int v_1;
0548: // repeat, line 70
0549: replab0: while (true) {
0550: v_1 = cursor;
0551: lab1: do {
0552: // (, line 70
0553: // [, line 72
0554: bra = cursor;
0555: // substring, line 72
0556: among_var = find_among(a_1, 3);
0557: if (among_var == 0) {
0558: break lab1;
0559: }
0560: // ], line 72
0561: ket = cursor;
0562: switch (among_var) {
0563: case 0:
0564: break lab1;
0565: case 1:
0566: // (, line 73
0567: // <-, line 73
0568: slice_from("i");
0569: break;
0570: case 2:
0571: // (, line 74
0572: // <-, line 74
0573: slice_from("u");
0574: break;
0575: case 3:
0576: // (, line 75
0577: // next, line 75
0578: if (cursor >= limit) {
0579: break lab1;
0580: }
0581: cursor++;
0582: break;
0583: }
0584: continue replab0;
0585: } while (false);
0586: cursor = v_1;
0587: break replab0;
0588: }
0589: return true;
0590: }
0591:
0592: private boolean r_RV() {
0593: if (!(I_pV <= cursor)) {
0594: return false;
0595: }
0596: return true;
0597: }
0598:
0599: private boolean r_R1() {
0600: if (!(I_p1 <= cursor)) {
0601: return false;
0602: }
0603: return true;
0604: }
0605:
0606: private boolean r_R2() {
0607: if (!(I_p2 <= cursor)) {
0608: return false;
0609: }
0610: return true;
0611: }
0612:
0613: private boolean r_attached_pronoun() {
0614: int among_var;
0615: // (, line 86
0616: // [, line 87
0617: ket = cursor;
0618: // substring, line 87
0619: if (find_among_b(a_2, 37) == 0) {
0620: return false;
0621: }
0622: // ], line 87
0623: bra = cursor;
0624: // among, line 97
0625: among_var = find_among_b(a_3, 5);
0626: if (among_var == 0) {
0627: return false;
0628: }
0629: // (, line 97
0630: // call RV, line 97
0631: if (!r_RV()) {
0632: return false;
0633: }
0634: switch (among_var) {
0635: case 0:
0636: return false;
0637: case 1:
0638: // (, line 98
0639: // delete, line 98
0640: slice_del();
0641: break;
0642: case 2:
0643: // (, line 99
0644: // <-, line 99
0645: slice_from("e");
0646: break;
0647: }
0648: return true;
0649: }
0650:
0651: private boolean r_standard_suffix() {
0652: int among_var;
0653: int v_1;
0654: int v_2;
0655: int v_3;
0656: int v_4;
0657: // (, line 103
0658: // [, line 104
0659: ket = cursor;
0660: // substring, line 104
0661: among_var = find_among_b(a_6, 49);
0662: if (among_var == 0) {
0663: return false;
0664: }
0665: // ], line 104
0666: bra = cursor;
0667: switch (among_var) {
0668: case 0:
0669: return false;
0670: case 1:
0671: // (, line 110
0672: // call R2, line 110
0673: if (!r_R2()) {
0674: return false;
0675: }
0676: // delete, line 110
0677: slice_del();
0678: break;
0679: case 2:
0680: // (, line 112
0681: // call R2, line 112
0682: if (!r_R2()) {
0683: return false;
0684: }
0685: // delete, line 112
0686: slice_del();
0687: // try, line 113
0688: v_1 = limit - cursor;
0689: lab0: do {
0690: // (, line 113
0691: // [, line 113
0692: ket = cursor;
0693: // literal, line 113
0694: if (!(eq_s_b(2, "ic"))) {
0695: cursor = limit - v_1;
0696: break lab0;
0697: }
0698: // ], line 113
0699: bra = cursor;
0700: // call R2, line 113
0701: if (!r_R2()) {
0702: cursor = limit - v_1;
0703: break lab0;
0704: }
0705: // delete, line 113
0706: slice_del();
0707: } while (false);
0708: break;
0709: case 3:
0710: // (, line 116
0711: // call R2, line 116
0712: if (!r_R2()) {
0713: return false;
0714: }
0715: // <-, line 116
0716: slice_from("log");
0717: break;
0718: case 4:
0719: // (, line 118
0720: // call R2, line 118
0721: if (!r_R2()) {
0722: return false;
0723: }
0724: // <-, line 118
0725: slice_from("u");
0726: break;
0727: case 5:
0728: // (, line 120
0729: // call R2, line 120
0730: if (!r_R2()) {
0731: return false;
0732: }
0733: // <-, line 120
0734: slice_from("ente");
0735: break;
0736: case 6:
0737: // (, line 122
0738: // call RV, line 122
0739: if (!r_RV()) {
0740: return false;
0741: }
0742: // delete, line 122
0743: slice_del();
0744: break;
0745: case 7:
0746: // (, line 123
0747: // call R1, line 124
0748: if (!r_R1()) {
0749: return false;
0750: }
0751: // delete, line 124
0752: slice_del();
0753: // try, line 125
0754: v_2 = limit - cursor;
0755: lab1: do {
0756: // (, line 125
0757: // [, line 126
0758: ket = cursor;
0759: // substring, line 126
0760: among_var = find_among_b(a_4, 4);
0761: if (among_var == 0) {
0762: cursor = limit - v_2;
0763: break lab1;
0764: }
0765: // ], line 126
0766: bra = cursor;
0767: // call R2, line 126
0768: if (!r_R2()) {
0769: cursor = limit - v_2;
0770: break lab1;
0771: }
0772: // delete, line 126
0773: slice_del();
0774: switch (among_var) {
0775: case 0:
0776: cursor = limit - v_2;
0777: break lab1;
0778: case 1:
0779: // (, line 127
0780: // [, line 127
0781: ket = cursor;
0782: // literal, line 127
0783: if (!(eq_s_b(2, "at"))) {
0784: cursor = limit - v_2;
0785: break lab1;
0786: }
0787: // ], line 127
0788: bra = cursor;
0789: // call R2, line 127
0790: if (!r_R2()) {
0791: cursor = limit - v_2;
0792: break lab1;
0793: }
0794: // delete, line 127
0795: slice_del();
0796: break;
0797: }
0798: } while (false);
0799: break;
0800: case 8:
0801: // (, line 132
0802: // call R2, line 133
0803: if (!r_R2()) {
0804: return false;
0805: }
0806: // delete, line 133
0807: slice_del();
0808: // try, line 134
0809: v_3 = limit - cursor;
0810: lab2: do {
0811: // (, line 134
0812: // [, line 135
0813: ket = cursor;
0814: // substring, line 135
0815: among_var = find_among_b(a_5, 3);
0816: if (among_var == 0) {
0817: cursor = limit - v_3;
0818: break lab2;
0819: }
0820: // ], line 135
0821: bra = cursor;
0822: switch (among_var) {
0823: case 0:
0824: cursor = limit - v_3;
0825: break lab2;
0826: case 1:
0827: // (, line 136
0828: // call R2, line 136
0829: if (!r_R2()) {
0830: cursor = limit - v_3;
0831: break lab2;
0832: }
0833: // delete, line 136
0834: slice_del();
0835: break;
0836: }
0837: } while (false);
0838: break;
0839: case 9:
0840: // (, line 140
0841: // call R2, line 141
0842: if (!r_R2()) {
0843: return false;
0844: }
0845: // delete, line 141
0846: slice_del();
0847: // try, line 142
0848: v_4 = limit - cursor;
0849: lab3: do {
0850: // (, line 142
0851: // [, line 142
0852: ket = cursor;
0853: // literal, line 142
0854: if (!(eq_s_b(2, "at"))) {
0855: cursor = limit - v_4;
0856: break lab3;
0857: }
0858: // ], line 142
0859: bra = cursor;
0860: // call R2, line 142
0861: if (!r_R2()) {
0862: cursor = limit - v_4;
0863: break lab3;
0864: }
0865: // delete, line 142
0866: slice_del();
0867: // [, line 142
0868: ket = cursor;
0869: // literal, line 142
0870: if (!(eq_s_b(2, "ic"))) {
0871: cursor = limit - v_4;
0872: break lab3;
0873: }
0874: // ], line 142
0875: bra = cursor;
0876: // call R2, line 142
0877: if (!r_R2()) {
0878: cursor = limit - v_4;
0879: break lab3;
0880: }
0881: // delete, line 142
0882: slice_del();
0883: } while (false);
0884: break;
0885: }
0886: return true;
0887: }
0888:
0889: private boolean r_verb_suffix() {
0890: int among_var;
0891: int v_1;
0892: int v_2;
0893: // setlimit, line 147
0894: v_1 = limit - cursor;
0895: // tomark, line 147
0896: if (cursor < I_pV) {
0897: return false;
0898: }
0899: cursor = I_pV;
0900: v_2 = limit_backward;
0901: limit_backward = cursor;
0902: cursor = limit - v_1;
0903: // (, line 147
0904: // [, line 148
0905: ket = cursor;
0906: // substring, line 148
0907: among_var = find_among_b(a_7, 87);
0908: if (among_var == 0) {
0909: limit_backward = v_2;
0910: return false;
0911: }
0912: // ], line 148
0913: bra = cursor;
0914: switch (among_var) {
0915: case 0:
0916: limit_backward = v_2;
0917: return false;
0918: case 1:
0919: // (, line 162
0920: // delete, line 162
0921: slice_del();
0922: break;
0923: }
0924: limit_backward = v_2;
0925: return true;
0926: }
0927:
0928: private boolean r_vowel_suffix() {
0929: int v_1;
0930: int v_2;
0931: // (, line 169
0932: // try, line 170
0933: v_1 = limit - cursor;
0934: lab0: do {
0935: // (, line 170
0936: // [, line 171
0937: ket = cursor;
0938: if (!(in_grouping_b(g_AEIO, 97, 242))) {
0939: cursor = limit - v_1;
0940: break lab0;
0941: }
0942: // ], line 171
0943: bra = cursor;
0944: // call RV, line 171
0945: if (!r_RV()) {
0946: cursor = limit - v_1;
0947: break lab0;
0948: }
0949: // delete, line 171
0950: slice_del();
0951: // [, line 172
0952: ket = cursor;
0953: // literal, line 172
0954: if (!(eq_s_b(1, "i"))) {
0955: cursor = limit - v_1;
0956: break lab0;
0957: }
0958: // ], line 172
0959: bra = cursor;
0960: // call RV, line 172
0961: if (!r_RV()) {
0962: cursor = limit - v_1;
0963: break lab0;
0964: }
0965: // delete, line 172
0966: slice_del();
0967: } while (false);
0968: // try, line 174
0969: v_2 = limit - cursor;
0970: lab1: do {
0971: // (, line 174
0972: // [, line 175
0973: ket = cursor;
0974: // literal, line 175
0975: if (!(eq_s_b(1, "h"))) {
0976: cursor = limit - v_2;
0977: break lab1;
0978: }
0979: // ], line 175
0980: bra = cursor;
0981: if (!(in_grouping_b(g_CG, 99, 103))) {
0982: cursor = limit - v_2;
0983: break lab1;
0984: }
0985: // call RV, line 175
0986: if (!r_RV()) {
0987: cursor = limit - v_2;
0988: break lab1;
0989: }
0990: // delete, line 175
0991: slice_del();
0992: } while (false);
0993: return true;
0994: }
0995:
0996: public boolean stem() {
0997: int v_1;
0998: int v_2;
0999: int v_3;
1000: int v_4;
1001: int v_5;
1002: int v_6;
1003: int v_7;
1004: // (, line 180
1005: // do, line 181
1006: v_1 = cursor;
1007: lab0: do {
1008: // call prelude, line 181
1009: if (!r_prelude()) {
1010: break lab0;
1011: }
1012: } while (false);
1013: cursor = v_1;
1014: // do, line 182
1015: v_2 = cursor;
1016: lab1: do {
1017: // call mark_regions, line 182
1018: if (!r_mark_regions()) {
1019: break lab1;
1020: }
1021: } while (false);
1022: cursor = v_2;
1023: // backwards, line 183
1024: limit_backward = cursor;
1025: cursor = limit;
1026: // (, line 183
1027: // do, line 184
1028: v_3 = limit - cursor;
1029: lab2: do {
1030: // call attached_pronoun, line 184
1031: if (!r_attached_pronoun()) {
1032: break lab2;
1033: }
1034: } while (false);
1035: cursor = limit - v_3;
1036: // do, line 185
1037: v_4 = limit - cursor;
1038: lab3: do {
1039: // (, line 185
1040: // or, line 185
1041: lab4: do {
1042: v_5 = limit - cursor;
1043: lab5: do {
1044: // call standard_suffix, line 185
1045: if (!r_standard_suffix()) {
1046: break lab5;
1047: }
1048: break lab4;
1049: } while (false);
1050: cursor = limit - v_5;
1051: // call verb_suffix, line 185
1052: if (!r_verb_suffix()) {
1053: break lab3;
1054: }
1055: } while (false);
1056: } while (false);
1057: cursor = limit - v_4;
1058: // do, line 186
1059: v_6 = limit - cursor;
1060: lab6: do {
1061: // call vowel_suffix, line 186
1062: if (!r_vowel_suffix()) {
1063: break lab6;
1064: }
1065: } while (false);
1066: cursor = limit - v_6;
1067: cursor = limit_backward; // do, line 188
1068: v_7 = cursor;
1069: lab7: do {
1070: // call postlude, line 188
1071: if (!r_postlude()) {
1072: break lab7;
1073: }
1074: } while (false);
1075: cursor = v_7;
1076: return true;
1077: }
1078:
1079: }
|