in src/Lucene.Net.Analysis.Common/Tartarus/Snowball/Ext/FrenchStemmer.cs [692:1211]
private bool r_standard_suffix()
{
int among_var;
int v_1;
int v_2;
int v_3;
int v_4;
int v_5;
int v_6;
int v_7;
int v_8;
int v_9;
int v_10;
int v_11;
// (, line 91
// [, line 92
m_ket = m_cursor;
// substring, line 92
among_var = FindAmongB(a_4, 43);
if (among_var == 0)
{
return false;
}
// ], line 92
m_bra = m_cursor;
switch (among_var)
{
case 0:
return false;
case 1:
// (, line 96
// call R2, line 96
if (!r_R2())
{
return false;
}
// delete, line 96
SliceDel();
break;
case 2:
// (, line 99
// call R2, line 99
if (!r_R2())
{
return false;
}
// delete, line 99
SliceDel();
// try, line 100
v_1 = m_limit - m_cursor;
do
{
// (, line 100
// [, line 100
m_ket = m_cursor;
// literal, line 100
if (!(Eq_S_B(2, "ic")))
{
m_cursor = m_limit - v_1;
goto lab0;
}
// ], line 100
m_bra = m_cursor;
// or, line 100
do
{
v_2 = m_limit - m_cursor;
do
{
// (, line 100
// call R2, line 100
if (!r_R2())
{
goto lab2;
}
// delete, line 100
SliceDel();
goto lab1;
} while (false);
lab2:
m_cursor = m_limit - v_2;
// <-, line 100
SliceFrom("iqU");
} while (false);
lab1: {/* LUCENENET: intentionally blank */};
} while (false);
lab0:
break;
case 3:
// (, line 104
// call R2, line 104
if (!r_R2())
{
return false;
}
// <-, line 104
SliceFrom("log");
break;
case 4:
// (, line 107
// call R2, line 107
if (!r_R2())
{
return false;
}
// <-, line 107
SliceFrom("u");
break;
case 5:
// (, line 110
// call R2, line 110
if (!r_R2())
{
return false;
}
// <-, line 110
SliceFrom("ent");
break;
case 6:
// (, line 113
// call RV, line 114
if (!r_RV())
{
return false;
}
// delete, line 114
SliceDel();
// try, line 115
v_3 = m_limit - m_cursor;
do
{
// (, line 115
// [, line 116
m_ket = m_cursor;
// substring, line 116
among_var = FindAmongB(a_2, 6);
if (among_var == 0)
{
m_cursor = m_limit - v_3;
goto lab3;
}
// ], line 116
m_bra = m_cursor;
switch (among_var)
{
case 0:
m_cursor = m_limit - v_3;
goto lab3;
case 1:
// (, line 117
// call R2, line 117
if (!r_R2())
{
m_cursor = m_limit - v_3;
goto lab3;
}
// delete, line 117
SliceDel();
// [, line 117
m_ket = m_cursor;
// literal, line 117
if (!(Eq_S_B(2, "at")))
{
m_cursor = m_limit - v_3;
goto lab3;
}
// ], line 117
m_bra = m_cursor;
// call R2, line 117
if (!r_R2())
{
m_cursor = m_limit - v_3;
goto lab3;
}
// delete, line 117
SliceDel();
break;
case 2:
// (, line 118
// or, line 118
do
{
v_4 = m_limit - m_cursor;
do
{
// (, line 118
// call R2, line 118
if (!r_R2())
{
goto lab5;
}
// delete, line 118
SliceDel();
goto lab4;
} while (false);
lab5:
m_cursor = m_limit - v_4;
// (, line 118
// call R1, line 118
if (!r_R1())
{
m_cursor = m_limit - v_3;
goto lab3;
}
// <-, line 118
SliceFrom("eux");
} while (false);
lab4:
break;
case 3:
// (, line 120
// call R2, line 120
if (!r_R2())
{
m_cursor = m_limit - v_3;
goto lab3;
}
// delete, line 120
SliceDel();
break;
case 4:
// (, line 122
// call RV, line 122
if (!r_RV())
{
m_cursor = m_limit - v_3;
goto lab3;
}
// <-, line 122
SliceFrom("i");
break;
}
} while (false);
lab3:
break;
case 7:
// (, line 128
// call R2, line 129
if (!r_R2())
{
return false;
}
// delete, line 129
SliceDel();
// try, line 130
v_5 = m_limit - m_cursor;
do
{
// (, line 130
// [, line 131
m_ket = m_cursor;
// substring, line 131
among_var = FindAmongB(a_3, 3);
if (among_var == 0)
{
m_cursor = m_limit - v_5;
goto lab6;
}
// ], line 131
m_bra = m_cursor;
switch (among_var)
{
case 0:
m_cursor = m_limit - v_5;
goto lab6;
case 1:
// (, line 132
// or, line 132
do
{
v_6 = m_limit - m_cursor;
do
{
// (, line 132
// call R2, line 132
if (!r_R2())
{
goto lab8;
}
// delete, line 132
SliceDel();
goto lab7;
} while (false);
lab8:
m_cursor = m_limit - v_6;
// <-, line 132
SliceFrom("abl");
} while (false);
lab7:
break;
case 2:
// (, line 133
// or, line 133
do
{
v_7 = m_limit - m_cursor;
do
{
// (, line 133
// call R2, line 133
if (!r_R2())
{
goto lab10;
}
// delete, line 133
SliceDel();
goto lab9;
} while (false);
lab10:
m_cursor = m_limit - v_7;
// <-, line 133
SliceFrom("iqU");
} while (false);
lab9:
break;
case 3:
// (, line 134
// call R2, line 134
if (!r_R2())
{
m_cursor = m_limit - v_5;
goto lab6;
}
// delete, line 134
SliceDel();
break;
}
} while (false);
lab6:
break;
case 8:
// (, line 140
// call R2, line 141
if (!r_R2())
{
return false;
}
// delete, line 141
SliceDel();
// try, line 142
v_8 = m_limit - m_cursor;
do
{
// (, line 142
// [, line 142
m_ket = m_cursor;
// literal, line 142
if (!(Eq_S_B(2, "at")))
{
m_cursor = m_limit - v_8;
goto lab11;
}
// ], line 142
m_bra = m_cursor;
// call R2, line 142
if (!r_R2())
{
m_cursor = m_limit - v_8;
goto lab11;
}
// delete, line 142
SliceDel();
// [, line 142
m_ket = m_cursor;
// literal, line 142
if (!(Eq_S_B(2, "ic")))
{
m_cursor = m_limit - v_8;
goto lab11;
}
// ], line 142
m_bra = m_cursor;
// or, line 142
do
{
v_9 = m_limit - m_cursor;
do
{
// (, line 142
// call R2, line 142
if (!r_R2())
{
goto lab13;
}
// delete, line 142
SliceDel();
goto lab12;
} while (false);
lab13:
m_cursor = m_limit - v_9;
// <-, line 142
SliceFrom("iqU");
} while (false);
lab12: {/* LUCENENET: intentionally blank */}
} while (false);
lab11:
break;
case 9:
// (, line 144
// <-, line 144
SliceFrom("eau");
break;
case 10:
// (, line 145
// call R1, line 145
if (!r_R1())
{
return false;
}
// <-, line 145
SliceFrom("al");
break;
case 11:
// (, line 147
// or, line 147
do
{
v_10 = m_limit - m_cursor;
do
{
// (, line 147
// call R2, line 147
if (!r_R2())
{
goto lab15;
}
// delete, line 147
SliceDel();
goto lab14;
} while (false);
lab15:
m_cursor = m_limit - v_10;
// (, line 147
// call R1, line 147
if (!r_R1())
{
return false;
}
// <-, line 147
SliceFrom("eux");
} while (false);
lab14:
break;
case 12:
// (, line 150
// call R1, line 150
if (!r_R1())
{
return false;
}
if (!(OutGroupingB(g_v, 97, 251)))
{
return false;
}
// delete, line 150
SliceDel();
break;
case 13:
// (, line 155
// call RV, line 155
if (!r_RV())
{
return false;
}
// fail, line 155
// (, line 155
// <-, line 155
SliceFrom("ant");
return false;
case 14:
// (, line 156
// call RV, line 156
if (!r_RV())
{
return false;
}
// fail, line 156
// (, line 156
// <-, line 156
SliceFrom("ent");
return false;
case 15:
// (, line 158
// test, line 158
v_11 = m_limit - m_cursor;
// (, line 158
if (!(InGroupingB(g_v, 97, 251)))
{
return false;
}
// call RV, line 158
if (!r_RV())
{
return false;
}
m_cursor = m_limit - v_11;
// fail, line 158
// (, line 158
// delete, line 158
SliceDel();
return false;
}
return true;
}