SF.Snowball.Ext.FinnishStemmer.r_case C# (CSharp) Method

r_case() private method

private r_case ( ) : bool
return bool
		private bool r_case()
		{
			int among_var;
			int v_1;
			int v_2;
			int v_3;
			int v_4;
			int v_5;
			// (, line 95
			// setlimit, line 96
			v_1 = limit - cursor;
			// tomark, line 96
			if (cursor < I_p1)
			{
				return false;
			}
			cursor = I_p1;
			v_2 = limit_backward;
			limit_backward = cursor;
			cursor = limit - v_1;
			// (, line 96
			// [, line 96
			ket = cursor;
			// substring, line 96
			among_var = find_among_b(a_6, 30);
			if (among_var == 0)
			{
				limit_backward = v_2;
				return false;
			}
			// ], line 96
			bra = cursor;
			limit_backward = v_2;
			switch (among_var)
			{
				
				case 0: 
					return false;
				
				case 1: 
					// (, line 98
					// literal, line 98
					if (!(eq_s_b(1, "a")))
					{
						return false;
					}
					break;
				
				case 2: 
					// (, line 99
					// literal, line 99
					if (!(eq_s_b(1, "e")))
					{
						return false;
					}
					break;
				
				case 3: 
					// (, line 100
					// literal, line 100
					if (!(eq_s_b(1, "i")))
					{
						return false;
					}
					break;
				
				case 4: 
					// (, line 101
					// literal, line 101
					if (!(eq_s_b(1, "o")))
					{
						return false;
					}
					break;
				
				case 5: 
					// (, line 102
					// literal, line 102
					if (!(eq_s_b(1, "\u00E4")))
					{
						return false;
					}
					break;
				
				case 6: 
					// (, line 103
					// literal, line 103
					if (!(eq_s_b(1, "\u00F6")))
					{
						return false;
					}
					break;
				
				case 7: 
					// (, line 111
					// try, line 111
					v_3 = limit - cursor;
					do 
					{
						// (, line 111
						// and, line 113
						v_4 = limit - cursor;
						// or, line 112
						do 
						{
							v_5 = limit - cursor;
							do 
							{
								// call LONG, line 111
								if (!r_LONG())
								{
									goto lab2_brk;
								}
								goto lab1_brk;
							}
							while (false);

lab2_brk: ;
							
							cursor = limit - v_5;
							// literal, line 112
							if (!(eq_s_b(2, "ie")))
							{
								cursor = limit - v_3;
								goto lab0_brk;
							}
						}
						while (false);

lab1_brk: ;
						
						cursor = limit - v_4;
						// next, line 113
						if (cursor <= limit_backward)
						{
							cursor = limit - v_3;
							goto lab0_brk;
						}
						cursor--;
						// ], line 113
						bra = cursor;
					}
					while (false);

lab0_brk: ;
					
					break;
				
				case 8: 
					// (, line 119
					if (!(in_grouping_b(g_v, 97, 246)))
					{
						return false;
					}
					if (!(out_grouping_b(g_v, 97, 246)))
					{
						return false;
					}
					break;
				
				case 9: 
					// (, line 121
					// literal, line 121
					if (!(eq_s_b(1, "e")))
					{
						return false;
					}
					break;
				}
			// delete, line 138
			slice_del();
			// set ending_removed, line 139
			B_ending_removed = true;
			return true;
		}