|
- //! 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
- }
|