You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1342 lines
25 KiB
1342 lines
25 KiB
5 years ago
|
//! This file was generated automatically by the Snowball to Go compiler
|
||
|
//! http://snowballstem.org/
|
||
|
|
||
|
package english
|
||
|
|
||
|
import (
|
||
|
snowballRuntime "github.com/blevesearch/snowballstem"
|
||
|
)
|
||
|
|
||
|
var A_0 = []*snowballRuntime.Among{
|
||
|
{Str: "arsen", A: -1, B: -1, F: nil},
|
||
|
{Str: "commun", A: -1, B: -1, F: nil},
|
||
|
{Str: "gener", A: -1, B: -1, F: nil},
|
||
|
}
|
||
|
|
||
|
var A_1 = []*snowballRuntime.Among{
|
||
|
{Str: "'", A: -1, B: 1, F: nil},
|
||
|
{Str: "'s'", A: 0, B: 1, F: nil},
|
||
|
{Str: "'s", A: -1, B: 1, F: nil},
|
||
|
}
|
||
|
|
||
|
var A_2 = []*snowballRuntime.Among{
|
||
|
{Str: "ied", A: -1, B: 2, F: nil},
|
||
|
{Str: "s", A: -1, B: 3, F: nil},
|
||
|
{Str: "ies", A: 1, B: 2, F: nil},
|
||
|
{Str: "sses", A: 1, B: 1, F: nil},
|
||
|
{Str: "ss", A: 1, B: -1, F: nil},
|
||
|
{Str: "us", A: 1, B: -1, F: nil},
|
||
|
}
|
||
|
|
||
|
var A_3 = []*snowballRuntime.Among{
|
||
|
{Str: "", A: -1, B: 3, F: nil},
|
||
|
{Str: "bb", A: 0, B: 2, F: nil},
|
||
|
{Str: "dd", A: 0, B: 2, F: nil},
|
||
|
{Str: "ff", A: 0, B: 2, F: nil},
|
||
|
{Str: "gg", A: 0, B: 2, F: nil},
|
||
|
{Str: "bl", A: 0, B: 1, F: nil},
|
||
|
{Str: "mm", A: 0, B: 2, F: nil},
|
||
|
{Str: "nn", A: 0, B: 2, F: nil},
|
||
|
{Str: "pp", A: 0, B: 2, F: nil},
|
||
|
{Str: "rr", A: 0, B: 2, F: nil},
|
||
|
{Str: "at", A: 0, B: 1, F: nil},
|
||
|
{Str: "tt", A: 0, B: 2, F: nil},
|
||
|
{Str: "iz", A: 0, B: 1, F: nil},
|
||
|
}
|
||
|
|
||
|
var A_4 = []*snowballRuntime.Among{
|
||
|
{Str: "ed", A: -1, B: 2, F: nil},
|
||
|
{Str: "eed", A: 0, B: 1, F: nil},
|
||
|
{Str: "ing", A: -1, B: 2, F: nil},
|
||
|
{Str: "edly", A: -1, B: 2, F: nil},
|
||
|
{Str: "eedly", A: 3, B: 1, F: nil},
|
||
|
{Str: "ingly", A: -1, B: 2, F: nil},
|
||
|
}
|
||
|
|
||
|
var A_5 = []*snowballRuntime.Among{
|
||
|
{Str: "anci", A: -1, B: 3, F: nil},
|
||
|
{Str: "enci", A: -1, B: 2, F: nil},
|
||
|
{Str: "ogi", A: -1, B: 13, F: nil},
|
||
|
{Str: "li", A: -1, B: 16, F: nil},
|
||
|
{Str: "bli", A: 3, B: 12, F: nil},
|
||
|
{Str: "abli", A: 4, B: 4, F: nil},
|
||
|
{Str: "alli", A: 3, B: 8, F: nil},
|
||
|
{Str: "fulli", A: 3, B: 14, F: nil},
|
||
|
{Str: "lessli", A: 3, B: 15, F: nil},
|
||
|
{Str: "ousli", A: 3, B: 10, F: nil},
|
||
|
{Str: "entli", A: 3, B: 5, F: nil},
|
||
|
{Str: "aliti", A: -1, B: 8, F: nil},
|
||
|
{Str: "biliti", A: -1, B: 12, F: nil},
|
||
|
{Str: "iviti", A: -1, B: 11, F: nil},
|
||
|
{Str: "tional", A: -1, B: 1, F: nil},
|
||
|
{Str: "ational", A: 14, B: 7, F: nil},
|
||
|
{Str: "alism", A: -1, B: 8, F: nil},
|
||
|
{Str: "ation", A: -1, B: 7, F: nil},
|
||
|
{Str: "ization", A: 17, B: 6, F: nil},
|
||
|
{Str: "izer", A: -1, B: 6, F: nil},
|
||
|
{Str: "ator", A: -1, B: 7, F: nil},
|
||
|
{Str: "iveness", A: -1, B: 11, F: nil},
|
||
|
{Str: "fulness", A: -1, B: 9, F: nil},
|
||
|
{Str: "ousness", A: -1, B: 10, F: nil},
|
||
|
}
|
||
|
|
||
|
var A_6 = []*snowballRuntime.Among{
|
||
|
{Str: "icate", A: -1, B: 4, F: nil},
|
||
|
{Str: "ative", A: -1, B: 6, F: nil},
|
||
|
{Str: "alize", A: -1, B: 3, F: nil},
|
||
|
{Str: "iciti", A: -1, B: 4, F: nil},
|
||
|
{Str: "ical", A: -1, B: 4, F: nil},
|
||
|
{Str: "tional", A: -1, B: 1, F: nil},
|
||
|
{Str: "ational", A: 5, B: 2, F: nil},
|
||
|
{Str: "ful", A: -1, B: 5, F: nil},
|
||
|
{Str: "ness", A: -1, B: 5, F: nil},
|
||
|
}
|
||
|
|
||
|
var A_7 = []*snowballRuntime.Among{
|
||
|
{Str: "ic", A: -1, B: 1, F: nil},
|
||
|
{Str: "ance", A: -1, B: 1, F: nil},
|
||
|
{Str: "ence", A: -1, B: 1, F: nil},
|
||
|
{Str: "able", A: -1, B: 1, F: nil},
|
||
|
{Str: "ible", A: -1, B: 1, F: nil},
|
||
|
{Str: "ate", A: -1, B: 1, F: nil},
|
||
|
{Str: "ive", A: -1, B: 1, F: nil},
|
||
|
{Str: "ize", A: -1, B: 1, F: nil},
|
||
|
{Str: "iti", A: -1, B: 1, F: nil},
|
||
|
{Str: "al", A: -1, B: 1, F: nil},
|
||
|
{Str: "ism", A: -1, B: 1, F: nil},
|
||
|
{Str: "ion", A: -1, B: 2, F: nil},
|
||
|
{Str: "er", A: -1, B: 1, F: nil},
|
||
|
{Str: "ous", A: -1, B: 1, F: nil},
|
||
|
{Str: "ant", A: -1, B: 1, F: nil},
|
||
|
{Str: "ent", A: -1, B: 1, F: nil},
|
||
|
{Str: "ment", A: 15, B: 1, F: nil},
|
||
|
{Str: "ement", A: 16, B: 1, F: nil},
|
||
|
}
|
||
|
|
||
|
var A_8 = []*snowballRuntime.Among{
|
||
|
{Str: "e", A: -1, B: 1, F: nil},
|
||
|
{Str: "l", A: -1, B: 2, F: nil},
|
||
|
}
|
||
|
|
||
|
var A_9 = []*snowballRuntime.Among{
|
||
|
{Str: "succeed", A: -1, B: -1, F: nil},
|
||
|
{Str: "proceed", A: -1, B: -1, F: nil},
|
||
|
{Str: "exceed", A: -1, B: -1, F: nil},
|
||
|
{Str: "canning", A: -1, B: -1, F: nil},
|
||
|
{Str: "inning", A: -1, B: -1, F: nil},
|
||
|
{Str: "earring", A: -1, B: -1, F: nil},
|
||
|
{Str: "herring", A: -1, B: -1, F: nil},
|
||
|
{Str: "outing", A: -1, B: -1, F: nil},
|
||
|
}
|
||
|
|
||
|
var A_10 = []*snowballRuntime.Among{
|
||
|
{Str: "andes", A: -1, B: -1, F: nil},
|
||
|
{Str: "atlas", A: -1, B: -1, F: nil},
|
||
|
{Str: "bias", A: -1, B: -1, F: nil},
|
||
|
{Str: "cosmos", A: -1, B: -1, F: nil},
|
||
|
{Str: "dying", A: -1, B: 3, F: nil},
|
||
|
{Str: "early", A: -1, B: 9, F: nil},
|
||
|
{Str: "gently", A: -1, B: 7, F: nil},
|
||
|
{Str: "howe", A: -1, B: -1, F: nil},
|
||
|
{Str: "idly", A: -1, B: 6, F: nil},
|
||
|
{Str: "lying", A: -1, B: 4, F: nil},
|
||
|
{Str: "news", A: -1, B: -1, F: nil},
|
||
|
{Str: "only", A: -1, B: 10, F: nil},
|
||
|
{Str: "singly", A: -1, B: 11, F: nil},
|
||
|
{Str: "skies", A: -1, B: 2, F: nil},
|
||
|
{Str: "skis", A: -1, B: 1, F: nil},
|
||
|
{Str: "sky", A: -1, B: -1, F: nil},
|
||
|
{Str: "tying", A: -1, B: 5, F: nil},
|
||
|
{Str: "ugly", A: -1, B: 8, F: nil},
|
||
|
}
|
||
|
|
||
|
var G_v = []byte{17, 65, 16, 1}
|
||
|
|
||
|
var G_v_WXY = []byte{1, 17, 65, 208, 1}
|
||
|
|
||
|
var G_valid_LI = []byte{55, 141, 2}
|
||
|
|
||
|
type Context struct {
|
||
|
b_Y_found bool
|
||
|
i_p2 int
|
||
|
i_p1 int
|
||
|
}
|
||
|
|
||
|
func r_prelude(env *snowballRuntime.Env, ctx interface{}) bool {
|
||
|
context := ctx.(*Context)
|
||
|
_ = context
|
||
|
// (, line 25
|
||
|
// unset Y_found, line 26
|
||
|
context.b_Y_found = false
|
||
|
// do, line 27
|
||
|
var v_1 = env.Cursor
|
||
|
lab0:
|
||
|
for {
|
||
|
// (, line 27
|
||
|
// [, line 27
|
||
|
env.Bra = env.Cursor
|
||
|
// literal, line 27
|
||
|
if !env.EqS("'") {
|
||
|
break lab0
|
||
|
}
|
||
|
// ], line 27
|
||
|
env.Ket = env.Cursor
|
||
|
// delete, line 27
|
||
|
if !env.SliceDel() {
|
||
|
return false
|
||
|
}
|
||
|
break lab0
|
||
|
}
|
||
|
env.Cursor = v_1
|
||
|
// do, line 28
|
||
|
var v_2 = env.Cursor
|
||
|
lab1:
|
||
|
for {
|
||
|
// (, line 28
|
||
|
// [, line 28
|
||
|
env.Bra = env.Cursor
|
||
|
// literal, line 28
|
||
|
if !env.EqS("y") {
|
||
|
break lab1
|
||
|
}
|
||
|
// ], line 28
|
||
|
env.Ket = env.Cursor
|
||
|
// <-, line 28
|
||
|
if !env.SliceFrom("Y") {
|
||
|
return false
|
||
|
}
|
||
|
// set Y_found, line 28
|
||
|
context.b_Y_found = true
|
||
|
break lab1
|
||
|
}
|
||
|
env.Cursor = v_2
|
||
|
// do, line 29
|
||
|
var v_3 = env.Cursor
|
||
|
lab2:
|
||
|
for {
|
||
|
// repeat, line 29
|
||
|
replab3:
|
||
|
for {
|
||
|
var v_4 = env.Cursor
|
||
|
lab4:
|
||
|
for range [2]struct{}{} {
|
||
|
// (, line 29
|
||
|
// goto, line 29
|
||
|
golab5:
|
||
|
for {
|
||
|
var v_5 = env.Cursor
|
||
|
lab6:
|
||
|
for {
|
||
|
// (, line 29
|
||
|
if !env.InGrouping(G_v, 97, 121) {
|
||
|
break lab6
|
||
|
}
|
||
|
// [, line 29
|
||
|
env.Bra = env.Cursor
|
||
|
// literal, line 29
|
||
|
if !env.EqS("y") {
|
||
|
break lab6
|
||
|
}
|
||
|
// ], line 29
|
||
|
env.Ket = env.Cursor
|
||
|
env.Cursor = v_5
|
||
|
break golab5
|
||
|
}
|
||
|
env.Cursor = v_5
|
||
|
if env.Cursor >= env.Limit {
|
||
|
break lab4
|
||
|
}
|
||
|
env.NextChar()
|
||
|
}
|
||
|
// <-, line 29
|
||
|
if !env.SliceFrom("Y") {
|
||
|
return false
|
||
|
}
|
||
|
// set Y_found, line 29
|
||
|
context.b_Y_found = true
|
||
|
continue replab3
|
||
|
}
|
||
|
env.Cursor = v_4
|
||
|
break replab3
|
||
|
}
|
||
|
break lab2
|
||
|
}
|
||
|
env.Cursor = v_3
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
func r_mark_regions(env *snowballRuntime.Env, ctx interface{}) bool {
|
||
|
context := ctx.(*Context)
|
||
|
_ = context
|
||
|
// (, line 32
|
||
|
context.i_p1 = env.Limit
|
||
|
context.i_p2 = env.Limit
|
||
|
// do, line 35
|
||
|
var v_1 = env.Cursor
|
||
|
lab0:
|
||
|
for {
|
||
|
// (, line 35
|
||
|
// or, line 41
|
||
|
lab1:
|
||
|
for {
|
||
|
var v_2 = env.Cursor
|
||
|
lab2:
|
||
|
for {
|
||
|
// among, line 36
|
||
|
if env.FindAmong(A_0, context) == 0 {
|
||
|
break lab2
|
||
|
}
|
||
|
break lab1
|
||
|
}
|
||
|
env.Cursor = v_2
|
||
|
// (, line 41
|
||
|
// gopast, line 41
|
||
|
golab3:
|
||
|
for {
|
||
|
lab4:
|
||
|
for {
|
||
|
if !env.InGrouping(G_v, 97, 121) {
|
||
|
break lab4
|
||
|
}
|
||
|
break golab3
|
||
|
}
|
||
|
if env.Cursor >= env.Limit {
|
||
|
break lab0
|
||
|
}
|
||
|
env.NextChar()
|
||
|
}
|
||
|
// gopast, line 41
|
||
|
golab5:
|
||
|
for {
|
||
|
lab6:
|
||
|
for {
|
||
|
if !env.OutGrouping(G_v, 97, 121) {
|
||
|
break lab6
|
||
|
}
|
||
|
break golab5
|
||
|
}
|
||
|
if env.Cursor >= env.Limit {
|
||
|
break lab0
|
||
|
}
|
||
|
env.NextChar()
|
||
|
}
|
||
|
break lab1
|
||
|
}
|
||
|
// setmark p1, line 42
|
||
|
context.i_p1 = env.Cursor
|
||
|
// gopast, line 43
|
||
|
golab7:
|
||
|
for {
|
||
|
lab8:
|
||
|
for {
|
||
|
if !env.InGrouping(G_v, 97, 121) {
|
||
|
break lab8
|
||
|
}
|
||
|
break golab7
|
||
|
}
|
||
|
if env.Cursor >= env.Limit {
|
||
|
break lab0
|
||
|
}
|
||
|
env.NextChar()
|
||
|
}
|
||
|
// gopast, line 43
|
||
|
golab9:
|
||
|
for {
|
||
|
lab10:
|
||
|
for {
|
||
|
if !env.OutGrouping(G_v, 97, 121) {
|
||
|
break lab10
|
||
|
}
|
||
|
break golab9
|
||
|
}
|
||
|
if env.Cursor >= env.Limit {
|
||
|
break lab0
|
||
|
}
|
||
|
env.NextChar()
|
||
|
}
|
||
|
// setmark p2, line 43
|
||
|
context.i_p2 = env.Cursor
|
||
|
break lab0
|
||
|
}
|
||
|
env.Cursor = v_1
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
func r_shortv(env *snowballRuntime.Env, ctx interface{}) bool {
|
||
|
context := ctx.(*Context)
|
||
|
_ = context
|
||
|
// (, line 49
|
||
|
// or, line 51
|
||
|
lab0:
|
||
|
for {
|
||
|
var v_1 = env.Limit - env.Cursor
|
||
|
lab1:
|
||
|
for {
|
||
|
// (, line 50
|
||
|
if !env.OutGroupingB(G_v_WXY, 89, 121) {
|
||
|
break lab1
|
||
|
}
|
||
|
if !env.InGroupingB(G_v, 97, 121) {
|
||
|
break lab1
|
||
|
}
|
||
|
if !env.OutGroupingB(G_v, 97, 121) {
|
||
|
break lab1
|
||
|
}
|
||
|
break lab0
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_1
|
||
|
// (, line 52
|
||
|
if !env.OutGroupingB(G_v, 97, 121) {
|
||
|
return false
|
||
|
}
|
||
|
if !env.InGroupingB(G_v, 97, 121) {
|
||
|
return false
|
||
|
}
|
||
|
// atlimit, line 52
|
||
|
if env.Cursor > env.LimitBackward {
|
||
|
return false
|
||
|
}
|
||
|
break lab0
|
||
|
}
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
func r_R1(env *snowballRuntime.Env, ctx interface{}) bool {
|
||
|
context := ctx.(*Context)
|
||
|
_ = context
|
||
|
if !(context.i_p1 <= env.Cursor) {
|
||
|
return false
|
||
|
}
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
func r_R2(env *snowballRuntime.Env, ctx interface{}) bool {
|
||
|
context := ctx.(*Context)
|
||
|
_ = context
|
||
|
if !(context.i_p2 <= env.Cursor) {
|
||
|
return false
|
||
|
}
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
func r_Step_1a(env *snowballRuntime.Env, ctx interface{}) bool {
|
||
|
context := ctx.(*Context)
|
||
|
_ = context
|
||
|
var among_var int32
|
||
|
// (, line 58
|
||
|
// try, line 59
|
||
|
var v_1 = env.Limit - env.Cursor
|
||
|
lab0:
|
||
|
for {
|
||
|
// (, line 59
|
||
|
// [, line 60
|
||
|
env.Ket = env.Cursor
|
||
|
// substring, line 60
|
||
|
among_var = env.FindAmongB(A_1, context)
|
||
|
if among_var == 0 {
|
||
|
env.Cursor = env.Limit - v_1
|
||
|
break lab0
|
||
|
}
|
||
|
// ], line 60
|
||
|
env.Bra = env.Cursor
|
||
|
if among_var == 0 {
|
||
|
env.Cursor = env.Limit - v_1
|
||
|
break lab0
|
||
|
} else if among_var == 1 {
|
||
|
// (, line 62
|
||
|
// delete, line 62
|
||
|
if !env.SliceDel() {
|
||
|
return false
|
||
|
}
|
||
|
}
|
||
|
break lab0
|
||
|
}
|
||
|
// [, line 65
|
||
|
env.Ket = env.Cursor
|
||
|
// substring, line 65
|
||
|
among_var = env.FindAmongB(A_2, context)
|
||
|
if among_var == 0 {
|
||
|
return false
|
||
|
}
|
||
|
// ], line 65
|
||
|
env.Bra = env.Cursor
|
||
|
if among_var == 0 {
|
||
|
return false
|
||
|
} else if among_var == 1 {
|
||
|
// (, line 66
|
||
|
// <-, line 66
|
||
|
if !env.SliceFrom("ss") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 2 {
|
||
|
// (, line 68
|
||
|
// or, line 68
|
||
|
lab1:
|
||
|
for {
|
||
|
var v_2 = env.Limit - env.Cursor
|
||
|
lab2:
|
||
|
for {
|
||
|
// (, line 68
|
||
|
{
|
||
|
// hop, line 68
|
||
|
var c = env.ByteIndexForHop(-(2))
|
||
|
if int32(env.LimitBackward) > c || c > int32(env.Limit) {
|
||
|
break lab2
|
||
|
}
|
||
|
env.Cursor = int(c)
|
||
|
}
|
||
|
// <-, line 68
|
||
|
if !env.SliceFrom("i") {
|
||
|
return false
|
||
|
}
|
||
|
break lab1
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_2
|
||
|
// <-, line 68
|
||
|
if !env.SliceFrom("ie") {
|
||
|
return false
|
||
|
}
|
||
|
break lab1
|
||
|
}
|
||
|
} else if among_var == 3 {
|
||
|
// (, line 69
|
||
|
// next, line 69
|
||
|
if env.Cursor <= env.LimitBackward {
|
||
|
return false
|
||
|
}
|
||
|
env.PrevChar()
|
||
|
// gopast, line 69
|
||
|
golab3:
|
||
|
for {
|
||
|
lab4:
|
||
|
for {
|
||
|
if !env.InGroupingB(G_v, 97, 121) {
|
||
|
break lab4
|
||
|
}
|
||
|
break golab3
|
||
|
}
|
||
|
if env.Cursor <= env.LimitBackward {
|
||
|
return false
|
||
|
}
|
||
|
env.PrevChar()
|
||
|
}
|
||
|
// delete, line 69
|
||
|
if !env.SliceDel() {
|
||
|
return false
|
||
|
}
|
||
|
}
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
func r_Step_1b(env *snowballRuntime.Env, ctx interface{}) bool {
|
||
|
context := ctx.(*Context)
|
||
|
_ = context
|
||
|
var among_var int32
|
||
|
// (, line 74
|
||
|
// [, line 75
|
||
|
env.Ket = env.Cursor
|
||
|
// substring, line 75
|
||
|
among_var = env.FindAmongB(A_4, context)
|
||
|
if among_var == 0 {
|
||
|
return false
|
||
|
}
|
||
|
// ], line 75
|
||
|
env.Bra = env.Cursor
|
||
|
if among_var == 0 {
|
||
|
return false
|
||
|
} else if among_var == 1 {
|
||
|
// (, line 77
|
||
|
// call R1, line 77
|
||
|
if !r_R1(env, context) {
|
||
|
return false
|
||
|
}
|
||
|
// <-, line 77
|
||
|
if !env.SliceFrom("ee") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 2 {
|
||
|
// (, line 79
|
||
|
// test, line 80
|
||
|
var v_1 = env.Limit - env.Cursor
|
||
|
// gopast, line 80
|
||
|
golab0:
|
||
|
for {
|
||
|
lab1:
|
||
|
for {
|
||
|
if !env.InGroupingB(G_v, 97, 121) {
|
||
|
break lab1
|
||
|
}
|
||
|
break golab0
|
||
|
}
|
||
|
if env.Cursor <= env.LimitBackward {
|
||
|
return false
|
||
|
}
|
||
|
env.PrevChar()
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_1
|
||
|
// delete, line 80
|
||
|
if !env.SliceDel() {
|
||
|
return false
|
||
|
}
|
||
|
// test, line 81
|
||
|
var v_3 = env.Limit - env.Cursor
|
||
|
// substring, line 81
|
||
|
among_var = env.FindAmongB(A_3, context)
|
||
|
if among_var == 0 {
|
||
|
return false
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_3
|
||
|
if among_var == 0 {
|
||
|
return false
|
||
|
} else if among_var == 1 {
|
||
|
// (, line 83
|
||
|
{
|
||
|
// <+, line 83
|
||
|
var c = env.Cursor
|
||
|
bra, ket := env.Cursor, env.Cursor
|
||
|
env.Insert(bra, ket, "e")
|
||
|
env.Cursor = c
|
||
|
}
|
||
|
} else if among_var == 2 {
|
||
|
// (, line 86
|
||
|
// [, line 86
|
||
|
env.Ket = env.Cursor
|
||
|
// next, line 86
|
||
|
if env.Cursor <= env.LimitBackward {
|
||
|
return false
|
||
|
}
|
||
|
env.PrevChar()
|
||
|
// ], line 86
|
||
|
env.Bra = env.Cursor
|
||
|
// delete, line 86
|
||
|
if !env.SliceDel() {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 3 {
|
||
|
// (, line 87
|
||
|
// atmark, line 87
|
||
|
if env.Cursor != context.i_p1 {
|
||
|
return false
|
||
|
}
|
||
|
// test, line 87
|
||
|
var v_4 = env.Limit - env.Cursor
|
||
|
// call shortv, line 87
|
||
|
if !r_shortv(env, context) {
|
||
|
return false
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_4
|
||
|
{
|
||
|
// <+, line 87
|
||
|
var c = env.Cursor
|
||
|
bra, ket := env.Cursor, env.Cursor
|
||
|
env.Insert(bra, ket, "e")
|
||
|
env.Cursor = c
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
func r_Step_1c(env *snowballRuntime.Env, ctx interface{}) bool {
|
||
|
context := ctx.(*Context)
|
||
|
_ = context
|
||
|
// (, line 93
|
||
|
// [, line 94
|
||
|
env.Ket = env.Cursor
|
||
|
// or, line 94
|
||
|
lab0:
|
||
|
for {
|
||
|
var v_1 = env.Limit - env.Cursor
|
||
|
lab1:
|
||
|
for {
|
||
|
// literal, line 94
|
||
|
if !env.EqSB("y") {
|
||
|
break lab1
|
||
|
}
|
||
|
break lab0
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_1
|
||
|
// literal, line 94
|
||
|
if !env.EqSB("Y") {
|
||
|
return false
|
||
|
}
|
||
|
break lab0
|
||
|
}
|
||
|
// ], line 94
|
||
|
env.Bra = env.Cursor
|
||
|
if !env.OutGroupingB(G_v, 97, 121) {
|
||
|
return false
|
||
|
}
|
||
|
// not, line 95
|
||
|
var v_2 = env.Limit - env.Cursor
|
||
|
lab2:
|
||
|
for {
|
||
|
// atlimit, line 95
|
||
|
if env.Cursor > env.LimitBackward {
|
||
|
break lab2
|
||
|
}
|
||
|
return false
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_2
|
||
|
// <-, line 96
|
||
|
if !env.SliceFrom("i") {
|
||
|
return false
|
||
|
}
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
func r_Step_2(env *snowballRuntime.Env, ctx interface{}) bool {
|
||
|
context := ctx.(*Context)
|
||
|
_ = context
|
||
|
var among_var int32
|
||
|
// (, line 99
|
||
|
// [, line 100
|
||
|
env.Ket = env.Cursor
|
||
|
// substring, line 100
|
||
|
among_var = env.FindAmongB(A_5, context)
|
||
|
if among_var == 0 {
|
||
|
return false
|
||
|
}
|
||
|
// ], line 100
|
||
|
env.Bra = env.Cursor
|
||
|
// call R1, line 100
|
||
|
if !r_R1(env, context) {
|
||
|
return false
|
||
|
}
|
||
|
if among_var == 0 {
|
||
|
return false
|
||
|
} else if among_var == 1 {
|
||
|
// (, line 101
|
||
|
// <-, line 101
|
||
|
if !env.SliceFrom("tion") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 2 {
|
||
|
// (, line 102
|
||
|
// <-, line 102
|
||
|
if !env.SliceFrom("ence") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 3 {
|
||
|
// (, line 103
|
||
|
// <-, line 103
|
||
|
if !env.SliceFrom("ance") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 4 {
|
||
|
// (, line 104
|
||
|
// <-, line 104
|
||
|
if !env.SliceFrom("able") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 5 {
|
||
|
// (, line 105
|
||
|
// <-, line 105
|
||
|
if !env.SliceFrom("ent") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 6 {
|
||
|
// (, line 107
|
||
|
// <-, line 107
|
||
|
if !env.SliceFrom("ize") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 7 {
|
||
|
// (, line 109
|
||
|
// <-, line 109
|
||
|
if !env.SliceFrom("ate") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 8 {
|
||
|
// (, line 111
|
||
|
// <-, line 111
|
||
|
if !env.SliceFrom("al") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 9 {
|
||
|
// (, line 112
|
||
|
// <-, line 112
|
||
|
if !env.SliceFrom("ful") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 10 {
|
||
|
// (, line 114
|
||
|
// <-, line 114
|
||
|
if !env.SliceFrom("ous") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 11 {
|
||
|
// (, line 116
|
||
|
// <-, line 116
|
||
|
if !env.SliceFrom("ive") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 12 {
|
||
|
// (, line 118
|
||
|
// <-, line 118
|
||
|
if !env.SliceFrom("ble") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 13 {
|
||
|
// (, line 119
|
||
|
// literal, line 119
|
||
|
if !env.EqSB("l") {
|
||
|
return false
|
||
|
}
|
||
|
// <-, line 119
|
||
|
if !env.SliceFrom("og") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 14 {
|
||
|
// (, line 120
|
||
|
// <-, line 120
|
||
|
if !env.SliceFrom("ful") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 15 {
|
||
|
// (, line 121
|
||
|
// <-, line 121
|
||
|
if !env.SliceFrom("less") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 16 {
|
||
|
// (, line 122
|
||
|
if !env.InGroupingB(G_valid_LI, 99, 116) {
|
||
|
return false
|
||
|
}
|
||
|
// delete, line 122
|
||
|
if !env.SliceDel() {
|
||
|
return false
|
||
|
}
|
||
|
}
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
func r_Step_3(env *snowballRuntime.Env, ctx interface{}) bool {
|
||
|
context := ctx.(*Context)
|
||
|
_ = context
|
||
|
var among_var int32
|
||
|
// (, line 126
|
||
|
// [, line 127
|
||
|
env.Ket = env.Cursor
|
||
|
// substring, line 127
|
||
|
among_var = env.FindAmongB(A_6, context)
|
||
|
if among_var == 0 {
|
||
|
return false
|
||
|
}
|
||
|
// ], line 127
|
||
|
env.Bra = env.Cursor
|
||
|
// call R1, line 127
|
||
|
if !r_R1(env, context) {
|
||
|
return false
|
||
|
}
|
||
|
if among_var == 0 {
|
||
|
return false
|
||
|
} else if among_var == 1 {
|
||
|
// (, line 128
|
||
|
// <-, line 128
|
||
|
if !env.SliceFrom("tion") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 2 {
|
||
|
// (, line 129
|
||
|
// <-, line 129
|
||
|
if !env.SliceFrom("ate") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 3 {
|
||
|
// (, line 130
|
||
|
// <-, line 130
|
||
|
if !env.SliceFrom("al") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 4 {
|
||
|
// (, line 132
|
||
|
// <-, line 132
|
||
|
if !env.SliceFrom("ic") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 5 {
|
||
|
// (, line 134
|
||
|
// delete, line 134
|
||
|
if !env.SliceDel() {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 6 {
|
||
|
// (, line 136
|
||
|
// call R2, line 136
|
||
|
if !r_R2(env, context) {
|
||
|
return false
|
||
|
}
|
||
|
// delete, line 136
|
||
|
if !env.SliceDel() {
|
||
|
return false
|
||
|
}
|
||
|
}
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
func r_Step_4(env *snowballRuntime.Env, ctx interface{}) bool {
|
||
|
context := ctx.(*Context)
|
||
|
_ = context
|
||
|
var among_var int32
|
||
|
// (, line 140
|
||
|
// [, line 141
|
||
|
env.Ket = env.Cursor
|
||
|
// substring, line 141
|
||
|
among_var = env.FindAmongB(A_7, context)
|
||
|
if among_var == 0 {
|
||
|
return false
|
||
|
}
|
||
|
// ], line 141
|
||
|
env.Bra = env.Cursor
|
||
|
// call R2, line 141
|
||
|
if !r_R2(env, context) {
|
||
|
return false
|
||
|
}
|
||
|
if among_var == 0 {
|
||
|
return false
|
||
|
} else if among_var == 1 {
|
||
|
// (, line 144
|
||
|
// delete, line 144
|
||
|
if !env.SliceDel() {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 2 {
|
||
|
// (, line 145
|
||
|
// or, line 145
|
||
|
lab0:
|
||
|
for {
|
||
|
var v_1 = env.Limit - env.Cursor
|
||
|
lab1:
|
||
|
for {
|
||
|
// literal, line 145
|
||
|
if !env.EqSB("s") {
|
||
|
break lab1
|
||
|
}
|
||
|
break lab0
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_1
|
||
|
// literal, line 145
|
||
|
if !env.EqSB("t") {
|
||
|
return false
|
||
|
}
|
||
|
break lab0
|
||
|
}
|
||
|
// delete, line 145
|
||
|
if !env.SliceDel() {
|
||
|
return false
|
||
|
}
|
||
|
}
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
func r_Step_5(env *snowballRuntime.Env, ctx interface{}) bool {
|
||
|
context := ctx.(*Context)
|
||
|
_ = context
|
||
|
var among_var int32
|
||
|
// (, line 149
|
||
|
// [, line 150
|
||
|
env.Ket = env.Cursor
|
||
|
// substring, line 150
|
||
|
among_var = env.FindAmongB(A_8, context)
|
||
|
if among_var == 0 {
|
||
|
return false
|
||
|
}
|
||
|
// ], line 150
|
||
|
env.Bra = env.Cursor
|
||
|
if among_var == 0 {
|
||
|
return false
|
||
|
} else if among_var == 1 {
|
||
|
// (, line 151
|
||
|
// or, line 151
|
||
|
lab0:
|
||
|
for {
|
||
|
var v_1 = env.Limit - env.Cursor
|
||
|
lab1:
|
||
|
for {
|
||
|
// call R2, line 151
|
||
|
if !r_R2(env, context) {
|
||
|
break lab1
|
||
|
}
|
||
|
break lab0
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_1
|
||
|
// (, line 151
|
||
|
// call R1, line 151
|
||
|
if !r_R1(env, context) {
|
||
|
return false
|
||
|
}
|
||
|
// not, line 151
|
||
|
var v_2 = env.Limit - env.Cursor
|
||
|
lab2:
|
||
|
for {
|
||
|
// call shortv, line 151
|
||
|
if !r_shortv(env, context) {
|
||
|
break lab2
|
||
|
}
|
||
|
return false
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_2
|
||
|
break lab0
|
||
|
}
|
||
|
// delete, line 151
|
||
|
if !env.SliceDel() {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 2 {
|
||
|
// (, line 152
|
||
|
// call R2, line 152
|
||
|
if !r_R2(env, context) {
|
||
|
return false
|
||
|
}
|
||
|
// literal, line 152
|
||
|
if !env.EqSB("l") {
|
||
|
return false
|
||
|
}
|
||
|
// delete, line 152
|
||
|
if !env.SliceDel() {
|
||
|
return false
|
||
|
}
|
||
|
}
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
func r_exception2(env *snowballRuntime.Env, ctx interface{}) bool {
|
||
|
context := ctx.(*Context)
|
||
|
_ = context
|
||
|
// (, line 156
|
||
|
// [, line 158
|
||
|
env.Ket = env.Cursor
|
||
|
// substring, line 158
|
||
|
if env.FindAmongB(A_9, context) == 0 {
|
||
|
return false
|
||
|
}
|
||
|
// ], line 158
|
||
|
env.Bra = env.Cursor
|
||
|
// atlimit, line 158
|
||
|
if env.Cursor > env.LimitBackward {
|
||
|
return false
|
||
|
}
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
func r_exception1(env *snowballRuntime.Env, ctx interface{}) bool {
|
||
|
context := ctx.(*Context)
|
||
|
_ = context
|
||
|
var among_var int32
|
||
|
// (, line 168
|
||
|
// [, line 170
|
||
|
env.Bra = env.Cursor
|
||
|
// substring, line 170
|
||
|
among_var = env.FindAmong(A_10, context)
|
||
|
if among_var == 0 {
|
||
|
return false
|
||
|
}
|
||
|
// ], line 170
|
||
|
env.Ket = env.Cursor
|
||
|
// atlimit, line 170
|
||
|
if env.Cursor < env.Limit {
|
||
|
return false
|
||
|
}
|
||
|
if among_var == 0 {
|
||
|
return false
|
||
|
} else if among_var == 1 {
|
||
|
// (, line 174
|
||
|
// <-, line 174
|
||
|
if !env.SliceFrom("ski") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 2 {
|
||
|
// (, line 175
|
||
|
// <-, line 175
|
||
|
if !env.SliceFrom("sky") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 3 {
|
||
|
// (, line 176
|
||
|
// <-, line 176
|
||
|
if !env.SliceFrom("die") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 4 {
|
||
|
// (, line 177
|
||
|
// <-, line 177
|
||
|
if !env.SliceFrom("lie") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 5 {
|
||
|
// (, line 178
|
||
|
// <-, line 178
|
||
|
if !env.SliceFrom("tie") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 6 {
|
||
|
// (, line 182
|
||
|
// <-, line 182
|
||
|
if !env.SliceFrom("idl") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 7 {
|
||
|
// (, line 183
|
||
|
// <-, line 183
|
||
|
if !env.SliceFrom("gentl") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 8 {
|
||
|
// (, line 184
|
||
|
// <-, line 184
|
||
|
if !env.SliceFrom("ugli") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 9 {
|
||
|
// (, line 185
|
||
|
// <-, line 185
|
||
|
if !env.SliceFrom("earli") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 10 {
|
||
|
// (, line 186
|
||
|
// <-, line 186
|
||
|
if !env.SliceFrom("onli") {
|
||
|
return false
|
||
|
}
|
||
|
} else if among_var == 11 {
|
||
|
// (, line 187
|
||
|
// <-, line 187
|
||
|
if !env.SliceFrom("singl") {
|
||
|
return false
|
||
|
}
|
||
|
}
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
func r_postlude(env *snowballRuntime.Env, ctx interface{}) bool {
|
||
|
context := ctx.(*Context)
|
||
|
_ = context
|
||
|
// (, line 203
|
||
|
// Boolean test Y_found, line 203
|
||
|
if !context.b_Y_found {
|
||
|
return false
|
||
|
}
|
||
|
// repeat, line 203
|
||
|
replab0:
|
||
|
for {
|
||
|
var v_1 = env.Cursor
|
||
|
lab1:
|
||
|
for range [2]struct{}{} {
|
||
|
// (, line 203
|
||
|
// goto, line 203
|
||
|
golab2:
|
||
|
for {
|
||
|
var v_2 = env.Cursor
|
||
|
lab3:
|
||
|
for {
|
||
|
// (, line 203
|
||
|
// [, line 203
|
||
|
env.Bra = env.Cursor
|
||
|
// literal, line 203
|
||
|
if !env.EqS("Y") {
|
||
|
break lab3
|
||
|
}
|
||
|
// ], line 203
|
||
|
env.Ket = env.Cursor
|
||
|
env.Cursor = v_2
|
||
|
break golab2
|
||
|
}
|
||
|
env.Cursor = v_2
|
||
|
if env.Cursor >= env.Limit {
|
||
|
break lab1
|
||
|
}
|
||
|
env.NextChar()
|
||
|
}
|
||
|
// <-, line 203
|
||
|
if !env.SliceFrom("y") {
|
||
|
return false
|
||
|
}
|
||
|
continue replab0
|
||
|
}
|
||
|
env.Cursor = v_1
|
||
|
break replab0
|
||
|
}
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
func Stem(env *snowballRuntime.Env) bool {
|
||
|
var context = &Context{
|
||
|
b_Y_found: false,
|
||
|
i_p2: 0,
|
||
|
i_p1: 0,
|
||
|
}
|
||
|
_ = context
|
||
|
// (, line 205
|
||
|
// or, line 207
|
||
|
lab0:
|
||
|
for {
|
||
|
var v_1 = env.Cursor
|
||
|
lab1:
|
||
|
for {
|
||
|
// call exception1, line 207
|
||
|
if !r_exception1(env, context) {
|
||
|
break lab1
|
||
|
}
|
||
|
break lab0
|
||
|
}
|
||
|
env.Cursor = v_1
|
||
|
lab2:
|
||
|
for {
|
||
|
// not, line 208
|
||
|
var v_2 = env.Cursor
|
||
|
lab3:
|
||
|
for {
|
||
|
{
|
||
|
// hop, line 208
|
||
|
var c = env.ByteIndexForHop((3))
|
||
|
if int32(0) > c || c > int32(env.Limit) {
|
||
|
break lab3
|
||
|
}
|
||
|
env.Cursor = int(c)
|
||
|
}
|
||
|
break lab2
|
||
|
}
|
||
|
env.Cursor = v_2
|
||
|
break lab0
|
||
|
}
|
||
|
env.Cursor = v_1
|
||
|
// (, line 208
|
||
|
// do, line 209
|
||
|
var v_3 = env.Cursor
|
||
|
lab4:
|
||
|
for {
|
||
|
// call prelude, line 209
|
||
|
if !r_prelude(env, context) {
|
||
|
break lab4
|
||
|
}
|
||
|
break lab4
|
||
|
}
|
||
|
env.Cursor = v_3
|
||
|
// do, line 210
|
||
|
var v_4 = env.Cursor
|
||
|
lab5:
|
||
|
for {
|
||
|
// call mark_regions, line 210
|
||
|
if !r_mark_regions(env, context) {
|
||
|
break lab5
|
||
|
}
|
||
|
break lab5
|
||
|
}
|
||
|
env.Cursor = v_4
|
||
|
// backwards, line 211
|
||
|
env.LimitBackward = env.Cursor
|
||
|
env.Cursor = env.Limit
|
||
|
// (, line 211
|
||
|
// do, line 213
|
||
|
var v_5 = env.Limit - env.Cursor
|
||
|
lab6:
|
||
|
for {
|
||
|
// call Step_1a, line 213
|
||
|
if !r_Step_1a(env, context) {
|
||
|
break lab6
|
||
|
}
|
||
|
break lab6
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_5
|
||
|
// or, line 215
|
||
|
lab7:
|
||
|
for {
|
||
|
var v_6 = env.Limit - env.Cursor
|
||
|
lab8:
|
||
|
for {
|
||
|
// call exception2, line 215
|
||
|
if !r_exception2(env, context) {
|
||
|
break lab8
|
||
|
}
|
||
|
break lab7
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_6
|
||
|
// (, line 215
|
||
|
// do, line 217
|
||
|
var v_7 = env.Limit - env.Cursor
|
||
|
lab9:
|
||
|
for {
|
||
|
// call Step_1b, line 217
|
||
|
if !r_Step_1b(env, context) {
|
||
|
break lab9
|
||
|
}
|
||
|
break lab9
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_7
|
||
|
// do, line 218
|
||
|
var v_8 = env.Limit - env.Cursor
|
||
|
lab10:
|
||
|
for {
|
||
|
// call Step_1c, line 218
|
||
|
if !r_Step_1c(env, context) {
|
||
|
break lab10
|
||
|
}
|
||
|
break lab10
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_8
|
||
|
// do, line 220
|
||
|
var v_9 = env.Limit - env.Cursor
|
||
|
lab11:
|
||
|
for {
|
||
|
// call Step_2, line 220
|
||
|
if !r_Step_2(env, context) {
|
||
|
break lab11
|
||
|
}
|
||
|
break lab11
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_9
|
||
|
// do, line 221
|
||
|
var v_10 = env.Limit - env.Cursor
|
||
|
lab12:
|
||
|
for {
|
||
|
// call Step_3, line 221
|
||
|
if !r_Step_3(env, context) {
|
||
|
break lab12
|
||
|
}
|
||
|
break lab12
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_10
|
||
|
// do, line 222
|
||
|
var v_11 = env.Limit - env.Cursor
|
||
|
lab13:
|
||
|
for {
|
||
|
// call Step_4, line 222
|
||
|
if !r_Step_4(env, context) {
|
||
|
break lab13
|
||
|
}
|
||
|
break lab13
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_11
|
||
|
// do, line 224
|
||
|
var v_12 = env.Limit - env.Cursor
|
||
|
lab14:
|
||
|
for {
|
||
|
// call Step_5, line 224
|
||
|
if !r_Step_5(env, context) {
|
||
|
break lab14
|
||
|
}
|
||
|
break lab14
|
||
|
}
|
||
|
env.Cursor = env.Limit - v_12
|
||
|
break lab7
|
||
|
}
|
||
|
env.Cursor = env.LimitBackward
|
||
|
// do, line 227
|
||
|
var v_13 = env.Cursor
|
||
|
lab15:
|
||
|
for {
|
||
|
// call postlude, line 227
|
||
|
if !r_postlude(env, context) {
|
||
|
break lab15
|
||
|
}
|
||
|
break lab15
|
||
|
}
|
||
|
env.Cursor = v_13
|
||
|
break lab0
|
||
|
}
|
||
|
return true
|
||
|
}
|