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