diff --git a/contrib/amcheck/expected/check_btree.out b/contrib/amcheck/expected/check_btree.out index 13848b7449b7f..5a3f1ef737cf8 100644 --- a/contrib/amcheck/expected/check_btree.out +++ b/contrib/amcheck/expected/check_btree.out @@ -97,8 +97,8 @@ SELECT bt_index_parent_check('bttest_b_idx'); SELECT * FROM pg_locks WHERE relation = ANY(ARRAY['bttest_a', 'bttest_a_idx', 'bttest_b', 'bttest_b_idx']::regclass[]) AND pid = pg_backend_pid(); - locktype | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | mode | granted | fastpath -----------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+-----+------+---------+---------- + locktype | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | mode | granted | fastpath | waitstart +----------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+-----+------+---------+----------+----------- (0 rows) COMMIT; diff --git a/contrib/amcheck/verify_nbtree.c b/contrib/amcheck/verify_nbtree.c index b8c7793d9e06a..4db1a64d5142e 100644 --- a/contrib/amcheck/verify_nbtree.c +++ b/contrib/amcheck/verify_nbtree.c @@ -535,7 +535,7 @@ bt_check_every_level(Relation rel, Relation heaprel, bool heapkeyspace, if (metad->btm_fastroot != metad->btm_root) ereport(DEBUG1, (errcode(ERRCODE_NO_DATA), - errmsg("harmless fast root mismatch in index %s", + errmsg_internal("harmless fast root mismatch in index %s", RelationGetRelationName(rel)), errdetail_internal("Fast root block %u (level %u) differs from true root block %u (level %u).", metad->btm_fastroot, metad->btm_fastlevel, @@ -721,7 +721,7 @@ bt_check_level_from_leftmost(BtreeCheckState *state, BtreeLevel level) else ereport(DEBUG1, (errcode(ERRCODE_NO_DATA), - errmsg("block %u of index \"%s\" ignored", + errmsg_internal("block %u of index \"%s\" ignored", current, RelationGetRelationName(state->rel)))); goto nextpage; } @@ -979,7 +979,7 @@ bt_recheck_sibling_links(BtreeCheckState *state, /* Report split in left sibling, not target (or new target) */ ereport(DEBUG1, (errcode(ERRCODE_INTERNAL_ERROR), - errmsg("harmless concurrent page split detected in index \"%s\"", + errmsg_internal("harmless concurrent page split detected in index \"%s\"", RelationGetRelationName(state->rel)), errdetail_internal("Block=%u new right sibling=%u original right sibling=%u.", leftcurrent, newtargetblock, @@ -1605,7 +1605,7 @@ bt_right_page_check_scankey(BtreeCheckState *state) targetnext = opaque->btpo_next; ereport(DEBUG1, (errcode(ERRCODE_NO_DATA), - errmsg("level %u leftmost page of index \"%s\" was found deleted or half dead", + errmsg_internal("level %u leftmost page of index \"%s\" was found deleted or half dead", opaque->btpo.level, RelationGetRelationName(state->rel)), errdetail_internal("Deleted page found when building scankey from right sibling."))); @@ -1733,7 +1733,7 @@ bt_right_page_check_scankey(BtreeCheckState *state) */ ereport(DEBUG1, (errcode(ERRCODE_NO_DATA), - errmsg("%s block %u of index \"%s\" has no first data item", + errmsg_internal("%s block %u of index \"%s\" has no first data item", P_ISLEAF(opaque) ? "leaf" : "internal", targetnext, RelationGetRelationName(state->rel)))); return NULL; @@ -2287,7 +2287,7 @@ bt_downlink_missing_check(BtreeCheckState *state, bool rightsplit, { ereport(DEBUG1, (errcode(ERRCODE_NO_DATA), - errmsg("harmless interrupted page split detected in index %s", + errmsg_internal("harmless interrupted page split detected in index %s", RelationGetRelationName(state->rel)), errdetail_internal("Block=%u level=%u left sibling=%u page lsn=%X/%X.", blkno, opaque->btpo.level, diff --git a/contrib/pageinspect/expected/gist.out b/contrib/pageinspect/expected/gist.out index 5f7d8cea71b83..86c9e9caa9dce 100644 --- a/contrib/pageinspect/expected/gist.out +++ b/contrib/pageinspect/expected/gist.out @@ -31,25 +31,25 @@ SELECT * FROM gist_page_opaque_info(get_raw_page('test_gist_idx', 2)); COMMIT; SELECT * FROM gist_page_items(get_raw_page('test_gist_idx', 0), 'test_gist_idx'); - itemoffset | ctid | itemlen | keys -------------+-----------+---------+------------------- - 1 | (1,65535) | 40 | (p)=((166,166)) - 2 | (2,65535) | 40 | (p)=((332,332)) - 3 | (3,65535) | 40 | (p)=((498,498)) - 4 | (4,65535) | 40 | (p)=((664,664)) - 5 | (5,65535) | 40 | (p)=((830,830)) - 6 | (6,65535) | 40 | (p)=((996,996)) - 7 | (7,65535) | 40 | (p)=((1000,1000)) + itemoffset | ctid | itemlen | dead | keys +------------+-----------+---------+------+------------------- + 1 | (1,65535) | 40 | f | (p)=((166,166)) + 2 | (2,65535) | 40 | f | (p)=((332,332)) + 3 | (3,65535) | 40 | f | (p)=((498,498)) + 4 | (4,65535) | 40 | f | (p)=((664,664)) + 5 | (5,65535) | 40 | f | (p)=((830,830)) + 6 | (6,65535) | 40 | f | (p)=((996,996)) + 7 | (7,65535) | 40 | f | (p)=((1000,1000)) (7 rows) SELECT * FROM gist_page_items(get_raw_page('test_gist_idx', 1), 'test_gist_idx') LIMIT 5; - itemoffset | ctid | itemlen | keys -------------+-------+---------+------------- - 1 | (0,1) | 40 | (p)=((1,1)) - 2 | (0,2) | 40 | (p)=((2,2)) - 3 | (0,3) | 40 | (p)=((3,3)) - 4 | (0,4) | 40 | (p)=((4,4)) - 5 | (0,5) | 40 | (p)=((5,5)) + itemoffset | ctid | itemlen | dead | keys +------------+-------+---------+------+------------- + 1 | (0,1) | 40 | f | (p)=((1,1)) + 2 | (0,2) | 40 | f | (p)=((2,2)) + 3 | (0,3) | 40 | f | (p)=((3,3)) + 4 | (0,4) | 40 | f | (p)=((4,4)) + 5 | (0,5) | 40 | f | (p)=((5,5)) (5 rows) -- gist_page_items_bytea prints the raw key data as a bytea. The output of that is diff --git a/contrib/pageinspect/gistfuncs.c b/contrib/pageinspect/gistfuncs.c index d5da1ea839a57..eb9f6303df63f 100644 --- a/contrib/pageinspect/gistfuncs.c +++ b/contrib/pageinspect/gistfuncs.c @@ -103,6 +103,7 @@ gist_page_items_bytea(PG_FUNCTION_ARGS) MemoryContext oldcontext; Page page; OffsetNumber offset; + OffsetNumber maxoff = InvalidOffsetNumber; if (!superuser()) ereport(ERROR, @@ -135,15 +136,18 @@ gist_page_items_bytea(PG_FUNCTION_ARGS) page = get_page_from_raw(raw_page); + /* Avoid bogus PageGetMaxOffsetNumber() call with deleted pages */ if (GistPageIsDeleted(page)) elog(NOTICE, "page is deleted"); + else + maxoff = PageGetMaxOffsetNumber(page); for (offset = FirstOffsetNumber; - offset <= PageGetMaxOffsetNumber(page); + offset <= maxoff; offset++) { - Datum values[4]; - bool nulls[4]; + Datum values[5]; + bool nulls[5]; ItemId id; IndexTuple itup; bytea *tuple_bytea; @@ -166,7 +170,8 @@ gist_page_items_bytea(PG_FUNCTION_ARGS) tuple_bytea = (bytea *) palloc(tuple_len + VARHDRSZ); SET_VARSIZE(tuple_bytea, tuple_len + VARHDRSZ); memcpy(VARDATA(tuple_bytea), itup, tuple_len); - values[3] = PointerGetDatum(tuple_bytea); + values[3] = BoolGetDatum(ItemIdIsDead(id)); + values[4] = PointerGetDatum(tuple_bytea); tuplestore_putvalues(tupstore, tupdesc, values, nulls); } @@ -187,6 +192,7 @@ gist_page_items(PG_FUNCTION_ARGS) MemoryContext oldcontext; Page page; OffsetNumber offset; + OffsetNumber maxoff = InvalidOffsetNumber; if (!superuser()) ereport(ERROR, @@ -222,15 +228,18 @@ gist_page_items(PG_FUNCTION_ARGS) page = get_page_from_raw(raw_page); + /* Avoid bogus PageGetMaxOffsetNumber() call with deleted pages */ if (GistPageIsDeleted(page)) elog(NOTICE, "page is deleted"); + else + maxoff = PageGetMaxOffsetNumber(page); for (offset = FirstOffsetNumber; - offset <= PageGetMaxOffsetNumber(page); + offset <= maxoff; offset++) { - Datum values[4]; - bool nulls[4]; + Datum values[5]; + bool nulls[5]; ItemId id; IndexTuple itup; Datum itup_values[INDEX_MAX_KEYS]; @@ -252,14 +261,15 @@ gist_page_items(PG_FUNCTION_ARGS) values[0] = DatumGetInt16(offset); values[1] = ItemPointerGetDatum(&itup->t_tid); values[2] = Int32GetDatum((int) IndexTupleSize(itup)); + values[3] = BoolGetDatum(ItemIdIsDead(id)); key_desc = BuildIndexValueDescription(indexRel, itup_values, itup_isnull); if (key_desc) - values[3] = CStringGetTextDatum(key_desc); + values[4] = CStringGetTextDatum(key_desc); else { - values[3] = (Datum) 0; - nulls[3] = true; + values[4] = (Datum) 0; + nulls[4] = true; } tuplestore_putvalues(tupstore, tupdesc, values, nulls); diff --git a/contrib/pageinspect/pageinspect--1.8--1.9.sql b/contrib/pageinspect/pageinspect--1.8--1.9.sql index b4248d791f0d1..79a42a7b11e03 100644 --- a/contrib/pageinspect/pageinspect--1.8--1.9.sql +++ b/contrib/pageinspect/pageinspect--1.8--1.9.sql @@ -22,6 +22,7 @@ CREATE FUNCTION gist_page_items_bytea(IN page bytea, OUT itemoffset smallint, OUT ctid tid, OUT itemlen smallint, + OUT dead boolean, OUT key_data bytea) RETURNS SETOF record AS 'MODULE_PATHNAME', 'gist_page_items_bytea' @@ -35,6 +36,7 @@ CREATE FUNCTION gist_page_items(IN page bytea, OUT itemoffset smallint, OUT ctid tid, OUT itemlen smallint, + OUT dead boolean, OUT keys text) RETURNS SETOF record AS 'MODULE_PATHNAME', 'gist_page_items' diff --git a/contrib/pg_prewarm/autoprewarm.c b/contrib/pg_prewarm/autoprewarm.c index 4c08d2b386b9c..b3f73ea92d651 100644 --- a/contrib/pg_prewarm/autoprewarm.c +++ b/contrib/pg_prewarm/autoprewarm.c @@ -697,7 +697,7 @@ apw_dump_now(bool is_bgworker, bool dump_unlogged) apw_state->pid_using_dumpfile = InvalidPid; ereport(DEBUG1, - (errmsg("wrote block details for %d blocks", num_blocks))); + (errmsg_internal("wrote block details for %d blocks", num_blocks))); return num_blocks; } diff --git a/contrib/pgcrypto/internal-sha2.c b/contrib/pgcrypto/internal-sha2.c index 0fe53e15afabb..ecf3004e95b96 100644 --- a/contrib/pgcrypto/internal-sha2.c +++ b/contrib/pgcrypto/internal-sha2.c @@ -118,7 +118,7 @@ int_sha2_finish(PX_MD *h, uint8 *dst) { pg_cryptohash_ctx *ctx = (pg_cryptohash_ctx *) h->p.ptr; - if (pg_cryptohash_final(ctx, dst) < 0) + if (pg_cryptohash_final(ctx, dst, h->result_size(h)) < 0) elog(ERROR, "could not finalize %s context", "SHA2"); } diff --git a/contrib/pgcrypto/internal.c b/contrib/pgcrypto/internal.c index ef6ce2fb1ef94..dd45fee7ed69e 100644 --- a/contrib/pgcrypto/internal.c +++ b/contrib/pgcrypto/internal.c @@ -106,7 +106,7 @@ int_md5_finish(PX_MD *h, uint8 *dst) { pg_cryptohash_ctx *ctx = (pg_cryptohash_ctx *) h->p.ptr; - if (pg_cryptohash_final(ctx, dst) < 0) + if (pg_cryptohash_final(ctx, dst, h->result_size(h)) < 0) elog(ERROR, "could not finalize %s context", "MD5"); } @@ -156,7 +156,7 @@ int_sha1_finish(PX_MD *h, uint8 *dst) { pg_cryptohash_ctx *ctx = (pg_cryptohash_ctx *) h->p.ptr; - if (pg_cryptohash_final(ctx, dst) < 0) + if (pg_cryptohash_final(ctx, dst, h->result_size(h)) < 0) elog(ERROR, "could not finalize %s context", "SHA1"); } diff --git a/contrib/pgstattuple/pgstattuple.c b/contrib/pgstattuple/pgstattuple.c index 69179d4104d5c..21fdeff8afd54 100644 --- a/contrib/pgstattuple/pgstattuple.c +++ b/contrib/pgstattuple/pgstattuple.c @@ -430,7 +430,7 @@ pgstat_btree_page(pgstattuple_type *stat, Relation rel, BlockNumber blkno, opaque = (BTPageOpaque) PageGetSpecialPointer(page); if (P_IGNORE(opaque)) { - /* recyclable page */ + /* deleted or half-dead page */ stat->free_space += BLCKSZ; } else if (P_ISLEAF(opaque)) @@ -440,7 +440,7 @@ pgstat_btree_page(pgstattuple_type *stat, Relation rel, BlockNumber blkno, } else { - /* root or node */ + /* internal page */ } } diff --git a/contrib/postgres_fdw/expected/postgres_fdw.out b/contrib/postgres_fdw/expected/postgres_fdw.out index b09dce63f5ffa..0649b6b81cd92 100644 --- a/contrib/postgres_fdw/expected/postgres_fdw.out +++ b/contrib/postgres_fdw/expected/postgres_fdw.out @@ -613,6 +613,24 @@ SELECT t1."C 1", t2.c1, t3.c1 FROM "S 1"."T 1" t1 full join ft1 t2 full join ft2 RESET enable_hashjoin; RESET enable_nestloop; +-- Test executing assertion in estimate_path_cost_size() that makes sure that +-- retrieved_rows for foreign rel re-used to cost pre-sorted foreign paths is +-- a sensible value even when the rel has tuples=0 +CREATE TABLE loct_empty (c1 int NOT NULL, c2 text); +CREATE FOREIGN TABLE ft_empty (c1 int NOT NULL, c2 text) + SERVER loopback OPTIONS (table_name 'loct_empty'); +INSERT INTO loct_empty + SELECT id, 'AAA' || to_char(id, 'FM000') FROM generate_series(1, 100) id; +DELETE FROM loct_empty; +ANALYZE ft_empty; +EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM ft_empty ORDER BY c1; + QUERY PLAN +------------------------------------------------------------------------------- + Foreign Scan on public.ft_empty + Output: c1, c2 + Remote SQL: SELECT c1, c2 FROM public.loct_empty ORDER BY c1 ASC NULLS LAST +(3 rows) + -- =================================================================== -- WHERE with remotely-executable conditions -- =================================================================== @@ -8928,7 +8946,7 @@ DO $d$ END; $d$; ERROR: invalid option "password" -HINT: Valid options in this context are: service, passfile, channel_binding, connect_timeout, dbname, host, hostaddr, port, options, application_name, keepalives, keepalives_idle, keepalives_interval, keepalives_count, tcp_user_timeout, sslmode, sslcompression, sslcert, sslkey, sslrootcert, sslcrl, requirepeer, ssl_min_protocol_version, ssl_max_protocol_version, gssencmode, krbsrvname, gsslib, target_session_attrs, use_remote_estimate, fdw_startup_cost, fdw_tuple_cost, extensions, updatable, fetch_size, batch_size +HINT: Valid options in this context are: service, passfile, channel_binding, connect_timeout, dbname, host, hostaddr, port, options, application_name, keepalives, keepalives_idle, keepalives_interval, keepalives_count, tcp_user_timeout, sslmode, sslcompression, sslcert, sslkey, sslrootcert, sslcrl, sslcrldir, requirepeer, ssl_min_protocol_version, ssl_max_protocol_version, gssencmode, krbsrvname, gsslib, target_session_attrs, use_remote_estimate, fdw_startup_cost, fdw_tuple_cost, extensions, updatable, fetch_size, batch_size CONTEXT: SQL statement "ALTER SERVER loopback_nopw OPTIONS (ADD password 'dummypw')" PL/pgSQL function inline_code_block line 3 at EXECUTE -- If we add a password for our user mapping instead, we should get a different @@ -9396,5 +9414,26 @@ SELECT COUNT(*) FROM batch_table; 66 (1 row) +-- Check that enabling batched inserts doesn't interfere with cross-partition +-- updates +CREATE TABLE batch_cp_upd_test (a int) PARTITION BY LIST (a); +CREATE TABLE batch_cp_upd_test1 (LIKE batch_cp_upd_test); +CREATE FOREIGN TABLE batch_cp_upd_test1_f + PARTITION OF batch_cp_upd_test + FOR VALUES IN (1) + SERVER loopback + OPTIONS (table_name 'batch_cp_upd_test1', batch_size '10'); +CREATE TABLE batch_cp_up_test1 PARTITION OF batch_cp_upd_test + FOR VALUES IN (2); +INSERT INTO batch_cp_upd_test VALUES (1), (2); +-- The following moves a row from the local partition to the foreign one +UPDATE batch_cp_upd_test t SET a = 1 FROM (VALUES (1), (2)) s(a) WHERE t.a = s.a; +SELECT tableoid::regclass, * FROM batch_cp_upd_test; + tableoid | a +----------------------+--- + batch_cp_upd_test1_f | 1 + batch_cp_upd_test1_f | 1 +(2 rows) + -- Clean up -DROP TABLE batch_table CASCADE; +DROP TABLE batch_table, batch_cp_upd_test CASCADE; diff --git a/contrib/postgres_fdw/postgres_fdw.c b/contrib/postgres_fdw/postgres_fdw.c index 2ce42ce3f113d..35b48575c5935 100644 --- a/contrib/postgres_fdw/postgres_fdw.c +++ b/contrib/postgres_fdw/postgres_fdw.c @@ -1934,17 +1934,26 @@ static int postgresGetForeignModifyBatchSize(ResultRelInfo *resultRelInfo) { int batch_size; + PgFdwModifyState *fmstate = resultRelInfo->ri_FdwState ? + (PgFdwModifyState *) resultRelInfo->ri_FdwState : + NULL; /* should be called only once */ Assert(resultRelInfo->ri_BatchSize == 0); + /* + * Should never get called when the insert is being performed as part of + * a row movement operation. + */ + Assert(fmstate == NULL || fmstate->aux_fmstate == NULL); + /* * In EXPLAIN without ANALYZE, ri_fdwstate is NULL, so we have to lookup * the option directly in server/table options. Otherwise just use the * value we determined earlier. */ - if (resultRelInfo->ri_FdwState) - batch_size = ((PgFdwModifyState *) resultRelInfo->ri_FdwState)->batch_size; + if (fmstate) + batch_size = fmstate->batch_size; else batch_size = get_batch_size_option(resultRelInfo->ri_RelationDesc); @@ -2025,7 +2034,7 @@ postgresBeginForeignInsert(ModifyTableState *mtstate, PgFdwModifyState *fmstate; ModifyTable *plan = castNode(ModifyTable, mtstate->ps.plan); EState *estate = mtstate->ps.state; - Index resultRelation = resultRelInfo->ri_RangeTableIndex; + Index resultRelation; Relation rel = resultRelInfo->ri_RelationDesc; RangeTblEntry *rte; TupleDesc tupdesc = RelationGetDescr(rel); @@ -2077,7 +2086,8 @@ postgresBeginForeignInsert(ModifyTableState *mtstate, } /* - * If the foreign table is a partition, we need to create a new RTE + * If the foreign table is a partition that doesn't have a corresponding + * RTE entry, we need to create a new RTE * describing the foreign table for use by deparseInsertSql and * create_foreign_modify() below, after first copying the parent's RTE and * modifying some fields to describe the foreign partition to work on. @@ -2085,9 +2095,11 @@ postgresBeginForeignInsert(ModifyTableState *mtstate, * correspond to this partition if it is one of the UPDATE subplan target * rels; in that case, we can just use the existing RTE as-is. */ - rte = exec_rt_fetch(resultRelation, estate); - if (rte->relid != RelationGetRelid(rel)) + if (resultRelInfo->ri_RangeTableIndex == 0) { + ResultRelInfo *rootResultRelInfo = resultRelInfo->ri_RootResultRelInfo; + + rte = exec_rt_fetch(rootResultRelInfo->ri_RangeTableIndex, estate); rte = copyObject(rte); rte->relid = RelationGetRelid(rel); rte->relkind = RELKIND_FOREIGN_TABLE; @@ -2099,8 +2111,15 @@ postgresBeginForeignInsert(ModifyTableState *mtstate, * Vars contained in those expressions. */ if (plan && plan->operation == CMD_UPDATE && - resultRelation == plan->rootRelation) + rootResultRelInfo->ri_RangeTableIndex == plan->rootRelation) resultRelation = mtstate->resultRelInfo[0].ri_RangeTableIndex; + else + resultRelation = rootResultRelInfo->ri_RangeTableIndex; + } + else + { + resultRelation = resultRelInfo->ri_RangeTableIndex; + rte = exec_rt_fetch(resultRelation, estate); } /* Construct the SQL command string. */ @@ -2923,7 +2942,7 @@ estimate_path_cost_size(PlannerInfo *root, */ if (fpinfo->rel_startup_cost >= 0 && fpinfo->rel_total_cost >= 0) { - Assert(fpinfo->retrieved_rows >= 1); + Assert(fpinfo->retrieved_rows >= 0); rows = fpinfo->rows; retrieved_rows = fpinfo->retrieved_rows; diff --git a/contrib/postgres_fdw/sql/postgres_fdw.sql b/contrib/postgres_fdw/sql/postgres_fdw.sql index 319c15d635c06..2b525ea44a88b 100644 --- a/contrib/postgres_fdw/sql/postgres_fdw.sql +++ b/contrib/postgres_fdw/sql/postgres_fdw.sql @@ -309,6 +309,18 @@ SELECT t1."C 1", t2.c1, t3.c1 FROM "S 1"."T 1" t1 full join ft1 t2 full join ft2 RESET enable_hashjoin; RESET enable_nestloop; +-- Test executing assertion in estimate_path_cost_size() that makes sure that +-- retrieved_rows for foreign rel re-used to cost pre-sorted foreign paths is +-- a sensible value even when the rel has tuples=0 +CREATE TABLE loct_empty (c1 int NOT NULL, c2 text); +CREATE FOREIGN TABLE ft_empty (c1 int NOT NULL, c2 text) + SERVER loopback OPTIONS (table_name 'loct_empty'); +INSERT INTO loct_empty + SELECT id, 'AAA' || to_char(id, 'FM000') FROM generate_series(1, 100) id; +DELETE FROM loct_empty; +ANALYZE ft_empty; +EXPLAIN (VERBOSE, COSTS OFF) SELECT * FROM ft_empty ORDER BY c1; + -- =================================================================== -- WHERE with remotely-executable conditions -- =================================================================== @@ -2897,5 +2909,22 @@ CREATE TABLE batch_table_p2 INSERT INTO batch_table SELECT * FROM generate_series(1, 66) i; SELECT COUNT(*) FROM batch_table; +-- Check that enabling batched inserts doesn't interfere with cross-partition +-- updates +CREATE TABLE batch_cp_upd_test (a int) PARTITION BY LIST (a); +CREATE TABLE batch_cp_upd_test1 (LIKE batch_cp_upd_test); +CREATE FOREIGN TABLE batch_cp_upd_test1_f + PARTITION OF batch_cp_upd_test + FOR VALUES IN (1) + SERVER loopback + OPTIONS (table_name 'batch_cp_upd_test1', batch_size '10'); +CREATE TABLE batch_cp_up_test1 PARTITION OF batch_cp_upd_test + FOR VALUES IN (2); +INSERT INTO batch_cp_upd_test VALUES (1), (2); + +-- The following moves a row from the local partition to the foreign one +UPDATE batch_cp_upd_test t SET a = 1 FROM (VALUES (1), (2)) s(a) WHERE t.a = s.a; +SELECT tableoid::regclass, * FROM batch_cp_upd_test; + -- Clean up -DROP TABLE batch_table CASCADE; +DROP TABLE batch_table, batch_cp_upd_test CASCADE; diff --git a/contrib/uuid-ossp/uuid-ossp.c b/contrib/uuid-ossp/uuid-ossp.c index 49a4a5926455c..f9335f28631c2 100644 --- a/contrib/uuid-ossp/uuid-ossp.c +++ b/contrib/uuid-ossp/uuid-ossp.c @@ -324,7 +324,8 @@ uuid_generate_internal(int v, unsigned char *ns, const char *ptr, int len) pg_cryptohash_update(ctx, (unsigned char *) ptr, len) < 0) elog(ERROR, "could not update %s context", "MD5"); /* we assume sizeof MD5 result is 16, same as UUID size */ - if (pg_cryptohash_final(ctx, (unsigned char *) &uu) < 0) + if (pg_cryptohash_final(ctx, (unsigned char *) &uu, + sizeof(uu)) < 0) elog(ERROR, "could not finalize %s context", "MD5"); pg_cryptohash_free(ctx); } @@ -338,7 +339,7 @@ uuid_generate_internal(int v, unsigned char *ns, const char *ptr, int len) if (pg_cryptohash_update(ctx, ns, sizeof(uu)) < 0 || pg_cryptohash_update(ctx, (unsigned char *) ptr, len) < 0) elog(ERROR, "could not update %s context", "SHA1"); - if (pg_cryptohash_final(ctx, sha1result) < 0) + if (pg_cryptohash_final(ctx, sha1result, sizeof(sha1result)) < 0) elog(ERROR, "could not finalize %s context", "SHA1"); pg_cryptohash_free(ctx); diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml index ea222c04640b1..db29905e91ffa 100644 --- a/doc/src/sgml/catalogs.sgml +++ b/doc/src/sgml/catalogs.sgml @@ -7673,6 +7673,7 @@ SCRAM-SHA-256$<iteration count>:&l State code: i = initialize, d = data is being copied, + f = finished table copy, s = synchronized, r = ready (normal replication) @@ -10604,6 +10605,19 @@ SCRAM-SHA-256$<iteration count>:&l lock table + + + + waitstart timestamptz + + + Time when the server process started waiting for this lock, + or null if the lock is held. + Note that this can be null for a very short period of time after + the wait started even though granted + is false. + + diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 5ef1c7ad3c53e..e81141e45cf7a 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1216,7 +1216,41 @@ include_dir 'conf.d' Relative paths are relative to the data directory. This parameter can only be set in the postgresql.conf file or on the server command line. - The default is empty, meaning no CRL file is loaded. + The default is empty, meaning no CRL file is loaded (unless + is set). + + + + + + ssl_crl_dir (string) + + ssl_crl_dir configuration parameter + + + + + Specifies the name of the directory containing the SSL server + certificate revocation list (CRL). Relative paths are relative to the + data directory. This parameter can only be set in + the postgresql.conf file or on the server command + line. The default is empty, meaning no CRLs are used (unless + is set). + + + + The directory needs to be prepared with the OpenSSL command + openssl rehash or c_rehash. See + its documentation for details. + + + + When using this setting, CRLs in the specified directory are loaded + on-demand at connection time. New CRLs can be added to the directory + and will be used immediately. This is unlike , which causes the CRL in the file to be + loaded at server start time or when the configuration is reloaded. + Both settings can be used together. @@ -2928,7 +2962,7 @@ include_dir 'conf.d' Not all of these choices are available on all platforms. The default is the first method in the above list that is supported by the platform, except that fdatasync is the default on - Linux. The default is not necessarily ideal; it might be + Linux and FreeBSD. The default is not necessarily ideal; it might be necessary to change this setting or other aspects of your system configuration in order to create a crash-safe configuration or achieve optimal performance. diff --git a/doc/src/sgml/ecpg.sgml b/doc/src/sgml/ecpg.sgml index 0fef9bfcbe5d9..9310a7116628f 100644 --- a/doc/src/sgml/ecpg.sgml +++ b/doc/src/sgml/ecpg.sgml @@ -120,7 +120,7 @@ EXEC SQL CONNECT TO target AS - unix:postgresql://hostname:port/dbname?options + unix:postgresql://localhost:port/dbname?options @@ -143,17 +143,26 @@ EXEC SQL CONNECT TO target AS - If you specify the connection target literally (that is, not - through a variable reference) and you don't quote the value, then - the case-insensitivity rules of normal SQL are applied. In that - case you can also double-quote the individual parameters separately - as needed. In practice, it is probably less error-prone to use a - (single-quoted) string literal or a variable reference. The - connection target DEFAULT initiates a connection + The connection target DEFAULT initiates a connection to the default database under the default user name. No separate user name or connection name can be specified in that case. + + If you specify the connection target directly (that is, not as a string + literal or variable reference), then the components of the target are + passed through normal SQL parsing; this means that, for example, + the hostname must look like one or more SQL + identifiers separated by dots, and those identifiers will be + case-folded unless double-quoted. Values of + any options must be SQL identifiers, + integers, or variable references. Of course, you can put nearly + anything into an SQL identifier by double-quoting it. + In practice, it is probably less error-prone to use a (single-quoted) + string literal or a variable reference than to write the connection + target directly. + + There are also different ways to specify the user name: @@ -201,6 +210,15 @@ EXEC SQL CONNECT TO target AS write & within a value. + + Notice that when specifying a socket connection + (with the unix: prefix), the host name must be + exactly localhost. To select a non-default + socket directory, write the directory's pathname as the value of + a host option in + the options part of the target. + + The connection-name is used to handle multiple connections in one program. It can be omitted if a @@ -210,24 +228,12 @@ EXEC SQL CONNECT TO target AS chapter). - - If untrusted users have access to a database that has not adopted a - secure schema usage pattern, - begin each session by removing publicly-writable schemas - from search_path. For example, - add options=-c search_path= - to options, or - issue EXEC SQL SELECT pg_catalog.set_config('search_path', '', - false); after connecting. This consideration is not specific to - ECPG; it applies to every interface for executing arbitrary SQL commands. - - Here are some examples of CONNECT statements: EXEC SQL CONNECT TO mydb@sql.mydomain.com; -EXEC SQL CONNECT TO unix:postgresql://sql.mydomain.com/mydb AS myconnection USER john; +EXEC SQL CONNECT TO tcp:postgresql://sql.mydomain.com/mydb AS myconnection USER john; EXEC SQL BEGIN DECLARE SECTION; const char *target = "mydb@sql.mydomain.com"; @@ -238,8 +244,8 @@ EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT TO :target USER :user USING :passwd; /* or EXEC SQL CONNECT TO :target USER :user/:passwd; */ - The last form makes use of the variant referred to above as - character variable reference. You will see in later sections how C + The last example makes use of the feature referred to above as + character variable references. You will see in later sections how C variables can be used in SQL statements when you prefix them with a colon. @@ -251,6 +257,18 @@ EXEC SQL CONNECT TO :target USER :user USING :passwd; example above to encapsulate the connection target string somewhere. + + + If untrusted users have access to a database that has not adopted a + secure schema usage pattern, + begin each session by removing publicly-writable schemas + from search_path. For example, + add options=-c search_path= + to options, or + issue EXEC SQL SELECT pg_catalog.set_config('search_path', '', + false); after connecting. This consideration is not specific to + ECPG; it applies to every interface for executing arbitrary SQL commands. + diff --git a/doc/src/sgml/fdwhandler.sgml b/doc/src/sgml/fdwhandler.sgml index 854913ae5fc94..2e73d296d24bc 100644 --- a/doc/src/sgml/fdwhandler.sgml +++ b/doc/src/sgml/fdwhandler.sgml @@ -619,7 +619,7 @@ TupleTableSlot ** ExecForeignBatchInsert(EState *estate, ResultRelInfo *rinfo, TupleTableSlot **slots, - TupleTableSlot *planSlots, + TupleTableSlot **planSlots, int *numSlots); diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index b7150510aba46..1ab31a9056195 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -25102,11 +25102,11 @@ SELECT collation for ('foo' COLLATE "de_DE"); pg_wal_lsn_diff - pg_wal_lsn_diff ( lsn pg_lsn, lsn pg_lsn ) + pg_wal_lsn_diff ( lsn1 pg_lsn, lsn2 pg_lsn ) numeric - Calculates the difference in bytes between two write-ahead log + Calculates the difference in bytes (lsn1 - lsn2) between two write-ahead log locations. This can be used with pg_stat_replication or some of the functions shown in to diff --git a/doc/src/sgml/information_schema.sgml b/doc/src/sgml/information_schema.sgml index 36ec17a4c606e..41001982528bd 100644 --- a/doc/src/sgml/information_schema.sgml +++ b/doc/src/sgml/information_schema.sgml @@ -4841,6 +4841,126 @@ ORDER BY c.ordinal_position; + + <literal>routine_column_usage</literal> + + + The view routine_column_usage is meant to identify all + columns that are used by a function or procedure. This information is + currently not tracked by PostgreSQL. + + + + <literal>routine_column_usage</literal> Columns + + + + + + Column Type + + + Description + + + + + + + + specific_catalog sql_identifier + + + Name of the database containing the function (always the current database) + + + + + + specific_schema sql_identifier + + + Name of the schema containing the function + + + + + + specific_name sql_identifier + + + The specific name of the function. See for more information. + + + + + + routine_catalog sql_identifier + + + Name of the database containing the function (always the current database) + + + + + + routine_schema sql_identifier + + + Name of the schema containing the function + + + + + + routine_name sql_identifier + + + Name of the function (might be duplicated in case of overloading) + + + + + + table_catalog sql_identifier + + + Name of the database that contains the table that is used by the + function (always the current database) + + + + + + table_schema sql_identifier + + + Name of the schema that contains the table that is used by the function + + + + + + table_name sql_identifier + + + Name of the table that is used by the function + + + + + + column_name sql_identifier + + + Name of the column that is used by the function + + + + +
+
+ <literal>routine_privileges</literal> @@ -4960,6 +5080,329 @@ ORDER BY c.ordinal_position; + + <literal>routine_routine_usage</literal> + + + The view routine_routine_usage is meant to identify all + functions or procedures that are used by another (or the same) function or + procedure, either in the body or in parameter default expressions. + Currently, only functions used in parameter default expressions are + tracked. An entry is included here only if the used function is owned by a + currently enabled role. (There is no such restriction on the using + function.) + + + + Note that the entries for both functions in the view refer to the + specific name of the routine, even though the column names + are used in a way that is inconsistent with other information schema views + about routines. This is per SQL standard, although it is arguably a + misdesign. See for more information + about specific names. + + + + <literal>routine_routine_usage</literal> Columns + + + + + + Column Type + + + Description + + + + + + + + specific_catalog sql_identifier + + + Name of the database containing the using function (always the current database) + + + + + + specific_schema sql_identifier + + + Name of the schema containing the using function + + + + + + specific_name sql_identifier + + + The specific name of the using function. + + + + + + routine_catalog sql_identifier + + + Name of the database that contains the function that is used by the + first function (always the current database) + + + + + + routine_schema sql_identifier + + + Name of the schema that contains the function that is used by the first + function + + + + + + routine_name sql_identifier + + + The specific name of the function that is used by the + first function. + + + + +
+
+ + + <literal>routine_sequence_usage</literal> + + + The view routine_sequence_usage is meant to identify all + sequences that are used by a function or procedure, either in the body or + in parameter default expressions. Currently, only sequences used in + parameter default expressions are tracked. A sequence is only included if + that sequence is owned by a currently enabled role. + + + + <literal>routine_sequence_usage</literal> Columns + + + + + + Column Type + + + Description + + + + + + + + specific_catalog sql_identifier + + + Name of the database containing the function (always the current database) + + + + + + specific_schema sql_identifier + + + Name of the schema containing the function + + + + + + specific_name sql_identifier + + + The specific name of the function. See for more information. + + + + + + routine_catalog sql_identifier + + + Name of the database containing the function (always the current database) + + + + + + routine_schema sql_identifier + + + Name of the schema containing the function + + + + + + routine_name sql_identifier + + + Name of the function (might be duplicated in case of overloading) + + + + + + schema_catalog sql_identifier + + + Name of the database that contains the sequence that is used by the + function (always the current database) + + + + + + sequence_schema sql_identifier + + + Name of the schema that contains the sequence that is used by the function + + + + + + sequence_name sql_identifier + + + Name of the sequence that is used by the function + + + + +
+
+ + + <literal>routine_table_usage</literal> + + + The view routine_table_usage is meant to identify all + tables that are used by a function or procedure. This information is + currently not tracked by PostgreSQL. + + + + <literal>routine_table_usage</literal> Columns + + + + + + Column Type + + + Description + + + + + + + + specific_catalog sql_identifier + + + Name of the database containing the function (always the current database) + + + + + + specific_schema sql_identifier + + + Name of the schema containing the function + + + + + + specific_name sql_identifier + + + The specific name of the function. See for more information. + + + + + + routine_catalog sql_identifier + + + Name of the database containing the function (always the current database) + + + + + + routine_schema sql_identifier + + + Name of the schema containing the function + + + + + + routine_name sql_identifier + + + Name of the function (might be duplicated in case of overloading) + + + + + + table_catalog sql_identifier + + + Name of the database that contains the table that is used by the + function (always the current database) + + + + + + table_schema sql_identifier + + + Name of the schema that contains the table that is used by the function + + + + + + table_name sql_identifier + + + Name of the table that is used by the function + + + + +
+
+ <literal>routines</literal> diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml index b7a82453f0da1..5e25f20843c11 100644 --- a/doc/src/sgml/libpq.sgml +++ b/doc/src/sgml/libpq.sgml @@ -1723,12 +1723,38 @@ postgresql://%2Fvar%2Flib%2Fpostgresql/dbname This parameter specifies the file name of the SSL certificate revocation list (CRL). Certificates listed in this file, if it exists, will be rejected while attempting to authenticate the - server's certificate. The default is + server's certificate. If neither + nor + is set, this setting is + taken as ~/.postgresql/root.crl.
+ + sslcrldir + + + This parameter specifies the directory name of the SSL certificate + revocation list (CRL). Certificates listed in the files in this + directory, if it exists, will be rejected while attempting to + authenticate the server's certificate. + + + + The directory needs to be prepared with the OpenSSL command + openssl rehash or c_rehash. See + its documentation for details. + + + + Both sslcrl and sslcrldir can be + specified together. + + + + requirepeer diff --git a/doc/src/sgml/logical-replication.sgml b/doc/src/sgml/logical-replication.sgml index a560ad69b44bb..d0742f2c526b1 100644 --- a/doc/src/sgml/logical-replication.sgml +++ b/doc/src/sgml/logical-replication.sgml @@ -186,9 +186,10 @@ Each subscription will receive changes via one replication slot (see - ). Additional temporary - replication slots may be required for the initial data synchronization - of pre-existing table data. + ). Additional replication + slots may be required for the initial data synchronization of + pre-existing table data and those will be dropped at the end of data + synchronization. @@ -248,13 +249,23 @@ As mentioned earlier, each (active) subscription receives changes from a - replication slot on the remote (publishing) side. Normally, the remote - replication slot is created automatically when the subscription is created - using CREATE SUBSCRIPTION and it is dropped - automatically when the subscription is dropped using DROP - SUBSCRIPTION. In some situations, however, it can be useful or - necessary to manipulate the subscription and the underlying replication - slot separately. Here are some scenarios: + replication slot on the remote (publishing) side. + + + Additional table synchronization slots are normally transient, created + internally to perform initial table synchronization and dropped + automatically when they are no longer needed. These table synchronization + slots have generated names: pg_%u_sync_%u_%llu + (parameters: Subscription oid, + Table relid, system identifier sysid) + + + Normally, the remote replication slot is created automatically when the + subscription is created using CREATE SUBSCRIPTION and it + is dropped automatically when the subscription is dropped using + DROP SUBSCRIPTION. In some situations, however, it can + be useful or necessary to manipulate the subscription and the underlying + replication slot separately. Here are some scenarios: @@ -294,8 +305,9 @@ using ALTER SUBSCRIPTION before attempting to drop the subscription. If the remote database instance no longer exists, no further action is then necessary. If, however, the remote database - instance is just unreachable, the replication slot should then be - dropped manually; otherwise it would continue to reserve WAL and might + instance is just unreachable, the replication slot (and any still + remaining table synchronization slots) should then be + dropped manually; otherwise it/they would continue to reserve WAL and might eventually cause the disk to fill up. Such cases should be carefully investigated. @@ -468,16 +480,19 @@ Initial Snapshot - The initial data in existing subscribed tables are snapshotted and - copied in a parallel instance of a special kind of apply process. - This process will create its own temporary replication slot and - copy the existing data. Once existing data is copied, the worker - enters synchronization mode, which ensures that the table is brought - up to a synchronized state with the main apply process by streaming - any changes that happened during the initial data copy using standard - logical replication. Once the synchronization is done, the control - of the replication of the table is given back to the main apply - process where the replication continues as normal. + The initial data in existing subscribed tables are snapshotted and + copied in a parallel instance of a special kind of apply process. + This process will create its own replication slot and copy the existing + data. As soon as the copy is finished the table contents will become + visible to other backends. Once existing data is copied, the worker + enters synchronization mode, which ensures that the table is brought + up to a synchronized state with the main apply process by streaming + any changes that happened during the initial data copy using standard + logical replication. During this synchronization phase, the changes + are applied and committed in the same order as they happened on the + publisher. Once the synchronization is done, the control of the + replication of the table is given back to the main apply process where + the replication continues as normal. diff --git a/doc/src/sgml/pageinspect.sgml b/doc/src/sgml/pageinspect.sgml index a0be779940d66..c733341984843 100644 --- a/doc/src/sgml/pageinspect.sgml +++ b/doc/src/sgml/pageinspect.sgml @@ -714,15 +714,15 @@ test=# SELECT * FROM gist_page_opaque_info(get_raw_page('test_gist_idx', 2)); the data stored in a page of a GiST index. For example: test=# SELECT * FROM gist_page_items(get_raw_page('test_gist_idx', 0), 'test_gist_idx'); - itemoffset | ctid | itemlen | keys -------------+-----------+---------+------------------- - 1 | (1,65535) | 40 | (p)=((166,166)) - 2 | (2,65535) | 40 | (p)=((332,332)) - 3 | (3,65535) | 40 | (p)=((498,498)) - 4 | (4,65535) | 40 | (p)=((664,664)) - 5 | (5,65535) | 40 | (p)=((830,830)) - 6 | (6,65535) | 40 | (p)=((996,996)) - 7 | (7,65535) | 40 | (p)=((1000,1000)) + itemoffset | ctid | itemlen | dead | keys +------------+-----------+---------+------+------------------- + 1 | (1,65535) | 40 | f | (p)=((166,166)) + 2 | (2,65535) | 40 | f | (p)=((332,332)) + 3 | (3,65535) | 40 | f | (p)=((498,498)) + 4 | (4,65535) | 40 | f | (p)=((664,664)) + 5 | (5,65535) | 40 | f | (p)=((830,830)) + 6 | (6,65535) | 40 | f | (p)=((996,996)) + 7 | (7,65535) | 40 | f | (p)=((1000,1000)) (7 rows) @@ -745,15 +745,15 @@ test=# SELECT * FROM gist_page_items(get_raw_page('test_gist_idx', 0), 'test_gis example: test=# SELECT * FROM gist_page_items_bytea(get_raw_page('test_gist_idx', 0)); - itemoffset | ctid | itemlen | key_data -------------+-----------+---------+-------------------------------------------&zwsp;----------------------------------------- - 1 | (1,65535) | 40 | \x00000100ffff28000000000000c0644000000000&zwsp;00c06440000000000000f03f000000000000f03f - 2 | (2,65535) | 40 | \x00000200ffff28000000000000c0744000000000&zwsp;00c074400000000000e064400000000000e06440 - 3 | (3,65535) | 40 | \x00000300ffff28000000000000207f4000000000&zwsp;00207f400000000000d074400000000000d07440 - 4 | (4,65535) | 40 | \x00000400ffff28000000000000c0844000000000&zwsp;00c084400000000000307f400000000000307f40 - 5 | (5,65535) | 40 | \x00000500ffff28000000000000f0894000000000&zwsp;00f089400000000000c884400000000000c88440 - 6 | (6,65535) | 40 | \x00000600ffff28000000000000208f4000000000&zwsp;00208f400000000000f889400000000000f88940 - 7 | (7,65535) | 40 | \x00000700ffff28000000000000408f4000000000&zwsp;00408f400000000000288f400000000000288f40 + itemoffset | ctid | itemlen | dead | key_data +------------+-----------+---------+------+-----------------------------------------&zwsp;------------------------------------------- + 1 | (1,65535) | 40 | f | \x00000100ffff28000000000000c0644000000000&zwsp;00c06440000000000000f03f000000000000f03f + 2 | (2,65535) | 40 | f | \x00000200ffff28000000000000c0744000000000&zwsp;00c074400000000000e064400000000000e06440 + 3 | (3,65535) | 40 | f | \x00000300ffff28000000000000207f4000000000&zwsp;00207f400000000000d074400000000000d07440 + 4 | (4,65535) | 40 | f | \x00000400ffff28000000000000c0844000000000&zwsp;00c084400000000000307f400000000000307f40 + 5 | (5,65535) | 40 | f | \x00000500ffff28000000000000f0894000000000&zwsp;00f089400000000000c884400000000000c88440 + 6 | (6,65535) | 40 | f | \x00000600ffff28000000000000208f4000000000&zwsp;00208f400000000000f889400000000000f88940 + 7 | (7,65535) | 40 | f | \x00000700ffff28000000000000408f4000000000&zwsp;00408f400000000000288f400000000000288f40 (7 rows) diff --git a/doc/src/sgml/ref/alter_index.sgml b/doc/src/sgml/ref/alter_index.sgml index 214005a86c5fb..4b446384c262b 100644 --- a/doc/src/sgml/ref/alter_index.sgml +++ b/doc/src/sgml/ref/alter_index.sgml @@ -24,7 +24,7 @@ PostgreSQL documentation ALTER INDEX [ IF EXISTS ] name RENAME TO new_name ALTER INDEX [ IF EXISTS ] name SET TABLESPACE tablespace_name ALTER INDEX name ATTACH PARTITION index_name -ALTER INDEX name DEPENDS ON EXTENSION extension_name +ALTER INDEX name [ NO ] DEPENDS ON EXTENSION extension_name ALTER INDEX name ALTER COLLATION collation_name REFRESH VERSION ALTER INDEX [ IF EXISTS ] name SET ( storage_parameter [= value] [, ... ] ) ALTER INDEX [ IF EXISTS ] name RESET ( storage_parameter [, ... ] ) diff --git a/doc/src/sgml/ref/alter_materialized_view.sgml b/doc/src/sgml/ref/alter_materialized_view.sgml index bf379db77e38d..27f60f6df59d0 100644 --- a/doc/src/sgml/ref/alter_materialized_view.sgml +++ b/doc/src/sgml/ref/alter_materialized_view.sgml @@ -24,7 +24,7 @@ PostgreSQL documentation ALTER MATERIALIZED VIEW [ IF EXISTS ] name action [, ... ] ALTER MATERIALIZED VIEW name - DEPENDS ON EXTENSION extension_name + [ NO ] DEPENDS ON EXTENSION extension_name ALTER MATERIALIZED VIEW [ IF EXISTS ] name RENAME [ COLUMN ] column_name TO new_column_name ALTER MATERIALIZED VIEW [ IF EXISTS ] name diff --git a/doc/src/sgml/ref/alter_procedure.sgml b/doc/src/sgml/ref/alter_procedure.sgml index 5c176fb5d8760..9cbe2c7ceafa3 100644 --- a/doc/src/sgml/ref/alter_procedure.sgml +++ b/doc/src/sgml/ref/alter_procedure.sgml @@ -30,7 +30,7 @@ ALTER PROCEDURE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] SET SCHEMA new_schema ALTER PROCEDURE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] - DEPENDS ON EXTENSION extension_name + [ NO ] DEPENDS ON EXTENSION extension_name where action is one of: diff --git a/doc/src/sgml/ref/alter_routine.sgml b/doc/src/sgml/ref/alter_routine.sgml index 36acaff3198d6..aab4a497938f6 100644 --- a/doc/src/sgml/ref/alter_routine.sgml +++ b/doc/src/sgml/ref/alter_routine.sgml @@ -30,7 +30,7 @@ ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] SET SCHEMA new_schema ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] - DEPENDS ON EXTENSION extension_name + [ NO ] DEPENDS ON EXTENSION extension_name where action is one of: diff --git a/doc/src/sgml/ref/alter_subscription.sgml b/doc/src/sgml/ref/alter_subscription.sgml index db5e59f707c6a..bcb0acf28d8f9 100644 --- a/doc/src/sgml/ref/alter_subscription.sgml +++ b/doc/src/sgml/ref/alter_subscription.sgml @@ -48,6 +48,24 @@ ALTER SUBSCRIPTION name RENAME TO < (Currently, all subscription owners must be superusers, so the owner checks will be bypassed in practice. But this might change in the future.) + + + When refreshing a publication we remove the relations that are no longer + part of the publication and we also remove the tablesync slots if there are + any. It is necessary to remove tablesync slots so that the resources + allocated for the subscription on the remote host are released. If due to + network breakdown or some other error, PostgreSQL + is unable to remove the slots, an ERROR will be reported. To proceed in this + situation, either the user need to retry the operation or disassociate the + slot from the subscription and drop the subscription as explained in + . + + + + Commands ALTER SUBSCRIPTION ... REFRESH PUBLICATION and + ALTER SUBSCRIPTION ... SET PUBLICATION ... with refresh + option as true cannot be executed inside a transaction block. + diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create_table.sgml index 569f4c9da7b58..3b2b227683a2f 100644 --- a/doc/src/sgml/ref/create_table.sgml +++ b/doc/src/sgml/ref/create_table.sgml @@ -958,7 +958,7 @@ WITH ( MODULUS numeric_literal, REM When placed on a partitioned table, PRIMARY KEY - constraints share the restrictions previously decribed + constraints share the restrictions previously described for UNIQUE constraints. diff --git a/doc/src/sgml/ref/drop_subscription.sgml b/doc/src/sgml/ref/drop_subscription.sgml index adbdeafb4e18c..aee961554635a 100644 --- a/doc/src/sgml/ref/drop_subscription.sgml +++ b/doc/src/sgml/ref/drop_subscription.sgml @@ -79,7 +79,8 @@ DROP SUBSCRIPTION [ IF EXISTS ] name When dropping a subscription that is associated with a replication slot on the remote host (the normal state), DROP SUBSCRIPTION - will connect to the remote host and try to drop the replication slot as + will connect to the remote host and try to drop the replication slot (and + any remaining table synchronization slots) as part of its operation. This is necessary so that the resources allocated for the subscription on the remote host are released. If this fails, either because the remote host is not reachable or because the remote @@ -89,7 +90,8 @@ DROP SUBSCRIPTION [ IF EXISTS ] nameALTER SUBSCRIPTION ... SET (slot_name = NONE). After that, DROP SUBSCRIPTION will no longer attempt any actions on a remote host. Note that if the remote replication slot still - exists, it should then be dropped manually; otherwise it will continue to + exists, it (and any related table synchronization slots) should then be + dropped manually; otherwise it/they will continue to reserve WAL and might eventually cause the disk to fill up. See also . diff --git a/doc/src/sgml/ref/vacuum.sgml b/doc/src/sgml/ref/vacuum.sgml index 21ab57d880489..4bb624979bdf4 100644 --- a/doc/src/sgml/ref/vacuum.sgml +++ b/doc/src/sgml/ref/vacuum.sgml @@ -33,6 +33,7 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ boolean ] SKIP_LOCKED [ boolean ] INDEX_CLEANUP [ boolean ] + PROCESS_TOAST [ boolean ] TRUNCATE [ boolean ] PARALLEL integer @@ -210,6 +211,20 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ diff --git a/src/backend/access/common/tupconvert.c b/src/backend/access/common/tupconvert.c index 4229c9bf76425..e055df2f32397 100644 --- a/src/backend/access/common/tupconvert.c +++ b/src/backend/access/common/tupconvert.c @@ -226,6 +226,57 @@ execute_attr_map_slot(AttrMap *attrMap, return out_slot; } +/* + * Perform conversion of bitmap of columns according to the map. + * + * The input and output bitmaps are offset by + * FirstLowInvalidHeapAttributeNumber to accommodate system cols, like the + * column-bitmaps in RangeTblEntry. + */ +Bitmapset * +execute_attr_map_cols(AttrMap *attrMap, Bitmapset *in_cols) +{ + Bitmapset *out_cols; + int out_attnum; + + /* fast path for the common trivial case */ + if (in_cols == NULL) + return NULL; + + /* + * For each output column, check which input column it corresponds to. + */ + out_cols = NULL; + + for (out_attnum = FirstLowInvalidHeapAttributeNumber; + out_attnum <= attrMap->maplen; + out_attnum++) + { + int in_attnum; + + if (out_attnum < 0) + { + /* System column. No mapping. */ + in_attnum = out_attnum; + } + else if (out_attnum == 0) + continue; + else + { + /* normal user column */ + in_attnum = attrMap->attnums[out_attnum - 1]; + + if (in_attnum == 0) + continue; + } + + if (bms_is_member(in_attnum - FirstLowInvalidHeapAttributeNumber, in_cols)) + out_cols = bms_add_member(out_cols, out_attnum - FirstLowInvalidHeapAttributeNumber); + } + + return out_cols; +} + /* * Free a TupleConversionMap structure. */ diff --git a/src/backend/access/gin/ginvacuum.c b/src/backend/access/gin/ginvacuum.c index 35b85a9bff0c0..a0453b36cde5b 100644 --- a/src/backend/access/gin/ginvacuum.c +++ b/src/backend/access/gin/ginvacuum.c @@ -189,7 +189,7 @@ ginDeletePage(GinVacuumState *gvs, BlockNumber deleteBlkno, BlockNumber leftBlkn * address. */ GinPageSetDeleted(page); - GinPageSetDeleteXid(page, ReadNewTransactionId()); + GinPageSetDeleteXid(page, ReadNextTransactionId()); MarkBufferDirty(pBuffer); MarkBufferDirty(lBuffer); diff --git a/src/backend/access/gist/README b/src/backend/access/gist/README index fffdfff6e17a0..8ca0cf78cc97f 100644 --- a/src/backend/access/gist/README +++ b/src/backend/access/gist/README @@ -92,10 +92,10 @@ index child page to be split between the time we make a queue entry for it (while visiting its parent page) and the time we actually reach and scan the child page. To avoid missing the entries that were moved to the right sibling, we detect whether a split has occurred by comparing the child -page's NSN to the LSN that the parent had when visited. If it did, the -sibling page is immediately added to the front of the queue, ensuring that -its items will be scanned in the same order as if they were still on the -original child page. +page's NSN (node sequence number, a special-purpose LSN) to the LSN that +the parent had when visited. If it did, the sibling page is immediately +added to the front of the queue, ensuring that its items will be scanned +in the same order as if they were still on the original child page. As is usual in Postgres, the search algorithm only guarantees to find index entries that existed before the scan started; index entries added during diff --git a/src/backend/access/gist/gistutil.c b/src/backend/access/gist/gistutil.c index cf53dad474372..a3ec9f2cfe424 100644 --- a/src/backend/access/gist/gistutil.c +++ b/src/backend/access/gist/gistutil.c @@ -914,7 +914,7 @@ gistPageRecyclable(Page page) */ FullTransactionId deletexid_full = GistPageGetDeleteXid(page); - return GlobalVisIsRemovableFullXid(NULL, deletexid_full); + return GlobalVisCheckRemovableFullXid(NULL, deletexid_full); } return false; } diff --git a/src/backend/access/gist/gistvacuum.c b/src/backend/access/gist/gistvacuum.c index 94a7e12763931..ddecb8ab18ef4 100644 --- a/src/backend/access/gist/gistvacuum.c +++ b/src/backend/access/gist/gistvacuum.c @@ -546,9 +546,6 @@ gistvacuum_delete_empty_pages(IndexVacuumInfo *info, GistVacState *vstate) ReleaseBuffer(buffer); - /* update stats */ - vstate->stats->pages_removed += deleted; - /* * We can stop the scan as soon as we have seen the downlinks, even if * we were not able to remove them all. diff --git a/src/backend/access/gist/gistxlog.c b/src/backend/access/gist/gistxlog.c index c1d4b5d4f2321..f2eda79bc1ab9 100644 --- a/src/backend/access/gist/gistxlog.c +++ b/src/backend/access/gist/gistxlog.c @@ -388,7 +388,7 @@ gistRedoPageReuse(XLogReaderState *record) * pages in the index via the FSM. That's all they do though. * * latestRemovedXid was the page's deleteXid. The - * GlobalVisIsRemovableFullXid(deleteXid) test in gistPageRecyclable() + * GlobalVisCheckRemovableFullXid(deleteXid) test in gistPageRecyclable() * conceptually mirrors the PGPROC->xmin > limitXmin test in * GetConflictingVirtualXIDs(). Consequently, one XID value achieves the * same exclusion effect on primary and standby. diff --git a/src/backend/access/heap/pruneheap.c b/src/backend/access/heap/pruneheap.c index e3a716a2a2f24..8bb38d6406e5e 100644 --- a/src/backend/access/heap/pruneheap.c +++ b/src/backend/access/heap/pruneheap.c @@ -213,11 +213,12 @@ heap_page_prune_opt(Relation relation, Buffer buffer) * send its own new total to pgstats, and we don't want this delta applied * on top of that.) * + * Sets latestRemovedXid for caller on return. + * * off_loc is the offset location required by the caller to use in error * callback. * - * Returns the number of tuples deleted from the page and sets - * latestRemovedXid. + * Returns the number of tuples deleted from the page during this call. */ int heap_page_prune(Relation relation, Buffer buffer, diff --git a/src/backend/access/heap/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c index f3d2265fad7e4..0bb78162f546d 100644 --- a/src/backend/access/heap/vacuumlazy.c +++ b/src/backend/access/heap/vacuumlazy.c @@ -765,9 +765,9 @@ lazy_scan_heap(Relation onerel, VacuumParams *params, LVRelStats *vacrelstats, next_fsm_block_to_vacuum; double num_tuples, /* total number of nonremovable tuples */ live_tuples, /* live tuples (reltuples estimate) */ - tups_vacuumed, /* tuples cleaned up by vacuum */ + tups_vacuumed, /* tuples cleaned up by current vacuum */ nkeep, /* dead-but-not-removable tuples */ - nunused; /* unused line pointers */ + nunused; /* # existing unused line pointers */ IndexBulkDeleteResult **indstats; int i; PGRUsage ru0; @@ -1234,10 +1234,11 @@ lazy_scan_heap(Relation onerel, VacuumParams *params, LVRelStats *vacrelstats, /* * Prune all HOT-update chains in this page. * - * We count tuples removed by the pruning step as removed by VACUUM. + * We count tuples removed by the pruning step as removed by VACUUM + * (existing LP_DEAD line pointers don't count). */ - tups_vacuumed += heap_page_prune(onerel, buf, vistest, false, - InvalidTransactionId, 0, + tups_vacuumed += heap_page_prune(onerel, buf, vistest, + InvalidTransactionId, 0, false, &vacrelstats->latestRemovedXid, &vacrelstats->offnum); @@ -1286,10 +1287,13 @@ lazy_scan_heap(Relation onerel, VacuumParams *params, LVRelStats *vacrelstats, ItemPointerSet(&(tuple.t_self), blkno, offnum); /* - * DEAD line pointers are to be vacuumed normally; but we don't + * LP_DEAD line pointers are to be vacuumed normally; but we don't * count them in tups_vacuumed, else we'd be double-counting (at * least in the common case where heap_page_prune() just freed up - * a non-HOT tuple). + * a non-HOT tuple). Note also that the final tups_vacuumed value + * might be very low for tables where opportunistic page pruning + * happens to occur very frequently (via heap_page_prune_opt() + * calls that free up non-HOT tuples). */ if (ItemIdIsDead(itemid)) { @@ -1742,10 +1746,6 @@ lazy_scan_heap(Relation onerel, VacuumParams *params, LVRelStats *vacrelstats, vacrelstats->relname, tups_vacuumed, vacuumed_pages))); - /* - * This is pretty messy, but we split it up so that we can skip emitting - * individual parts of the message when not applicable. - */ initStringInfo(&buf); appendStringInfo(&buf, _("%.0f dead row versions cannot be removed yet, oldest xmin: %u\n"), diff --git a/src/backend/access/nbtree/README b/src/backend/access/nbtree/README index 92205325fbe4a..46d49bf025126 100644 --- a/src/backend/access/nbtree/README +++ b/src/backend/access/nbtree/README @@ -214,6 +214,34 @@ page). Since we hold a lock on the lower page (per L&Y) until we have re-found the parent item that links to it, we can be assured that the parent item does still exist and can't have been deleted. +VACUUM's linear scan, concurrent page splits +-------------------------------------------- + +VACUUM accesses the index by doing a linear scan to search for deletable +TIDs, while considering the possibility of deleting empty pages in +passing. This is in physical/block order, not logical/keyspace order. +The tricky part of this is avoiding missing any deletable tuples in the +presence of concurrent page splits: a page split could easily move some +tuples from a page not yet passed over by the sequential scan to a +lower-numbered page already passed over. + +To implement this, we provide a "vacuum cycle ID" mechanism that makes it +possible to determine whether a page has been split since the current +btbulkdelete cycle started. If btbulkdelete finds a page that has been +split since it started, and has a right-link pointing to a lower page +number, then it temporarily suspends its sequential scan and visits that +page instead. It must continue to follow right-links and vacuum dead +tuples until reaching a page that either hasn't been split since +btbulkdelete started, or is above the location of the outer sequential +scan. Then it can resume the sequential scan. This ensures that all +tuples are visited. It may be that some tuples are visited twice, but +that has no worse effect than an inaccurate index tuple count (and we +can't guarantee an accurate count anyway in the face of concurrent +activity). Note that this still works if the has-been-recently-split test +has a small probability of false positives, so long as it never gives a +false negative. This makes it possible to implement the test with a small +counter value stored on each index page. + Deleting entire pages during VACUUM ----------------------------------- @@ -301,19 +329,26 @@ down in the chain. This is repeated until there are no internal pages left in the chain. Finally, the half-dead leaf page itself is unlinked from its siblings. -A deleted page cannot be reclaimed immediately, since there may be other +A deleted page cannot be recycled immediately, since there may be other processes waiting to reference it (ie, search processes that just left the parent, or scans moving right or left from one of the siblings). These -processes must observe that the page is marked dead and recover -accordingly. Searches and forward scans simply follow the right-link -until they find a non-dead page --- this will be where the deleted page's -key-space moved to. +processes must be able to observe a deleted page for some time after the +deletion operation, in order to be able to at least recover from it (they +recover by moving right, as with concurrent page splits). Searchers never +have to worry about concurrent page recycling. + +See "Placing deleted pages in the FSM" section below for a description of +when and how deleted pages become safe for VACUUM to make recyclable. + +Page deletion and backwards scans +--------------------------------- Moving left in a backward scan is complicated because we must consider the possibility that the left sibling was just split (meaning we must find the rightmost page derived from the left sibling), plus the possibility that the page we were just on has now been deleted and hence isn't in the sibling chain at all anymore. So the move-left algorithm becomes: + 0. Remember the page we are on as the "original page". 1. Follow the original page's left-link (we're done if this is zero). 2. If the current page is live and its right-link matches the "original @@ -330,31 +365,15 @@ sibling chain at all anymore. So the move-left algorithm becomes: current left-link). If it is dead, move right until a non-dead page is found (there must be one, since rightmost pages are never deleted), mark that as the new "original page", and return to step 1. + This algorithm is correct because the live page found by step 4 will have the same left keyspace boundary as the page we started from. Therefore, when we ultimately exit, it must be on a page whose right keyspace boundary matches the left boundary of where we started --- which is what we need to be sure we don't miss or re-scan any items. -A deleted page can only be reclaimed once there is no scan or search that -has a reference to it; until then, it must stay in place with its -right-link undisturbed. We implement this by waiting until all active -snapshots and registered snapshots as of the deletion are gone; which is -overly strong, but is simple to implement within Postgres. When marked -dead, a deleted page is labeled with the next-transaction counter value. -VACUUM can reclaim the page for re-use when this transaction number is -guaranteed to be "visible to everyone". As collateral damage, this -implementation also waits for running XIDs with no snapshots and for -snapshots taken until the next transaction to allocate an XID commits. - -Reclaiming a page doesn't actually change its state on disk --- we simply -record it in the shared-memory free space map, from which it will be -handed out the next time a new page is needed for a page split. The -deleted page's contents will be overwritten by the split operation. -(Note: if we find a deleted page with an extremely old transaction -number, it'd be worthwhile to re-mark it with FrozenTransactionId so that -a later xid wraparound can't cause us to think the page is unreclaimable. -But in more normal situations this would be a waste of a disk write.) +Page deletion and tree height +----------------------------- Because we never delete the rightmost page of any level (and in particular never delete the root), it's impossible for the height of the tree to @@ -374,32 +393,42 @@ as part of the atomic update for the delete (either way, the metapage has to be the last page locked in the update to avoid deadlock risks). This avoids race conditions if two such operations are executing concurrently. -VACUUM needs to do a linear scan of an index to search for deleted pages -that can be reclaimed because they are older than all open transactions. -For efficiency's sake, we'd like to use the same linear scan to search for -deletable tuples. Before Postgres 8.2, btbulkdelete scanned the leaf pages -in index order, but it is possible to visit them in physical order instead. -The tricky part of this is to avoid missing any deletable tuples in the -presence of concurrent page splits: a page split could easily move some -tuples from a page not yet passed over by the sequential scan to a -lower-numbered page already passed over. (This wasn't a concern for the -index-order scan, because splits always split right.) To implement this, -we provide a "vacuum cycle ID" mechanism that makes it possible to -determine whether a page has been split since the current btbulkdelete -cycle started. If btbulkdelete finds a page that has been split since -it started, and has a right-link pointing to a lower page number, then -it temporarily suspends its sequential scan and visits that page instead. -It must continue to follow right-links and vacuum dead tuples until -reaching a page that either hasn't been split since btbulkdelete started, -or is above the location of the outer sequential scan. Then it can resume -the sequential scan. This ensures that all tuples are visited. It may be -that some tuples are visited twice, but that has no worse effect than an -inaccurate index tuple count (and we can't guarantee an accurate count -anyway in the face of concurrent activity). Note that this still works -if the has-been-recently-split test has a small probability of false -positives, so long as it never gives a false negative. This makes it -possible to implement the test with a small counter value stored on each -index page. +Placing deleted pages in the FSM +-------------------------------- + +Recycling a page is decoupled from page deletion. A deleted page can only +be put in the FSM to be recycled once there is no possible scan or search +that has a reference to it; until then, it must stay in place with its +sibling links undisturbed, as a tombstone that allows concurrent searches +to detect and then recover from concurrent deletions (which are rather +like concurrent page splits to searchers). This design is an +implementation of what Lanin and Shasha call "the drain technique". + +We implement the technique by waiting until all active snapshots and +registered snapshots as of the page deletion are gone; which is overly +strong, but is simple to implement within Postgres. When marked fully +dead, a deleted page is labeled with the next-transaction counter value. +VACUUM can reclaim the page for re-use when the stored XID is guaranteed +to be "visible to everyone". As collateral damage, we wait for snapshots +taken until the next transaction to allocate an XID commits. We also wait +for running XIDs with no snapshots. + +The need for this additional indirection after a page deletion operation +takes place is a natural consequence of the highly permissive rules for +index scans with Lehman and Yao's design. In general an index scan +doesn't have to hold a lock or even a pin on any page when it descends the +tree (nothing that you'd usually think of as an interlock is held "between +levels"). At the same time, index scans cannot be allowed to land on a +truly unrelated page due to concurrent recycling (not to be confused with +concurrent deletion), because that results in wrong answers to queries. +Simpler approaches to page deletion that don't need to defer recycling are +possible, but none seem compatible with Lehman and Yao's design. + +Placing an already-deleted page in the FSM to be recycled when needed +doesn't actually change the state of the page. The page will be changed +whenever it is subsequently taken from the FSM for reuse. The deleted +page's contents will be overwritten by the split operation (it will become +the new right sibling page). Fastpath For Index Insertion ---------------------------- diff --git a/src/backend/access/nbtree/nbtpage.c b/src/backend/access/nbtree/nbtpage.c index 41dc3f8fdff6c..8c326a4774cbe 100644 --- a/src/backend/access/nbtree/nbtpage.c +++ b/src/backend/access/nbtree/nbtpage.c @@ -1978,9 +1978,6 @@ _bt_pagedel(Relation rel, Buffer leafbuf, TransactionId *oldestBtpoXact) * Then unlink it from its siblings. Each call to * _bt_unlink_halfdead_page unlinks the topmost page from the subtree, * making it shallower. Iterate until the leafbuf page is deleted. - * - * _bt_unlink_halfdead_page should never fail, since we established - * that deletion is generally safe in _bt_mark_page_halfdead. */ rightsib_empty = false; Assert(P_ISLEAF(opaque) && P_ISHALFDEAD(opaque)); @@ -1991,7 +1988,15 @@ _bt_pagedel(Relation rel, Buffer leafbuf, TransactionId *oldestBtpoXact) &rightsib_empty, oldestBtpoXact, &ndeleted)) { - /* _bt_unlink_halfdead_page failed, released buffer */ + /* + * _bt_unlink_halfdead_page should never fail, since we + * established that deletion is generally safe in + * _bt_mark_page_halfdead -- index must be corrupt. + * + * Note that _bt_unlink_halfdead_page already released the + * lock and pin on leafbuf for us. + */ + Assert(false); return ndeleted; } } @@ -2261,7 +2266,7 @@ _bt_mark_page_halfdead(Relation rel, Buffer leafbuf, BTStack stack) * * We maintain *oldestBtpoXact for pages that are deleted by the current * VACUUM operation here. This must be handled here because we conservatively - * assume that there needs to be a new call to ReadNewTransactionId() each + * assume that there needs to be a new call to ReadNextTransactionId() each * time a page gets deleted. See comments about the underlying assumption * below. * @@ -2355,11 +2360,7 @@ _bt_unlink_halfdead_page(Relation rel, Buffer leafbuf, BlockNumber scanblkno, * So, first lock the leaf page, if it's not the target. Then find and * write-lock the current left sibling of the target page. The sibling * that was current a moment ago could have split, so we may have to move - * right. This search could fail if either the sibling or the target page - * was deleted by someone else meanwhile; if so, give up. (Right now, - * that should never happen, since page deletion is only done in VACUUM - * and there shouldn't be multiple VACUUMs concurrently on the same - * table.) + * right. */ if (target != leafblkno) _bt_lockbuf(rel, leafbuf, BT_WRITE); @@ -2370,23 +2371,26 @@ _bt_unlink_halfdead_page(Relation rel, Buffer leafbuf, BlockNumber scanblkno, opaque = (BTPageOpaque) PageGetSpecialPointer(page); while (P_ISDELETED(opaque) || opaque->btpo_next != target) { - /* step right one page */ - leftsib = opaque->btpo_next; - _bt_relbuf(rel, lbuf); + bool leftsibvalid = true; /* - * It'd be good to check for interrupts here, but it's not easy to - * do so because a lock is always held. This block isn't - * frequently reached, so hopefully the consequences of not - * checking interrupts aren't too bad. + * Before we follow the link from the page that was the left + * sibling mere moments ago, validate its right link. This + * reduces the opportunities for loop to fail to ever make any + * progress in the presence of index corruption. + * + * Note: we rely on the assumption that there can only be one + * vacuum process running at a time (against the same index). */ + if (P_RIGHTMOST(opaque) || P_ISDELETED(opaque) || + leftsib == opaque->btpo_next) + leftsibvalid = false; + + leftsib = opaque->btpo_next; + _bt_relbuf(rel, lbuf); - if (leftsib == P_NONE) + if (!leftsibvalid) { - ereport(LOG, - (errmsg("no left sibling (concurrent deletion?) of block %u in \"%s\"", - target, - RelationGetRelationName(rel)))); if (target != leafblkno) { /* we have only a pin on target, but pin+lock on leafbuf */ @@ -2398,8 +2402,20 @@ _bt_unlink_halfdead_page(Relation rel, Buffer leafbuf, BlockNumber scanblkno, /* we have only a pin on leafbuf */ ReleaseBuffer(leafbuf); } + + ereport(LOG, + (errcode(ERRCODE_INDEX_CORRUPTED), + errmsg_internal("valid left sibling for deletion target could not be located: " + "left sibling %u of target %u with leafblkno %u and scanblkno %u in index \"%s\"", + leftsib, target, leafblkno, scanblkno, + RelationGetRelationName(rel)))); + return false; } + + CHECK_FOR_INTERRUPTS(); + + /* step right one page */ lbuf = _bt_getbuf(rel, leftsib, BT_WRITE); page = BufferGetPage(lbuf); opaque = (BTPageOpaque) PageGetSpecialPointer(page); @@ -2408,11 +2424,7 @@ _bt_unlink_halfdead_page(Relation rel, Buffer leafbuf, BlockNumber scanblkno, else lbuf = InvalidBuffer; - /* - * Next write-lock the target page itself. It's okay to take a write lock - * rather than a superexclusive lock, since no scan will stop on an empty - * page. - */ + /* Next write-lock the target page itself */ _bt_lockbuf(rel, buf, BT_WRITE); page = BufferGetPage(buf); opaque = (BTPageOpaque) PageGetSpecialPointer(page); @@ -2547,7 +2559,7 @@ _bt_unlink_halfdead_page(Relation rel, Buffer leafbuf, BlockNumber scanblkno, * Mark the page itself deleted. It can be recycled when all current * transactions are gone. Storing GetTopTransactionId() would work, but * we're in VACUUM and would not otherwise have an XID. Having already - * updated links to the target, ReadNewTransactionId() suffices as an + * updated links to the target, ReadNextTransactionId() suffices as an * upper bound. Any scan having retained a now-stale link is advertising * in its PGPROC an xmin less than or equal to the value we read here. It * will continue to do so, holding back the xmin horizon, for the duration @@ -2558,7 +2570,7 @@ _bt_unlink_halfdead_page(Relation rel, Buffer leafbuf, BlockNumber scanblkno, Assert(P_ISHALFDEAD(opaque) || !P_ISLEAF(opaque)); opaque->btpo_flags &= ~BTP_HALF_DEAD; opaque->btpo_flags |= BTP_DELETED; - opaque->btpo.xact = ReadNewTransactionId(); + opaque->btpo.xact = ReadNextTransactionId(); /* * Remove the remaining tuples on the page. This keeps things simple for diff --git a/src/backend/access/transam/commit_ts.c b/src/backend/access/transam/commit_ts.c index 9f42461e12c2c..48e8d66286087 100644 --- a/src/backend/access/transam/commit_ts.c +++ b/src/backend/access/transam/commit_ts.c @@ -733,7 +733,7 @@ ActivateCommitTs(void) if (ShmemVariableCache->oldestCommitTsXid == InvalidTransactionId) { ShmemVariableCache->oldestCommitTsXid = - ShmemVariableCache->newestCommitTsXid = ReadNewTransactionId(); + ShmemVariableCache->newestCommitTsXid = ReadNextTransactionId(); } LWLockRelease(CommitTsLock); diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c index 7dcfa02323698..1f9f1a1fa10ca 100644 --- a/src/backend/access/transam/multixact.c +++ b/src/backend/access/transam/multixact.c @@ -2277,7 +2277,7 @@ SetMultiXactIdLimit(MultiXactId oldest_datminmxid, Oid oldest_datoid, /* Log the info */ ereport(DEBUG1, - (errmsg("MultiXactId wrap limit is %u, limited by database with OID %u", + (errmsg_internal("MultiXactId wrap limit is %u, limited by database with OID %u", multiWrapLimit, oldest_datoid))); /* @@ -2611,7 +2611,7 @@ SetOffsetVacuumLimit(bool is_startup) if (oldestOffsetKnown) ereport(DEBUG1, - (errmsg("oldest MultiXactId member is at offset %u", + (errmsg_internal("oldest MultiXactId member is at offset %u", oldestOffset))); else ereport(LOG, @@ -2640,7 +2640,7 @@ SetOffsetVacuumLimit(bool is_startup) (errmsg("MultiXact member wraparound protections are now enabled"))); ereport(DEBUG1, - (errmsg("MultiXact member stop limit is now %u based on MultiXact %u", + (errmsg_internal("MultiXact member stop limit is now %u based on MultiXact %u", offsetStopLimit, oldestMultiXactId))); } else if (prevOldestOffsetKnown) diff --git a/src/backend/access/transam/slru.c b/src/backend/access/transam/slru.c index e49e06e896414..82149ad7821cd 100644 --- a/src/backend/access/transam/slru.c +++ b/src/backend/access/transam/slru.c @@ -1315,7 +1315,7 @@ SlruInternalDeleteSegment(SlruCtl ctl, int segno) /* Unlink the file. */ SlruFileName(ctl, path, segno); - ereport(DEBUG2, (errmsg("removing file \"%s\"", path))); + ereport(DEBUG2, (errmsg_internal("removing file \"%s\"", path))); unlink(path); } diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c index fc18b778324dd..70d22577ceee7 100644 --- a/src/backend/access/transam/twophase.c +++ b/src/backend/access/transam/twophase.c @@ -873,8 +873,15 @@ PGPROC * TwoPhaseGetDummyProc(TransactionId xid, bool lock_held) { GlobalTransaction gxact = TwoPhaseGetGXact(xid, lock_held); + PGPROC *dummy = &ProcGlobal->allProcs[gxact->pgprocno]; - return &ProcGlobal->allProcs[gxact->pgprocno]; + /* + * Initialize atomic variable in dummy proc so that GetLockStatusData() + * can read it later. + */ + pg_atomic_init_u64(&dummy->waitStart, 0); + + return dummy; } /************************************************************************/ diff --git a/src/backend/access/transam/varsup.c b/src/backend/access/transam/varsup.c index 2264c2c849cac..142da4aaff3cc 100644 --- a/src/backend/access/transam/varsup.c +++ b/src/backend/access/transam/varsup.c @@ -425,7 +425,7 @@ SetTransactionIdLimit(TransactionId oldest_datfrozenxid, Oid oldest_datoid) /* Log the info */ ereport(DEBUG1, - (errmsg("transaction ID wrap limit is %u, limited by database with OID %u", + (errmsg_internal("transaction ID wrap limit is %u, limited by database with OID %u", xidWrapLimit, oldest_datoid))); /* diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index a2068e3fd45d8..4e6a3df6b8742 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -548,7 +548,7 @@ GetStableLatestTransactionId(void) lxid = MyProc->lxid; stablexid = GetTopTransactionIdIfAny(); if (!TransactionIdIsValid(stablexid)) - stablexid = ReadNewTransactionId(); + stablexid = ReadNextTransactionId(); } Assert(TransactionIdIsValid(stablexid)); @@ -2432,15 +2432,6 @@ PrepareTransaction(void) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cannot PREPARE a transaction that has exported snapshots"))); - /* - * Don't allow PREPARE but for transaction that has/might kill logical - * replication workers. - */ - if (XactManipulatesLogicalReplicationWorkers()) - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("cannot PREPARE a transaction that has manipulated logical replication workers"))); - /* Prevent cancel/die interrupt while cleaning up */ HOLD_INTERRUPTS(); @@ -3114,6 +3105,13 @@ CommitTransactionCommand(void) Assert(s->parent == NULL); CommitTransaction(); s->blockState = TBLOCK_DEFAULT; + if (s->chain) + { + StartTransaction(); + s->blockState = TBLOCK_INPROGRESS; + s->chain = false; + RestoreTransactionCharacteristics(); + } } else if (s->blockState == TBLOCK_PREPARE) { @@ -4899,7 +4897,6 @@ CommitSubTransaction(void) AtEOSubXact_HashTables(true, s->nestingLevel); AtEOSubXact_PgStat(true, s->nestingLevel); AtSubCommit_Snapshot(s->nestingLevel); - AtEOSubXact_ApplyLauncher(true, s->nestingLevel); /* * We need to restore the upper transaction's read-only state, in case the @@ -5059,7 +5056,6 @@ AbortSubTransaction(void) AtEOSubXact_HashTables(false, s->nestingLevel); AtEOSubXact_PgStat(false, s->nestingLevel); AtSubAbort_Snapshot(s->nestingLevel); - AtEOSubXact_ApplyLauncher(false, s->nestingLevel); } /* diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index f03bd473e2b30..e0c37f73f3e97 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -2837,7 +2837,7 @@ UpdateMinRecoveryPoint(XLogRecPtr lsn, bool force) minRecoveryPointTLI = newMinRecoveryPointTLI; ereport(DEBUG2, - (errmsg("updated min recovery point to %X/%X on timeline %u", + (errmsg_internal("updated min recovery point to %X/%X on timeline %u", (uint32) (minRecoveryPoint >> 32), (uint32) minRecoveryPoint, newMinRecoveryPointTLI))); @@ -4209,7 +4209,7 @@ RemoveXlogFile(const char *segname, XLogSegNo recycleSegNo, true, recycleSegNo, true)) { ereport(DEBUG2, - (errmsg("recycled write-ahead log file \"%s\"", + (errmsg_internal("recycled write-ahead log file \"%s\"", segname))); CheckpointStats.ckpt_segs_recycled++; /* Needn't recheck that slot on future iterations */ @@ -4221,7 +4221,7 @@ RemoveXlogFile(const char *segname, XLogSegNo recycleSegNo, int rc; ereport(DEBUG2, - (errmsg("removing write-ahead log file \"%s\"", + (errmsg_internal("removing write-ahead log file \"%s\"", segname))); #ifdef WIN32 @@ -6597,7 +6597,7 @@ StartupXLOG(void) memcpy(&checkPoint, XLogRecGetData(xlogreader), sizeof(CheckPoint)); wasShutdown = ((record->xl_info & ~XLR_INFO_MASK) == XLOG_CHECKPOINT_SHUTDOWN); ereport(DEBUG1, - (errmsg("checkpoint record is at %X/%X", + (errmsg_internal("checkpoint record is at %X/%X", (uint32) (checkPointLoc >> 32), (uint32) checkPointLoc))); InRecovery = true; /* force recovery even if SHUTDOWNED */ @@ -6730,7 +6730,7 @@ StartupXLOG(void) if (record != NULL) { ereport(DEBUG1, - (errmsg("checkpoint record is at %X/%X", + (errmsg_internal("checkpoint record is at %X/%X", (uint32) (checkPointLoc >> 32), (uint32) checkPointLoc))); } else @@ -7118,7 +7118,7 @@ StartupXLOG(void) int nxids; ereport(DEBUG1, - (errmsg("initializing for hot standby"))); + (errmsg_internal("initializing for hot standby"))); InitRecoveryTransactionEnvironment(); @@ -7998,17 +7998,16 @@ StartupXLOG(void) * All done with end-of-recovery actions. * * Now allow backends to write WAL and update the control file status in - * consequence. The boolean flag allowing backends to write WAL is - * updated while holding ControlFileLock to prevent other backends to look - * at an inconsistent state of the control file in shared memory. There - * is still a small window during which backends can write WAL and the - * control file is still referring to a system not in DB_IN_PRODUCTION + * consequence. SharedRecoveryState, that controls if backends can write + * WAL, is updated while holding ControlFileLock to prevent other backends + * to look at an inconsistent state of the control file in shared memory. + * There is still a small window during which backends can write WAL and + * the control file is still referring to a system not in DB_IN_PRODUCTION * state while looking at the on-disk control file. * - * Also, although the boolean flag to allow WAL is probably atomic in - * itself, we use the info_lck here to ensure that there are no race - * conditions concerning visibility of other recent updates to shared - * memory. + * Also, we use info_lck to update SharedRecoveryState to ensure that + * there are no race conditions concerning visibility of other recent + * updates to shared memory. */ LWLockAcquire(ControlFileLock, LW_EXCLUSIVE); ControlFile->state = DB_IN_PRODUCTION; @@ -8934,7 +8933,7 @@ CreateCheckPoint(int flags) WALInsertLockRelease(); END_CRIT_SECTION(); ereport(DEBUG1, - (errmsg("checkpoint skipped because system is idle"))); + (errmsg_internal("checkpoint skipped because system is idle"))); return; } } @@ -9400,7 +9399,7 @@ CreateRestartPoint(int flags) if (!RecoveryInProgress()) { ereport(DEBUG2, - (errmsg("skipping restartpoint, recovery has already ended"))); + (errmsg_internal("skipping restartpoint, recovery has already ended"))); return false; } @@ -9422,7 +9421,7 @@ CreateRestartPoint(int flags) lastCheckPoint.redo <= ControlFile->checkPointCopy.redo) { ereport(DEBUG2, - (errmsg("skipping restartpoint, already performed at %X/%X", + (errmsg_internal("skipping restartpoint, already performed at %X/%X", (uint32) (lastCheckPoint.redo >> 32), (uint32) lastCheckPoint.redo))); @@ -11764,12 +11763,12 @@ read_backup_label(XLogRecPtr *checkPointLoc, bool *backupEndRequired, */ if (fscanf(lfp, "START TIME: %127[^\n]\n", backuptime) == 1) ereport(DEBUG1, - (errmsg("backup time %s in file \"%s\"", + (errmsg_internal("backup time %s in file \"%s\"", backuptime, BACKUP_LABEL_FILE))); if (fscanf(lfp, "LABEL: %1023[^\n]\n", backuplabel) == 1) ereport(DEBUG1, - (errmsg("backup label %s in file \"%s\"", + (errmsg_internal("backup label %s in file \"%s\"", backuplabel, BACKUP_LABEL_FILE))); /* @@ -11786,7 +11785,7 @@ read_backup_label(XLogRecPtr *checkPointLoc, bool *backupEndRequired, tli_from_file, tli_from_walseg))); ereport(DEBUG1, - (errmsg("backup timeline %u in file \"%s\"", + (errmsg_internal("backup timeline %u in file \"%s\"", tli_from_file, BACKUP_LABEL_FILE))); } diff --git a/src/backend/access/transam/xlogfuncs.c b/src/backend/access/transam/xlogfuncs.c index 5e1aab319dda8..d8c5bf6dc2958 100644 --- a/src/backend/access/transam/xlogfuncs.c +++ b/src/backend/access/transam/xlogfuncs.c @@ -781,6 +781,9 @@ pg_promote(PG_FUNCTION_ARGS) } ereport(WARNING, - (errmsg("server did not promote within %d seconds", wait_seconds))); + (errmsg_plural("server did not promote within %d second", + "server did not promote within %d seconds", + wait_seconds, + wait_seconds))); PG_RETURN_BOOL(false); } diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c index 132573362497e..8d8e926c21c79 100644 --- a/src/backend/catalog/dependency.c +++ b/src/backend/catalog/dependency.c @@ -1198,7 +1198,7 @@ reportDependentObjects(const ObjectAddresses *targetObjects, * log_min_messages are different. */ ereport(DEBUG2, - (errmsg("drop auto-cascades to %s", + (errmsg_internal("drop auto-cascades to %s", objDesc))); } else if (behavior == DROP_RESTRICT) diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 1cb9172a5f31d..b4ab0b88ad09e 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -1884,6 +1884,62 @@ index_concurrently_swap(Oid newIndexId, Oid oldIndexId, const char *oldName) /* Copy data of pg_statistic from the old index to the new one */ CopyStatistics(oldIndexId, newIndexId); + /* Copy pg_attribute.attstattarget for each index attribute */ + { + HeapTuple attrTuple; + Relation pg_attribute; + SysScanDesc scan; + ScanKeyData key[1]; + + pg_attribute = table_open(AttributeRelationId, RowExclusiveLock); + ScanKeyInit(&key[0], + Anum_pg_attribute_attrelid, + BTEqualStrategyNumber, F_OIDEQ, + ObjectIdGetDatum(newIndexId)); + scan = systable_beginscan(pg_attribute, AttributeRelidNumIndexId, + true, NULL, 1, key); + + while (HeapTupleIsValid((attrTuple = systable_getnext(scan)))) + { + Form_pg_attribute att = (Form_pg_attribute) GETSTRUCT(attrTuple); + Datum repl_val[Natts_pg_attribute]; + bool repl_null[Natts_pg_attribute]; + bool repl_repl[Natts_pg_attribute]; + int attstattarget; + HeapTuple newTuple; + + /* Ignore dropped columns */ + if (att->attisdropped) + continue; + + /* + * Get attstattarget from the old index and refresh the new value. + */ + attstattarget = get_attstattarget(oldIndexId, att->attnum); + + /* no need for a refresh if both match */ + if (attstattarget == att->attstattarget) + continue; + + memset(repl_val, 0, sizeof(repl_val)); + memset(repl_null, false, sizeof(repl_null)); + memset(repl_repl, false, sizeof(repl_repl)); + + repl_repl[Anum_pg_attribute_attstattarget - 1] = true; + repl_val[Anum_pg_attribute_attstattarget - 1] = Int32GetDatum(attstattarget); + + newTuple = heap_modify_tuple(attrTuple, + RelationGetDescr(pg_attribute), + repl_val, repl_null, repl_repl); + CatalogTupleUpdate(pg_attribute, &newTuple->t_self, newTuple); + + heap_freetuple(newTuple); + } + + systable_endscan(scan); + table_close(pg_attribute, RowExclusiveLock); + } + /* Close relations */ table_close(pg_class, RowExclusiveLock); table_close(pg_index, RowExclusiveLock); @@ -3025,14 +3081,12 @@ index_build(Relation heapRelation, if (indexInfo->ii_ParallelWorkers == 0) ereport(DEBUG1, - (errmsg("building index \"%s\" on table \"%s\" serially", + (errmsg_internal("building index \"%s\" on table \"%s\" serially", RelationGetRelationName(indexRelation), RelationGetRelationName(heapRelation)))); else ereport(DEBUG1, - (errmsg_plural("building index \"%s\" on table \"%s\" with request for %d parallel worker", - "building index \"%s\" on table \"%s\" with request for %d parallel workers", - indexInfo->ii_ParallelWorkers, + (errmsg_internal("building index \"%s\" on table \"%s\" with request for %d parallel workers", RelationGetRelationName(indexRelation), RelationGetRelationName(heapRelation), indexInfo->ii_ParallelWorkers))); diff --git a/src/backend/catalog/information_schema.sql b/src/backend/catalog/information_schema.sql index 4907855043d87..513cb9a69cf91 100644 --- a/src/backend/catalog/information_schema.sql +++ b/src/backend/catalog/information_schema.sql @@ -1325,7 +1325,33 @@ GRANT SELECT ON role_column_grants TO PUBLIC; * ROUTINE_COLUMN_USAGE view */ --- not tracked by PostgreSQL +CREATE VIEW routine_column_usage AS + SELECT CAST(current_database() AS sql_identifier) AS specific_catalog, + CAST(np.nspname AS sql_identifier) AS specific_schema, + CAST(nameconcatoid(p.proname, p.oid) AS sql_identifier) AS specific_name, + CAST(current_database() AS sql_identifier) AS routine_catalog, + CAST(np.nspname AS sql_identifier) AS routine_schema, + CAST(p.proname AS sql_identifier) AS routine_name, + CAST(current_database() AS sql_identifier) AS table_catalog, + CAST(nt.nspname AS sql_identifier) AS table_schema, + CAST(t.relname AS sql_identifier) AS table_name, + CAST(a.attname AS sql_identifier) AS column_name + + FROM pg_namespace np, pg_proc p, pg_depend d, + pg_class t, pg_namespace nt, pg_attribute a + + WHERE np.oid = p.pronamespace + AND p.oid = d.objid + AND d.classid = 'pg_catalog.pg_proc'::regclass + AND d.refobjid = t.oid + AND d.refclassid = 'pg_catalog.pg_class'::regclass + AND t.relnamespace = nt.oid + AND t.relkind IN ('r', 'v', 'f', 'p') + AND t.oid = a.attrelid + AND d.refobjsubid = a.attnum + AND pg_has_role(t.relowner, 'USAGE'); + +GRANT SELECT ON routine_column_usage TO PUBLIC; /* @@ -1408,7 +1434,27 @@ GRANT SELECT ON role_routine_grants TO PUBLIC; * ROUTINE_ROUTINE_USAGE view */ --- not tracked by PostgreSQL +CREATE VIEW routine_routine_usage AS + SELECT CAST(current_database() AS sql_identifier) AS specific_catalog, + CAST(np.nspname AS sql_identifier) AS specific_schema, + CAST(nameconcatoid(p.proname, p.oid) AS sql_identifier) AS specific_name, + CAST(current_database() AS sql_identifier) AS routine_catalog, + CAST(np1.nspname AS sql_identifier) AS routine_schema, + CAST(nameconcatoid(p1.proname, p1.oid) AS sql_identifier) AS routine_name + + FROM pg_namespace np, pg_proc p, pg_depend d, + pg_proc p1, pg_namespace np1 + + WHERE np.oid = p.pronamespace + AND p.oid = d.objid + AND d.classid = 'pg_catalog.pg_proc'::regclass + AND d.refobjid = p1.oid + AND d.refclassid = 'pg_catalog.pg_proc'::regclass + AND p1.pronamespace = np1.oid + AND p.prokind IN ('f', 'p') AND p1.prokind IN ('f', 'p') + AND pg_has_role(p1.proowner, 'USAGE'); + +GRANT SELECT ON routine_routine_usage TO PUBLIC; /* @@ -1416,7 +1462,30 @@ GRANT SELECT ON role_routine_grants TO PUBLIC; * ROUTINE_SEQUENCE_USAGE view */ --- not tracked by PostgreSQL +CREATE VIEW routine_sequence_usage AS + SELECT CAST(current_database() AS sql_identifier) AS specific_catalog, + CAST(np.nspname AS sql_identifier) AS specific_schema, + CAST(nameconcatoid(p.proname, p.oid) AS sql_identifier) AS specific_name, + CAST(current_database() AS sql_identifier) AS routine_catalog, + CAST(np.nspname AS sql_identifier) AS routine_schema, + CAST(p.proname AS sql_identifier) AS routine_name, + CAST(current_database() AS sql_identifier) AS sequence_catalog, + CAST(ns.nspname AS sql_identifier) AS sequence_schema, + CAST(s.relname AS sql_identifier) AS sequence_name + + FROM pg_namespace np, pg_proc p, pg_depend d, + pg_class s, pg_namespace ns + + WHERE np.oid = p.pronamespace + AND p.oid = d.objid + AND d.classid = 'pg_catalog.pg_proc'::regclass + AND d.refobjid = s.oid + AND d.refclassid = 'pg_catalog.pg_class'::regclass + AND s.relnamespace = ns.oid + AND s.relkind = 'S' + AND pg_has_role(s.relowner, 'USAGE'); + +GRANT SELECT ON routine_sequence_usage TO PUBLIC; /* @@ -1424,7 +1493,30 @@ GRANT SELECT ON role_routine_grants TO PUBLIC; * ROUTINE_TABLE_USAGE view */ --- not tracked by PostgreSQL +CREATE VIEW routine_table_usage AS + SELECT CAST(current_database() AS sql_identifier) AS specific_catalog, + CAST(np.nspname AS sql_identifier) AS specific_schema, + CAST(nameconcatoid(p.proname, p.oid) AS sql_identifier) AS specific_name, + CAST(current_database() AS sql_identifier) AS routine_catalog, + CAST(np.nspname AS sql_identifier) AS routine_schema, + CAST(p.proname AS sql_identifier) AS routine_name, + CAST(current_database() AS sql_identifier) AS table_catalog, + CAST(nt.nspname AS sql_identifier) AS table_schema, + CAST(t.relname AS sql_identifier) AS table_name + + FROM pg_namespace np, pg_proc p, pg_depend d, + pg_class t, pg_namespace nt + + WHERE np.oid = p.pronamespace + AND p.oid = d.objid + AND d.classid = 'pg_catalog.pg_proc'::regclass + AND d.refobjid = t.oid + AND d.refclassid = 'pg_catalog.pg_class'::regclass + AND t.relnamespace = nt.oid + AND t.relkind IN ('r', 'v', 'f', 'p') + AND pg_has_role(t.relowner, 'USAGE'); + +GRANT SELECT ON routine_table_usage TO PUBLIC; /* diff --git a/src/backend/catalog/pg_inherits.c b/src/backend/catalog/pg_inherits.c index f3783961b7a11..5ab79028274a7 100644 --- a/src/backend/catalog/pg_inherits.c +++ b/src/backend/catalog/pg_inherits.c @@ -3,8 +3,8 @@ * pg_inherits.c * routines to support manipulation of the pg_inherits relation * - * Note: currently, this module only contains inquiry functions; the actual - * creation and deletion of pg_inherits entries is done in tablecmds.c. + * Note: currently, this module mostly contains inquiry functions; actual + * creation and deletion of pg_inherits entries is mostly done in tablecmds.c. * Perhaps someday that code should be moved here, but it'd have to be * disentangled from other stuff such as pg_depend updates. * @@ -277,9 +277,11 @@ has_subclass(Oid relationId) } /* - * has_superclass - does this relation inherit from another? The caller - * should hold a lock on the given relation so that it can't be concurrently - * added to or removed from an inheritance hierarchy. + * has_superclass - does this relation inherit from another? + * + * Unlike has_subclass, this can be relied on to give an accurate answer. + * However, the caller must hold a lock on the given relation so that it + * can't be concurrently added to or removed from an inheritance hierarchy. */ bool has_superclass(Oid relationId) diff --git a/src/backend/catalog/pg_subscription.c b/src/backend/catalog/pg_subscription.c index 44cb285b68650..c32fc8137d8ef 100644 --- a/src/backend/catalog/pg_subscription.c +++ b/src/backend/catalog/pg_subscription.c @@ -29,6 +29,7 @@ #include "utils/array.h" #include "utils/builtins.h" #include "utils/fmgroids.h" +#include "utils/lsyscache.h" #include "utils/pg_lsn.h" #include "utils/rel.h" #include "utils/syscache.h" @@ -337,6 +338,13 @@ GetSubscriptionRelState(Oid subid, Oid relid, XLogRecPtr *sublsn) char substate; bool isnull; Datum d; + Relation rel; + + /* + * This is to avoid the race condition with AlterSubscription which tries + * to remove this relstate. + */ + rel = table_open(SubscriptionRelRelationId, AccessShareLock); /* Try finding the mapping. */ tup = SearchSysCache2(SUBSCRIPTIONRELMAP, @@ -363,6 +371,8 @@ GetSubscriptionRelState(Oid subid, Oid relid, XLogRecPtr *sublsn) /* Cleanup */ ReleaseSysCache(tup); + table_close(rel, AccessShareLock); + return substate; } @@ -403,6 +413,34 @@ RemoveSubscriptionRel(Oid subid, Oid relid) scan = table_beginscan_catalog(rel, nkeys, skey); while (HeapTupleIsValid(tup = heap_getnext(scan, ForwardScanDirection))) { + Form_pg_subscription_rel subrel; + + subrel = (Form_pg_subscription_rel) GETSTRUCT(tup); + + /* + * We don't allow to drop the relation mapping when the table + * synchronization is in progress unless the caller updates the + * corresponding subscription as well. This is to ensure that we don't + * leave tablesync slots or origins in the system when the + * corresponding table is dropped. + */ + if (!OidIsValid(subid) && subrel->srsubstate != SUBREL_STATE_READY) + { + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("could not drop relation mapping for subscription \"%s\"", + get_subscription_name(subrel->srsubid, false)), + errdetail("Table synchronization for relation \"%s\" is in progress and is in state \"%c\".", + get_rel_name(relid), subrel->srsubstate), + /* + * translator: first %s is a SQL ALTER command and second %s is a + * SQL DROP command + */ + errhint("Use %s to enable subscription if not already enabled or use %s to drop the subscription.", + "ALTER SUBSCRIPTION ... ENABLE", + "DROP SUBSCRIPTION ..."))); + } + CatalogTupleDelete(rel, &tup->t_self); } table_endscan(scan); diff --git a/src/backend/catalog/sql_features.txt b/src/backend/catalog/sql_features.txt index 86519ad2974a0..a24387c1e7645 100644 --- a/src/backend/catalog/sql_features.txt +++ b/src/backend/catalog/sql_features.txt @@ -243,7 +243,7 @@ F312 MERGE statement NO consider INSERT ... ON CONFLICT DO UPDATE F313 Enhanced MERGE statement NO F314 MERGE statement with DELETE branch NO F321 User authorization YES -F341 Usage tables NO no ROUTINE_*_USAGE tables +F341 Usage tables YES F361 Subprogram support YES F381 Extended schema manipulation YES F381 Extended schema manipulation 01 ALTER TABLE statement: ALTER COLUMN clause YES diff --git a/src/backend/commands/copyfrom.c b/src/backend/commands/copyfrom.c index c39cc736ed2bc..796ca7b3f7b3a 100644 --- a/src/backend/commands/copyfrom.c +++ b/src/backend/commands/copyfrom.c @@ -666,6 +666,7 @@ CopyFrom(CopyFromState cstate) mtstate->ps.state = estate; mtstate->operation = CMD_INSERT; mtstate->resultRelInfo = resultRelInfo; + mtstate->rootResultRelInfo = resultRelInfo; if (resultRelInfo->ri_FdwRoutine != NULL && resultRelInfo->ri_FdwRoutine->BeginForeignInsert != NULL) diff --git a/src/backend/commands/copyfromparse.c b/src/backend/commands/copyfromparse.c index b843d315b175d..315b16fd7af79 100644 --- a/src/backend/commands/copyfromparse.c +++ b/src/backend/commands/copyfromparse.c @@ -1084,7 +1084,7 @@ CopyReadLineText(CopyFromState cstate) break; } else if (!cstate->opts.csv_mode) - + { /* * If we are here, it means we found a backslash followed by * something other than a period. In non-CSV mode, anything @@ -1095,8 +1095,16 @@ CopyReadLineText(CopyFromState cstate) * backslashes are not special, so we want to process the * character after the backslash just like a normal character, * so we don't increment in those cases. + * + * Set 'c' to skip whole character correctly in multi-byte + * encodings. If we don't have the whole character in the + * buffer yet, we might loop back to process it, after all, + * but that's OK because multi-byte characters cannot have any + * special meaning. */ raw_buf_ptr++; + c = c2; + } } /* diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index 5d7eb3574c823..f80e379973aab 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -3694,7 +3694,7 @@ show_modifytable_info(ModifyTableState *mtstate, List *ancestors, /* Should we explicitly label target relations? */ labeltargets = (mtstate->mt_nplans > 1 || (mtstate->mt_nplans == 1 && - mtstate->resultRelInfo->ri_RangeTableIndex != node->nominalRelation)); + mtstate->resultRelInfo[0].ri_RangeTableIndex != node->nominalRelation)); if (labeltargets) ExplainOpenGroup("Target Tables", "Target Tables", false, es); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 127ba7835dab1..e1bed087d7cb9 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1085,7 +1085,7 @@ DefineIndex(Oid relationId, } ereport(DEBUG1, - (errmsg("%s %s will create implicit index \"%s\" for table \"%s\"", + (errmsg_internal("%s %s will create implicit index \"%s\" for table \"%s\"", is_alter_table ? "ALTER TABLE / ADD" : "CREATE TABLE /", constraint_type, indexRelationName, RelationGetRelationName(rel)))); diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c index 082f7855b89c1..bfd3514546a54 100644 --- a/src/backend/commands/subscriptioncmds.c +++ b/src/backend/commands/subscriptioncmds.c @@ -34,6 +34,7 @@ #include "nodes/makefuncs.h" #include "replication/logicallauncher.h" #include "replication/origin.h" +#include "replication/slot.h" #include "replication/walreceiver.h" #include "replication/walsender.h" #include "replication/worker_internal.h" @@ -46,6 +47,8 @@ #include "utils/syscache.h" static List *fetch_table_list(WalReceiverConn *wrconn, List *publications); +static void ReportSlotConnectionError(List *rstates, Oid subid, char *slotname, char *err); + /* * Common option parsing function for CREATE and ALTER SUBSCRIPTION commands. @@ -566,107 +569,209 @@ AlterSubscription_refresh(Subscription *sub, bool copy_data) Oid *pubrel_local_oids; ListCell *lc; int off; + int remove_rel_len; + Relation rel = NULL; + typedef struct SubRemoveRels + { + Oid relid; + char state; + } SubRemoveRels; + SubRemoveRels *sub_remove_rels; /* Load the library providing us libpq calls. */ load_file("libpqwalreceiver", false); - /* Try to connect to the publisher. */ - wrconn = walrcv_connect(sub->conninfo, true, sub->name, &err); - if (!wrconn) - ereport(ERROR, - (errmsg("could not connect to the publisher: %s", err))); - - /* Get the table list from publisher. */ - pubrel_names = fetch_table_list(wrconn, sub->publications); + PG_TRY(); + { + /* Try to connect to the publisher. */ + wrconn = walrcv_connect(sub->conninfo, true, sub->name, &err); + if (!wrconn) + ereport(ERROR, + (errmsg("could not connect to the publisher: %s", err))); - /* We are done with the remote side, close connection. */ - walrcv_disconnect(wrconn); + /* Get the table list from publisher. */ + pubrel_names = fetch_table_list(wrconn, sub->publications); - /* Get local table list. */ - subrel_states = GetSubscriptionRelations(sub->oid); + /* Get local table list. */ + subrel_states = GetSubscriptionRelations(sub->oid); - /* - * Build qsorted array of local table oids for faster lookup. This can - * potentially contain all tables in the database so speed of lookup is - * important. - */ - subrel_local_oids = palloc(list_length(subrel_states) * sizeof(Oid)); - off = 0; - foreach(lc, subrel_states) - { - SubscriptionRelState *relstate = (SubscriptionRelState *) lfirst(lc); + /* + * Build qsorted array of local table oids for faster lookup. This can + * potentially contain all tables in the database so speed of lookup + * is important. + */ + subrel_local_oids = palloc(list_length(subrel_states) * sizeof(Oid)); + off = 0; + foreach(lc, subrel_states) + { + SubscriptionRelState *relstate = (SubscriptionRelState *) lfirst(lc); - subrel_local_oids[off++] = relstate->relid; - } - qsort(subrel_local_oids, list_length(subrel_states), - sizeof(Oid), oid_cmp); + subrel_local_oids[off++] = relstate->relid; + } + qsort(subrel_local_oids, list_length(subrel_states), + sizeof(Oid), oid_cmp); + + /* + * Rels that we want to remove from subscription and drop any slots + * and origins corresponding to them. + */ + sub_remove_rels = palloc(list_length(subrel_states) * sizeof(SubRemoveRels)); + + /* + * Walk over the remote tables and try to match them to locally known + * tables. If the table is not known locally create a new state for + * it. + * + * Also builds array of local oids of remote tables for the next step. + */ + off = 0; + pubrel_local_oids = palloc(list_length(pubrel_names) * sizeof(Oid)); + + foreach(lc, pubrel_names) + { + RangeVar *rv = (RangeVar *) lfirst(lc); + Oid relid; - /* - * Walk over the remote tables and try to match them to locally known - * tables. If the table is not known locally create a new state for it. - * - * Also builds array of local oids of remote tables for the next step. - */ - off = 0; - pubrel_local_oids = palloc(list_length(pubrel_names) * sizeof(Oid)); + relid = RangeVarGetRelid(rv, AccessShareLock, false); - foreach(lc, pubrel_names) - { - RangeVar *rv = (RangeVar *) lfirst(lc); - Oid relid; + /* Check for supported relkind. */ + CheckSubscriptionRelkind(get_rel_relkind(relid), + rv->schemaname, rv->relname); - relid = RangeVarGetRelid(rv, AccessShareLock, false); + pubrel_local_oids[off++] = relid; - /* Check for supported relkind. */ - CheckSubscriptionRelkind(get_rel_relkind(relid), - rv->schemaname, rv->relname); + if (!bsearch(&relid, subrel_local_oids, + list_length(subrel_states), sizeof(Oid), oid_cmp)) + { + AddSubscriptionRelState(sub->oid, relid, + copy_data ? SUBREL_STATE_INIT : SUBREL_STATE_READY, + InvalidXLogRecPtr); + ereport(DEBUG1, + (errmsg_internal("table \"%s.%s\" added to subscription \"%s\"", + rv->schemaname, rv->relname, sub->name))); + } + } - pubrel_local_oids[off++] = relid; + /* + * Next remove state for tables we should not care about anymore using + * the data we collected above + */ + qsort(pubrel_local_oids, list_length(pubrel_names), + sizeof(Oid), oid_cmp); - if (!bsearch(&relid, subrel_local_oids, - list_length(subrel_states), sizeof(Oid), oid_cmp)) + remove_rel_len = 0; + for (off = 0; off < list_length(subrel_states); off++) { - AddSubscriptionRelState(sub->oid, relid, - copy_data ? SUBREL_STATE_INIT : SUBREL_STATE_READY, - InvalidXLogRecPtr); - ereport(DEBUG1, - (errmsg("table \"%s.%s\" added to subscription \"%s\"", - rv->schemaname, rv->relname, sub->name))); - } - } + Oid relid = subrel_local_oids[off]; - /* - * Next remove state for tables we should not care about anymore using the - * data we collected above - */ - qsort(pubrel_local_oids, list_length(pubrel_names), - sizeof(Oid), oid_cmp); + if (!bsearch(&relid, pubrel_local_oids, + list_length(pubrel_names), sizeof(Oid), oid_cmp)) + { + char state; + XLogRecPtr statelsn; + + /* + * Lock pg_subscription_rel with AccessExclusiveLock to + * prevent any race conditions with the apply worker + * re-launching workers at the same time this code is trying + * to remove those tables. + * + * Even if new worker for this particular rel is restarted it + * won't be able to make any progress as we hold exclusive + * lock on subscription_rel till the transaction end. It will + * simply exit as there is no corresponding rel entry. + * + * This locking also ensures that the state of rels won't + * change till we are done with this refresh operation. + */ + if (!rel) + rel = table_open(SubscriptionRelRelationId, AccessExclusiveLock); + + /* Last known rel state. */ + state = GetSubscriptionRelState(sub->oid, relid, &statelsn); + + sub_remove_rels[remove_rel_len].relid = relid; + sub_remove_rels[remove_rel_len++].state = state; + + RemoveSubscriptionRel(sub->oid, relid); + + logicalrep_worker_stop(sub->oid, relid); + + /* + * For READY state, we would have already dropped the + * tablesync origin. + */ + if (state != SUBREL_STATE_READY) + { + char originname[NAMEDATALEN]; + + /* + * Drop the tablesync's origin tracking if exists. + * + * It is possible that the origin is not yet created for + * tablesync worker, this can happen for the states before + * SUBREL_STATE_FINISHEDCOPY. The apply worker can also + * concurrently try to drop the origin and by this time + * the origin might be already removed. For these reasons, + * passing missing_ok = true. + */ + ReplicationOriginNameForTablesync(sub->oid, relid, originname, + sizeof(originname)); + replorigin_drop_by_name(originname, true, false); + } - for (off = 0; off < list_length(subrel_states); off++) - { - Oid relid = subrel_local_oids[off]; + ereport(DEBUG1, + (errmsg_internal("table \"%s.%s\" removed from subscription \"%s\"", + get_namespace_name(get_rel_namespace(relid)), + get_rel_name(relid), + sub->name))); + } + } - if (!bsearch(&relid, pubrel_local_oids, - list_length(pubrel_names), sizeof(Oid), oid_cmp)) + /* + * Drop the tablesync slots associated with removed tables. This has + * to be at the end because otherwise if there is an error while doing + * the database operations we won't be able to rollback dropped slots. + */ + for (off = 0; off < remove_rel_len; off++) { - RemoveSubscriptionRel(sub->oid, relid); - - logicalrep_worker_stop_at_commit(sub->oid, relid); - - ereport(DEBUG1, - (errmsg("table \"%s.%s\" removed from subscription \"%s\"", - get_namespace_name(get_rel_namespace(relid)), - get_rel_name(relid), - sub->name))); + if (sub_remove_rels[off].state != SUBREL_STATE_READY && + sub_remove_rels[off].state != SUBREL_STATE_SYNCDONE) + { + char syncslotname[NAMEDATALEN] = {0}; + + /* + * For READY/SYNCDONE states we know the tablesync slot has + * already been dropped by the tablesync worker. + * + * For other states, there is no certainty, maybe the slot + * does not exist yet. Also, if we fail after removing some of + * the slots, next time, it will again try to drop already + * dropped slots and fail. For these reasons, we allow + * missing_ok = true for the drop. + */ + ReplicationSlotNameForTablesync(sub->oid, sub_remove_rels[off].relid, + syncslotname, sizeof(syncslotname)); + ReplicationSlotDropAtPubNode(wrconn, syncslotname, true); + } } } + PG_FINALLY(); + { + if (wrconn) + walrcv_disconnect(wrconn); + } + PG_END_TRY(); + + if (rel) + table_close(rel, NoLock); } /* * Alter the existing subscription. */ ObjectAddress -AlterSubscription(AlterSubscriptionStmt *stmt) +AlterSubscription(AlterSubscriptionStmt *stmt, bool isTopLevel) { Relation rel; ObjectAddress myself; @@ -848,6 +953,8 @@ AlterSubscription(AlterSubscriptionStmt *stmt) errmsg("ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions"), errhint("Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)."))); + PreventInTransactionBlock(isTopLevel, "ALTER SUBSCRIPTION with refresh"); + /* Make sure refresh sees the new list of publications. */ sub->publications = stmt->publication; @@ -877,6 +984,8 @@ AlterSubscription(AlterSubscriptionStmt *stmt) NULL, NULL, /* no "binary" */ NULL, NULL); /* no "streaming" */ + PreventInTransactionBlock(isTopLevel, "ALTER SUBSCRIPTION ... REFRESH"); + AlterSubscription_refresh(sub, copy_data); break; @@ -926,10 +1035,9 @@ DropSubscription(DropSubscriptionStmt *stmt, bool isTopLevel) ListCell *lc; char originname[NAMEDATALEN]; char *err = NULL; - RepOriginId originid; WalReceiverConn *wrconn = NULL; - StringInfoData cmd; Form_pg_subscription form; + List *rstates; /* * Lock pg_subscription with AccessExclusiveLock to ensure that the @@ -1042,6 +1150,37 @@ DropSubscription(DropSubscriptionStmt *stmt, bool isTopLevel) } list_free(subworkers); + /* + * Cleanup of tablesync replication origins. + * + * Any READY-state relations would already have dealt with clean-ups. + * + * Note that the state can't change because we have already stopped both + * the apply and tablesync workers and they can't restart because of + * exclusive lock on the subscription. + */ + rstates = GetSubscriptionNotReadyRelations(subid); + foreach(lc, rstates) + { + SubscriptionRelState *rstate = (SubscriptionRelState *) lfirst(lc); + Oid relid = rstate->relid; + + /* Only cleanup resources of tablesync workers */ + if (!OidIsValid(relid)) + continue; + + /* + * Drop the tablesync's origin tracking if exists. + * + * It is possible that the origin is not yet created for tablesync + * worker so passing missing_ok = true. This can happen for the states + * before SUBREL_STATE_FINISHEDCOPY. + */ + ReplicationOriginNameForTablesync(subid, relid, originname, + sizeof(originname)); + replorigin_drop_by_name(originname, true, false); + } + /* Clean up dependencies */ deleteSharedDependencyRecordsFor(SubscriptionRelationId, subid, 0); @@ -1050,38 +1189,117 @@ DropSubscription(DropSubscriptionStmt *stmt, bool isTopLevel) /* Remove the origin tracking if exists. */ snprintf(originname, sizeof(originname), "pg_%u", subid); - originid = replorigin_by_name(originname, true); - if (originid != InvalidRepOriginId) - replorigin_drop(originid, false); + replorigin_drop_by_name(originname, true, false); /* * If there is no slot associated with the subscription, we can finish * here. */ - if (!slotname) + if (!slotname && rstates == NIL) { table_close(rel, NoLock); return; } /* - * Otherwise drop the replication slot at the publisher node using the - * replication connection. + * Try to acquire the connection necessary for dropping slots. + * + * Note: If the slotname is NONE/NULL then we allow the command to finish + * and users need to manually cleanup the apply and tablesync worker slots + * later. + * + * This has to be at the end because otherwise if there is an error while + * doing the database operations we won't be able to rollback dropped + * slot. */ load_file("libpqwalreceiver", false); - initStringInfo(&cmd); - appendStringInfo(&cmd, "DROP_REPLICATION_SLOT %s WAIT", quote_identifier(slotname)); - wrconn = walrcv_connect(conninfo, true, subname, &err); if (wrconn == NULL) - ereport(ERROR, - (errmsg("could not connect to publisher when attempting to " - "drop the replication slot \"%s\"", slotname), - errdetail("The error was: %s", err), - /* translator: %s is an SQL ALTER command */ - errhint("Use %s to disassociate the subscription from the slot.", - "ALTER SUBSCRIPTION ... SET (slot_name = NONE)"))); + { + if (!slotname) + { + /* be tidy */ + list_free(rstates); + table_close(rel, NoLock); + return; + } + else + { + ReportSlotConnectionError(rstates, subid, slotname, err); + } + } + + PG_TRY(); + { + foreach(lc, rstates) + { + SubscriptionRelState *rstate = (SubscriptionRelState *) lfirst(lc); + Oid relid = rstate->relid; + + /* Only cleanup resources of tablesync workers */ + if (!OidIsValid(relid)) + continue; + + /* + * Drop the tablesync slots associated with removed tables. + * + * For SYNCDONE/READY states, the tablesync slot is known to have + * already been dropped by the tablesync worker. + * + * For other states, there is no certainty, maybe the slot does + * not exist yet. Also, if we fail after removing some of the + * slots, next time, it will again try to drop already dropped + * slots and fail. For these reasons, we allow missing_ok = true + * for the drop. + */ + if (rstate->state != SUBREL_STATE_SYNCDONE) + { + char syncslotname[NAMEDATALEN] = {0}; + + ReplicationSlotNameForTablesync(subid, relid, syncslotname, + sizeof(syncslotname)); + ReplicationSlotDropAtPubNode(wrconn, syncslotname, true); + } + } + + list_free(rstates); + + /* + * If there is a slot associated with the subscription, then drop the + * replication slot at the publisher. + */ + if (slotname) + ReplicationSlotDropAtPubNode(wrconn, slotname, false); + + } + PG_FINALLY(); + { + walrcv_disconnect(wrconn); + } + PG_END_TRY(); + + table_close(rel, NoLock); +} + +/* + * Drop the replication slot at the publisher node using the replication + * connection. + * + * missing_ok - if true then only issue a LOG message if the slot doesn't + * exist. + */ +void +ReplicationSlotDropAtPubNode(WalReceiverConn *wrconn, char *slotname, bool missing_ok) +{ + StringInfoData cmd; + + Assert(wrconn); + + load_file("libpqwalreceiver", false); + + initStringInfo(&cmd); + appendStringInfo(&cmd, "DROP_REPLICATION_SLOT %s WAIT", quote_identifier(slotname)); PG_TRY(); { @@ -1089,27 +1307,39 @@ DropSubscription(DropSubscriptionStmt *stmt, bool isTopLevel) res = walrcv_exec(wrconn, cmd.data, 0, NULL); - if (res->status != WALRCV_OK_COMMAND) - ereport(ERROR, + if (res->status == WALRCV_OK_COMMAND) + { + /* NOTICE. Success. */ + ereport(NOTICE, + (errmsg("dropped replication slot \"%s\" on publisher", + slotname))); + } + else if (res->status == WALRCV_ERROR && + missing_ok && + res->sqlstate == ERRCODE_UNDEFINED_OBJECT) + { + /* LOG. Error, but missing_ok = true. */ + ereport(LOG, (errmsg("could not drop the replication slot \"%s\" on publisher", slotname), errdetail("The error was: %s", res->err))); + } else - ereport(NOTICE, - (errmsg("dropped replication slot \"%s\" on publisher", - slotname))); + { + /* ERROR. */ + ereport(ERROR, + (errmsg("could not drop the replication slot \"%s\" on publisher", + slotname), + errdetail("The error was: %s", res->err))); + } walrcv_clear_result(res); } PG_FINALLY(); { - walrcv_disconnect(wrconn); + pfree(cmd.data); } PG_END_TRY(); - - pfree(cmd.data); - - table_close(rel, NoLock); } /* @@ -1278,3 +1508,46 @@ fetch_table_list(WalReceiverConn *wrconn, List *publications) return tablelist; } + +/* + * This is to report the connection failure while dropping replication slots. + * Here, we report the WARNING for all tablesync slots so that user can drop + * them manually, if required. + */ +static void +ReportSlotConnectionError(List *rstates, Oid subid, char *slotname, char *err) +{ + ListCell *lc; + + foreach(lc, rstates) + { + SubscriptionRelState *rstate = (SubscriptionRelState *) lfirst(lc); + Oid relid = rstate->relid; + + /* Only cleanup resources of tablesync workers */ + if (!OidIsValid(relid)) + continue; + + /* + * Caller needs to ensure that relstate doesn't change underneath us. + * See DropSubscription where we get the relstates. + */ + if (rstate->state != SUBREL_STATE_SYNCDONE) + { + char syncslotname[NAMEDATALEN] = {0}; + + ReplicationSlotNameForTablesync(subid, relid, syncslotname, + sizeof(syncslotname)); + elog(WARNING, "could not drop tablesync replication slot \"%s\"", + syncslotname); + } + } + + ereport(ERROR, + (errmsg("could not connect to publisher when attempting to " + "drop the replication slot \"%s\"", slotname), + errdetail("The error was: %s", err), + /* translator: %s is an SQL ALTER command */ + errhint("Use %s to disassociate the subscription from the slot.", + "ALTER SUBSCRIPTION ... SET (slot_name = NONE)"))); +} diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 420991e31539c..b2457a6924564 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -5399,11 +5399,11 @@ ATRewriteTable(AlteredTableInfo *tab, Oid OIDNewHeap, LOCKMODE lockmode) if (newrel) ereport(DEBUG1, - (errmsg("rewriting table \"%s\"", + (errmsg_internal("rewriting table \"%s\"", RelationGetRelationName(oldrel)))); else ereport(DEBUG1, - (errmsg("verifying table \"%s\"", + (errmsg_internal("verifying table \"%s\"", RelationGetRelationName(oldrel)))); if (newrel) @@ -7016,7 +7016,7 @@ NotNullImpliedByRelConstraints(Relation rel, Form_pg_attribute attr) if (ConstraintImpliedByRelConstraint(rel, list_make1(nnulltest), NIL)) { ereport(DEBUG1, - (errmsg("existing constraints on column \"%s.%s\" are sufficient to prove that it does not contain nulls", + (errmsg_internal("existing constraints on column \"%s.%s\" are sufficient to prove that it does not contain nulls", RelationGetRelationName(rel), NameStr(attr->attname)))); return true; } @@ -10565,7 +10565,7 @@ validateForeignKeyConstraint(char *conname, MemoryContext perTupCxt; ereport(DEBUG1, - (errmsg("validating foreign key constraint \"%s\"", conname))); + (errmsg_internal("validating foreign key constraint \"%s\"", conname))); /* * Build a trigger call structure; we'll need it either way. @@ -16294,11 +16294,11 @@ QueuePartitionConstraintValidation(List **wqueue, Relation scanrel, { if (!validate_default) ereport(DEBUG1, - (errmsg("partition constraint for table \"%s\" is implied by existing constraints", + (errmsg_internal("partition constraint for table \"%s\" is implied by existing constraints", RelationGetRelationName(scanrel)))); else ereport(DEBUG1, - (errmsg("updated partition constraint for default partition \"%s\" is implied by existing constraints", + (errmsg_internal("updated partition constraint for default partition \"%s\" is implied by existing constraints", RelationGetRelationName(scanrel)))); return; } diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index 2d687f6dfb6bb..8908847c6c690 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -70,14 +70,6 @@ int SessionReplicationRole = SESSION_REPLICATION_ROLE_ORIGIN; /* How many levels deep into trigger execution are we? */ static int MyTriggerDepth = 0; -/* - * The authoritative version of this macro is in executor/execMain.c. Be sure - * to keep everything in sync. - */ -#define GetAllUpdatedColumns(relinfo, estate) \ - (bms_union(exec_rt_fetch((relinfo)->ri_RangeTableIndex, estate)->updatedCols, \ - exec_rt_fetch((relinfo)->ri_RangeTableIndex, estate)->extraUpdatedCols)) - /* Local function prototypes */ static void SetTriggerFlags(TriggerDesc *trigdesc, Trigger *trigger); static bool GetTupleForTrigger(EState *estate, @@ -2643,7 +2635,10 @@ ExecBSUpdateTriggers(EState *estate, ResultRelInfo *relinfo) CMD_UPDATE)) return; - updatedCols = GetAllUpdatedColumns(relinfo, estate); + /* statement-level triggers operate on the parent table */ + Assert(relinfo->ri_RootResultRelInfo == NULL); + + updatedCols = ExecGetAllUpdatedCols(relinfo, estate); LocTriggerData.type = T_TriggerData; LocTriggerData.tg_event = TRIGGER_EVENT_UPDATE | @@ -2684,10 +2679,13 @@ ExecASUpdateTriggers(EState *estate, ResultRelInfo *relinfo, { TriggerDesc *trigdesc = relinfo->ri_TrigDesc; + /* statement-level triggers operate on the parent table */ + Assert(relinfo->ri_RootResultRelInfo == NULL); + if (trigdesc && trigdesc->trig_update_after_statement) AfterTriggerSaveEvent(estate, relinfo, TRIGGER_EVENT_UPDATE, false, NULL, NULL, NIL, - GetAllUpdatedColumns(relinfo, estate), + ExecGetAllUpdatedCols(relinfo, estate), transition_capture); } @@ -2757,7 +2755,7 @@ ExecBRUpdateTriggers(EState *estate, EPQState *epqstate, TRIGGER_EVENT_ROW | TRIGGER_EVENT_BEFORE; LocTriggerData.tg_relation = relinfo->ri_RelationDesc; - updatedCols = GetAllUpdatedColumns(relinfo, estate); + updatedCols = ExecGetAllUpdatedCols(relinfo, estate); LocTriggerData.tg_updatedcols = updatedCols; for (i = 0; i < trigdesc->numtriggers; i++) { @@ -2858,7 +2856,7 @@ ExecARUpdateTriggers(EState *estate, ResultRelInfo *relinfo, AfterTriggerSaveEvent(estate, relinfo, TRIGGER_EVENT_UPDATE, true, oldslot, newslot, recheckIndexes, - GetAllUpdatedColumns(relinfo, estate), + ExecGetAllUpdatedCols(relinfo, estate), transition_capture); } } diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c index 462f9a0f8225c..c064352e237fb 100644 --- a/src/backend/commands/vacuum.c +++ b/src/backend/commands/vacuum.c @@ -104,6 +104,7 @@ ExecVacuum(ParseState *pstate, VacuumStmt *vacstmt, bool isTopLevel) bool freeze = false; bool full = false; bool disable_page_skipping = false; + bool process_toast = true; ListCell *lc; /* Set default value */ @@ -140,6 +141,8 @@ ExecVacuum(ParseState *pstate, VacuumStmt *vacstmt, bool isTopLevel) disable_page_skipping = defGetBoolean(opt); else if (strcmp(opt->defname, "index_cleanup") == 0) params.index_cleanup = get_vacopt_ternary_value(opt); + else if (strcmp(opt->defname, "process_toast") == 0) + process_toast = defGetBoolean(opt); else if (strcmp(opt->defname, "truncate") == 0) params.truncate = get_vacopt_ternary_value(opt); else if (strcmp(opt->defname, "parallel") == 0) @@ -189,13 +192,13 @@ ExecVacuum(ParseState *pstate, VacuumStmt *vacstmt, bool isTopLevel) (analyze ? VACOPT_ANALYZE : 0) | (freeze ? VACOPT_FREEZE : 0) | (full ? VACOPT_FULL : 0) | - (disable_page_skipping ? VACOPT_DISABLE_PAGE_SKIPPING : 0); + (disable_page_skipping ? VACOPT_DISABLE_PAGE_SKIPPING : 0) | + (process_toast ? VACOPT_PROCESS_TOAST : 0); /* sanity checks on options */ Assert(params.options & (VACOPT_VACUUM | VACOPT_ANALYZE)); Assert((params.options & VACOPT_VACUUM) || !(params.options & (VACOPT_FULL | VACOPT_FREEZE))); - Assert(!(params.options & VACOPT_SKIPTOAST)); if ((params.options & VACOPT_FULL) && params.nworkers > 0) ereport(ERROR, @@ -318,6 +321,13 @@ vacuum(List *relations, VacuumParams *params, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("VACUUM option DISABLE_PAGE_SKIPPING cannot be used with FULL"))); + /* sanity check for PROCESS_TOAST */ + if ((params->options & VACOPT_FULL) != 0 && + (params->options & VACOPT_PROCESS_TOAST) == 0) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("PROCESS_TOAST required with VACUUM FULL"))); + /* * Send info about dead objects to the statistics collector, unless we are * in autovacuum --- autovacuum.c does this for itself. @@ -1004,7 +1014,7 @@ vacuum_set_xid_limits(Relation rel, * autovacuum_freeze_max_age / 2 XIDs old), complain and force a minimum * freeze age of zero. */ - safeLimit = ReadNewTransactionId() - autovacuum_freeze_max_age; + safeLimit = ReadNextTransactionId() - autovacuum_freeze_max_age; if (!TransactionIdIsNormal(safeLimit)) safeLimit = FirstNormalTransactionId; @@ -1087,7 +1097,7 @@ vacuum_set_xid_limits(Relation rel, * Compute XID limit causing a full-table vacuum, being careful not to * generate a "permanent" XID. */ - limit = ReadNewTransactionId() - freezetable; + limit = ReadNextTransactionId() - freezetable; if (!TransactionIdIsNormal(limit)) limit = FirstNormalTransactionId; @@ -1304,7 +1314,7 @@ vac_update_relstats(Relation relation, if (TransactionIdIsNormal(frozenxid) && pgcform->relfrozenxid != frozenxid && (TransactionIdPrecedes(pgcform->relfrozenxid, frozenxid) || - TransactionIdPrecedes(ReadNewTransactionId(), + TransactionIdPrecedes(ReadNextTransactionId(), pgcform->relfrozenxid))) { pgcform->relfrozenxid = frozenxid; @@ -1391,7 +1401,7 @@ vac_update_datfrozenxid(void) * validly see during the scan. These are conservative values, but it's * not really worth trying to be more exact. */ - lastSaneFrozenXid = ReadNewTransactionId(); + lastSaneFrozenXid = ReadNextTransactionId(); lastSaneMinMulti = ReadNextMultiXactId(); /* @@ -1567,7 +1577,7 @@ vac_truncate_clog(TransactionId frozenXID, TransactionId lastSaneFrozenXid, MultiXactId lastSaneMinMulti) { - TransactionId nextXID = ReadNewTransactionId(); + TransactionId nextXID = ReadNextTransactionId(); Relation relation; TableScanDesc scan; HeapTuple tuple; @@ -1895,7 +1905,8 @@ vacuum_rel(Oid relid, RangeVar *relation, VacuumParams *params) * us to process it. In VACUUM FULL, though, the toast table is * automatically rebuilt by cluster_rel so we shouldn't recurse to it. */ - if (!(params->options & VACOPT_SKIPTOAST) && !(params->options & VACOPT_FULL)) + if ((params->options & VACOPT_PROCESS_TOAST) != 0 && + (params->options & VACOPT_FULL) == 0) toast_relid = onerel->rd_rel->reltoastrelid; else toast_relid = InvalidOid; diff --git a/src/backend/executor/execIndexing.c b/src/backend/executor/execIndexing.c index 1f0fe145ce8eb..afe7ce87d4ccb 100644 --- a/src/backend/executor/execIndexing.c +++ b/src/backend/executor/execIndexing.c @@ -124,15 +124,6 @@ typedef enum CEOUC_LIVELOCK_PREVENTING_WAIT } CEOUC_WAIT_MODE; -/* - * The authoritative version of these macro are in executor/execMain.c. Be - * sure to keep everything in sync. - */ -#define GetUpdatedColumns(relinfo, estate) \ - (exec_rt_fetch((relinfo)->ri_RangeTableIndex, estate)->updatedCols) -#define GetExtraUpdatedColumns(relinfo, estate) \ - (exec_rt_fetch((relinfo)->ri_RangeTableIndex, estate)->extraUpdatedCols) - static bool check_exclusion_or_unique_constraint(Relation heap, Relation index, IndexInfo *indexInfo, ItemPointer tupleid, @@ -944,8 +935,8 @@ static bool index_unchanged_by_update(ResultRelInfo *resultRelInfo, EState *estate, IndexInfo *indexInfo, Relation indexRelation) { - Bitmapset *updatedCols = GetUpdatedColumns(resultRelInfo, estate); - Bitmapset *extraUpdatedCols = GetExtraUpdatedColumns(resultRelInfo, estate); + Bitmapset *updatedCols = ExecGetUpdatedCols(resultRelInfo, estate); + Bitmapset *extraUpdatedCols = ExecGetExtraUpdatedCols(resultRelInfo, estate); Bitmapset *allUpdatedCols; bool hasexpression = false; List *idxExprs; diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index f4dd47acc76ac..c74ce36ffbab6 100644 --- a/src/backend/executor/execMain.c +++ b/src/backend/executor/execMain.c @@ -100,20 +100,6 @@ static char *ExecBuildSlotValueDescription(Oid reloid, int maxfieldlen); static void EvalPlanQualStart(EPQState *epqstate, Plan *planTree); -/* - * Note that variants of these macros exists in commands/trigger.c and in - * execIndexing.c. There does not appear to be any good header to put it - * into, given the structures that it uses, so we let them be duplicated. Be - * sure to keep everything in sync. - */ -#define GetInsertedColumns(relinfo, estate) \ - (exec_rt_fetch((relinfo)->ri_RangeTableIndex, estate)->insertedCols) -#define GetUpdatedColumns(relinfo, estate) \ - (exec_rt_fetch((relinfo)->ri_RangeTableIndex, estate)->updatedCols) -#define GetAllUpdatedColumns(relinfo, estate) \ - (bms_union(exec_rt_fetch((relinfo)->ri_RangeTableIndex, estate)->updatedCols, \ - exec_rt_fetch((relinfo)->ri_RangeTableIndex, estate)->extraUpdatedCols)) - /* end of local decls */ @@ -1196,7 +1182,7 @@ void InitResultRelInfo(ResultRelInfo *resultRelInfo, Relation resultRelationDesc, Index resultRelationIndex, - Relation partition_root, + ResultRelInfo *partition_root_rri, int instrument_options) { MemSet(resultRelInfo, 0, sizeof(ResultRelInfo)); @@ -1242,7 +1228,7 @@ InitResultRelInfo(ResultRelInfo *resultRelInfo, resultRelInfo->ri_ReturningSlot = NULL; resultRelInfo->ri_TrigOldSlot = NULL; resultRelInfo->ri_TrigNewSlot = NULL; - resultRelInfo->ri_PartitionRoot = partition_root; + resultRelInfo->ri_RootResultRelInfo = partition_root_rri; resultRelInfo->ri_RootToPartitionMap = NULL; /* set by * ExecInitRoutingInfo */ resultRelInfo->ri_PartitionTupleSlot = NULL; /* ditto */ @@ -1744,13 +1730,14 @@ ExecPartitionCheckEmitError(ResultRelInfo *resultRelInfo, * back to the root table's rowtype so that val_desc in the error message * matches the input tuple. */ - if (resultRelInfo->ri_PartitionRoot) + if (resultRelInfo->ri_RootResultRelInfo) { + ResultRelInfo *rootrel = resultRelInfo->ri_RootResultRelInfo; TupleDesc old_tupdesc; AttrMap *map; - root_relid = RelationGetRelid(resultRelInfo->ri_PartitionRoot); - tupdesc = RelationGetDescr(resultRelInfo->ri_PartitionRoot); + root_relid = RelationGetRelid(rootrel->ri_RelationDesc); + tupdesc = RelationGetDescr(rootrel->ri_RelationDesc); old_tupdesc = RelationGetDescr(resultRelInfo->ri_RelationDesc); /* a reverse map */ @@ -1763,16 +1750,17 @@ ExecPartitionCheckEmitError(ResultRelInfo *resultRelInfo, if (map != NULL) slot = execute_attr_map_slot(map, slot, MakeTupleTableSlot(tupdesc, &TTSOpsVirtual)); + modifiedCols = bms_union(ExecGetInsertedCols(rootrel, estate), + ExecGetUpdatedCols(rootrel, estate)); } else { root_relid = RelationGetRelid(resultRelInfo->ri_RelationDesc); tupdesc = RelationGetDescr(resultRelInfo->ri_RelationDesc); + modifiedCols = bms_union(ExecGetInsertedCols(resultRelInfo, estate), + ExecGetUpdatedCols(resultRelInfo, estate)); } - modifiedCols = bms_union(GetInsertedColumns(resultRelInfo, estate), - GetUpdatedColumns(resultRelInfo, estate)); - val_desc = ExecBuildSlotValueDescription(root_relid, slot, tupdesc, @@ -1805,8 +1793,6 @@ ExecConstraints(ResultRelInfo *resultRelInfo, TupleDesc tupdesc = RelationGetDescr(rel); TupleConstr *constr = tupdesc->constr; Bitmapset *modifiedCols; - Bitmapset *insertedCols; - Bitmapset *updatedCols; Assert(constr); /* we should not be called otherwise */ @@ -1832,12 +1818,12 @@ ExecConstraints(ResultRelInfo *resultRelInfo, * rowtype so that val_desc shown error message matches the * input tuple. */ - if (resultRelInfo->ri_PartitionRoot) + if (resultRelInfo->ri_RootResultRelInfo) { + ResultRelInfo *rootrel = resultRelInfo->ri_RootResultRelInfo; AttrMap *map; - rel = resultRelInfo->ri_PartitionRoot; - tupdesc = RelationGetDescr(rel); + tupdesc = RelationGetDescr(rootrel->ri_RelationDesc); /* a reverse map */ map = build_attrmap_by_name_if_req(orig_tupdesc, tupdesc); @@ -1849,11 +1835,13 @@ ExecConstraints(ResultRelInfo *resultRelInfo, if (map != NULL) slot = execute_attr_map_slot(map, slot, MakeTupleTableSlot(tupdesc, &TTSOpsVirtual)); + modifiedCols = bms_union(ExecGetInsertedCols(rootrel, estate), + ExecGetUpdatedCols(rootrel, estate)); + rel = rootrel->ri_RelationDesc; } - - insertedCols = GetInsertedColumns(resultRelInfo, estate); - updatedCols = GetUpdatedColumns(resultRelInfo, estate); - modifiedCols = bms_union(insertedCols, updatedCols); + else + modifiedCols = bms_union(ExecGetInsertedCols(resultRelInfo, estate), + ExecGetUpdatedCols(resultRelInfo, estate)); val_desc = ExecBuildSlotValueDescription(RelationGetRelid(rel), slot, tupdesc, @@ -1881,13 +1869,13 @@ ExecConstraints(ResultRelInfo *resultRelInfo, Relation orig_rel = rel; /* See the comment above. */ - if (resultRelInfo->ri_PartitionRoot) + if (resultRelInfo->ri_RootResultRelInfo) { + ResultRelInfo *rootrel = resultRelInfo->ri_RootResultRelInfo; TupleDesc old_tupdesc = RelationGetDescr(rel); AttrMap *map; - rel = resultRelInfo->ri_PartitionRoot; - tupdesc = RelationGetDescr(rel); + tupdesc = RelationGetDescr(rootrel->ri_RelationDesc); /* a reverse map */ map = build_attrmap_by_name_if_req(old_tupdesc, tupdesc); @@ -1899,11 +1887,13 @@ ExecConstraints(ResultRelInfo *resultRelInfo, if (map != NULL) slot = execute_attr_map_slot(map, slot, MakeTupleTableSlot(tupdesc, &TTSOpsVirtual)); + modifiedCols = bms_union(ExecGetInsertedCols(rootrel, estate), + ExecGetUpdatedCols(rootrel, estate)); + rel = rootrel->ri_RelationDesc; } - - insertedCols = GetInsertedColumns(resultRelInfo, estate); - updatedCols = GetUpdatedColumns(resultRelInfo, estate); - modifiedCols = bms_union(insertedCols, updatedCols); + else + modifiedCols = bms_union(ExecGetInsertedCols(resultRelInfo, estate), + ExecGetUpdatedCols(resultRelInfo, estate)); val_desc = ExecBuildSlotValueDescription(RelationGetRelid(rel), slot, tupdesc, @@ -1972,8 +1962,6 @@ ExecWithCheckOptions(WCOKind kind, ResultRelInfo *resultRelInfo, { char *val_desc; Bitmapset *modifiedCols; - Bitmapset *insertedCols; - Bitmapset *updatedCols; switch (wco->kind) { @@ -1988,13 +1976,13 @@ ExecWithCheckOptions(WCOKind kind, ResultRelInfo *resultRelInfo, */ case WCO_VIEW_CHECK: /* See the comment in ExecConstraints(). */ - if (resultRelInfo->ri_PartitionRoot) + if (resultRelInfo->ri_RootResultRelInfo) { + ResultRelInfo *rootrel = resultRelInfo->ri_RootResultRelInfo; TupleDesc old_tupdesc = RelationGetDescr(rel); AttrMap *map; - rel = resultRelInfo->ri_PartitionRoot; - tupdesc = RelationGetDescr(rel); + tupdesc = RelationGetDescr(rootrel->ri_RelationDesc); /* a reverse map */ map = build_attrmap_by_name_if_req(old_tupdesc, tupdesc); @@ -2006,11 +1994,14 @@ ExecWithCheckOptions(WCOKind kind, ResultRelInfo *resultRelInfo, if (map != NULL) slot = execute_attr_map_slot(map, slot, MakeTupleTableSlot(tupdesc, &TTSOpsVirtual)); - } - insertedCols = GetInsertedColumns(resultRelInfo, estate); - updatedCols = GetUpdatedColumns(resultRelInfo, estate); - modifiedCols = bms_union(insertedCols, updatedCols); + modifiedCols = bms_union(ExecGetInsertedCols(rootrel, estate), + ExecGetUpdatedCols(rootrel, estate)); + rel = rootrel->ri_RelationDesc; + } + else + modifiedCols = bms_union(ExecGetInsertedCols(resultRelInfo, estate), + ExecGetUpdatedCols(resultRelInfo, estate)); val_desc = ExecBuildSlotValueDescription(RelationGetRelid(rel), slot, tupdesc, @@ -2224,7 +2215,7 @@ ExecUpdateLockMode(EState *estate, ResultRelInfo *relinfo) * been modified, then we can use a weaker lock, allowing for better * concurrency. */ - updatedCols = GetAllUpdatedColumns(relinfo, estate); + updatedCols = ExecGetAllUpdatedCols(relinfo, estate); keyCols = RelationGetIndexAttrBitmap(relinfo->ri_RelationDesc, INDEX_ATTR_BITMAP_KEY); diff --git a/src/backend/executor/execPartition.c b/src/backend/executor/execPartition.c index 746cd1e9d7a1b..b8da4c5967d8f 100644 --- a/src/backend/executor/execPartition.c +++ b/src/backend/executor/execPartition.c @@ -176,7 +176,8 @@ static void ExecInitRoutingInfo(ModifyTableState *mtstate, int partidx); static PartitionDispatch ExecInitPartitionDispatchInfo(EState *estate, PartitionTupleRouting *proute, - Oid partoid, PartitionDispatch parent_pd, int partidx); + Oid partoid, PartitionDispatch parent_pd, + int partidx, ResultRelInfo *rootResultRelInfo); static void FormPartitionKeyDatum(PartitionDispatch pd, TupleTableSlot *slot, EState *estate, @@ -238,7 +239,7 @@ ExecSetupPartitionTupleRouting(EState *estate, ModifyTableState *mtstate, * partitioned table. */ ExecInitPartitionDispatchInfo(estate, proute, RelationGetRelid(rel), - NULL, 0); + NULL, 0, NULL); /* * If performing an UPDATE with tuple routing, we can reuse partition @@ -432,10 +433,11 @@ ExecFindPartition(ModifyTableState *mtstate, * Create the new PartitionDispatch. We pass the current one * in as the parent PartitionDispatch */ - subdispatch = ExecInitPartitionDispatchInfo(mtstate->ps.state, + subdispatch = ExecInitPartitionDispatchInfo(estate, proute, partdesc->oids[partidx], - dispatch, partidx); + dispatch, partidx, + mtstate->rootResultRelInfo); Assert(dispatch->indexes[partidx] >= 0 && dispatch->indexes[partidx] < proute->num_dispatch); @@ -547,7 +549,7 @@ ExecHashSubPlanResultRelsByOid(ModifyTableState *mtstate, * compatible with the root partitioned table's tuple descriptor. When * generating the per-subplan result rels, this was not set. */ - rri->ri_PartitionRoot = proute->partition_root; + rri->ri_RootResultRelInfo = mtstate->rootResultRelInfo; } } @@ -567,8 +569,8 @@ ExecInitPartitionInfo(ModifyTableState *mtstate, EState *estate, int partidx) { ModifyTable *node = (ModifyTable *) mtstate->ps.plan; - Relation rootrel = rootResultRelInfo->ri_RelationDesc, - partrel; + Relation partrel; + int firstVarno = mtstate->resultRelInfo[0].ri_RangeTableIndex; Relation firstResultRel = mtstate->resultRelInfo[0].ri_RelationDesc; ResultRelInfo *leaf_part_rri; MemoryContext oldcxt; @@ -582,8 +584,8 @@ ExecInitPartitionInfo(ModifyTableState *mtstate, EState *estate, leaf_part_rri = makeNode(ResultRelInfo); InitResultRelInfo(leaf_part_rri, partrel, - node ? node->rootRelation : 1, - rootrel, + 0, + rootResultRelInfo, estate->es_instrument); /* @@ -617,7 +619,6 @@ ExecInitPartitionInfo(ModifyTableState *mtstate, EState *estate, List *wcoList; List *wcoExprs = NIL; ListCell *ll; - int firstVarno = mtstate->resultRelInfo[0].ri_RangeTableIndex; /* * In the case of INSERT on a partitioned table, there is only one @@ -681,7 +682,6 @@ ExecInitPartitionInfo(ModifyTableState *mtstate, EState *estate, TupleTableSlot *slot; ExprContext *econtext; List *returningList; - int firstVarno = mtstate->resultRelInfo[0].ri_RangeTableIndex; /* See the comment above for WCO lists. */ Assert((node->operation == CMD_INSERT && @@ -740,7 +740,6 @@ ExecInitPartitionInfo(ModifyTableState *mtstate, EState *estate, */ if (node && node->onConflictAction != ONCONFLICT_NONE) { - int firstVarno = mtstate->resultRelInfo[0].ri_RangeTableIndex; TupleDesc partrelDesc = RelationGetDescr(partrel); ExprContext *econtext = mtstate->ps.ps_ExprContext; ListCell *lc; @@ -917,7 +916,7 @@ ExecInitPartitionInfo(ModifyTableState *mtstate, EState *estate, if (mtstate->mt_transition_capture || mtstate->mt_oc_transition_capture) leaf_part_rri->ri_ChildToRootMap = convert_tuples_by_name(RelationGetDescr(leaf_part_rri->ri_RelationDesc), - RelationGetDescr(leaf_part_rri->ri_PartitionRoot)); + RelationGetDescr(rootResultRelInfo->ri_RelationDesc)); /* * Since we've just initialized this ResultRelInfo, it's not in any list @@ -951,6 +950,7 @@ ExecInitRoutingInfo(ModifyTableState *mtstate, ResultRelInfo *partRelInfo, int partidx) { + ResultRelInfo *rootRelInfo = partRelInfo->ri_RootResultRelInfo; MemoryContext oldcxt; int rri_index; @@ -961,7 +961,7 @@ ExecInitRoutingInfo(ModifyTableState *mtstate, * partition from the parent's type to the partition's. */ partRelInfo->ri_RootToPartitionMap = - convert_tuples_by_name(RelationGetDescr(partRelInfo->ri_PartitionRoot), + convert_tuples_by_name(RelationGetDescr(rootRelInfo->ri_RelationDesc), RelationGetDescr(partRelInfo->ri_RelationDesc)); /* @@ -1000,7 +1000,8 @@ ExecInitRoutingInfo(ModifyTableState *mtstate, * * If the FDW does not support batching, we set the batch size to 1. */ - if (partRelInfo->ri_FdwRoutine != NULL && + if (mtstate->operation == CMD_INSERT && + partRelInfo->ri_FdwRoutine != NULL && partRelInfo->ri_FdwRoutine->GetForeignModifyBatchSize && partRelInfo->ri_FdwRoutine->ExecForeignBatchInsert) partRelInfo->ri_BatchSize = @@ -1055,7 +1056,8 @@ ExecInitRoutingInfo(ModifyTableState *mtstate, static PartitionDispatch ExecInitPartitionDispatchInfo(EState *estate, PartitionTupleRouting *proute, Oid partoid, - PartitionDispatch parent_pd, int partidx) + PartitionDispatch parent_pd, int partidx, + ResultRelInfo *rootResultRelInfo) { Relation rel; PartitionDesc partdesc; @@ -1153,7 +1155,7 @@ ExecInitPartitionDispatchInfo(EState *estate, { ResultRelInfo *rri = makeNode(ResultRelInfo); - InitResultRelInfo(rri, rel, 1, proute->partition_root, 0); + InitResultRelInfo(rri, rel, 0, rootResultRelInfo, 0); proute->nonleaf_partitions[dispatchidx] = rri; } else diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c index d84fbaded9619..42632cb4d8885 100644 --- a/src/backend/executor/execUtils.c +++ b/src/backend/executor/execUtils.c @@ -51,6 +51,7 @@ #include "access/tableam.h" #include "access/transam.h" #include "executor/executor.h" +#include "executor/execPartition.h" #include "jit/jit.h" #include "mb/pg_wchar.h" #include "miscadmin.h" @@ -1223,3 +1224,102 @@ ExecGetReturningSlot(EState *estate, ResultRelInfo *relInfo) return relInfo->ri_ReturningSlot; } + +/* Return a bitmap representing columns being inserted */ +Bitmapset * +ExecGetInsertedCols(ResultRelInfo *relinfo, EState *estate) +{ + /* + * The columns are stored in the range table entry. If this ResultRelInfo + * represents a partition routing target, and doesn't have an entry of its + * own in the range table, fetch the parent's RTE and map the columns to + * the order they are in the partition. + */ + if (relinfo->ri_RangeTableIndex != 0) + { + RangeTblEntry *rte = exec_rt_fetch(relinfo->ri_RangeTableIndex, estate); + + return rte->insertedCols; + } + else if (relinfo->ri_RootResultRelInfo) + { + ResultRelInfo *rootRelInfo = relinfo->ri_RootResultRelInfo; + RangeTblEntry *rte = exec_rt_fetch(rootRelInfo->ri_RangeTableIndex, estate); + + if (relinfo->ri_RootToPartitionMap != NULL) + return execute_attr_map_cols(relinfo->ri_RootToPartitionMap->attrMap, + rte->insertedCols); + else + return rte->insertedCols; + } + else + { + /* + * The relation isn't in the range table and it isn't a partition + * routing target. This ResultRelInfo must've been created only for + * firing triggers and the relation is not being inserted into. (See + * ExecGetTriggerResultRel.) + */ + return NULL; + } +} + +/* Return a bitmap representing columns being updated */ +Bitmapset * +ExecGetUpdatedCols(ResultRelInfo *relinfo, EState *estate) +{ + /* see ExecGetInsertedCols() */ + if (relinfo->ri_RangeTableIndex != 0) + { + RangeTblEntry *rte = exec_rt_fetch(relinfo->ri_RangeTableIndex, estate); + + return rte->updatedCols; + } + else if (relinfo->ri_RootResultRelInfo) + { + ResultRelInfo *rootRelInfo = relinfo->ri_RootResultRelInfo; + RangeTblEntry *rte = exec_rt_fetch(rootRelInfo->ri_RangeTableIndex, estate); + + if (relinfo->ri_RootToPartitionMap != NULL) + return execute_attr_map_cols(relinfo->ri_RootToPartitionMap->attrMap, + rte->updatedCols); + else + return rte->updatedCols; + } + else + return NULL; +} + +/* Return a bitmap representing generated columns being updated */ +Bitmapset * +ExecGetExtraUpdatedCols(ResultRelInfo *relinfo, EState *estate) +{ + /* see ExecGetInsertedCols() */ + if (relinfo->ri_RangeTableIndex != 0) + { + RangeTblEntry *rte = exec_rt_fetch(relinfo->ri_RangeTableIndex, estate); + + return rte->extraUpdatedCols; + } + else if (relinfo->ri_RootResultRelInfo) + { + ResultRelInfo *rootRelInfo = relinfo->ri_RootResultRelInfo; + RangeTblEntry *rte = exec_rt_fetch(rootRelInfo->ri_RangeTableIndex, estate); + + if (relinfo->ri_RootToPartitionMap != NULL) + return execute_attr_map_cols(relinfo->ri_RootToPartitionMap->attrMap, + rte->extraUpdatedCols); + else + return rte->extraUpdatedCols; + } + else + return NULL; +} + +/* Return columns being updated, including generated columns */ +Bitmapset * +ExecGetAllUpdatedCols(ResultRelInfo *relinfo, EState *estate) +{ + return bms_union(ExecGetUpdatedCols(relinfo, estate), + ExecGetExtraUpdatedCols(relinfo, estate)); +} diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c index 601b6dab03f1e..1d1bf958b629d 100644 --- a/src/backend/executor/nodeAgg.c +++ b/src/backend/executor/nodeAgg.c @@ -1391,7 +1391,7 @@ project_aggregates(AggState *aggstate) } /* - * Walk tlist and qual to find referenced colnos, dividing them into + * Find input-tuple columns that are needed, dividing them into * aggregated and unaggregated sets. */ static void @@ -1404,9 +1404,15 @@ find_cols(AggState *aggstate, Bitmapset **aggregated, Bitmapset **unaggregated) context.aggregated = NULL; context.unaggregated = NULL; + /* Examine tlist and quals */ (void) find_cols_walker((Node *) agg->plan.targetlist, &context); (void) find_cols_walker((Node *) agg->plan.qual, &context); + /* In some cases, grouping columns will not appear in the tlist */ + for (int i = 0; i < agg->numCols; i++) + context.unaggregated = bms_add_member(context.unaggregated, + agg->grpColIdx[i]); + *aggregated = context.aggregated; *unaggregated = context.unaggregated; } diff --git a/src/backend/executor/nodeIncrementalSort.c b/src/backend/executor/nodeIncrementalSort.c index 73e42d79451aa..459c879f0bbc7 100644 --- a/src/backend/executor/nodeIncrementalSort.c +++ b/src/backend/executor/nodeIncrementalSort.c @@ -288,9 +288,7 @@ switchToPresortedPrefixMode(PlanState *pstate) { IncrementalSortState *node = castNode(IncrementalSortState, pstate); ScanDirection dir; - int64 nTuples = 0; - bool lastTuple = false; - bool firstTuple = true; + int64 nTuples; TupleDesc tupDesc; PlanState *outerNode; IncrementalSort *plannode = castNode(IncrementalSort, node->ss.ps.plan); @@ -343,20 +341,16 @@ switchToPresortedPrefixMode(PlanState *pstate) * Copy as many tuples as we can (i.e., in the same prefix key group) from * the full sort state to the prefix sort state. */ - for (;;) + for (nTuples = 0; nTuples < node->n_fullsort_remaining; nTuples++) { - lastTuple = node->n_fullsort_remaining - nTuples == 1; - /* * When we encounter multiple prefix key groups inside the full sort * tuplesort we have to carry over the last read tuple into the next * batch. */ - if (firstTuple && !TupIsNull(node->transfer_tuple)) + if (nTuples == 0 && !TupIsNull(node->transfer_tuple)) { tuplesort_puttupleslot(node->prefixsort_state, node->transfer_tuple); - nTuples++; - /* The carried over tuple is our new group pivot tuple. */ ExecCopySlot(node->group_pivot, node->transfer_tuple); } @@ -376,7 +370,6 @@ switchToPresortedPrefixMode(PlanState *pstate) if (isCurrentGroup(node, node->group_pivot, node->transfer_tuple)) { tuplesort_puttupleslot(node->prefixsort_state, node->transfer_tuple); - nTuples++; } else { @@ -394,21 +387,11 @@ switchToPresortedPrefixMode(PlanState *pstate) * current prefix key group. */ ExecClearTuple(node->group_pivot); + + /* Break out of for-loop early */ break; } } - - firstTuple = false; - - /* - * If we've copied all of the tuples from the full sort state into the - * prefix sort state, then we don't actually know that we've yet found - * the last tuple in that prefix key group until we check the next - * tuple from the outer plan node, so we retain the current group - * pivot tuple prefix key group comparison. - */ - if (lastTuple) - break; } /* @@ -421,14 +404,15 @@ switchToPresortedPrefixMode(PlanState *pstate) node->n_fullsort_remaining -= nTuples; SO1_printf("Setting n_fullsort_remaining to " INT64_FORMAT "\n", node->n_fullsort_remaining); - if (lastTuple) + if (node->n_fullsort_remaining == 0) { /* - * We've confirmed that all tuples remaining in the full sort batch is - * in the same prefix key group and moved all of those tuples into the - * presorted prefix tuplesort. Now we can save our pivot comparison - * tuple and continue fetching tuples from the outer execution node to - * load into the presorted prefix tuplesort. + * We've found that all tuples remaining in the full sort batch are in + * the same prefix key group and moved all of those tuples into the + * presorted prefix tuplesort. We don't know that we've yet found the + * last tuple in the current prefix key group, so save our pivot + * comparison tuple and continue fetching tuples from the outer + * execution node to load into the presorted prefix tuplesort. */ ExecCopySlot(node->group_pivot, node->transfer_tuple); SO_printf("Setting execution_status to INCSORT_LOADPREFIXSORT (switchToPresortedPrefixMode)\n"); diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c index 5d90337498371..2993ba43e3283 100644 --- a/src/backend/executor/nodeModifyTable.c +++ b/src/backend/executor/nodeModifyTable.c @@ -291,7 +291,7 @@ ExecComputeStoredGenerated(ResultRelInfo *resultRelInfo, if (cmdtype == CMD_UPDATE && !(rel->trigdesc && rel->trigdesc->trig_update_before_row) && !bms_is_member(i + 1 - FirstLowInvalidHeapAttributeNumber, - exec_rt_fetch(resultRelInfo->ri_RangeTableIndex, estate)->extraUpdatedCols)) + ExecGetExtraUpdatedCols(resultRelInfo, estate))) { resultRelInfo->ri_GeneratedExprs[i] = NULL; continue; @@ -565,7 +565,7 @@ ExecInsert(ModifyTableState *mtstate, * if there's no BR trigger defined on the partition. */ if (resultRelationDesc->rd_rel->relispartition && - (resultRelInfo->ri_PartitionRoot == NULL || + (resultRelInfo->ri_RootResultRelInfo == NULL || (resultRelInfo->ri_TrigDesc && resultRelInfo->ri_TrigDesc->trig_insert_before_row))) ExecPartitionCheck(resultRelInfo, slot, estate, true); diff --git a/src/backend/jit/llvm/llvmjit.c b/src/backend/jit/llvm/llvmjit.c index b0789a5fb8012..98a27f08bfd0f 100644 --- a/src/backend/jit/llvm/llvmjit.c +++ b/src/backend/jit/llvm/llvmjit.c @@ -768,7 +768,7 @@ llvm_compile_module(LLVMJitContext *context) MemoryContextSwitchTo(oldcontext); ereport(DEBUG1, - (errmsg("time to inline: %.3fs, opt: %.3fs, emit: %.3fs", + (errmsg_internal("time to inline: %.3fs, opt: %.3fs, emit: %.3fs", INSTR_TIME_GET_DOUBLE(context->base.instr.inlining_counter), INSTR_TIME_GET_DOUBLE(context->base.instr.optimization_counter), INSTR_TIME_GET_DOUBLE(context->base.instr.emission_counter)), diff --git a/src/backend/libpq/auth-scram.c b/src/backend/libpq/auth-scram.c index 8d857f39df5a0..b9b6d464a0518 100644 --- a/src/backend/libpq/auth-scram.c +++ b/src/backend/libpq/auth-scram.c @@ -1429,7 +1429,7 @@ scram_mock_salt(const char *username) if (pg_cryptohash_init(ctx) < 0 || pg_cryptohash_update(ctx, (uint8 *) username, strlen(username)) < 0 || pg_cryptohash_update(ctx, (uint8 *) mock_auth_nonce, MOCK_AUTH_NONCE_LEN) < 0 || - pg_cryptohash_final(ctx, sha_digest) < 0) + pg_cryptohash_final(ctx, sha_digest, sizeof(sha_digest)) < 0) { pg_cryptohash_free(ctx); return NULL; diff --git a/src/backend/libpq/be-secure-openssl.c b/src/backend/libpq/be-secure-openssl.c index 1e2ecc6e7ab74..4c4f025eb1a76 100644 --- a/src/backend/libpq/be-secure-openssl.c +++ b/src/backend/libpq/be-secure-openssl.c @@ -285,19 +285,22 @@ be_tls_init(bool isServerStart) * http://searchsecurity.techtarget.com/sDefinition/0,,sid14_gci803160,00.html *---------- */ - if (ssl_crl_file[0]) + if (ssl_crl_file[0] || ssl_crl_dir[0]) { X509_STORE *cvstore = SSL_CTX_get_cert_store(context); if (cvstore) { /* Set the flags to check against the complete CRL chain */ - if (X509_STORE_load_locations(cvstore, ssl_crl_file, NULL) == 1) + if (X509_STORE_load_locations(cvstore, + ssl_crl_file[0] ? ssl_crl_file : NULL, + ssl_crl_dir[0] ? ssl_crl_dir : NULL) + == 1) { X509_STORE_set_flags(cvstore, X509_V_FLAG_CRL_CHECK | X509_V_FLAG_CRL_CHECK_ALL); } - else + else if (ssl_crl_dir[0] == 0) { ereport(isServerStart ? FATAL : LOG, (errcode(ERRCODE_CONFIG_FILE_ERROR), @@ -305,6 +308,23 @@ be_tls_init(bool isServerStart) ssl_crl_file, SSLerrmessage(ERR_get_error())))); goto error; } + else if (ssl_crl_file[0] == 0) + { + ereport(isServerStart ? FATAL : LOG, + (errcode(ERRCODE_CONFIG_FILE_ERROR), + errmsg("could not load SSL certificate revocation list directory \"%s\": %s", + ssl_crl_dir, SSLerrmessage(ERR_get_error())))); + goto error; + } + else + { + ereport(isServerStart ? FATAL : LOG, + (errcode(ERRCODE_CONFIG_FILE_ERROR), + errmsg("could not load SSL certificate revocation list file \"%s\" or directory \"%s\": %s", + ssl_crl_file, ssl_crl_dir, + SSLerrmessage(ERR_get_error())))); + goto error; + } } } diff --git a/src/backend/libpq/be-secure.c b/src/backend/libpq/be-secure.c index 4cf139a223fdc..d1545a2ad6ade 100644 --- a/src/backend/libpq/be-secure.c +++ b/src/backend/libpq/be-secure.c @@ -42,6 +42,7 @@ char *ssl_cert_file; char *ssl_key_file; char *ssl_ca_file; char *ssl_crl_file; +char *ssl_crl_dir; char *ssl_dh_params_file; char *ssl_passphrase_command; bool ssl_passphrase_command_supports_reload; @@ -119,7 +120,7 @@ secure_open_server(Port *port) r = be_tls_open_server(port); ereport(DEBUG2, - (errmsg("SSL connection from \"%s\"", + (errmsg_internal("SSL connection from \"%s\"", port->peer_cn ? port->peer_cn : "(anonymous)"))); #endif diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c index 20bf1461cef28..9a04c093d5f63 100644 --- a/src/backend/libpq/hba.c +++ b/src/backend/libpq/hba.c @@ -1041,7 +1041,7 @@ parse_hba_line(TokenizedLine *tok_line, int elevel) ereport(elevel, (errcode(ERRCODE_CONFIG_FILE_ERROR), errmsg("hostssl record cannot match because SSL is not supported by this build"), - errhint("Compile with --with-ssl=openssl to use SSL connections."), + errhint("Compile with --with-ssl to use SSL connections."), errcontext("line %d of configuration file \"%s\"", line_num, HbaFileName))); *err_msg = "hostssl record cannot match because SSL is not supported by this build"; diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c index 672245ded7a30..bdf8ec46e2b23 100644 --- a/src/backend/parser/parse_clause.c +++ b/src/backend/parser/parse_clause.c @@ -58,7 +58,6 @@ static int extractRemainingColumns(ParseNamespaceColumn *src_nscolumns, List **res_colnames, List **res_colvars, ParseNamespaceColumn *res_nscolumns); static Node *transformJoinUsingClause(ParseState *pstate, - RangeTblEntry *leftRTE, RangeTblEntry *rightRTE, List *leftVars, List *rightVars); static Node *transformJoinOnClause(ParseState *pstate, JoinExpr *j, List *namespace); @@ -302,7 +301,6 @@ extractRemainingColumns(ParseNamespaceColumn *src_nscolumns, */ static Node * transformJoinUsingClause(ParseState *pstate, - RangeTblEntry *leftRTE, RangeTblEntry *rightRTE, List *leftVars, List *rightVars) { Node *result; @@ -325,8 +323,8 @@ transformJoinUsingClause(ParseState *pstate, A_Expr *e; /* Require read access to the join variables */ - markVarForSelectPriv(pstate, lvar, leftRTE); - markVarForSelectPriv(pstate, rvar, rightRTE); + markVarForSelectPriv(pstate, lvar); + markVarForSelectPriv(pstate, rvar); /* Now create the lvar = rvar join condition */ e = makeSimpleA_Expr(AEXPR_OP, "=", @@ -1411,8 +1409,6 @@ transformFromClauseItem(ParseState *pstate, Node *n, } j->quals = transformJoinUsingClause(pstate, - l_nsitem->p_rte, - r_nsitem->p_rte, l_usingvars, r_usingvars); } diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c index 6c87783b2c788..f869e159d63f7 100644 --- a/src/backend/parser/parse_expr.c +++ b/src/backend/parser/parse_expr.c @@ -2525,7 +2525,7 @@ transformWholeRowRef(ParseState *pstate, ParseNamespaceItem *nsitem, result->location = location; /* mark relation as requiring whole-row SELECT access */ - markVarForSelectPriv(pstate, result, nsitem->p_rte); + markVarForSelectPriv(pstate, result); return (Node *) result; } diff --git a/src/backend/parser/parse_relation.c b/src/backend/parser/parse_relation.c index 43db4e9af8bf6..ca02982e0b367 100644 --- a/src/backend/parser/parse_relation.c +++ b/src/backend/parser/parse_relation.c @@ -68,7 +68,7 @@ static int scanRTEForColumn(ParseState *pstate, RangeTblEntry *rte, const char *colname, int location, int fuzzy_rte_penalty, FuzzyAttrMatchState *fuzzystate); -static void markRTEForSelectPriv(ParseState *pstate, RangeTblEntry *rte, +static void markRTEForSelectPriv(ParseState *pstate, int rtindex, AttrNumber col); static void expandRelation(Oid relid, Alias *eref, int rtindex, int sublevels_up, @@ -660,8 +660,8 @@ updateFuzzyAttrMatchState(int fuzzy_rte_penalty, * If found, return an appropriate Var node, else return NULL. * If the name proves ambiguous within this nsitem, raise error. * - * Side effect: if we find a match, mark the item's RTE as requiring read - * access for the column. + * Side effect: if we find a match, mark the corresponding RTE as requiring + * read access for the column. */ Node * scanNSItemForColumn(ParseState *pstate, ParseNamespaceItem *nsitem, @@ -740,7 +740,7 @@ scanNSItemForColumn(ParseState *pstate, ParseNamespaceItem *nsitem, var->location = location; /* Require read access to the column */ - markVarForSelectPriv(pstate, var, rte); + markVarForSelectPriv(pstate, var); return (Node *) var; } @@ -990,21 +990,15 @@ searchRangeTableForCol(ParseState *pstate, const char *alias, const char *colnam /* * markRTEForSelectPriv - * Mark the specified column of an RTE as requiring SELECT privilege + * Mark the specified column of the RTE with index rtindex + * as requiring SELECT privilege * * col == InvalidAttrNumber means a "whole row" reference - * - * External callers should always pass the Var's RTE. Internally, we - * allow NULL to be passed for the RTE and then look it up if needed; - * this takes less code than requiring each internal recursion site - * to perform a lookup. */ static void -markRTEForSelectPriv(ParseState *pstate, RangeTblEntry *rte, - int rtindex, AttrNumber col) +markRTEForSelectPriv(ParseState *pstate, int rtindex, AttrNumber col) { - if (rte == NULL) - rte = rt_fetch(rtindex, pstate->p_rtable); + RangeTblEntry *rte = rt_fetch(rtindex, pstate->p_rtable); if (rte->rtekind == RTE_RELATION) { @@ -1036,13 +1030,13 @@ markRTEForSelectPriv(ParseState *pstate, RangeTblEntry *rte, { int varno = ((RangeTblRef *) j->larg)->rtindex; - markRTEForSelectPriv(pstate, NULL, varno, InvalidAttrNumber); + markRTEForSelectPriv(pstate, varno, InvalidAttrNumber); } else if (IsA(j->larg, JoinExpr)) { int varno = ((JoinExpr *) j->larg)->rtindex; - markRTEForSelectPriv(pstate, NULL, varno, InvalidAttrNumber); + markRTEForSelectPriv(pstate, varno, InvalidAttrNumber); } else elog(ERROR, "unrecognized node type: %d", @@ -1051,13 +1045,13 @@ markRTEForSelectPriv(ParseState *pstate, RangeTblEntry *rte, { int varno = ((RangeTblRef *) j->rarg)->rtindex; - markRTEForSelectPriv(pstate, NULL, varno, InvalidAttrNumber); + markRTEForSelectPriv(pstate, varno, InvalidAttrNumber); } else if (IsA(j->rarg, JoinExpr)) { int varno = ((JoinExpr *) j->rarg)->rtindex; - markRTEForSelectPriv(pstate, NULL, varno, InvalidAttrNumber); + markRTEForSelectPriv(pstate, varno, InvalidAttrNumber); } else elog(ERROR, "unrecognized node type: %d", @@ -1078,10 +1072,11 @@ markRTEForSelectPriv(ParseState *pstate, RangeTblEntry *rte, /* * markVarForSelectPriv - * Mark the RTE referenced by a Var as requiring SELECT privilege + * Mark the RTE referenced by the Var as requiring SELECT privilege + * for the Var's column (the Var could be a whole-row Var, too) */ void -markVarForSelectPriv(ParseState *pstate, Var *var, RangeTblEntry *rte) +markVarForSelectPriv(ParseState *pstate, Var *var) { Index lv; @@ -1089,7 +1084,7 @@ markVarForSelectPriv(ParseState *pstate, Var *var, RangeTblEntry *rte) /* Find the appropriate pstate if it's an uplevel Var */ for (lv = 0; lv < var->varlevelsup; lv++) pstate = pstate->parentParseState; - markRTEForSelectPriv(pstate, rte, var->varno, var->varattno); + markRTEForSelectPriv(pstate, var->varno, var->varattno); } /* @@ -3105,9 +3100,13 @@ expandNSItemAttrs(ParseState *pstate, ParseNamespaceItem *nsitem, /* * Require read access to the table. This is normally redundant with the * markVarForSelectPriv calls below, but not if the table has zero - * columns. + * columns. We need not do anything if the nsitem is for a join: its + * component tables will have been marked ACL_SELECT when they were added + * to the rangetable. (This step changes things only for the target + * relation of UPDATE/DELETE, which cannot be under a join.) */ - rte->requiredPerms |= ACL_SELECT; + if (rte->rtekind == RTE_RELATION) + rte->requiredPerms |= ACL_SELECT; forboth(name, names, var, vars) { @@ -3122,7 +3121,7 @@ expandNSItemAttrs(ParseState *pstate, ParseNamespaceItem *nsitem, te_list = lappend(te_list, te); /* Require read access to each column */ - markVarForSelectPriv(pstate, varnode, rte); + markVarForSelectPriv(pstate, varnode); } Assert(name == NULL && var == NULL); /* lists not the same length? */ diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c index 51ecc16c42efe..6e8fbc4780193 100644 --- a/src/backend/parser/parse_target.c +++ b/src/backend/parser/parse_target.c @@ -1384,16 +1384,20 @@ ExpandSingleTable(ParseState *pstate, ParseNamespaceItem *nsitem, /* * Require read access to the table. This is normally redundant with * the markVarForSelectPriv calls below, but not if the table has zero - * columns. + * columns. We need not do anything if the nsitem is for a join: its + * component tables will have been marked ACL_SELECT when they were + * added to the rangetable. (This step changes things only for the + * target relation of UPDATE/DELETE, which cannot be under a join.) */ - rte->requiredPerms |= ACL_SELECT; + if (rte->rtekind == RTE_RELATION) + rte->requiredPerms |= ACL_SELECT; /* Require read access to each column */ foreach(l, vars) { Var *var = (Var *) lfirst(l); - markVarForSelectPriv(pstate, var, rte); + markVarForSelectPriv(pstate, var); } return vars; diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c index b31f3afa0391a..75266caeb4bb5 100644 --- a/src/backend/parser/parse_utilcmd.c +++ b/src/backend/parser/parse_utilcmd.c @@ -443,7 +443,7 @@ generateSerialExtraStmts(CreateStmtContext *cxt, ColumnDef *column, } ereport(DEBUG1, - (errmsg("%s will create implicit sequence \"%s\" for serial column \"%s.%s\"", + (errmsg_internal("%s will create implicit sequence \"%s\" for serial column \"%s.%s\"", cxt->stmtType, sname, cxt->relation->relname, column->colname))); diff --git a/src/backend/partitioning/partbounds.c b/src/backend/partitioning/partbounds.c index 0c3f212ff21e6..a60c379725d1d 100644 --- a/src/backend/partitioning/partbounds.c +++ b/src/backend/partitioning/partbounds.c @@ -3144,7 +3144,7 @@ check_default_partition_contents(Relation parent, Relation default_rel, if (PartConstraintImpliedByRelConstraint(default_rel, def_part_constraints)) { ereport(DEBUG1, - (errmsg("updated partition constraint for default partition \"%s\" is implied by existing constraints", + (errmsg_internal("updated partition constraint for default partition \"%s\" is implied by existing constraints", RelationGetRelationName(default_rel)))); return; } @@ -3195,7 +3195,7 @@ check_default_partition_contents(Relation parent, Relation default_rel, def_part_constraints)) { ereport(DEBUG1, - (errmsg("updated partition constraint for default partition \"%s\" is implied by existing constraints", + (errmsg_internal("updated partition constraint for default partition \"%s\" is implied by existing constraints", RelationGetRelationName(part_rel)))); table_close(part_rel, NoLock); diff --git a/src/backend/port/win32_shmem.c b/src/backend/port/win32_shmem.c index ab2534351d7c5..6140ee7617fa8 100644 --- a/src/backend/port/win32_shmem.c +++ b/src/backend/port/win32_shmem.c @@ -236,12 +236,12 @@ PGSharedMemoryCreate(Size size, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("the processor does not support large pages"))); ereport(DEBUG1, - (errmsg("disabling huge pages"))); + (errmsg_internal("disabling huge pages"))); } else if (!EnableLockPagesPrivilege(huge_pages == HUGE_PAGES_ON ? FATAL : DEBUG1)) { ereport(DEBUG1, - (errmsg("disabling huge pages"))); + (errmsg_internal("disabling huge pages"))); } else { diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c index 47e60ca5613f8..23ef23c13ebe2 100644 --- a/src/backend/postmaster/autovacuum.c +++ b/src/backend/postmaster/autovacuum.c @@ -443,7 +443,7 @@ AutoVacLauncherMain(int argc, char *argv[]) init_ps_display(NULL); ereport(DEBUG1, - (errmsg("autovacuum launcher started"))); + (errmsg_internal("autovacuum launcher started"))); if (PostAuthDelay) pg_usleep(PostAuthDelay * 1000000L); @@ -847,7 +847,7 @@ static void AutoVacLauncherShutdown(void) { ereport(DEBUG1, - (errmsg("autovacuum launcher shutting down"))); + (errmsg_internal("autovacuum launcher shutting down"))); AutoVacuumShmem->av_launcherpid = 0; proc_exit(0); /* done */ @@ -1190,7 +1190,7 @@ do_start_worker(void) * pass without forcing a vacuum. (This limit can be tightened for * particular tables, but not loosened.) */ - recentXid = ReadNewTransactionId(); + recentXid = ReadNextTransactionId(); xidForceLimit = recentXid - autovacuum_freeze_max_age; /* ensure it's a "normal" XID, else TransactionIdPrecedes misbehaves */ /* this can cause the limit to go backwards by 3, but that's OK */ @@ -1703,13 +1703,13 @@ AutoVacWorkerMain(int argc, char *argv[]) SetProcessingMode(NormalProcessing); set_ps_display(dbname); ereport(DEBUG1, - (errmsg("autovacuum: processing database \"%s\"", dbname))); + (errmsg_internal("autovacuum: processing database \"%s\"", dbname))); if (PostAuthDelay) pg_usleep(PostAuthDelay * 1000000L); /* And do an appropriate amount of work */ - recentXid = ReadNewTransactionId(); + recentXid = ReadNextTransactionId(); recentMulti = ReadNextMultiXactId(); do_autovacuum(); } @@ -2918,8 +2918,9 @@ table_recheck_autovac(Oid relid, HTAB *table_toast_map, tab = palloc(sizeof(autovac_table)); tab->at_relid = relid; tab->at_sharedrel = classForm->relisshared; - tab->at_params.options = VACOPT_SKIPTOAST | - (dovacuum ? VACOPT_VACUUM : 0) | + + /* Note that this skips toast relations */ + tab->at_params.options = (dovacuum ? VACOPT_VACUUM : 0) | (doanalyze ? VACOPT_ANALYZE : 0) | (!wraparound ? VACOPT_SKIP_LOCKED : 0); tab->at_params.index_cleanup = VACOPT_TERNARY_DEFAULT; diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c index dd3dad3de35fa..6fdea3fc2d2b9 100644 --- a/src/backend/postmaster/bgworker.c +++ b/src/backend/postmaster/bgworker.c @@ -402,7 +402,7 @@ BackgroundWorkerStateChange(bool allow_new_workers) /* Log it! */ ereport(DEBUG1, - (errmsg("registering background worker \"%s\"", + (errmsg_internal("registering background worker \"%s\"", rw->rw_worker.bgw_name))); slist_push_head(&BackgroundWorkerList, &rw->rw_lnode); @@ -434,7 +434,7 @@ ForgetBackgroundWorker(slist_mutable_iter *cur) slot->in_use = false; ereport(DEBUG1, - (errmsg("unregistering background worker \"%s\"", + (errmsg_internal("unregistering background worker \"%s\"", rw->rw_worker.bgw_name))); slist_delete_current(cur); @@ -897,7 +897,7 @@ RegisterBackgroundWorker(BackgroundWorker *worker) if (!IsUnderPostmaster) ereport(DEBUG1, - (errmsg("registering background worker \"%s\"", worker->bgw_name))); + (errmsg_internal("registering background worker \"%s\"", worker->bgw_name))); if (!process_shared_preload_libraries_in_progress && strcmp(worker->bgw_library_name, "postgres") != 0) diff --git a/src/backend/postmaster/checkpointer.c b/src/backend/postmaster/checkpointer.c index 54a818bf611a6..76f9f98ebb46a 100644 --- a/src/backend/postmaster/checkpointer.c +++ b/src/backend/postmaster/checkpointer.c @@ -1226,7 +1226,7 @@ CompactCheckpointerRequestQueue(void) CheckpointerShmem->requests[preserve_count++] = CheckpointerShmem->requests[n]; } ereport(DEBUG1, - (errmsg("compacted fsync request queue from %d entries to %d entries", + (errmsg_internal("compacted fsync request queue from %d entries to %d entries", CheckpointerShmem->num_requests, preserve_count))); CheckpointerShmem->num_requests = preserve_count; diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 7de27ee4e0171..9568dafbe24ab 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -5787,7 +5787,7 @@ do_start_bgworker(RegisteredBgWorker *rw) } ereport(DEBUG1, - (errmsg("starting background worker process \"%s\"", + (errmsg_internal("starting background worker process \"%s\"", rw->rw_worker.bgw_name))); #ifdef EXEC_BACKEND diff --git a/src/backend/postmaster/syslogger.c b/src/backend/postmaster/syslogger.c index d3bcc4b118e7e..e7a7486c35433 100644 --- a/src/backend/postmaster/syslogger.c +++ b/src/backend/postmaster/syslogger.c @@ -518,7 +518,7 @@ SysLoggerMain(int argc, char *argv[]) * it DEBUG1 to suppress in normal use. */ ereport(DEBUG1, - (errmsg("logger shutting down"))); + (errmsg_internal("logger shutting down"))); /* * Normal exit from the syslogger is here. Note that we diff --git a/src/backend/regex/regc_lex.c b/src/backend/regex/regc_lex.c index ca2bce48312aa..16664531641c8 100644 --- a/src/backend/regex/regc_lex.c +++ b/src/backend/regex/regc_lex.c @@ -389,7 +389,7 @@ next(struct vars *v) { v->now++; INTOCON(L_BRE); - RET('}'); + RETV('}', 1); } else FAILW(REG_BADBR); diff --git a/src/backend/regex/regc_nfa.c b/src/backend/regex/regc_nfa.c index 92c9c4d795d1a..7ed675f88a4ab 100644 --- a/src/backend/regex/regc_nfa.c +++ b/src/backend/regex/regc_nfa.c @@ -2902,7 +2902,7 @@ compact(struct nfa *nfa, break; default: NERR(REG_ASSERT); - break; + return; } carcsort(first, ca - first); ca->co = COLORLESS; @@ -2951,11 +2951,11 @@ carc_cmp(const void *a, const void *b) static void freecnfa(struct cnfa *cnfa) { - assert(cnfa->nstates != 0); /* not empty already */ - cnfa->nstates = 0; + assert(!NULLCNFA(*cnfa)); /* not empty already */ FREE(cnfa->stflags); FREE(cnfa->states); FREE(cnfa->arcs); + ZAPCNFA(*cnfa); } /* @@ -3012,13 +3012,13 @@ dumpstate(struct state *s, fprintf(f, "\tno out arcs\n"); else dumparcs(s, f); - fflush(f); for (a = s->ins; a != NULL; a = a->inchain) { if (a->to != s) fprintf(f, "\tlink from %d to %d on %d's in-chain\n", a->from->no, a->to->no, s->no); } + fflush(f); } /* diff --git a/src/backend/regex/regcomp.c b/src/backend/regex/regcomp.c index 91078dcd80647..cd0caaa2d03d1 100644 --- a/src/backend/regex/regcomp.c +++ b/src/backend/regex/regcomp.c @@ -479,7 +479,10 @@ pg_regcomp(regex_t *re, #ifdef REG_DEBUG if (flags & REG_DUMP) + { dump(re, stdout); + fflush(stdout); + } #endif assert(v->err == 0); @@ -721,7 +724,7 @@ parse(struct vars *v, * * This mostly manages concatenation, working closely with parseqatom(). * Concatenated things are bundled up as much as possible, with separate - * ',' nodes introduced only when necessary due to substructure. + * '.' nodes introduced only when necessary due to substructure. */ static struct subre * parsebranch(struct vars *v, @@ -939,7 +942,6 @@ parseqatom(struct vars *v, subno = v->nsubexp; if ((size_t) subno >= v->nsubs) moresubs(v, subno); - assert((size_t) subno < v->nsubs); } else atomtype = PLAIN; /* something that's not '(' */ @@ -957,6 +959,7 @@ parseqatom(struct vars *v, NOERR(); if (cap) { + assert(v->subs[subno] == NULL); v->subs[subno] = atom; t = subre(v, '(', atom->flags | CAP, lp, rp); NOERR(); diff --git a/src/backend/regex/regexec.c b/src/backend/regex/regexec.c index f7eaa76b02c2b..adcbcc0a8ea25 100644 --- a/src/backend/regex/regexec.c +++ b/src/backend/regex/regexec.c @@ -324,6 +324,11 @@ pg_regexec(regex_t *re, if (v->lblastcp != NULL) FREE(v->lblastcp); +#ifdef REG_DEBUG + if (v->eflags & (REG_FTRACE | REG_MTRACE)) + fflush(stdout); +#endif + return st; } @@ -668,7 +673,7 @@ subset(struct vars *v, if ((size_t) n >= v->nmatch) return; - MDEBUG(("setting %d\n", n)); + MDEBUG(("%d: setting %d = %ld-%ld\n", sub->id, n, LOFF(begin), LOFF(end))); v->pmatch[n].rm_so = OFF(begin); v->pmatch[n].rm_eo = OFF(end); } @@ -697,7 +702,7 @@ cdissect(struct vars *v, int er; assert(t != NULL); - MDEBUG(("cdissect %ld-%ld %c\n", LOFF(begin), LOFF(end), t->op)); + MDEBUG(("%d: cdissect %c %ld-%ld\n", t->id, t->op, LOFF(begin), LOFF(end))); /* handy place to check for operation cancel */ if (CANCEL_REQUESTED(v->re)) @@ -779,14 +784,14 @@ ccondissect(struct vars *v, NOERR(); d2 = getsubdfa(v, t->right); NOERR(); - MDEBUG(("cconcat %d\n", t->id)); + MDEBUG(("%d: ccondissect %ld-%ld\n", t->id, LOFF(begin), LOFF(end))); /* pick a tentative midpoint */ mid = longest(v, d, begin, end, (int *) NULL); NOERR(); if (mid == NULL) return REG_NOMATCH; - MDEBUG(("tentative midpoint %ld\n", LOFF(mid))); + MDEBUG(("%d: tentative midpoint %ld\n", t->id, LOFF(mid))); /* iterate until satisfaction or failure */ for (;;) @@ -801,7 +806,7 @@ ccondissect(struct vars *v, if (er == REG_OKAY) { /* satisfaction */ - MDEBUG(("successful\n")); + MDEBUG(("%d: successful\n", t->id)); return REG_OKAY; } } @@ -814,7 +819,7 @@ ccondissect(struct vars *v, if (mid == begin) { /* all possibilities exhausted */ - MDEBUG(("%d no midpoint\n", t->id)); + MDEBUG(("%d: no midpoint\n", t->id)); return REG_NOMATCH; } mid = longest(v, d, begin, mid - 1, (int *) NULL); @@ -822,7 +827,7 @@ ccondissect(struct vars *v, if (mid == NULL) { /* failed to find a new one */ - MDEBUG(("%d failed midpoint\n", t->id)); + MDEBUG(("%d: failed midpoint\n", t->id)); return REG_NOMATCH; } MDEBUG(("%d: new midpoint %ld\n", t->id, LOFF(mid))); @@ -857,14 +862,14 @@ crevcondissect(struct vars *v, NOERR(); d2 = getsubdfa(v, t->right); NOERR(); - MDEBUG(("crevcon %d\n", t->id)); + MDEBUG(("%d: crevcondissect %ld-%ld\n", t->id, LOFF(begin), LOFF(end))); /* pick a tentative midpoint */ mid = shortest(v, d, begin, begin, end, (chr **) NULL, (int *) NULL); NOERR(); if (mid == NULL) return REG_NOMATCH; - MDEBUG(("tentative midpoint %ld\n", LOFF(mid))); + MDEBUG(("%d: tentative midpoint %ld\n", t->id, LOFF(mid))); /* iterate until satisfaction or failure */ for (;;) @@ -879,7 +884,7 @@ crevcondissect(struct vars *v, if (er == REG_OKAY) { /* satisfaction */ - MDEBUG(("successful\n")); + MDEBUG(("%d: successful\n", t->id)); return REG_OKAY; } } @@ -892,7 +897,7 @@ crevcondissect(struct vars *v, if (mid == end) { /* all possibilities exhausted */ - MDEBUG(("%d no midpoint\n", t->id)); + MDEBUG(("%d: no midpoint\n", t->id)); return REG_NOMATCH; } mid = shortest(v, d, begin, mid + 1, end, (chr **) NULL, (int *) NULL); @@ -900,7 +905,7 @@ crevcondissect(struct vars *v, if (mid == NULL) { /* failed to find a new one */ - MDEBUG(("%d failed midpoint\n", t->id)); + MDEBUG(("%d: failed midpoint\n", t->id)); return REG_NOMATCH; } MDEBUG(("%d: new midpoint %ld\n", t->id, LOFF(mid))); @@ -935,7 +940,8 @@ cbrdissect(struct vars *v, assert(n >= 0); assert((size_t) n < v->nmatch); - MDEBUG(("cbackref n%d %d{%d-%d}\n", t->id, n, min, max)); + MDEBUG(("%d: cbrdissect %d{%d-%d} %ld-%ld\n", t->id, n, min, max, + LOFF(begin), LOFF(end))); /* get the backreferenced string */ if (v->pmatch[n].rm_so == -1) @@ -952,7 +958,7 @@ cbrdissect(struct vars *v, */ if (begin == end && min <= max) { - MDEBUG(("cbackref matched trivially\n")); + MDEBUG(("%d: backref matched trivially\n", t->id)); return REG_OKAY; } return REG_NOMATCH; @@ -962,7 +968,7 @@ cbrdissect(struct vars *v, /* matches only if zero repetitions are okay */ if (min == 0) { - MDEBUG(("cbackref matched trivially\n")); + MDEBUG(("%d: backref matched trivially\n", t->id)); return REG_OKAY; } return REG_NOMATCH; @@ -989,7 +995,7 @@ cbrdissect(struct vars *v, p += brlen; } - MDEBUG(("cbackref matched\n")); + MDEBUG(("%d: backref matched\n", t->id)); return REG_OKAY; } @@ -1011,13 +1017,13 @@ caltdissect(struct vars *v, assert(t->op == '|'); assert(t->left != NULL && t->left->cnfa.nstates > 0); - MDEBUG(("calt n%d\n", t->id)); + MDEBUG(("%d: caltdissect %ld-%ld\n", t->id, LOFF(begin), LOFF(end))); d = getsubdfa(v, t->left); NOERR(); if (longest(v, d, begin, end, (int *) NULL) == end) { - MDEBUG(("calt matched\n")); + MDEBUG(("%d: caltdissect matched\n", t->id)); er = cdissect(v, t->left, begin, end); if (er != REG_NOMATCH) return er; @@ -1054,6 +1060,8 @@ citerdissect(struct vars *v, assert(!(t->left->flags & SHORTER)); assert(begin <= end); + MDEBUG(("%d: citerdissect %ld-%ld\n", t->id, LOFF(begin), LOFF(end))); + /* * For the moment, assume the minimum number of matches is 1. If zero * matches are allowed, and the target string is empty, we are allowed to @@ -1092,7 +1100,6 @@ citerdissect(struct vars *v, FREE(endpts); return v->err; } - MDEBUG(("citer %d\n", t->id)); /* * Our strategy is to first find a set of sub-match endpoints that are @@ -1182,7 +1189,7 @@ citerdissect(struct vars *v, if (i > k) { /* satisfaction */ - MDEBUG(("%d successful\n", t->id)); + MDEBUG(("%d: successful\n", t->id)); FREE(endpts); return REG_OKAY; } @@ -1223,11 +1230,11 @@ citerdissect(struct vars *v, */ if (t->min == 0 && begin == end) { - MDEBUG(("%d allowing zero matches\n", t->id)); + MDEBUG(("%d: allowing zero matches\n", t->id)); return REG_OKAY; } - MDEBUG(("%d failed\n", t->id)); + MDEBUG(("%d: failed\n", t->id)); return REG_NOMATCH; } @@ -1255,6 +1262,8 @@ creviterdissect(struct vars *v, assert(t->left->flags & SHORTER); assert(begin <= end); + MDEBUG(("%d: creviterdissect %ld-%ld\n", t->id, LOFF(begin), LOFF(end))); + /* * If zero matches are allowed, and target string is empty, just declare * victory. OTOH, if target string isn't empty, zero matches can't work @@ -1264,7 +1273,10 @@ creviterdissect(struct vars *v, if (min_matches <= 0) { if (begin == end) + { + MDEBUG(("%d: allowing zero matches\n", t->id)); return REG_OKAY; + } min_matches = 1; } @@ -1293,7 +1305,6 @@ creviterdissect(struct vars *v, FREE(endpts); return v->err; } - MDEBUG(("creviter %d\n", t->id)); /* * Our strategy is to first find a set of sub-match endpoints that are @@ -1389,7 +1400,7 @@ creviterdissect(struct vars *v, if (i > k) { /* satisfaction */ - MDEBUG(("%d successful\n", t->id)); + MDEBUG(("%d: successful\n", t->id)); FREE(endpts); return REG_OKAY; } @@ -1415,7 +1426,7 @@ creviterdissect(struct vars *v, } /* all possibilities exhausted */ - MDEBUG(("%d failed\n", t->id)); + MDEBUG(("%d: failed\n", t->id)); FREE(endpts); return REG_NOMATCH; } diff --git a/src/backend/replication/backup_manifest.c b/src/backend/replication/backup_manifest.c index 0cefd181b5a11..32bb0efb3dab5 100644 --- a/src/backend/replication/backup_manifest.c +++ b/src/backend/replication/backup_manifest.c @@ -330,12 +330,13 @@ SendBackupManifest(backup_manifest_info *manifest) * twice. */ manifest->still_checksumming = false; - if (pg_cryptohash_final(manifest->manifest_ctx, checksumbuf) < 0) + if (pg_cryptohash_final(manifest->manifest_ctx, checksumbuf, + sizeof(checksumbuf)) < 0) elog(ERROR, "failed to finalize checksum of backup manifest"); AppendStringToManifest(manifest, "\"Manifest-Checksum\": \""); - dstlen = pg_hex_enc_len(PG_SHA256_DIGEST_LENGTH); + dstlen = pg_hex_enc_len(sizeof(checksumbuf)); checksumstringbuf = palloc0(dstlen + 1); /* includes \0 */ - pg_hex_encode((char *) checksumbuf, sizeof checksumbuf, + pg_hex_encode((char *) checksumbuf, sizeof(checksumbuf), checksumstringbuf, dstlen); checksumstringbuf[dstlen] = '\0'; AppendStringToManifest(manifest, checksumstringbuf); diff --git a/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c b/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c index e9582748617f0..7714696140873 100644 --- a/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c +++ b/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c @@ -982,6 +982,7 @@ libpqrcv_exec(WalReceiverConn *conn, const char *query, { PGresult *pgres = NULL; WalRcvExecResult *walres = palloc0(sizeof(WalRcvExecResult)); + char *diag_sqlstate; if (MyDatabaseId == InvalidOid) ereport(ERROR, @@ -1025,6 +1026,13 @@ libpqrcv_exec(WalReceiverConn *conn, const char *query, case PGRES_BAD_RESPONSE: walres->status = WALRCV_ERROR; walres->err = pchomp(PQerrorMessage(conn->streamConn)); + diag_sqlstate = PQresultErrorField(pgres, PG_DIAG_SQLSTATE); + if (diag_sqlstate) + walres->sqlstate = MAKE_SQLSTATE(diag_sqlstate[0], + diag_sqlstate[1], + diag_sqlstate[2], + diag_sqlstate[3], + diag_sqlstate[4]); break; } diff --git a/src/backend/replication/logical/launcher.c b/src/backend/replication/logical/launcher.c index 186514cd9ed43..cb462a052ad47 100644 --- a/src/backend/replication/logical/launcher.c +++ b/src/backend/replication/logical/launcher.c @@ -73,20 +73,6 @@ typedef struct LogicalRepWorkerId Oid relid; } LogicalRepWorkerId; -typedef struct StopWorkersData -{ - int nestDepth; /* Sub-transaction nest level */ - List *workers; /* List of LogicalRepWorkerId */ - struct StopWorkersData *parent; /* This need not be an immediate - * subtransaction parent */ -} StopWorkersData; - -/* - * Stack of StopWorkersData elements. Each stack element contains the workers - * to be stopped for that subtransaction. - */ -static StopWorkersData *on_commit_stop_workers = NULL; - static void ApplyLauncherWakeup(void); static void logicalrep_launcher_onexit(int code, Datum arg); static void logicalrep_worker_onexit(int code, Datum arg); @@ -296,7 +282,7 @@ logicalrep_worker_launch(Oid dbid, Oid subid, const char *subname, Oid userid, TimestampTz now; ereport(DEBUG1, - (errmsg("starting logical replication worker for subscription \"%s\"", + (errmsg_internal("starting logical replication worker for subscription \"%s\"", subname))); /* Report this after the initial starting message for consistency. */ @@ -546,51 +532,6 @@ logicalrep_worker_stop(Oid subid, Oid relid) LWLockRelease(LogicalRepWorkerLock); } -/* - * Request worker for specified sub/rel to be stopped on commit. - */ -void -logicalrep_worker_stop_at_commit(Oid subid, Oid relid) -{ - int nestDepth = GetCurrentTransactionNestLevel(); - LogicalRepWorkerId *wid; - MemoryContext oldctx; - - /* Make sure we store the info in context that survives until commit. */ - oldctx = MemoryContextSwitchTo(TopTransactionContext); - - /* Check that previous transactions were properly cleaned up. */ - Assert(on_commit_stop_workers == NULL || - nestDepth >= on_commit_stop_workers->nestDepth); - - /* - * Push a new stack element if we don't already have one for the current - * nestDepth. - */ - if (on_commit_stop_workers == NULL || - nestDepth > on_commit_stop_workers->nestDepth) - { - StopWorkersData *newdata = palloc(sizeof(StopWorkersData)); - - newdata->nestDepth = nestDepth; - newdata->workers = NIL; - newdata->parent = on_commit_stop_workers; - on_commit_stop_workers = newdata; - } - - /* - * Finally add a new worker into the worker list of the current - * subtransaction. - */ - wid = palloc(sizeof(LogicalRepWorkerId)); - wid->subid = subid; - wid->relid = relid; - on_commit_stop_workers->workers = - lappend(on_commit_stop_workers->workers, wid); - - MemoryContextSwitchTo(oldctx); -} - /* * Wake up (using latch) any logical replication worker for specified sub/rel. */ @@ -819,109 +760,21 @@ ApplyLauncherShmemInit(void) } } -/* - * Check whether current transaction has manipulated logical replication - * workers. - */ -bool -XactManipulatesLogicalReplicationWorkers(void) -{ - return (on_commit_stop_workers != NULL); -} - /* * Wakeup the launcher on commit if requested. */ void AtEOXact_ApplyLauncher(bool isCommit) { - - Assert(on_commit_stop_workers == NULL || - (on_commit_stop_workers->nestDepth == 1 && - on_commit_stop_workers->parent == NULL)); - if (isCommit) { - ListCell *lc; - - if (on_commit_stop_workers != NULL) - { - List *workers = on_commit_stop_workers->workers; - - foreach(lc, workers) - { - LogicalRepWorkerId *wid = lfirst(lc); - - logicalrep_worker_stop(wid->subid, wid->relid); - } - } - if (on_commit_launcher_wakeup) ApplyLauncherWakeup(); } - /* - * No need to pfree on_commit_stop_workers. It was allocated in - * transaction memory context, which is going to be cleaned soon. - */ - on_commit_stop_workers = NULL; on_commit_launcher_wakeup = false; } -/* - * On commit, merge the current on_commit_stop_workers list into the - * immediate parent, if present. - * On rollback, discard the current on_commit_stop_workers list. - * Pop out the stack. - */ -void -AtEOSubXact_ApplyLauncher(bool isCommit, int nestDepth) -{ - StopWorkersData *parent; - - /* Exit immediately if there's no work to do at this level. */ - if (on_commit_stop_workers == NULL || - on_commit_stop_workers->nestDepth < nestDepth) - return; - - Assert(on_commit_stop_workers->nestDepth == nestDepth); - - parent = on_commit_stop_workers->parent; - - if (isCommit) - { - /* - * If the upper stack element is not an immediate parent - * subtransaction, just decrement the notional nesting depth without - * doing any real work. Else, we need to merge the current workers - * list into the parent. - */ - if (!parent || parent->nestDepth < nestDepth - 1) - { - on_commit_stop_workers->nestDepth--; - return; - } - - parent->workers = - list_concat(parent->workers, on_commit_stop_workers->workers); - } - else - { - /* - * Abandon everything that was done at this nesting level. Explicitly - * free memory to avoid a transaction-lifespan leak. - */ - list_free_deep(on_commit_stop_workers->workers); - } - - /* - * We have taken care of the current subtransaction workers list for both - * abort or commit. So we are ready to pop the stack. - */ - pfree(on_commit_stop_workers); - on_commit_stop_workers = parent; -} - /* * Request wakeup of the launcher on commit of the transaction. * @@ -952,7 +805,7 @@ ApplyLauncherMain(Datum main_arg) TimestampTz last_start_time = 0; ereport(DEBUG1, - (errmsg("logical replication launcher started"))); + (errmsg_internal("logical replication launcher started"))); before_shmem_exit(logicalrep_launcher_onexit, (Datum) 0); diff --git a/src/backend/replication/logical/origin.c b/src/backend/replication/logical/origin.c index 9bd761a426223..685eaa6134e7c 100644 --- a/src/backend/replication/logical/origin.c +++ b/src/backend/replication/logical/origin.c @@ -322,27 +322,15 @@ replorigin_create(char *roname) return roident; } - /* - * Drop replication origin. - * - * Needs to be called in a transaction. + * Helper function to drop a replication origin. */ -void -replorigin_drop(RepOriginId roident, bool nowait) +static void +replorigin_drop_guts(Relation rel, RepOriginId roident, bool nowait) { HeapTuple tuple; - Relation rel; int i; - Assert(IsTransactionState()); - - /* - * To interlock against concurrent drops, we hold ExclusiveLock on - * pg_replication_origin throughout this function. - */ - rel = table_open(ReplicationOriginRelationId, ExclusiveLock); - /* * First, clean up the slot state info, if there is any matching slot. */ @@ -415,11 +403,40 @@ replorigin_drop(RepOriginId roident, bool nowait) ReleaseSysCache(tuple); CommandCounterIncrement(); - - /* now release lock again */ - table_close(rel, ExclusiveLock); } +/* + * Drop replication origin (by name). + * + * Needs to be called in a transaction. + */ +void +replorigin_drop_by_name(char *name, bool missing_ok, bool nowait) +{ + RepOriginId roident; + Relation rel; + + Assert(IsTransactionState()); + + /* + * To interlock against concurrent drops, we hold ExclusiveLock on + * pg_replication_origin till xact commit. + * + * XXX We can optimize this by acquiring the lock on a specific origin by + * using LockSharedObject if required. However, for that, we first to + * acquire a lock on ReplicationOriginRelationId, get the origin_id, lock + * the specific origin and then re-check if the origin still exists. + */ + rel = table_open(ReplicationOriginRelationId, ExclusiveLock); + + roident = replorigin_by_name(name, missing_ok); + + if (OidIsValid(roident)) + replorigin_drop_guts(rel, roident, nowait); + + /* We keep the lock on pg_replication_origin until commit */ + table_close(rel, NoLock); +} /* * Lookup replication origin via its oid and return the name. @@ -1256,16 +1273,12 @@ Datum pg_replication_origin_drop(PG_FUNCTION_ARGS) { char *name; - RepOriginId roident; replorigin_check_prerequisites(false, false); name = text_to_cstring((text *) DatumGetPointer(PG_GETARG_DATUM(0))); - roident = replorigin_by_name(name, false); - Assert(OidIsValid(roident)); - - replorigin_drop(roident, true); + replorigin_drop_by_name(name, false, true); pfree(name); diff --git a/src/backend/replication/logical/snapbuild.c b/src/backend/replication/logical/snapbuild.c index e903e561afc42..752cf2d7dbcea 100644 --- a/src/backend/replication/logical/snapbuild.c +++ b/src/backend/replication/logical/snapbuild.c @@ -189,24 +189,11 @@ struct SnapBuild ReorderBuffer *reorder; /* - * Outdated: This struct isn't used for its original purpose anymore, but - * can't be removed / changed in a minor version, because it's stored - * on-disk. + * TransactionId at which the next phase of initial snapshot building will + * happen. InvalidTransactionId if not known (i.e. SNAPBUILD_START), or + * when no next phase necessary (SNAPBUILD_CONSISTENT). */ - struct - { - /* - * NB: This field is misused, until a major version can break on-disk - * compatibility. See SnapBuildNextPhaseAt() / - * SnapBuildStartNextPhaseAt(). - */ - TransactionId was_xmin; - TransactionId was_xmax; - - size_t was_xcnt; /* number of used xip entries */ - size_t was_xcnt_space; /* allocated size of xip */ - TransactionId *was_xip; /* running xacts array, xidComparator-sorted */ - } was_running; + TransactionId next_phase_at; /* * Array of transactions which could have catalog changes that committed @@ -272,34 +259,6 @@ static void SnapBuildWaitSnapshot(xl_running_xacts *running, TransactionId cutof static void SnapBuildSerialize(SnapBuild *builder, XLogRecPtr lsn); static bool SnapBuildRestore(SnapBuild *builder, XLogRecPtr lsn); -/* - * Return TransactionId after which the next phase of initial snapshot - * building will happen. - */ -static inline TransactionId -SnapBuildNextPhaseAt(SnapBuild *builder) -{ - /* - * For backward compatibility reasons this has to be stored in the wrongly - * named field. Will be fixed in next major version. - */ - return builder->was_running.was_xmax; -} - -/* - * Set TransactionId after which the next phase of initial snapshot building - * will happen. - */ -static inline void -SnapBuildStartNextPhaseAt(SnapBuild *builder, TransactionId at) -{ - /* - * For backward compatibility reasons this has to be stored in the wrongly - * named field. Will be fixed in next major version. - */ - builder->was_running.was_xmax = at; -} - /* * Allocate a new snapshot builder. * @@ -728,7 +687,7 @@ SnapBuildProcessChange(SnapBuild *builder, TransactionId xid, XLogRecPtr lsn) * we got into the SNAPBUILD_FULL_SNAPSHOT state. */ if (builder->state < SNAPBUILD_CONSISTENT && - TransactionIdPrecedes(xid, SnapBuildNextPhaseAt(builder))) + TransactionIdPrecedes(xid, builder->next_phase_at)) return false; /* @@ -945,7 +904,7 @@ SnapBuildCommitTxn(SnapBuild *builder, XLogRecPtr lsn, TransactionId xid, */ if (builder->state == SNAPBUILD_START || (builder->state == SNAPBUILD_BUILDING_SNAPSHOT && - TransactionIdPrecedes(xid, SnapBuildNextPhaseAt(builder)))) + TransactionIdPrecedes(xid, builder->next_phase_at))) { /* ensure that only commits after this are getting replayed */ if (builder->start_decoding_at <= lsn) @@ -1267,7 +1226,7 @@ SnapBuildFindSnapshot(SnapBuild *builder, XLogRecPtr lsn, xl_running_xacts *runn Assert(TransactionIdIsNormal(builder->xmax)); builder->state = SNAPBUILD_CONSISTENT; - SnapBuildStartNextPhaseAt(builder, InvalidTransactionId); + builder->next_phase_at = InvalidTransactionId; ereport(LOG, (errmsg("logical decoding found consistent point at %X/%X", @@ -1299,7 +1258,7 @@ SnapBuildFindSnapshot(SnapBuild *builder, XLogRecPtr lsn, xl_running_xacts *runn else if (builder->state == SNAPBUILD_START) { builder->state = SNAPBUILD_BUILDING_SNAPSHOT; - SnapBuildStartNextPhaseAt(builder, running->nextXid); + builder->next_phase_at = running->nextXid; /* * Start with an xmin/xmax that's correct for future, when all the @@ -1331,11 +1290,11 @@ SnapBuildFindSnapshot(SnapBuild *builder, XLogRecPtr lsn, xl_running_xacts *runn * be decoded. Switch to FULL_SNAPSHOT. */ else if (builder->state == SNAPBUILD_BUILDING_SNAPSHOT && - TransactionIdPrecedesOrEquals(SnapBuildNextPhaseAt(builder), + TransactionIdPrecedesOrEquals(builder->next_phase_at, running->oldestRunningXid)) { builder->state = SNAPBUILD_FULL_SNAPSHOT; - SnapBuildStartNextPhaseAt(builder, running->nextXid); + builder->next_phase_at = running->nextXid; ereport(LOG, (errmsg("logical decoding found initial consistent point at %X/%X", @@ -1356,11 +1315,11 @@ SnapBuildFindSnapshot(SnapBuild *builder, XLogRecPtr lsn, xl_running_xacts *runn * collected. Switch to CONSISTENT. */ else if (builder->state == SNAPBUILD_FULL_SNAPSHOT && - TransactionIdPrecedesOrEquals(SnapBuildNextPhaseAt(builder), + TransactionIdPrecedesOrEquals(builder->next_phase_at, running->oldestRunningXid)) { builder->state = SNAPBUILD_CONSISTENT; - SnapBuildStartNextPhaseAt(builder, InvalidTransactionId); + builder->next_phase_at = InvalidTransactionId; ereport(LOG, (errmsg("logical decoding found consistent point at %X/%X", @@ -1463,7 +1422,7 @@ typedef struct SnapBuildOnDisk offsetof(SnapBuildOnDisk, version) #define SNAPBUILD_MAGIC 0x51A1E001 -#define SNAPBUILD_VERSION 2 +#define SNAPBUILD_VERSION 3 /* * Store/Load a snapshot from disk, depending on the snapshot builder's state. @@ -1508,6 +1467,9 @@ SnapBuildSerialize(SnapBuild *builder, XLogRecPtr lsn) if (builder->state < SNAPBUILD_CONSISTENT) return; + /* consistent snapshots have no next phase */ + Assert(builder->next_phase_at == InvalidTransactionId); + /* * We identify snapshots by the LSN they are valid for. We don't need to * include timelines in the name as each LSN maps to exactly one timeline @@ -1596,9 +1558,6 @@ SnapBuildSerialize(SnapBuild *builder, XLogRecPtr lsn) &ondisk->builder, sizeof(SnapBuild)); - /* there shouldn't be any running xacts */ - Assert(builder->was_running.was_xcnt == 0); - /* copy committed xacts */ sz = sizeof(TransactionId) * builder->committed.xcnt; memcpy(ondisk_c, builder->committed.xip, sz); @@ -1801,34 +1760,6 @@ SnapBuildRestore(SnapBuild *builder, XLogRecPtr lsn) } COMP_CRC32C(checksum, &ondisk.builder, sizeof(SnapBuild)); - /* restore running xacts (dead, but kept for backward compat) */ - sz = sizeof(TransactionId) * ondisk.builder.was_running.was_xcnt_space; - ondisk.builder.was_running.was_xip = - MemoryContextAllocZero(builder->context, sz); - pgstat_report_wait_start(WAIT_EVENT_SNAPBUILD_READ); - readBytes = read(fd, ondisk.builder.was_running.was_xip, sz); - pgstat_report_wait_end(); - if (readBytes != sz) - { - int save_errno = errno; - - CloseTransientFile(fd); - - if (readBytes < 0) - { - errno = save_errno; - ereport(ERROR, - (errcode_for_file_access(), - errmsg("could not read file \"%s\": %m", path))); - } - else - ereport(ERROR, - (errcode(ERRCODE_DATA_CORRUPTED), - errmsg("could not read file \"%s\": read %d of %zu", - path, readBytes, sz))); - } - COMP_CRC32C(checksum, ondisk.builder.was_running.was_xip, sz); - /* restore committed xacts information */ sz = sizeof(TransactionId) * ondisk.builder.committed.xcnt; ondisk.builder.committed.xip = MemoryContextAllocZero(builder->context, sz); @@ -1890,6 +1821,8 @@ SnapBuildRestore(SnapBuild *builder, XLogRecPtr lsn) if (TransactionIdPrecedes(ondisk.builder.xmin, builder->initial_xmin_horizon)) goto snapshot_not_interesting; + /* consistent snapshots have no next phase */ + Assert(ondisk.builder.next_phase_at == InvalidTransactionId); /* ok, we think the snapshot is sensible, copy over everything important */ builder->xmin = ondisk.builder.xmin; diff --git a/src/backend/replication/logical/tablesync.c b/src/backend/replication/logical/tablesync.c index ccbdbcf08f918..24a6ce5d8ed60 100644 --- a/src/backend/replication/logical/tablesync.c +++ b/src/backend/replication/logical/tablesync.c @@ -31,8 +31,11 @@ * table state to INIT. * - Tablesync worker starts; changes table state from INIT to DATASYNC while * copying. - * - Tablesync worker finishes the copy and sets table state to SYNCWAIT; - * waits for state change. + * - Tablesync worker does initial table copy; there is a FINISHEDCOPY (sync + * worker specific) state to indicate when the copy phase has completed, so + * if the worker crashes with this (non-memory) state then the copy will not + * be re-attempted. + * - Tablesync worker then sets table state to SYNCWAIT; waits for state change. * - Apply worker periodically checks for tables in SYNCWAIT state. When * any appear, it sets the table state to CATCHUP and starts loop-waiting * until either the table state is set to SYNCDONE or the sync worker @@ -48,8 +51,8 @@ * point it sets state to READY and stops tracking. Again, there might * be zero changes in between. * - * So the state progression is always: INIT -> DATASYNC -> SYNCWAIT -> - * CATCHUP -> SYNCDONE -> READY. + * So the state progression is always: INIT -> DATASYNC -> FINISHEDCOPY + * -> SYNCWAIT -> CATCHUP -> SYNCDONE -> READY. * * The catalog pg_subscription_rel is used to keep information about * subscribed tables and their state. The catalog holds all states @@ -58,6 +61,7 @@ * Example flows look like this: * - Apply is in front: * sync:8 + * -> set in catalog FINISHEDCOPY * -> set in memory SYNCWAIT * apply:10 * -> set in memory CATCHUP @@ -73,6 +77,7 @@ * * - Sync is in front: * sync:10 + * -> set in catalog FINISHEDCOPY * -> set in memory SYNCWAIT * apply:8 * -> set in memory CATCHUP @@ -101,7 +106,10 @@ #include "replication/logicalrelation.h" #include "replication/walreceiver.h" #include "replication/worker_internal.h" +#include "replication/slot.h" +#include "replication/origin.h" #include "storage/ipc.h" +#include "storage/lmgr.h" #include "utils/builtins.h" #include "utils/lsyscache.h" #include "utils/memutils.h" @@ -269,26 +277,53 @@ invalidate_syncing_table_states(Datum arg, int cacheid, uint32 hashvalue) static void process_syncing_tables_for_sync(XLogRecPtr current_lsn) { - Assert(IsTransactionState()); - SpinLockAcquire(&MyLogicalRepWorker->relmutex); if (MyLogicalRepWorker->relstate == SUBREL_STATE_CATCHUP && current_lsn >= MyLogicalRepWorker->relstate_lsn) { TimeLineID tli; + char syncslotname[NAMEDATALEN] = {0}; MyLogicalRepWorker->relstate = SUBREL_STATE_SYNCDONE; MyLogicalRepWorker->relstate_lsn = current_lsn; SpinLockRelease(&MyLogicalRepWorker->relmutex); + /* + * UpdateSubscriptionRelState must be called within a transaction. + * That transaction will be ended within the finish_sync_worker(). + */ + if (!IsTransactionState()) + StartTransactionCommand(); + UpdateSubscriptionRelState(MyLogicalRepWorker->subid, MyLogicalRepWorker->relid, MyLogicalRepWorker->relstate, MyLogicalRepWorker->relstate_lsn); + /* End wal streaming so wrconn can be re-used to drop the slot. */ walrcv_endstreaming(wrconn, &tli); + + /* + * Cleanup the tablesync slot. + * + * This has to be done after updating the state because otherwise if + * there is an error while doing the database operations we won't be + * able to rollback dropped slot. + */ + ReplicationSlotNameForTablesync(MyLogicalRepWorker->subid, + MyLogicalRepWorker->relid, + syncslotname, + sizeof(syncslotname)); + + /* + * It is important to give an error if we are unable to drop the slot, + * otherwise, it won't be dropped till the corresponding subscription + * is dropped. So passing missing_ok = false. + */ + ReplicationSlotDropAtPubNode(wrconn, syncslotname, false); + finish_sync_worker(); } else @@ -403,6 +438,8 @@ process_syncing_tables_for_apply(XLogRecPtr current_lsn) */ if (current_lsn >= rstate->lsn) { + char originname[NAMEDATALEN]; + rstate->state = SUBREL_STATE_READY; rstate->lsn = current_lsn; if (!started_tx) @@ -411,6 +448,28 @@ process_syncing_tables_for_apply(XLogRecPtr current_lsn) started_tx = true; } + /* + * Remove the tablesync origin tracking if exists. + * + * The normal case origin drop is done here instead of in the + * process_syncing_tables_for_sync function because we don't + * allow to drop the origin till the process owning the origin + * is alive. + * + * There is a chance that the user is concurrently performing + * refresh for the subscription where we remove the table + * state and its origin and by this time the origin might be + * already removed. So passing missing_ok = true. + */ + ReplicationOriginNameForTablesync(MyLogicalRepWorker->subid, + rstate->relid, + originname, + sizeof(originname)); + replorigin_drop_by_name(originname, true, false); + + /* + * Update the state to READY only after the origin cleanup. + */ UpdateSubscriptionRelState(MyLogicalRepWorker->subid, rstate->relid, rstate->state, rstate->lsn); @@ -805,6 +864,43 @@ copy_table(Relation rel) logicalrep_rel_close(relmapentry, NoLock); } +/* + * Determine the tablesync slot name. + * + * The name must not exceed NAMEDATALEN - 1 because of remote node constraints + * on slot name length. We append system_identifier to avoid slot_name + * collision with subscriptions in other clusters. With the current scheme + * pg_%u_sync_%u_UINT64_FORMAT (3 + 10 + 6 + 10 + 20 + '\0'), the maximum + * length of slot_name will be 50. + * + * The returned slot name is stored in the supplied buffer (syncslotname) with + * the given size. + * + * Note: We don't use the subscription slot name as part of tablesync slot name + * because we are responsible for cleaning up these slots and it could become + * impossible to recalculate what name to cleanup if the subscription slot name + * had changed. + */ +void +ReplicationSlotNameForTablesync(Oid suboid, Oid relid, + char *syncslotname, int szslot) +{ + snprintf(syncslotname, szslot, "pg_%u_sync_%u_" UINT64_FORMAT, suboid, + relid, GetSystemIdentifier()); +} + +/* + * Form the origin name for tablesync. + * + * Return the name in the supplied buffer. + */ +void +ReplicationOriginNameForTablesync(Oid suboid, Oid relid, + char *originname, int szorgname) +{ + snprintf(originname, szorgname, "pg_%u_%u", suboid, relid); +} + /* * Start syncing the table in the sync worker. * @@ -822,6 +918,8 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos) XLogRecPtr relstate_lsn; Relation rel; WalRcvExecResult *res; + char originname[NAMEDATALEN]; + RepOriginId originid; /* Check the state of the table synchronization. */ StartTransactionCommand(); @@ -847,19 +945,12 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos) finish_sync_worker(); /* doesn't return */ } - /* - * To build a slot name for the sync work, we are limited to NAMEDATALEN - - * 1 characters. We cut the original slot name to NAMEDATALEN - 28 chars - * and append _%u_sync_%u (1 + 10 + 6 + 10 + '\0'). (It's actually the - * NAMEDATALEN on the remote that matters, but this scheme will also work - * reasonably if that is different.) - */ - StaticAssertStmt(NAMEDATALEN >= 32, "NAMEDATALEN too small"); /* for sanity */ - slotname = psprintf("%.*s_%u_sync_%u", - NAMEDATALEN - 28, - MySubscription->slotname, - MySubscription->oid, - MyLogicalRepWorker->relid); + /* Calculate the name of the tablesync slot. */ + slotname = (char *) palloc(NAMEDATALEN); + ReplicationSlotNameForTablesync(MySubscription->oid, + MyLogicalRepWorker->relid, + slotname, + NAMEDATALEN); /* * Here we use the slot name instead of the subscription name as the @@ -872,7 +963,51 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos) (errmsg("could not connect to the publisher: %s", err))); Assert(MyLogicalRepWorker->relstate == SUBREL_STATE_INIT || - MyLogicalRepWorker->relstate == SUBREL_STATE_DATASYNC); + MyLogicalRepWorker->relstate == SUBREL_STATE_DATASYNC || + MyLogicalRepWorker->relstate == SUBREL_STATE_FINISHEDCOPY); + + /* Assign the origin tracking record name. */ + ReplicationOriginNameForTablesync(MySubscription->oid, + MyLogicalRepWorker->relid, + originname, + sizeof(originname)); + + if (MyLogicalRepWorker->relstate == SUBREL_STATE_DATASYNC) + { + /* + * We have previously errored out before finishing the copy so the + * replication slot might exist. We want to remove the slot if it + * already exists and proceed. + * + * XXX We could also instead try to drop the slot, last time we failed + * but for that, we might need to clean up the copy state as it might + * be in the middle of fetching the rows. Also, if there is a network + * breakdown then it wouldn't have succeeded so trying it next time + * seems like a better bet. + */ + ReplicationSlotDropAtPubNode(wrconn, slotname, true); + } + else if (MyLogicalRepWorker->relstate == SUBREL_STATE_FINISHEDCOPY) + { + /* + * The COPY phase was previously done, but tablesync then crashed + * before it was able to finish normally. + */ + StartTransactionCommand(); + + /* + * The origin tracking name must already exist. It was created first + * time this tablesync was launched. + */ + originid = replorigin_by_name(originname, false); + replorigin_session_setup(originid); + replorigin_session_origin = originid; + *origin_startpos = replorigin_session_get_progress(false); + + CommitTransactionCommand(); + + goto copy_table_done; + } SpinLockAcquire(&MyLogicalRepWorker->relmutex); MyLogicalRepWorker->relstate = SUBREL_STATE_DATASYNC; @@ -888,9 +1023,6 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos) CommitTransactionCommand(); pgstat_report_stat(false); - /* - * We want to do the table data sync in a single transaction. - */ StartTransactionCommand(); /* @@ -916,13 +1048,46 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos) walrcv_clear_result(res); /* - * Create a new temporary logical decoding slot. This slot will be used + * Create a new permanent logical decoding slot. This slot will be used * for the catchup phase after COPY is done, so tell it to use the * snapshot to make the final data consistent. */ - walrcv_create_slot(wrconn, slotname, true, + walrcv_create_slot(wrconn, slotname, false /* permanent */ , CRS_USE_SNAPSHOT, origin_startpos); + /* + * Setup replication origin tracking. The purpose of doing this before the + * copy is to avoid doing the copy again due to any error in setting up + * origin tracking. + */ + originid = replorigin_by_name(originname, true); + if (!OidIsValid(originid)) + { + /* + * Origin tracking does not exist, so create it now. + * + * Then advance to the LSN got from walrcv_create_slot. This is WAL + * logged for the purpose of recovery. Locks are to prevent the + * replication origin from vanishing while advancing. + */ + originid = replorigin_create(originname); + + LockRelationOid(ReplicationOriginRelationId, RowExclusiveLock); + replorigin_advance(originid, *origin_startpos, InvalidXLogRecPtr, + true /* go backward */ , true /* WAL log */ ); + UnlockRelationOid(ReplicationOriginRelationId, RowExclusiveLock); + + replorigin_session_setup(originid); + replorigin_session_origin = originid; + } + else + { + ereport(ERROR, + (errcode(ERRCODE_DUPLICATE_OBJECT), + errmsg("replication origin \"%s\" already exists", + originname))); + } + /* Now do the initial data copy */ PushActiveSnapshot(GetTransactionSnapshot()); copy_table(rel); @@ -940,6 +1105,25 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos) /* Make the copy visible. */ CommandCounterIncrement(); + /* + * Update the persisted state to indicate the COPY phase is done; make it + * visible to others. + */ + UpdateSubscriptionRelState(MyLogicalRepWorker->subid, + MyLogicalRepWorker->relid, + SUBREL_STATE_FINISHEDCOPY, + MyLogicalRepWorker->relstate_lsn); + + CommitTransactionCommand(); + +copy_table_done: + + elog(DEBUG1, + "LogicalRepSyncTableStart: '%s' origin_startpos lsn %X/%X", + originname, + (uint32) (*origin_startpos >> 32), + (uint32) *origin_startpos); + /* * We are done with the initial data synchronization, update the state. */ diff --git a/src/backend/replication/logical/worker.c b/src/backend/replication/logical/worker.c index eb7db89cef7d5..cfc924cd8935a 100644 --- a/src/backend/replication/logical/worker.c +++ b/src/backend/replication/logical/worker.c @@ -807,12 +807,8 @@ apply_handle_stream_stop(StringInfo s) /* We must be in a valid transaction state */ Assert(IsTransactionState()); - /* The synchronization worker runs in single transaction. */ - if (!am_tablesync_worker()) - { - /* Commit the per-stream transaction */ - CommitTransactionCommand(); - } + /* Commit the per-stream transaction */ + CommitTransactionCommand(); in_streamed_transaction = false; @@ -889,9 +885,7 @@ apply_handle_stream_abort(StringInfo s) /* Cleanup the subxact info */ cleanup_subxact_info(); - /* The synchronization worker runs in single transaction */ - if (!am_tablesync_worker()) - CommitTransactionCommand(); + CommitTransactionCommand(); return; } @@ -918,8 +912,7 @@ apply_handle_stream_abort(StringInfo s) /* write the updated subxact list */ subxact_info_write(MyLogicalRepWorker->subid, xid); - if (!am_tablesync_worker()) - CommitTransactionCommand(); + CommitTransactionCommand(); } } @@ -1062,8 +1055,7 @@ apply_handle_stream_commit(StringInfo s) static void apply_handle_commit_internal(StringInfo s, LogicalRepCommitData *commit_data) { - /* The synchronization worker runs in single transaction. */ - if (IsTransactionState() && !am_tablesync_worker()) + if (IsTransactionState()) { /* * Update origin state so we can restart streaming from correct diff --git a/src/backend/replication/pgoutput/pgoutput.c b/src/backend/replication/pgoutput/pgoutput.c index 79765f96969df..1b993fb032dca 100644 --- a/src/backend/replication/pgoutput/pgoutput.c +++ b/src/backend/replication/pgoutput/pgoutput.c @@ -342,10 +342,6 @@ pgoutput_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { char *origin; - /* Message boundary */ - OutputPluginWrite(ctx, false); - OutputPluginPrepareWrite(ctx, true); - /*---------- * XXX: which behaviour do we want here? * @@ -357,7 +353,13 @@ pgoutput_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) *---------- */ if (replorigin_by_oid(txn->origin_id, true, &origin)) + { + /* Message boundary */ + OutputPluginWrite(ctx, false); + OutputPluginPrepareWrite(ctx, true); logicalrep_write_origin(ctx->out, origin, txn->origin_lsn); + } + } OutputPluginWrite(ctx, true); @@ -780,12 +782,13 @@ pgoutput_stream_start(struct LogicalDecodingContext *ctx, { char *origin; - /* Message boundary */ - OutputPluginWrite(ctx, false); - OutputPluginPrepareWrite(ctx, true); - if (replorigin_by_oid(txn->origin_id, true, &origin)) + { + /* Message boundary */ + OutputPluginWrite(ctx, false); + OutputPluginPrepareWrite(ctx, true); logicalrep_write_origin(ctx->out, origin, InvalidXLogRecPtr); + } } OutputPluginWrite(ctx, true); diff --git a/src/backend/replication/syncrep.c b/src/backend/replication/syncrep.c index 1c1bf1605285b..f765002e0dca3 100644 --- a/src/backend/replication/syncrep.c +++ b/src/backend/replication/syncrep.c @@ -425,7 +425,7 @@ SyncRepInitConfig(void) SpinLockRelease(&MyWalSnd->mutex); ereport(DEBUG1, - (errmsg("standby \"%s\" now has synchronous standby priority %u", + (errmsg_internal("standby \"%s\" now has synchronous standby priority %u", application_name, priority))); } } diff --git a/src/backend/replication/walreceiver.c b/src/backend/replication/walreceiver.c index 723f513d8bcb2..9ec71238c4892 100644 --- a/src/backend/replication/walreceiver.c +++ b/src/backend/replication/walreceiver.c @@ -249,7 +249,7 @@ WalReceiverMain(void) SpinLockRelease(&walrcv->mutex); - pg_atomic_init_u64(&WalRcv->writtenUpto, 0); + pg_atomic_write_u64(&WalRcv->writtenUpto, 0); /* Arrange to clean up at walreceiver exit */ on_shmem_exit(WalRcvDie, 0); @@ -1325,7 +1325,6 @@ pg_stat_get_wal_receiver(PG_FUNCTION_ARGS) state = WalRcv->walRcvState; receive_start_lsn = WalRcv->receiveStart; receive_start_tli = WalRcv->receiveStartTLI; - written_lsn = pg_atomic_read_u64(&WalRcv->writtenUpto); flushed_lsn = WalRcv->flushedUpto; received_tli = WalRcv->receivedTLI; last_send_time = WalRcv->lastMsgSendTime; @@ -1345,6 +1344,14 @@ pg_stat_get_wal_receiver(PG_FUNCTION_ARGS) if (pid == 0 || !ready_to_display) PG_RETURN_NULL(); + /* + * Read "writtenUpto" without holding a spinlock. Note that it may not be + * consistent with the other shared variables of the WAL receiver + * protected by a spinlock, but this should not be used for data integrity + * checks. + */ + written_lsn = pg_atomic_read_u64(&WalRcv->writtenUpto); + /* determine result type */ if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) elog(ERROR, "return type must be a row type"); diff --git a/src/backend/replication/walreceiverfuncs.c b/src/backend/replication/walreceiverfuncs.c index 69b91a7dab8f5..63e60478ea6e8 100644 --- a/src/backend/replication/walreceiverfuncs.c +++ b/src/backend/replication/walreceiverfuncs.c @@ -63,6 +63,7 @@ WalRcvShmemInit(void) MemSet(WalRcv, 0, WalRcvShmemSize()); WalRcv->walRcvState = WALRCV_STOPPED; SpinLockInit(&WalRcv->mutex); + pg_atomic_init_u64(&WalRcv->writtenUpto, 0); WalRcv->latch = NULL; } } diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c index 8545c6c423170..64167fe3a6777 100644 --- a/src/backend/replication/walsender.c +++ b/src/backend/replication/walsender.c @@ -2319,7 +2319,7 @@ WalSndLoop(WalSndSendDataCallback send_data) if (MyWalSnd->state == WALSNDSTATE_CATCHUP) { ereport(DEBUG1, - (errmsg("\"%s\" has now caught up with upstream server", + (errmsg_internal("\"%s\" has now caught up with upstream server", application_name))); WalSndSetState(WALSNDSTATE_STREAMING); } diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c index ee4ccbbd3823c..27e4ef911c8a7 100644 --- a/src/backend/rewrite/rewriteDefine.c +++ b/src/backend/rewrite/rewriteDefine.c @@ -25,6 +25,7 @@ #include "catalog/heap.h" #include "catalog/namespace.h" #include "catalog/objectaccess.h" +#include "catalog/pg_inherits.h" #include "catalog/pg_rewrite.h" #include "catalog/storage.h" #include "commands/policy.h" @@ -412,13 +413,14 @@ DefineQueryRewrite(const char *rulename, * Are we converting a relation to a view? * * If so, check that the relation is empty because the storage for the - * relation is going to be deleted. Also insist that the rel not have - * any triggers, indexes, child tables, policies, or RLS enabled. - * (Note: these tests are too strict, because they will reject - * relations that once had such but don't anymore. But we don't - * really care, because this whole business of converting relations to - * views is just a kluge to allow dump/reload of views that - * participate in circular dependencies.) + * relation is going to be deleted. Also insist that the rel not be + * involved in partitioning, nor have any triggers, indexes, child or + * parent tables, RLS policies, or RLS enabled. (Note: some of these + * tests are too strict, because they will reject relations that once + * had such but don't anymore. But we don't really care, because this + * whole business of converting relations to views is just an obsolete + * kluge to allow dump/reload of views that participate in circular + * dependencies.) */ if (event_relation->rd_rel->relkind != RELKIND_VIEW && event_relation->rd_rel->relkind != RELKIND_MATVIEW) @@ -433,6 +435,9 @@ DefineQueryRewrite(const char *rulename, errmsg("cannot convert partitioned table \"%s\" to a view", RelationGetRelationName(event_relation)))); + /* only case left: */ + Assert(event_relation->rd_rel->relkind == RELKIND_RELATION); + if (event_relation->rd_rel->relispartition) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), @@ -470,6 +475,12 @@ DefineQueryRewrite(const char *rulename, errmsg("could not convert table \"%s\" to a view because it has child tables", RelationGetRelationName(event_relation)))); + if (has_superclass(RelationGetRelid(event_relation))) + ereport(ERROR, + (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("could not convert table \"%s\" to a view because it has parent tables", + RelationGetRelationName(event_relation)))); + if (event_relation->rd_rel->relrowsecurity) ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), diff --git a/src/backend/snowball/Makefile b/src/backend/snowball/Makefile index ad8482cdd1a71..50b9199910c5b 100644 --- a/src/backend/snowball/Makefile +++ b/src/backend/snowball/Makefile @@ -43,6 +43,7 @@ OBJS += \ stem_ISO_8859_2_romanian.o \ stem_KOI8_R_russian.o \ stem_UTF_8_arabic.o \ + stem_UTF_8_armenian.o \ stem_UTF_8_basque.o \ stem_UTF_8_catalan.o \ stem_UTF_8_danish.o \ @@ -64,10 +65,12 @@ OBJS += \ stem_UTF_8_portuguese.o \ stem_UTF_8_romanian.o \ stem_UTF_8_russian.o \ + stem_UTF_8_serbian.o \ stem_UTF_8_spanish.o \ stem_UTF_8_swedish.o \ stem_UTF_8_tamil.o \ - stem_UTF_8_turkish.o + stem_UTF_8_turkish.o \ + stem_UTF_8_yiddish.o # first column is language name and also name of dictionary for not-all-ASCII # words, second is name of dictionary for all-ASCII words @@ -75,6 +78,7 @@ OBJS += \ # must come after creation of that language LANGUAGES= \ arabic arabic \ + armenian armenian \ basque basque \ catalan catalan \ danish danish \ @@ -95,10 +99,12 @@ LANGUAGES= \ portuguese portuguese \ romanian romanian \ russian english \ + serbian serbian \ spanish spanish \ swedish swedish \ tamil tamil \ - turkish turkish + turkish turkish \ + yiddish yiddish SQLSCRIPT= snowball_create.sql diff --git a/src/backend/snowball/README b/src/backend/snowball/README index 6948c28b69f38..d83321bad439a 100644 --- a/src/backend/snowball/README +++ b/src/backend/snowball/README @@ -29,8 +29,8 @@ We choose to include the derived files in the PostgreSQL distribution because most installations will not have the Snowball compiler available. We are currently synced with the Snowball git commit -c70ed64f9d41c1032fba4e962b054f8e9d489a74 (tag v2.0.0) -of 2019-10-02. +4764395431c8f2a0b4fe18b816ab1fc966a45837 (tag v2.1.0) +of 2021-01-21. To update the PostgreSQL sources from a new Snowball version: @@ -59,7 +59,8 @@ do not require any changes. 4. Check whether any stemmer modules have been added or removed. If so, edit the OBJS list in Makefile, the list of #include's in dict_snowball.c, and the -stemmer_modules[] table in dict_snowball.c. You might also need to change +stemmer_modules[] table in dict_snowball.c, as well as the list in the +documentation in textsearch.sgml. You might also need to change the LANGUAGES list in Makefile and tsearch_config_languages in initdb.c. 5. The various stopword files in stopwords/ must be downloaded diff --git a/src/backend/snowball/dict_snowball.c b/src/backend/snowball/dict_snowball.c index 044e20cef85c3..8c25f3ebbf2f3 100644 --- a/src/backend/snowball/dict_snowball.c +++ b/src/backend/snowball/dict_snowball.c @@ -46,6 +46,7 @@ #include "snowball/libstemmer/stem_ISO_8859_2_romanian.h" #include "snowball/libstemmer/stem_KOI8_R_russian.h" #include "snowball/libstemmer/stem_UTF_8_arabic.h" +#include "snowball/libstemmer/stem_UTF_8_armenian.h" #include "snowball/libstemmer/stem_UTF_8_basque.h" #include "snowball/libstemmer/stem_UTF_8_catalan.h" #include "snowball/libstemmer/stem_UTF_8_danish.h" @@ -67,10 +68,12 @@ #include "snowball/libstemmer/stem_UTF_8_portuguese.h" #include "snowball/libstemmer/stem_UTF_8_romanian.h" #include "snowball/libstemmer/stem_UTF_8_russian.h" +#include "snowball/libstemmer/stem_UTF_8_serbian.h" #include "snowball/libstemmer/stem_UTF_8_spanish.h" #include "snowball/libstemmer/stem_UTF_8_swedish.h" #include "snowball/libstemmer/stem_UTF_8_tamil.h" #include "snowball/libstemmer/stem_UTF_8_turkish.h" +#include "snowball/libstemmer/stem_UTF_8_yiddish.h" PG_MODULE_MAGIC; @@ -117,6 +120,7 @@ static const stemmer_module stemmer_modules[] = STEMMER_MODULE(romanian, PG_LATIN2, ISO_8859_2), STEMMER_MODULE(russian, PG_KOI8R, KOI8_R), STEMMER_MODULE(arabic, PG_UTF8, UTF_8), + STEMMER_MODULE(armenian, PG_UTF8, UTF_8), STEMMER_MODULE(basque, PG_UTF8, UTF_8), STEMMER_MODULE(catalan, PG_UTF8, UTF_8), STEMMER_MODULE(danish, PG_UTF8, UTF_8), @@ -138,10 +142,12 @@ static const stemmer_module stemmer_modules[] = STEMMER_MODULE(portuguese, PG_UTF8, UTF_8), STEMMER_MODULE(romanian, PG_UTF8, UTF_8), STEMMER_MODULE(russian, PG_UTF8, UTF_8), + STEMMER_MODULE(serbian, PG_UTF8, UTF_8), STEMMER_MODULE(spanish, PG_UTF8, UTF_8), STEMMER_MODULE(swedish, PG_UTF8, UTF_8), STEMMER_MODULE(tamil, PG_UTF8, UTF_8), STEMMER_MODULE(turkish, PG_UTF8, UTF_8), + STEMMER_MODULE(yiddish, PG_UTF8, UTF_8), /* * Stemmer with PG_SQL_ASCII encoding should be valid for any server diff --git a/src/backend/snowball/libstemmer/api.c b/src/backend/snowball/libstemmer/api.c index 8dd32df3d4298..375938e6d13fd 100644 --- a/src/backend/snowball/libstemmer/api.c +++ b/src/backend/snowball/libstemmer/api.c @@ -1,6 +1,6 @@ #include "header.h" -extern struct SN_env * SN_create_env(int S_size, int I_size, int B_size) +extern struct SN_env * SN_create_env(int S_size, int I_size) { struct SN_env * z = (struct SN_env *) calloc(1, sizeof(struct SN_env)); if (z == NULL) return NULL; @@ -25,12 +25,6 @@ extern struct SN_env * SN_create_env(int S_size, int I_size, int B_size) if (z->I == NULL) goto error; } - if (B_size) - { - z->B = (unsigned char *) calloc(B_size, sizeof(unsigned char)); - if (z->B == NULL) goto error; - } - return z; error: SN_close_env(z, S_size); @@ -50,7 +44,6 @@ extern void SN_close_env(struct SN_env * z, int S_size) free(z->S); } free(z->I); - free(z->B); if (z->p) lose_s(z->p); free(z); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_basque.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_basque.c index 7f080d8e84cef..994ac234bb232 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_basque.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_basque.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -140,115 +140,115 @@ static const symbol s_0_108[5] = { 'k', 'a', 'i', 't', 'z' }; static const struct among a_0[109] = { -/* 0 */ { 4, s_0_0, -1, 1, 0}, -/* 1 */ { 5, s_0_1, 0, 1, 0}, -/* 2 */ { 5, s_0_2, 0, 1, 0}, -/* 3 */ { 5, s_0_3, 0, 1, 0}, -/* 4 */ { 6, s_0_4, -1, 1, 0}, -/* 5 */ { 5, s_0_5, -1, 1, 0}, -/* 6 */ { 6, s_0_6, -1, 1, 0}, -/* 7 */ { 7, s_0_7, -1, 1, 0}, -/* 8 */ { 5, s_0_8, -1, 1, 0}, -/* 9 */ { 5, s_0_9, -1, 1, 0}, -/* 10 */ { 5, s_0_10, -1, 1, 0}, -/* 11 */ { 4, s_0_11, -1, 1, 0}, -/* 12 */ { 5, s_0_12, -1, 1, 0}, -/* 13 */ { 6, s_0_13, 12, 1, 0}, -/* 14 */ { 5, s_0_14, -1, 1, 0}, -/* 15 */ { 6, s_0_15, -1, 2, 0}, -/* 16 */ { 6, s_0_16, -1, 1, 0}, -/* 17 */ { 2, s_0_17, -1, 1, 0}, -/* 18 */ { 5, s_0_18, 17, 1, 0}, -/* 19 */ { 2, s_0_19, -1, 1, 0}, -/* 20 */ { 4, s_0_20, -1, 1, 0}, -/* 21 */ { 4, s_0_21, -1, 1, 0}, -/* 22 */ { 4, s_0_22, -1, 1, 0}, -/* 23 */ { 5, s_0_23, -1, 1, 0}, -/* 24 */ { 6, s_0_24, 23, 1, 0}, -/* 25 */ { 4, s_0_25, -1, 1, 0}, -/* 26 */ { 4, s_0_26, -1, 1, 0}, -/* 27 */ { 6, s_0_27, -1, 1, 0}, -/* 28 */ { 3, s_0_28, -1, 1, 0}, -/* 29 */ { 4, s_0_29, 28, 1, 0}, -/* 30 */ { 7, s_0_30, 29, 4, 0}, -/* 31 */ { 4, s_0_31, 28, 1, 0}, -/* 32 */ { 4, s_0_32, 28, 1, 0}, -/* 33 */ { 4, s_0_33, -1, 1, 0}, -/* 34 */ { 5, s_0_34, 33, 1, 0}, -/* 35 */ { 4, s_0_35, -1, 1, 0}, -/* 36 */ { 4, s_0_36, -1, 1, 0}, -/* 37 */ { 4, s_0_37, -1, 1, 0}, -/* 38 */ { 4, s_0_38, -1, 1, 0}, -/* 39 */ { 3, s_0_39, -1, 1, 0}, -/* 40 */ { 4, s_0_40, 39, 1, 0}, -/* 41 */ { 6, s_0_41, -1, 1, 0}, -/* 42 */ { 3, s_0_42, -1, 1, 0}, -/* 43 */ { 6, s_0_43, 42, 1, 0}, -/* 44 */ { 3, s_0_44, -1, 2, 0}, -/* 45 */ { 6, s_0_45, 44, 1, 0}, -/* 46 */ { 6, s_0_46, 44, 1, 0}, -/* 47 */ { 6, s_0_47, 44, 1, 0}, -/* 48 */ { 3, s_0_48, -1, 1, 0}, -/* 49 */ { 4, s_0_49, 48, 1, 0}, -/* 50 */ { 4, s_0_50, 48, 1, 0}, -/* 51 */ { 4, s_0_51, 48, 1, 0}, -/* 52 */ { 5, s_0_52, -1, 1, 0}, -/* 53 */ { 5, s_0_53, -1, 1, 0}, -/* 54 */ { 5, s_0_54, -1, 1, 0}, -/* 55 */ { 2, s_0_55, -1, 1, 0}, -/* 56 */ { 4, s_0_56, 55, 1, 0}, -/* 57 */ { 5, s_0_57, 55, 1, 0}, -/* 58 */ { 6, s_0_58, 55, 1, 0}, -/* 59 */ { 4, s_0_59, -1, 1, 0}, -/* 60 */ { 4, s_0_60, -1, 1, 0}, -/* 61 */ { 3, s_0_61, -1, 1, 0}, -/* 62 */ { 4, s_0_62, 61, 1, 0}, -/* 63 */ { 3, s_0_63, -1, 1, 0}, -/* 64 */ { 4, s_0_64, -1, 1, 0}, -/* 65 */ { 5, s_0_65, 64, 1, 0}, -/* 66 */ { 2, s_0_66, -1, 1, 0}, -/* 67 */ { 3, s_0_67, -1, 1, 0}, -/* 68 */ { 4, s_0_68, 67, 1, 0}, -/* 69 */ { 4, s_0_69, 67, 1, 0}, -/* 70 */ { 4, s_0_70, 67, 1, 0}, -/* 71 */ { 5, s_0_71, 70, 1, 0}, -/* 72 */ { 5, s_0_72, -1, 2, 0}, -/* 73 */ { 5, s_0_73, -1, 1, 0}, -/* 74 */ { 5, s_0_74, -1, 1, 0}, -/* 75 */ { 6, s_0_75, 74, 1, 0}, -/* 76 */ { 2, s_0_76, -1, 1, 0}, -/* 77 */ { 3, s_0_77, 76, 1, 0}, -/* 78 */ { 4, s_0_78, 77, 1, 0}, -/* 79 */ { 3, s_0_79, 76, 1, 0}, -/* 80 */ { 4, s_0_80, 76, 1, 0}, -/* 81 */ { 7, s_0_81, -1, 3, 0}, -/* 82 */ { 3, s_0_82, -1, 1, 0}, -/* 83 */ { 3, s_0_83, -1, 1, 0}, -/* 84 */ { 3, s_0_84, -1, 1, 0}, -/* 85 */ { 5, s_0_85, 84, 1, 0}, -/* 86 */ { 4, s_0_86, -1, 1, 0}, -/* 87 */ { 5, s_0_87, 86, 1, 0}, -/* 88 */ { 3, s_0_88, -1, 1, 0}, -/* 89 */ { 5, s_0_89, -1, 1, 0}, -/* 90 */ { 2, s_0_90, -1, 1, 0}, -/* 91 */ { 3, s_0_91, 90, 1, 0}, -/* 92 */ { 3, s_0_92, -1, 1, 0}, -/* 93 */ { 4, s_0_93, -1, 1, 0}, -/* 94 */ { 2, s_0_94, -1, 1, 0}, -/* 95 */ { 3, s_0_95, 94, 1, 0}, -/* 96 */ { 4, s_0_96, -1, 1, 0}, -/* 97 */ { 2, s_0_97, -1, 1, 0}, -/* 98 */ { 5, s_0_98, -1, 1, 0}, -/* 99 */ { 2, s_0_99, -1, 1, 0}, -/*100 */ { 3, s_0_100, 99, 1, 0}, -/*101 */ { 6, s_0_101, 100, 1, 0}, -/*102 */ { 4, s_0_102, 100, 1, 0}, -/*103 */ { 6, s_0_103, 99, 5, 0}, -/*104 */ { 2, s_0_104, -1, 1, 0}, -/*105 */ { 5, s_0_105, 104, 1, 0}, -/*106 */ { 4, s_0_106, 104, 1, 0}, -/*107 */ { 5, s_0_107, -1, 1, 0}, -/*108 */ { 5, s_0_108, -1, 1, 0} +{ 4, s_0_0, -1, 1, 0}, +{ 5, s_0_1, 0, 1, 0}, +{ 5, s_0_2, 0, 1, 0}, +{ 5, s_0_3, 0, 1, 0}, +{ 6, s_0_4, -1, 1, 0}, +{ 5, s_0_5, -1, 1, 0}, +{ 6, s_0_6, -1, 1, 0}, +{ 7, s_0_7, -1, 1, 0}, +{ 5, s_0_8, -1, 1, 0}, +{ 5, s_0_9, -1, 1, 0}, +{ 5, s_0_10, -1, 1, 0}, +{ 4, s_0_11, -1, 1, 0}, +{ 5, s_0_12, -1, 1, 0}, +{ 6, s_0_13, 12, 1, 0}, +{ 5, s_0_14, -1, 1, 0}, +{ 6, s_0_15, -1, 2, 0}, +{ 6, s_0_16, -1, 1, 0}, +{ 2, s_0_17, -1, 1, 0}, +{ 5, s_0_18, 17, 1, 0}, +{ 2, s_0_19, -1, 1, 0}, +{ 4, s_0_20, -1, 1, 0}, +{ 4, s_0_21, -1, 1, 0}, +{ 4, s_0_22, -1, 1, 0}, +{ 5, s_0_23, -1, 1, 0}, +{ 6, s_0_24, 23, 1, 0}, +{ 4, s_0_25, -1, 1, 0}, +{ 4, s_0_26, -1, 1, 0}, +{ 6, s_0_27, -1, 1, 0}, +{ 3, s_0_28, -1, 1, 0}, +{ 4, s_0_29, 28, 1, 0}, +{ 7, s_0_30, 29, 4, 0}, +{ 4, s_0_31, 28, 1, 0}, +{ 4, s_0_32, 28, 1, 0}, +{ 4, s_0_33, -1, 1, 0}, +{ 5, s_0_34, 33, 1, 0}, +{ 4, s_0_35, -1, 1, 0}, +{ 4, s_0_36, -1, 1, 0}, +{ 4, s_0_37, -1, 1, 0}, +{ 4, s_0_38, -1, 1, 0}, +{ 3, s_0_39, -1, 1, 0}, +{ 4, s_0_40, 39, 1, 0}, +{ 6, s_0_41, -1, 1, 0}, +{ 3, s_0_42, -1, 1, 0}, +{ 6, s_0_43, 42, 1, 0}, +{ 3, s_0_44, -1, 2, 0}, +{ 6, s_0_45, 44, 1, 0}, +{ 6, s_0_46, 44, 1, 0}, +{ 6, s_0_47, 44, 1, 0}, +{ 3, s_0_48, -1, 1, 0}, +{ 4, s_0_49, 48, 1, 0}, +{ 4, s_0_50, 48, 1, 0}, +{ 4, s_0_51, 48, 1, 0}, +{ 5, s_0_52, -1, 1, 0}, +{ 5, s_0_53, -1, 1, 0}, +{ 5, s_0_54, -1, 1, 0}, +{ 2, s_0_55, -1, 1, 0}, +{ 4, s_0_56, 55, 1, 0}, +{ 5, s_0_57, 55, 1, 0}, +{ 6, s_0_58, 55, 1, 0}, +{ 4, s_0_59, -1, 1, 0}, +{ 4, s_0_60, -1, 1, 0}, +{ 3, s_0_61, -1, 1, 0}, +{ 4, s_0_62, 61, 1, 0}, +{ 3, s_0_63, -1, 1, 0}, +{ 4, s_0_64, -1, 1, 0}, +{ 5, s_0_65, 64, 1, 0}, +{ 2, s_0_66, -1, 1, 0}, +{ 3, s_0_67, -1, 1, 0}, +{ 4, s_0_68, 67, 1, 0}, +{ 4, s_0_69, 67, 1, 0}, +{ 4, s_0_70, 67, 1, 0}, +{ 5, s_0_71, 70, 1, 0}, +{ 5, s_0_72, -1, 2, 0}, +{ 5, s_0_73, -1, 1, 0}, +{ 5, s_0_74, -1, 1, 0}, +{ 6, s_0_75, 74, 1, 0}, +{ 2, s_0_76, -1, 1, 0}, +{ 3, s_0_77, 76, 1, 0}, +{ 4, s_0_78, 77, 1, 0}, +{ 3, s_0_79, 76, 1, 0}, +{ 4, s_0_80, 76, 1, 0}, +{ 7, s_0_81, -1, 3, 0}, +{ 3, s_0_82, -1, 1, 0}, +{ 3, s_0_83, -1, 1, 0}, +{ 3, s_0_84, -1, 1, 0}, +{ 5, s_0_85, 84, 1, 0}, +{ 4, s_0_86, -1, 1, 0}, +{ 5, s_0_87, 86, 1, 0}, +{ 3, s_0_88, -1, 1, 0}, +{ 5, s_0_89, -1, 1, 0}, +{ 2, s_0_90, -1, 1, 0}, +{ 3, s_0_91, 90, 1, 0}, +{ 3, s_0_92, -1, 1, 0}, +{ 4, s_0_93, -1, 1, 0}, +{ 2, s_0_94, -1, 1, 0}, +{ 3, s_0_95, 94, 1, 0}, +{ 4, s_0_96, -1, 1, 0}, +{ 2, s_0_97, -1, 1, 0}, +{ 5, s_0_98, -1, 1, 0}, +{ 2, s_0_99, -1, 1, 0}, +{ 3, s_0_100, 99, 1, 0}, +{ 6, s_0_101, 100, 1, 0}, +{ 4, s_0_102, 100, 1, 0}, +{ 6, s_0_103, 99, 5, 0}, +{ 2, s_0_104, -1, 1, 0}, +{ 5, s_0_105, 104, 1, 0}, +{ 4, s_0_106, 104, 1, 0}, +{ 5, s_0_107, -1, 1, 0}, +{ 5, s_0_108, -1, 1, 0} }; static const symbol s_1_0[3] = { 'a', 'd', 'a' }; @@ -549,301 +549,301 @@ static const symbol s_1_294[5] = { 'k', 'o', 'i', 't', 'z' }; static const struct among a_1[295] = { -/* 0 */ { 3, s_1_0, -1, 1, 0}, -/* 1 */ { 4, s_1_1, 0, 1, 0}, -/* 2 */ { 4, s_1_2, -1, 1, 0}, -/* 3 */ { 5, s_1_3, -1, 1, 0}, -/* 4 */ { 5, s_1_4, -1, 1, 0}, -/* 5 */ { 5, s_1_5, -1, 1, 0}, -/* 6 */ { 5, s_1_6, -1, 1, 0}, -/* 7 */ { 6, s_1_7, 6, 1, 0}, -/* 8 */ { 6, s_1_8, 6, 1, 0}, -/* 9 */ { 5, s_1_9, -1, 1, 0}, -/* 10 */ { 5, s_1_10, -1, 1, 0}, -/* 11 */ { 6, s_1_11, 10, 1, 0}, -/* 12 */ { 5, s_1_12, -1, 1, 0}, -/* 13 */ { 4, s_1_13, -1, 1, 0}, -/* 14 */ { 5, s_1_14, -1, 1, 0}, -/* 15 */ { 3, s_1_15, -1, 1, 0}, -/* 16 */ { 4, s_1_16, 15, 1, 0}, -/* 17 */ { 6, s_1_17, 15, 1, 0}, -/* 18 */ { 4, s_1_18, 15, 1, 0}, -/* 19 */ { 5, s_1_19, 18, 1, 0}, -/* 20 */ { 3, s_1_20, -1, 1, 0}, -/* 21 */ { 6, s_1_21, -1, 1, 0}, -/* 22 */ { 3, s_1_22, -1, 1, 0}, -/* 23 */ { 5, s_1_23, 22, 1, 0}, -/* 24 */ { 5, s_1_24, 22, 1, 0}, -/* 25 */ { 5, s_1_25, 22, 1, 0}, -/* 26 */ { 5, s_1_26, -1, 1, 0}, -/* 27 */ { 2, s_1_27, -1, 1, 0}, -/* 28 */ { 4, s_1_28, 27, 1, 0}, -/* 29 */ { 4, s_1_29, -1, 1, 0}, -/* 30 */ { 5, s_1_30, -1, 1, 0}, -/* 31 */ { 6, s_1_31, 30, 1, 0}, -/* 32 */ { 6, s_1_32, -1, 1, 0}, -/* 33 */ { 6, s_1_33, -1, 1, 0}, -/* 34 */ { 4, s_1_34, -1, 1, 0}, -/* 35 */ { 4, s_1_35, -1, 1, 0}, -/* 36 */ { 5, s_1_36, 35, 1, 0}, -/* 37 */ { 5, s_1_37, 35, 1, 0}, -/* 38 */ { 5, s_1_38, -1, 1, 0}, -/* 39 */ { 4, s_1_39, -1, 1, 0}, -/* 40 */ { 3, s_1_40, -1, 1, 0}, -/* 41 */ { 5, s_1_41, 40, 1, 0}, -/* 42 */ { 3, s_1_42, -1, 1, 0}, -/* 43 */ { 4, s_1_43, 42, 1, 0}, -/* 44 */ { 4, s_1_44, -1, 1, 0}, -/* 45 */ { 5, s_1_45, 44, 1, 0}, -/* 46 */ { 5, s_1_46, 44, 1, 0}, -/* 47 */ { 5, s_1_47, 44, 1, 0}, -/* 48 */ { 4, s_1_48, -1, 1, 0}, -/* 49 */ { 5, s_1_49, 48, 1, 0}, -/* 50 */ { 5, s_1_50, 48, 1, 0}, -/* 51 */ { 6, s_1_51, -1, 2, 0}, -/* 52 */ { 6, s_1_52, -1, 1, 0}, -/* 53 */ { 6, s_1_53, -1, 1, 0}, -/* 54 */ { 5, s_1_54, -1, 1, 0}, -/* 55 */ { 4, s_1_55, -1, 1, 0}, -/* 56 */ { 3, s_1_56, -1, 1, 0}, -/* 57 */ { 4, s_1_57, -1, 1, 0}, -/* 58 */ { 5, s_1_58, -1, 1, 0}, -/* 59 */ { 6, s_1_59, -1, 1, 0}, -/* 60 */ { 2, s_1_60, -1, 1, 0}, -/* 61 */ { 4, s_1_61, 60, 3, 0}, -/* 62 */ { 5, s_1_62, 60, 10, 0}, -/* 63 */ { 3, s_1_63, 60, 1, 0}, -/* 64 */ { 3, s_1_64, 60, 1, 0}, -/* 65 */ { 3, s_1_65, 60, 1, 0}, -/* 66 */ { 6, s_1_66, -1, 1, 0}, -/* 67 */ { 4, s_1_67, -1, 1, 0}, -/* 68 */ { 5, s_1_68, -1, 1, 0}, -/* 69 */ { 5, s_1_69, -1, 1, 0}, -/* 70 */ { 4, s_1_70, -1, 1, 0}, -/* 71 */ { 3, s_1_71, -1, 1, 0}, -/* 72 */ { 2, s_1_72, -1, 1, 0}, -/* 73 */ { 4, s_1_73, 72, 1, 0}, -/* 74 */ { 3, s_1_74, 72, 1, 0}, -/* 75 */ { 7, s_1_75, 74, 1, 0}, -/* 76 */ { 7, s_1_76, 74, 1, 0}, -/* 77 */ { 6, s_1_77, 74, 1, 0}, -/* 78 */ { 5, s_1_78, 72, 1, 0}, -/* 79 */ { 6, s_1_79, 78, 1, 0}, -/* 80 */ { 4, s_1_80, 72, 1, 0}, -/* 81 */ { 4, s_1_81, 72, 1, 0}, -/* 82 */ { 5, s_1_82, 72, 1, 0}, -/* 83 */ { 3, s_1_83, 72, 1, 0}, -/* 84 */ { 4, s_1_84, 83, 1, 0}, -/* 85 */ { 5, s_1_85, 83, 1, 0}, -/* 86 */ { 6, s_1_86, 85, 1, 0}, -/* 87 */ { 5, s_1_87, -1, 1, 0}, -/* 88 */ { 6, s_1_88, 87, 1, 0}, -/* 89 */ { 4, s_1_89, -1, 1, 0}, -/* 90 */ { 4, s_1_90, -1, 1, 0}, -/* 91 */ { 3, s_1_91, -1, 1, 0}, -/* 92 */ { 5, s_1_92, 91, 1, 0}, -/* 93 */ { 4, s_1_93, 91, 1, 0}, -/* 94 */ { 3, s_1_94, -1, 1, 0}, -/* 95 */ { 5, s_1_95, 94, 1, 0}, -/* 96 */ { 4, s_1_96, -1, 1, 0}, -/* 97 */ { 5, s_1_97, 96, 1, 0}, -/* 98 */ { 5, s_1_98, 96, 1, 0}, -/* 99 */ { 4, s_1_99, -1, 1, 0}, -/*100 */ { 4, s_1_100, -1, 1, 0}, -/*101 */ { 4, s_1_101, -1, 1, 0}, -/*102 */ { 3, s_1_102, -1, 1, 0}, -/*103 */ { 4, s_1_103, 102, 1, 0}, -/*104 */ { 4, s_1_104, 102, 1, 0}, -/*105 */ { 4, s_1_105, -1, 1, 0}, -/*106 */ { 4, s_1_106, -1, 1, 0}, -/*107 */ { 3, s_1_107, -1, 1, 0}, -/*108 */ { 2, s_1_108, -1, 1, 0}, -/*109 */ { 3, s_1_109, 108, 1, 0}, -/*110 */ { 4, s_1_110, 109, 1, 0}, -/*111 */ { 5, s_1_111, 109, 1, 0}, -/*112 */ { 5, s_1_112, 109, 1, 0}, -/*113 */ { 4, s_1_113, 109, 1, 0}, -/*114 */ { 5, s_1_114, 113, 1, 0}, -/*115 */ { 5, s_1_115, 109, 1, 0}, -/*116 */ { 4, s_1_116, 108, 1, 0}, -/*117 */ { 4, s_1_117, 108, 1, 0}, -/*118 */ { 4, s_1_118, 108, 1, 0}, -/*119 */ { 3, s_1_119, 108, 2, 0}, -/*120 */ { 6, s_1_120, 108, 1, 0}, -/*121 */ { 5, s_1_121, 108, 1, 0}, -/*122 */ { 3, s_1_122, 108, 1, 0}, -/*123 */ { 2, s_1_123, -1, 1, 0}, -/*124 */ { 3, s_1_124, 123, 1, 0}, -/*125 */ { 2, s_1_125, -1, 1, 0}, -/*126 */ { 3, s_1_126, 125, 1, 0}, -/*127 */ { 4, s_1_127, 126, 1, 0}, -/*128 */ { 3, s_1_128, 125, 1, 0}, -/*129 */ { 3, s_1_129, -1, 1, 0}, -/*130 */ { 6, s_1_130, 129, 1, 0}, -/*131 */ { 5, s_1_131, 129, 1, 0}, -/*132 */ { 5, s_1_132, -1, 1, 0}, -/*133 */ { 5, s_1_133, -1, 1, 0}, -/*134 */ { 5, s_1_134, -1, 1, 0}, -/*135 */ { 4, s_1_135, -1, 1, 0}, -/*136 */ { 3, s_1_136, -1, 1, 0}, -/*137 */ { 6, s_1_137, 136, 1, 0}, -/*138 */ { 5, s_1_138, 136, 1, 0}, -/*139 */ { 4, s_1_139, -1, 1, 0}, -/*140 */ { 3, s_1_140, -1, 1, 0}, -/*141 */ { 4, s_1_141, 140, 1, 0}, -/*142 */ { 2, s_1_142, -1, 1, 0}, -/*143 */ { 3, s_1_143, 142, 1, 0}, -/*144 */ { 5, s_1_144, 142, 1, 0}, -/*145 */ { 3, s_1_145, 142, 2, 0}, -/*146 */ { 6, s_1_146, 145, 1, 0}, -/*147 */ { 5, s_1_147, 145, 1, 0}, -/*148 */ { 6, s_1_148, 145, 1, 0}, -/*149 */ { 6, s_1_149, 145, 1, 0}, -/*150 */ { 6, s_1_150, 145, 1, 0}, -/*151 */ { 4, s_1_151, -1, 1, 0}, -/*152 */ { 4, s_1_152, -1, 1, 0}, -/*153 */ { 4, s_1_153, -1, 1, 0}, -/*154 */ { 4, s_1_154, -1, 1, 0}, -/*155 */ { 5, s_1_155, 154, 1, 0}, -/*156 */ { 5, s_1_156, 154, 1, 0}, -/*157 */ { 4, s_1_157, -1, 1, 0}, -/*158 */ { 2, s_1_158, -1, 1, 0}, -/*159 */ { 4, s_1_159, -1, 1, 0}, -/*160 */ { 5, s_1_160, 159, 1, 0}, -/*161 */ { 4, s_1_161, -1, 1, 0}, -/*162 */ { 3, s_1_162, -1, 1, 0}, -/*163 */ { 4, s_1_163, -1, 1, 0}, -/*164 */ { 2, s_1_164, -1, 1, 0}, -/*165 */ { 5, s_1_165, 164, 1, 0}, -/*166 */ { 3, s_1_166, 164, 1, 0}, -/*167 */ { 4, s_1_167, 166, 1, 0}, -/*168 */ { 2, s_1_168, -1, 1, 0}, -/*169 */ { 5, s_1_169, -1, 1, 0}, -/*170 */ { 2, s_1_170, -1, 1, 0}, -/*171 */ { 4, s_1_171, 170, 1, 0}, -/*172 */ { 4, s_1_172, 170, 1, 0}, -/*173 */ { 4, s_1_173, 170, 1, 0}, -/*174 */ { 4, s_1_174, -1, 1, 0}, -/*175 */ { 3, s_1_175, -1, 1, 0}, -/*176 */ { 2, s_1_176, -1, 1, 0}, -/*177 */ { 4, s_1_177, 176, 1, 0}, -/*178 */ { 5, s_1_178, 177, 1, 0}, -/*179 */ { 5, s_1_179, 176, 8, 0}, -/*180 */ { 5, s_1_180, 176, 1, 0}, -/*181 */ { 5, s_1_181, 176, 1, 0}, -/*182 */ { 3, s_1_182, -1, 1, 0}, -/*183 */ { 3, s_1_183, -1, 1, 0}, -/*184 */ { 4, s_1_184, 183, 1, 0}, -/*185 */ { 4, s_1_185, 183, 1, 0}, -/*186 */ { 4, s_1_186, -1, 1, 0}, -/*187 */ { 3, s_1_187, -1, 1, 0}, -/*188 */ { 2, s_1_188, -1, 1, 0}, -/*189 */ { 4, s_1_189, 188, 1, 0}, -/*190 */ { 2, s_1_190, -1, 1, 0}, -/*191 */ { 3, s_1_191, 190, 1, 0}, -/*192 */ { 3, s_1_192, 190, 1, 0}, -/*193 */ { 3, s_1_193, -1, 1, 0}, -/*194 */ { 4, s_1_194, 193, 1, 0}, -/*195 */ { 4, s_1_195, 193, 1, 0}, -/*196 */ { 4, s_1_196, 193, 1, 0}, -/*197 */ { 5, s_1_197, -1, 2, 0}, -/*198 */ { 5, s_1_198, -1, 1, 0}, -/*199 */ { 5, s_1_199, -1, 1, 0}, -/*200 */ { 4, s_1_200, -1, 1, 0}, -/*201 */ { 3, s_1_201, -1, 1, 0}, -/*202 */ { 2, s_1_202, -1, 1, 0}, -/*203 */ { 5, s_1_203, -1, 1, 0}, -/*204 */ { 2, s_1_204, -1, 1, 0}, -/*205 */ { 2, s_1_205, -1, 1, 0}, -/*206 */ { 2, s_1_206, -1, 1, 0}, -/*207 */ { 5, s_1_207, -1, 1, 0}, -/*208 */ { 5, s_1_208, -1, 1, 0}, -/*209 */ { 3, s_1_209, -1, 1, 0}, -/*210 */ { 4, s_1_210, 209, 1, 0}, -/*211 */ { 3, s_1_211, -1, 1, 0}, -/*212 */ { 3, s_1_212, -1, 1, 0}, -/*213 */ { 4, s_1_213, 212, 1, 0}, -/*214 */ { 2, s_1_214, -1, 4, 0}, -/*215 */ { 3, s_1_215, 214, 2, 0}, -/*216 */ { 6, s_1_216, 215, 1, 0}, -/*217 */ { 6, s_1_217, 215, 1, 0}, -/*218 */ { 5, s_1_218, 215, 1, 0}, -/*219 */ { 3, s_1_219, 214, 4, 0}, -/*220 */ { 4, s_1_220, 214, 4, 0}, -/*221 */ { 4, s_1_221, -1, 1, 0}, -/*222 */ { 5, s_1_222, 221, 1, 0}, -/*223 */ { 3, s_1_223, -1, 1, 0}, -/*224 */ { 3, s_1_224, -1, 1, 0}, -/*225 */ { 3, s_1_225, -1, 1, 0}, -/*226 */ { 4, s_1_226, -1, 1, 0}, -/*227 */ { 5, s_1_227, 226, 1, 0}, -/*228 */ { 5, s_1_228, -1, 1, 0}, -/*229 */ { 4, s_1_229, -1, 1, 0}, -/*230 */ { 5, s_1_230, 229, 1, 0}, -/*231 */ { 2, s_1_231, -1, 1, 0}, -/*232 */ { 3, s_1_232, 231, 1, 0}, -/*233 */ { 3, s_1_233, -1, 1, 0}, -/*234 */ { 2, s_1_234, -1, 1, 0}, -/*235 */ { 5, s_1_235, 234, 5, 0}, -/*236 */ { 4, s_1_236, 234, 1, 0}, -/*237 */ { 5, s_1_237, 236, 1, 0}, -/*238 */ { 3, s_1_238, 234, 1, 0}, -/*239 */ { 6, s_1_239, 234, 1, 0}, -/*240 */ { 3, s_1_240, 234, 1, 0}, -/*241 */ { 4, s_1_241, 234, 1, 0}, -/*242 */ { 8, s_1_242, 241, 6, 0}, -/*243 */ { 3, s_1_243, 234, 1, 0}, -/*244 */ { 2, s_1_244, -1, 1, 0}, -/*245 */ { 4, s_1_245, 244, 1, 0}, -/*246 */ { 2, s_1_246, -1, 1, 0}, -/*247 */ { 3, s_1_247, 246, 1, 0}, -/*248 */ { 5, s_1_248, 247, 9, 0}, -/*249 */ { 4, s_1_249, 247, 1, 0}, -/*250 */ { 4, s_1_250, 247, 1, 0}, -/*251 */ { 3, s_1_251, 246, 1, 0}, -/*252 */ { 4, s_1_252, 246, 1, 0}, -/*253 */ { 3, s_1_253, 246, 1, 0}, -/*254 */ { 3, s_1_254, -1, 1, 0}, -/*255 */ { 2, s_1_255, -1, 1, 0}, -/*256 */ { 3, s_1_256, 255, 1, 0}, -/*257 */ { 3, s_1_257, 255, 1, 0}, -/*258 */ { 3, s_1_258, -1, 1, 0}, -/*259 */ { 3, s_1_259, -1, 1, 0}, -/*260 */ { 6, s_1_260, 259, 1, 0}, -/*261 */ { 2, s_1_261, -1, 1, 0}, -/*262 */ { 2, s_1_262, -1, 1, 0}, -/*263 */ { 2, s_1_263, -1, 1, 0}, -/*264 */ { 3, s_1_264, 263, 1, 0}, -/*265 */ { 5, s_1_265, 263, 1, 0}, -/*266 */ { 5, s_1_266, 263, 7, 0}, -/*267 */ { 4, s_1_267, 263, 1, 0}, -/*268 */ { 4, s_1_268, 263, 1, 0}, -/*269 */ { 3, s_1_269, 263, 1, 0}, -/*270 */ { 4, s_1_270, 263, 1, 0}, -/*271 */ { 2, s_1_271, -1, 2, 0}, -/*272 */ { 3, s_1_272, 271, 1, 0}, -/*273 */ { 2, s_1_273, -1, 1, 0}, -/*274 */ { 3, s_1_274, -1, 1, 0}, -/*275 */ { 2, s_1_275, -1, 1, 0}, -/*276 */ { 5, s_1_276, 275, 1, 0}, -/*277 */ { 4, s_1_277, 275, 1, 0}, -/*278 */ { 4, s_1_278, -1, 1, 0}, -/*279 */ { 4, s_1_279, -1, 2, 0}, -/*280 */ { 4, s_1_280, -1, 1, 0}, -/*281 */ { 3, s_1_281, -1, 1, 0}, -/*282 */ { 2, s_1_282, -1, 1, 0}, -/*283 */ { 4, s_1_283, 282, 4, 0}, -/*284 */ { 5, s_1_284, 282, 1, 0}, -/*285 */ { 4, s_1_285, 282, 1, 0}, -/*286 */ { 3, s_1_286, -1, 1, 0}, -/*287 */ { 2, s_1_287, -1, 1, 0}, -/*288 */ { 3, s_1_288, 287, 1, 0}, -/*289 */ { 6, s_1_289, 288, 1, 0}, -/*290 */ { 1, s_1_290, -1, 1, 0}, -/*291 */ { 2, s_1_291, 290, 1, 0}, -/*292 */ { 4, s_1_292, 290, 1, 0}, -/*293 */ { 2, s_1_293, 290, 1, 0}, -/*294 */ { 5, s_1_294, 293, 1, 0} +{ 3, s_1_0, -1, 1, 0}, +{ 4, s_1_1, 0, 1, 0}, +{ 4, s_1_2, -1, 1, 0}, +{ 5, s_1_3, -1, 1, 0}, +{ 5, s_1_4, -1, 1, 0}, +{ 5, s_1_5, -1, 1, 0}, +{ 5, s_1_6, -1, 1, 0}, +{ 6, s_1_7, 6, 1, 0}, +{ 6, s_1_8, 6, 1, 0}, +{ 5, s_1_9, -1, 1, 0}, +{ 5, s_1_10, -1, 1, 0}, +{ 6, s_1_11, 10, 1, 0}, +{ 5, s_1_12, -1, 1, 0}, +{ 4, s_1_13, -1, 1, 0}, +{ 5, s_1_14, -1, 1, 0}, +{ 3, s_1_15, -1, 1, 0}, +{ 4, s_1_16, 15, 1, 0}, +{ 6, s_1_17, 15, 1, 0}, +{ 4, s_1_18, 15, 1, 0}, +{ 5, s_1_19, 18, 1, 0}, +{ 3, s_1_20, -1, 1, 0}, +{ 6, s_1_21, -1, 1, 0}, +{ 3, s_1_22, -1, 1, 0}, +{ 5, s_1_23, 22, 1, 0}, +{ 5, s_1_24, 22, 1, 0}, +{ 5, s_1_25, 22, 1, 0}, +{ 5, s_1_26, -1, 1, 0}, +{ 2, s_1_27, -1, 1, 0}, +{ 4, s_1_28, 27, 1, 0}, +{ 4, s_1_29, -1, 1, 0}, +{ 5, s_1_30, -1, 1, 0}, +{ 6, s_1_31, 30, 1, 0}, +{ 6, s_1_32, -1, 1, 0}, +{ 6, s_1_33, -1, 1, 0}, +{ 4, s_1_34, -1, 1, 0}, +{ 4, s_1_35, -1, 1, 0}, +{ 5, s_1_36, 35, 1, 0}, +{ 5, s_1_37, 35, 1, 0}, +{ 5, s_1_38, -1, 1, 0}, +{ 4, s_1_39, -1, 1, 0}, +{ 3, s_1_40, -1, 1, 0}, +{ 5, s_1_41, 40, 1, 0}, +{ 3, s_1_42, -1, 1, 0}, +{ 4, s_1_43, 42, 1, 0}, +{ 4, s_1_44, -1, 1, 0}, +{ 5, s_1_45, 44, 1, 0}, +{ 5, s_1_46, 44, 1, 0}, +{ 5, s_1_47, 44, 1, 0}, +{ 4, s_1_48, -1, 1, 0}, +{ 5, s_1_49, 48, 1, 0}, +{ 5, s_1_50, 48, 1, 0}, +{ 6, s_1_51, -1, 2, 0}, +{ 6, s_1_52, -1, 1, 0}, +{ 6, s_1_53, -1, 1, 0}, +{ 5, s_1_54, -1, 1, 0}, +{ 4, s_1_55, -1, 1, 0}, +{ 3, s_1_56, -1, 1, 0}, +{ 4, s_1_57, -1, 1, 0}, +{ 5, s_1_58, -1, 1, 0}, +{ 6, s_1_59, -1, 1, 0}, +{ 2, s_1_60, -1, 1, 0}, +{ 4, s_1_61, 60, 3, 0}, +{ 5, s_1_62, 60, 10, 0}, +{ 3, s_1_63, 60, 1, 0}, +{ 3, s_1_64, 60, 1, 0}, +{ 3, s_1_65, 60, 1, 0}, +{ 6, s_1_66, -1, 1, 0}, +{ 4, s_1_67, -1, 1, 0}, +{ 5, s_1_68, -1, 1, 0}, +{ 5, s_1_69, -1, 1, 0}, +{ 4, s_1_70, -1, 1, 0}, +{ 3, s_1_71, -1, 1, 0}, +{ 2, s_1_72, -1, 1, 0}, +{ 4, s_1_73, 72, 1, 0}, +{ 3, s_1_74, 72, 1, 0}, +{ 7, s_1_75, 74, 1, 0}, +{ 7, s_1_76, 74, 1, 0}, +{ 6, s_1_77, 74, 1, 0}, +{ 5, s_1_78, 72, 1, 0}, +{ 6, s_1_79, 78, 1, 0}, +{ 4, s_1_80, 72, 1, 0}, +{ 4, s_1_81, 72, 1, 0}, +{ 5, s_1_82, 72, 1, 0}, +{ 3, s_1_83, 72, 1, 0}, +{ 4, s_1_84, 83, 1, 0}, +{ 5, s_1_85, 83, 1, 0}, +{ 6, s_1_86, 85, 1, 0}, +{ 5, s_1_87, -1, 1, 0}, +{ 6, s_1_88, 87, 1, 0}, +{ 4, s_1_89, -1, 1, 0}, +{ 4, s_1_90, -1, 1, 0}, +{ 3, s_1_91, -1, 1, 0}, +{ 5, s_1_92, 91, 1, 0}, +{ 4, s_1_93, 91, 1, 0}, +{ 3, s_1_94, -1, 1, 0}, +{ 5, s_1_95, 94, 1, 0}, +{ 4, s_1_96, -1, 1, 0}, +{ 5, s_1_97, 96, 1, 0}, +{ 5, s_1_98, 96, 1, 0}, +{ 4, s_1_99, -1, 1, 0}, +{ 4, s_1_100, -1, 1, 0}, +{ 4, s_1_101, -1, 1, 0}, +{ 3, s_1_102, -1, 1, 0}, +{ 4, s_1_103, 102, 1, 0}, +{ 4, s_1_104, 102, 1, 0}, +{ 4, s_1_105, -1, 1, 0}, +{ 4, s_1_106, -1, 1, 0}, +{ 3, s_1_107, -1, 1, 0}, +{ 2, s_1_108, -1, 1, 0}, +{ 3, s_1_109, 108, 1, 0}, +{ 4, s_1_110, 109, 1, 0}, +{ 5, s_1_111, 109, 1, 0}, +{ 5, s_1_112, 109, 1, 0}, +{ 4, s_1_113, 109, 1, 0}, +{ 5, s_1_114, 113, 1, 0}, +{ 5, s_1_115, 109, 1, 0}, +{ 4, s_1_116, 108, 1, 0}, +{ 4, s_1_117, 108, 1, 0}, +{ 4, s_1_118, 108, 1, 0}, +{ 3, s_1_119, 108, 2, 0}, +{ 6, s_1_120, 108, 1, 0}, +{ 5, s_1_121, 108, 1, 0}, +{ 3, s_1_122, 108, 1, 0}, +{ 2, s_1_123, -1, 1, 0}, +{ 3, s_1_124, 123, 1, 0}, +{ 2, s_1_125, -1, 1, 0}, +{ 3, s_1_126, 125, 1, 0}, +{ 4, s_1_127, 126, 1, 0}, +{ 3, s_1_128, 125, 1, 0}, +{ 3, s_1_129, -1, 1, 0}, +{ 6, s_1_130, 129, 1, 0}, +{ 5, s_1_131, 129, 1, 0}, +{ 5, s_1_132, -1, 1, 0}, +{ 5, s_1_133, -1, 1, 0}, +{ 5, s_1_134, -1, 1, 0}, +{ 4, s_1_135, -1, 1, 0}, +{ 3, s_1_136, -1, 1, 0}, +{ 6, s_1_137, 136, 1, 0}, +{ 5, s_1_138, 136, 1, 0}, +{ 4, s_1_139, -1, 1, 0}, +{ 3, s_1_140, -1, 1, 0}, +{ 4, s_1_141, 140, 1, 0}, +{ 2, s_1_142, -1, 1, 0}, +{ 3, s_1_143, 142, 1, 0}, +{ 5, s_1_144, 142, 1, 0}, +{ 3, s_1_145, 142, 2, 0}, +{ 6, s_1_146, 145, 1, 0}, +{ 5, s_1_147, 145, 1, 0}, +{ 6, s_1_148, 145, 1, 0}, +{ 6, s_1_149, 145, 1, 0}, +{ 6, s_1_150, 145, 1, 0}, +{ 4, s_1_151, -1, 1, 0}, +{ 4, s_1_152, -1, 1, 0}, +{ 4, s_1_153, -1, 1, 0}, +{ 4, s_1_154, -1, 1, 0}, +{ 5, s_1_155, 154, 1, 0}, +{ 5, s_1_156, 154, 1, 0}, +{ 4, s_1_157, -1, 1, 0}, +{ 2, s_1_158, -1, 1, 0}, +{ 4, s_1_159, -1, 1, 0}, +{ 5, s_1_160, 159, 1, 0}, +{ 4, s_1_161, -1, 1, 0}, +{ 3, s_1_162, -1, 1, 0}, +{ 4, s_1_163, -1, 1, 0}, +{ 2, s_1_164, -1, 1, 0}, +{ 5, s_1_165, 164, 1, 0}, +{ 3, s_1_166, 164, 1, 0}, +{ 4, s_1_167, 166, 1, 0}, +{ 2, s_1_168, -1, 1, 0}, +{ 5, s_1_169, -1, 1, 0}, +{ 2, s_1_170, -1, 1, 0}, +{ 4, s_1_171, 170, 1, 0}, +{ 4, s_1_172, 170, 1, 0}, +{ 4, s_1_173, 170, 1, 0}, +{ 4, s_1_174, -1, 1, 0}, +{ 3, s_1_175, -1, 1, 0}, +{ 2, s_1_176, -1, 1, 0}, +{ 4, s_1_177, 176, 1, 0}, +{ 5, s_1_178, 177, 1, 0}, +{ 5, s_1_179, 176, 8, 0}, +{ 5, s_1_180, 176, 1, 0}, +{ 5, s_1_181, 176, 1, 0}, +{ 3, s_1_182, -1, 1, 0}, +{ 3, s_1_183, -1, 1, 0}, +{ 4, s_1_184, 183, 1, 0}, +{ 4, s_1_185, 183, 1, 0}, +{ 4, s_1_186, -1, 1, 0}, +{ 3, s_1_187, -1, 1, 0}, +{ 2, s_1_188, -1, 1, 0}, +{ 4, s_1_189, 188, 1, 0}, +{ 2, s_1_190, -1, 1, 0}, +{ 3, s_1_191, 190, 1, 0}, +{ 3, s_1_192, 190, 1, 0}, +{ 3, s_1_193, -1, 1, 0}, +{ 4, s_1_194, 193, 1, 0}, +{ 4, s_1_195, 193, 1, 0}, +{ 4, s_1_196, 193, 1, 0}, +{ 5, s_1_197, -1, 2, 0}, +{ 5, s_1_198, -1, 1, 0}, +{ 5, s_1_199, -1, 1, 0}, +{ 4, s_1_200, -1, 1, 0}, +{ 3, s_1_201, -1, 1, 0}, +{ 2, s_1_202, -1, 1, 0}, +{ 5, s_1_203, -1, 1, 0}, +{ 2, s_1_204, -1, 1, 0}, +{ 2, s_1_205, -1, 1, 0}, +{ 2, s_1_206, -1, 1, 0}, +{ 5, s_1_207, -1, 1, 0}, +{ 5, s_1_208, -1, 1, 0}, +{ 3, s_1_209, -1, 1, 0}, +{ 4, s_1_210, 209, 1, 0}, +{ 3, s_1_211, -1, 1, 0}, +{ 3, s_1_212, -1, 1, 0}, +{ 4, s_1_213, 212, 1, 0}, +{ 2, s_1_214, -1, 4, 0}, +{ 3, s_1_215, 214, 2, 0}, +{ 6, s_1_216, 215, 1, 0}, +{ 6, s_1_217, 215, 1, 0}, +{ 5, s_1_218, 215, 1, 0}, +{ 3, s_1_219, 214, 4, 0}, +{ 4, s_1_220, 214, 4, 0}, +{ 4, s_1_221, -1, 1, 0}, +{ 5, s_1_222, 221, 1, 0}, +{ 3, s_1_223, -1, 1, 0}, +{ 3, s_1_224, -1, 1, 0}, +{ 3, s_1_225, -1, 1, 0}, +{ 4, s_1_226, -1, 1, 0}, +{ 5, s_1_227, 226, 1, 0}, +{ 5, s_1_228, -1, 1, 0}, +{ 4, s_1_229, -1, 1, 0}, +{ 5, s_1_230, 229, 1, 0}, +{ 2, s_1_231, -1, 1, 0}, +{ 3, s_1_232, 231, 1, 0}, +{ 3, s_1_233, -1, 1, 0}, +{ 2, s_1_234, -1, 1, 0}, +{ 5, s_1_235, 234, 5, 0}, +{ 4, s_1_236, 234, 1, 0}, +{ 5, s_1_237, 236, 1, 0}, +{ 3, s_1_238, 234, 1, 0}, +{ 6, s_1_239, 234, 1, 0}, +{ 3, s_1_240, 234, 1, 0}, +{ 4, s_1_241, 234, 1, 0}, +{ 8, s_1_242, 241, 6, 0}, +{ 3, s_1_243, 234, 1, 0}, +{ 2, s_1_244, -1, 1, 0}, +{ 4, s_1_245, 244, 1, 0}, +{ 2, s_1_246, -1, 1, 0}, +{ 3, s_1_247, 246, 1, 0}, +{ 5, s_1_248, 247, 9, 0}, +{ 4, s_1_249, 247, 1, 0}, +{ 4, s_1_250, 247, 1, 0}, +{ 3, s_1_251, 246, 1, 0}, +{ 4, s_1_252, 246, 1, 0}, +{ 3, s_1_253, 246, 1, 0}, +{ 3, s_1_254, -1, 1, 0}, +{ 2, s_1_255, -1, 1, 0}, +{ 3, s_1_256, 255, 1, 0}, +{ 3, s_1_257, 255, 1, 0}, +{ 3, s_1_258, -1, 1, 0}, +{ 3, s_1_259, -1, 1, 0}, +{ 6, s_1_260, 259, 1, 0}, +{ 2, s_1_261, -1, 1, 0}, +{ 2, s_1_262, -1, 1, 0}, +{ 2, s_1_263, -1, 1, 0}, +{ 3, s_1_264, 263, 1, 0}, +{ 5, s_1_265, 263, 1, 0}, +{ 5, s_1_266, 263, 7, 0}, +{ 4, s_1_267, 263, 1, 0}, +{ 4, s_1_268, 263, 1, 0}, +{ 3, s_1_269, 263, 1, 0}, +{ 4, s_1_270, 263, 1, 0}, +{ 2, s_1_271, -1, 2, 0}, +{ 3, s_1_272, 271, 1, 0}, +{ 2, s_1_273, -1, 1, 0}, +{ 3, s_1_274, -1, 1, 0}, +{ 2, s_1_275, -1, 1, 0}, +{ 5, s_1_276, 275, 1, 0}, +{ 4, s_1_277, 275, 1, 0}, +{ 4, s_1_278, -1, 1, 0}, +{ 4, s_1_279, -1, 2, 0}, +{ 4, s_1_280, -1, 1, 0}, +{ 3, s_1_281, -1, 1, 0}, +{ 2, s_1_282, -1, 1, 0}, +{ 4, s_1_283, 282, 4, 0}, +{ 5, s_1_284, 282, 1, 0}, +{ 4, s_1_285, 282, 1, 0}, +{ 3, s_1_286, -1, 1, 0}, +{ 2, s_1_287, -1, 1, 0}, +{ 3, s_1_288, 287, 1, 0}, +{ 6, s_1_289, 288, 1, 0}, +{ 1, s_1_290, -1, 1, 0}, +{ 2, s_1_291, 290, 1, 0}, +{ 4, s_1_292, 290, 1, 0}, +{ 2, s_1_293, 290, 1, 0}, +{ 5, s_1_294, 293, 1, 0} }; static const symbol s_2_0[4] = { 'z', 'l', 'e', 'a' }; @@ -868,25 +868,25 @@ static const symbol s_2_18[2] = { 't', 'o' }; static const struct among a_2[19] = { -/* 0 */ { 4, s_2_0, -1, 2, 0}, -/* 1 */ { 5, s_2_1, -1, 1, 0}, -/* 2 */ { 2, s_2_2, -1, 1, 0}, -/* 3 */ { 3, s_2_3, -1, 1, 0}, -/* 4 */ { 4, s_2_4, -1, 1, 0}, -/* 5 */ { 4, s_2_5, -1, 1, 0}, -/* 6 */ { 4, s_2_6, -1, 1, 0}, -/* 7 */ { 4, s_2_7, -1, 1, 0}, -/* 8 */ { 2, s_2_8, -1, 1, 0}, -/* 9 */ { 2, s_2_9, -1, 1, 0}, -/* 10 */ { 2, s_2_10, -1, 1, 0}, -/* 11 */ { 5, s_2_11, 10, 1, 0}, -/* 12 */ { 3, s_2_12, 10, 1, 0}, -/* 13 */ { 5, s_2_13, 12, 1, 0}, -/* 14 */ { 4, s_2_14, 10, 1, 0}, -/* 15 */ { 2, s_2_15, -1, 1, 0}, -/* 16 */ { 2, s_2_16, -1, 1, 0}, -/* 17 */ { 3, s_2_17, 16, 1, 0}, -/* 18 */ { 2, s_2_18, -1, 1, 0} +{ 4, s_2_0, -1, 2, 0}, +{ 5, s_2_1, -1, 1, 0}, +{ 2, s_2_2, -1, 1, 0}, +{ 3, s_2_3, -1, 1, 0}, +{ 4, s_2_4, -1, 1, 0}, +{ 4, s_2_5, -1, 1, 0}, +{ 4, s_2_6, -1, 1, 0}, +{ 4, s_2_7, -1, 1, 0}, +{ 2, s_2_8, -1, 1, 0}, +{ 2, s_2_9, -1, 1, 0}, +{ 2, s_2_10, -1, 1, 0}, +{ 5, s_2_11, 10, 1, 0}, +{ 3, s_2_12, 10, 1, 0}, +{ 5, s_2_13, 12, 1, 0}, +{ 4, s_2_14, 10, 1, 0}, +{ 2, s_2_15, -1, 1, 0}, +{ 2, s_2_16, -1, 1, 0}, +{ 3, s_2_17, 16, 1, 0}, +{ 2, s_2_18, -1, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16 }; @@ -903,16 +903,16 @@ static const symbol s_8[] = { 'i', 'g', 'a', 'r', 'o' }; static const symbol s_9[] = { 'a', 'u', 'r', 'k', 'a' }; static const symbol s_10[] = { 'z' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $pV = , line 25 */ - z->I[1] = z->l; /* $p1 = , line 26 */ - z->I[2] = z->l; /* $p2 = , line 27 */ - { int c1 = z->c; /* do, line 29 */ - { int c2 = z->c; /* or, line 31 */ - if (in_grouping(z, g_v, 97, 117, 0)) goto lab2; /* grouping v, line 30 */ - { int c3 = z->c; /* or, line 30 */ - if (out_grouping(z, g_v, 97, 117, 0)) goto lab4; /* non v, line 30 */ - { /* gopast */ /* grouping v, line 30 */ +static int r_mark_regions(struct SN_env * z) { + z->I[2] = z->l; + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int c2 = z->c; + if (in_grouping(z, g_v, 97, 117, 0)) goto lab2; + { int c3 = z->c; + if (out_grouping(z, g_v, 97, 117, 0)) goto lab4; + { int ret = out_grouping(z, g_v, 97, 117, 1); if (ret < 0) goto lab4; z->c += ret; @@ -920,8 +920,8 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab3; lab4: z->c = c3; - if (in_grouping(z, g_v, 97, 117, 0)) goto lab2; /* grouping v, line 30 */ - { /* gopast */ /* non v, line 30 */ + if (in_grouping(z, g_v, 97, 117, 0)) goto lab2; + { int ret = in_grouping(z, g_v, 97, 117, 1); if (ret < 0) goto lab2; z->c += ret; @@ -931,10 +931,10 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab1; lab2: z->c = c2; - if (out_grouping(z, g_v, 97, 117, 0)) goto lab0; /* non v, line 32 */ - { int c4 = z->c; /* or, line 32 */ - if (out_grouping(z, g_v, 97, 117, 0)) goto lab6; /* non v, line 32 */ - { /* gopast */ /* grouping v, line 32 */ + if (out_grouping(z, g_v, 97, 117, 0)) goto lab0; + { int c4 = z->c; + if (out_grouping(z, g_v, 97, 117, 0)) goto lab6; + { int ret = out_grouping(z, g_v, 97, 117, 1); if (ret < 0) goto lab6; z->c += ret; @@ -942,98 +942,98 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab5; lab6: z->c = c4; - if (in_grouping(z, g_v, 97, 117, 0)) goto lab0; /* grouping v, line 32 */ + if (in_grouping(z, g_v, 97, 117, 0)) goto lab0; if (z->c >= z->l) goto lab0; - z->c++; /* next, line 32 */ + z->c++; } lab5: ; } lab1: - z->I[0] = z->c; /* setmark pV, line 33 */ + z->I[2] = z->c; lab0: z->c = c1; } - { int c5 = z->c; /* do, line 35 */ - { /* gopast */ /* grouping v, line 36 */ + { int c5 = z->c; + { int ret = out_grouping(z, g_v, 97, 117, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 36 */ + { int ret = in_grouping(z, g_v, 97, 117, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[1] = z->c; /* setmark p1, line 36 */ - { /* gopast */ /* grouping v, line 37 */ + z->I[1] = z->c; + { int ret = out_grouping(z, g_v, 97, 117, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 37 */ + { int ret = in_grouping(z, g_v, 97, 117, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[2] = z->c; /* setmark p2, line 37 */ + z->I[0] = z->c; lab7: z->c = c5; } return 1; } -static int r_RV(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 43 */ +static int r_RV(struct SN_env * z) { + if (!(z->I[2] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 44 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 45 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_aditzak(struct SN_env * z) { /* backwardmode */ +static int r_aditzak(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 48 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((70566434 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 48 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((70566434 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_0, 109); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 48 */ - switch (among_var) { /* among, line 48 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_RV(z); /* call RV, line 59 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 59 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 61 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 61 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 7, s_0); /* <-, line 63 */ + { int ret = slice_from_s(z, 7, s_0); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 7, s_1); /* <-, line 65 */ + { int ret = slice_from_s(z, 7, s_1); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 6, s_2); /* <-, line 67 */ + { int ret = slice_from_s(z, 6, s_2); if (ret < 0) return ret; } break; @@ -1041,70 +1041,70 @@ static int r_aditzak(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_izenak(struct SN_env * z) { /* backwardmode */ +static int r_izenak(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 73 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((71162402 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 73 */ + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((71162402 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_1, 295); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 73 */ - switch (among_var) { /* among, line 73 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_RV(z); /* call RV, line 103 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 103 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 105 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 105 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 3, s_3); /* <-, line 107 */ + { int ret = slice_from_s(z, 3, s_3); if (ret < 0) return ret; } break; case 4: - { int ret = r_R1(z); /* call R1, line 109 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 109 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 3, s_4); /* <-, line 111 */ + { int ret = slice_from_s(z, 3, s_4); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 6, s_5); /* <-, line 113 */ + { int ret = slice_from_s(z, 6, s_5); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 5, s_6); /* <-, line 115 */ + { int ret = slice_from_s(z, 5, s_6); if (ret < 0) return ret; } break; case 8: - { int ret = slice_from_s(z, 5, s_7); /* <-, line 117 */ + { int ret = slice_from_s(z, 5, s_7); if (ret < 0) return ret; } break; case 9: - { int ret = slice_from_s(z, 5, s_8); /* <-, line 119 */ + { int ret = slice_from_s(z, 5, s_8); if (ret < 0) return ret; } break; case 10: - { int ret = slice_from_s(z, 5, s_9); /* <-, line 121 */ + { int ret = slice_from_s(z, 5, s_9); if (ret < 0) return ret; } break; @@ -1112,24 +1112,24 @@ static int r_izenak(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_adjetiboak(struct SN_env * z) { /* backwardmode */ +static int r_adjetiboak(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 126 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((35362 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 126 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((35362 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_2, 19); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 126 */ - switch (among_var) { /* among, line 126 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_RV(z); /* call RV, line 129 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 129 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_10); /* <-, line 131 */ + { int ret = slice_from_s(z, 1, s_10); if (ret < 0) return ret; } break; @@ -1137,17 +1137,16 @@ static int r_adjetiboak(struct SN_env * z) { /* backwardmode */ return 1; } -extern int basque_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ - /* do, line 138 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 138 */ +extern int basque_ISO_8859_1_stem(struct SN_env * z) { + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 139 */ + z->lb = z->c; z->c = z->l; -/* repeat, line 140 */ - - while(1) { int m1 = z->l - z->c; (void)m1; - { int ret = r_aditzak(z); /* call aditzak, line 140 */ + while(1) { + int m1 = z->l - z->c; (void)m1; + { int ret = r_aditzak(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -1156,10 +1155,9 @@ extern int basque_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ z->c = z->l - m1; break; } -/* repeat, line 141 */ - - while(1) { int m2 = z->l - z->c; (void)m2; - { int ret = r_izenak(z); /* call izenak, line 141 */ + while(1) { + int m2 = z->l - z->c; (void)m2; + { int ret = r_izenak(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } @@ -1168,8 +1166,8 @@ extern int basque_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ z->c = z->l - m2; break; } - { int m3 = z->l - z->c; (void)m3; /* do, line 142 */ - { int ret = r_adjetiboak(z); /* call adjetiboak, line 142 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_adjetiboak(z); if (ret < 0) return ret; } z->c = z->l - m3; @@ -1178,7 +1176,7 @@ extern int basque_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * basque_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); } +extern struct SN_env * basque_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); } extern void basque_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_catalan.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_catalan.c index 87c0cada3df90..283d2c6482118 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_catalan.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_catalan.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -44,19 +44,19 @@ static const symbol s_0_12[1] = { 0xFC }; static const struct among a_0[13] = { -/* 0 */ { 0, 0, -1, 7, 0}, -/* 1 */ { 1, s_0_1, 0, 6, 0}, -/* 2 */ { 1, s_0_2, 0, 1, 0}, -/* 3 */ { 1, s_0_3, 0, 1, 0}, -/* 4 */ { 1, s_0_4, 0, 2, 0}, -/* 5 */ { 1, s_0_5, 0, 2, 0}, -/* 6 */ { 1, s_0_6, 0, 3, 0}, -/* 7 */ { 1, s_0_7, 0, 3, 0}, -/* 8 */ { 1, s_0_8, 0, 3, 0}, -/* 9 */ { 1, s_0_9, 0, 4, 0}, -/* 10 */ { 1, s_0_10, 0, 4, 0}, -/* 11 */ { 1, s_0_11, 0, 5, 0}, -/* 12 */ { 1, s_0_12, 0, 5, 0} +{ 0, 0, -1, 7, 0}, +{ 1, s_0_1, 0, 6, 0}, +{ 1, s_0_2, 0, 1, 0}, +{ 1, s_0_3, 0, 1, 0}, +{ 1, s_0_4, 0, 2, 0}, +{ 1, s_0_5, 0, 2, 0}, +{ 1, s_0_6, 0, 3, 0}, +{ 1, s_0_7, 0, 3, 0}, +{ 1, s_0_8, 0, 3, 0}, +{ 1, s_0_9, 0, 4, 0}, +{ 1, s_0_10, 0, 4, 0}, +{ 1, s_0_11, 0, 5, 0}, +{ 1, s_0_12, 0, 5, 0} }; static const symbol s_1_0[2] = { 'l', 'a' }; @@ -101,45 +101,45 @@ static const symbol s_1_38[2] = { '\'', 't' }; static const struct among a_1[39] = { -/* 0 */ { 2, s_1_0, -1, 1, 0}, -/* 1 */ { 3, s_1_1, 0, 1, 0}, -/* 2 */ { 4, s_1_2, 0, 1, 0}, -/* 3 */ { 2, s_1_3, -1, 1, 0}, -/* 4 */ { 2, s_1_4, -1, 1, 0}, -/* 5 */ { 3, s_1_5, 4, 1, 0}, -/* 6 */ { 2, s_1_6, -1, 1, 0}, -/* 7 */ { 3, s_1_7, -1, 1, 0}, -/* 8 */ { 2, s_1_8, -1, 1, 0}, -/* 9 */ { 3, s_1_9, 8, 1, 0}, -/* 10 */ { 2, s_1_10, -1, 1, 0}, -/* 11 */ { 3, s_1_11, 10, 1, 0}, -/* 12 */ { 2, s_1_12, -1, 1, 0}, -/* 13 */ { 2, s_1_13, -1, 1, 0}, -/* 14 */ { 2, s_1_14, -1, 1, 0}, -/* 15 */ { 2, s_1_15, -1, 1, 0}, -/* 16 */ { 2, s_1_16, -1, 1, 0}, -/* 17 */ { 2, s_1_17, -1, 1, 0}, -/* 18 */ { 3, s_1_18, 17, 1, 0}, -/* 19 */ { 2, s_1_19, -1, 1, 0}, -/* 20 */ { 4, s_1_20, 19, 1, 0}, -/* 21 */ { 2, s_1_21, -1, 1, 0}, -/* 22 */ { 3, s_1_22, -1, 1, 0}, -/* 23 */ { 5, s_1_23, 22, 1, 0}, -/* 24 */ { 3, s_1_24, -1, 1, 0}, -/* 25 */ { 4, s_1_25, 24, 1, 0}, -/* 26 */ { 3, s_1_26, -1, 1, 0}, -/* 27 */ { 3, s_1_27, -1, 1, 0}, -/* 28 */ { 3, s_1_28, -1, 1, 0}, -/* 29 */ { 3, s_1_29, -1, 1, 0}, -/* 30 */ { 3, s_1_30, -1, 1, 0}, -/* 31 */ { 3, s_1_31, -1, 1, 0}, -/* 32 */ { 5, s_1_32, 31, 1, 0}, -/* 33 */ { 3, s_1_33, -1, 1, 0}, -/* 34 */ { 4, s_1_34, 33, 1, 0}, -/* 35 */ { 3, s_1_35, -1, 1, 0}, -/* 36 */ { 2, s_1_36, -1, 1, 0}, -/* 37 */ { 3, s_1_37, 36, 1, 0}, -/* 38 */ { 2, s_1_38, -1, 1, 0} +{ 2, s_1_0, -1, 1, 0}, +{ 3, s_1_1, 0, 1, 0}, +{ 4, s_1_2, 0, 1, 0}, +{ 2, s_1_3, -1, 1, 0}, +{ 2, s_1_4, -1, 1, 0}, +{ 3, s_1_5, 4, 1, 0}, +{ 2, s_1_6, -1, 1, 0}, +{ 3, s_1_7, -1, 1, 0}, +{ 2, s_1_8, -1, 1, 0}, +{ 3, s_1_9, 8, 1, 0}, +{ 2, s_1_10, -1, 1, 0}, +{ 3, s_1_11, 10, 1, 0}, +{ 2, s_1_12, -1, 1, 0}, +{ 2, s_1_13, -1, 1, 0}, +{ 2, s_1_14, -1, 1, 0}, +{ 2, s_1_15, -1, 1, 0}, +{ 2, s_1_16, -1, 1, 0}, +{ 2, s_1_17, -1, 1, 0}, +{ 3, s_1_18, 17, 1, 0}, +{ 2, s_1_19, -1, 1, 0}, +{ 4, s_1_20, 19, 1, 0}, +{ 2, s_1_21, -1, 1, 0}, +{ 3, s_1_22, -1, 1, 0}, +{ 5, s_1_23, 22, 1, 0}, +{ 3, s_1_24, -1, 1, 0}, +{ 4, s_1_25, 24, 1, 0}, +{ 3, s_1_26, -1, 1, 0}, +{ 3, s_1_27, -1, 1, 0}, +{ 3, s_1_28, -1, 1, 0}, +{ 3, s_1_29, -1, 1, 0}, +{ 3, s_1_30, -1, 1, 0}, +{ 3, s_1_31, -1, 1, 0}, +{ 5, s_1_32, 31, 1, 0}, +{ 3, s_1_33, -1, 1, 0}, +{ 4, s_1_34, 33, 1, 0}, +{ 3, s_1_35, -1, 1, 0}, +{ 2, s_1_36, -1, 1, 0}, +{ 3, s_1_37, 36, 1, 0}, +{ 2, s_1_38, -1, 1, 0} }; static const symbol s_2_0[3] = { 'i', 'c', 'a' }; @@ -345,206 +345,206 @@ static const symbol s_2_199[4] = { 'a', 'c', 'i', 0xF3 }; static const struct among a_2[200] = { -/* 0 */ { 3, s_2_0, -1, 4, 0}, -/* 1 */ { 6, s_2_1, 0, 3, 0}, -/* 2 */ { 4, s_2_2, -1, 1, 0}, -/* 3 */ { 3, s_2_3, -1, 2, 0}, -/* 4 */ { 5, s_2_4, -1, 1, 0}, -/* 5 */ { 5, s_2_5, -1, 1, 0}, -/* 6 */ { 5, s_2_6, -1, 1, 0}, -/* 7 */ { 4, s_2_7, -1, 1, 0}, -/* 8 */ { 5, s_2_8, -1, 3, 0}, -/* 9 */ { 4, s_2_9, -1, 1, 0}, -/* 10 */ { 5, s_2_10, 9, 1, 0}, -/* 11 */ { 4, s_2_11, -1, 1, 0}, -/* 12 */ { 4, s_2_12, -1, 1, 0}, -/* 13 */ { 6, s_2_13, -1, 1, 0}, -/* 14 */ { 4, s_2_14, -1, 1, 0}, -/* 15 */ { 4, s_2_15, -1, 1, 0}, -/* 16 */ { 5, s_2_16, -1, 1, 0}, -/* 17 */ { 3, s_2_17, -1, 1, 0}, -/* 18 */ { 6, s_2_18, 17, 1, 0}, -/* 19 */ { 8, s_2_19, 18, 5, 0}, -/* 20 */ { 3, s_2_20, -1, 1, 0}, -/* 21 */ { 3, s_2_21, -1, 1, 0}, -/* 22 */ { 3, s_2_22, -1, 1, 0}, -/* 23 */ { 5, s_2_23, 22, 1, 0}, -/* 24 */ { 3, s_2_24, -1, 1, 0}, -/* 25 */ { 4, s_2_25, 24, 1, 0}, -/* 26 */ { 5, s_2_26, 25, 1, 0}, -/* 27 */ { 5, s_2_27, -1, 1, 0}, -/* 28 */ { 3, s_2_28, -1, 1, 0}, -/* 29 */ { 3, s_2_29, -1, 1, 0}, -/* 30 */ { 4, s_2_30, -1, 1, 0}, -/* 31 */ { 4, s_2_31, -1, 1, 0}, -/* 32 */ { 4, s_2_32, -1, 1, 0}, -/* 33 */ { 3, s_2_33, -1, 1, 0}, -/* 34 */ { 3, s_2_34, -1, 1, 0}, -/* 35 */ { 3, s_2_35, -1, 1, 0}, -/* 36 */ { 4, s_2_36, -1, 1, 0}, -/* 37 */ { 7, s_2_37, 36, 1, 0}, -/* 38 */ { 7, s_2_38, 36, 1, 0}, -/* 39 */ { 3, s_2_39, -1, 1, 0}, -/* 40 */ { 5, s_2_40, 39, 1, 0}, -/* 41 */ { 3, s_2_41, -1, 1, 0}, -/* 42 */ { 5, s_2_42, -1, 3, 0}, -/* 43 */ { 2, s_2_43, -1, 4, 0}, -/* 44 */ { 5, s_2_44, 43, 1, 0}, -/* 45 */ { 3, s_2_45, -1, 1, 0}, -/* 46 */ { 3, s_2_46, -1, 1, 0}, -/* 47 */ { 2, s_2_47, -1, 1, 0}, -/* 48 */ { 4, s_2_48, -1, 1, 0}, -/* 49 */ { 3, s_2_49, -1, 1, 0}, -/* 50 */ { 4, s_2_50, 49, 1, 0}, -/* 51 */ { 4, s_2_51, 49, 1, 0}, -/* 52 */ { 4, s_2_52, -1, 1, 0}, -/* 53 */ { 7, s_2_53, 52, 1, 0}, -/* 54 */ { 7, s_2_54, 52, 1, 0}, -/* 55 */ { 6, s_2_55, 52, 1, 0}, -/* 56 */ { 4, s_2_56, -1, 1, 0}, -/* 57 */ { 4, s_2_57, -1, 1, 0}, -/* 58 */ { 4, s_2_58, -1, 1, 0}, -/* 59 */ { 3, s_2_59, -1, 1, 0}, -/* 60 */ { 3, s_2_60, -1, 1, 0}, -/* 61 */ { 4, s_2_61, -1, 3, 0}, -/* 62 */ { 3, s_2_62, -1, 1, 0}, -/* 63 */ { 4, s_2_63, -1, 1, 0}, -/* 64 */ { 2, s_2_64, -1, 1, 0}, -/* 65 */ { 2, s_2_65, -1, 1, 0}, -/* 66 */ { 3, s_2_66, -1, 1, 0}, -/* 67 */ { 3, s_2_67, -1, 1, 0}, -/* 68 */ { 4, s_2_68, -1, 1, 0}, -/* 69 */ { 4, s_2_69, -1, 1, 0}, -/* 70 */ { 5, s_2_70, -1, 1, 0}, -/* 71 */ { 5, s_2_71, -1, 1, 0}, -/* 72 */ { 5, s_2_72, -1, 1, 0}, -/* 73 */ { 5, s_2_73, -1, 1, 0}, -/* 74 */ { 7, s_2_74, 73, 5, 0}, -/* 75 */ { 4, s_2_75, -1, 1, 0}, -/* 76 */ { 5, s_2_76, -1, 1, 0}, -/* 77 */ { 2, s_2_77, -1, 1, 0}, -/* 78 */ { 6, s_2_78, 77, 1, 0}, -/* 79 */ { 4, s_2_79, 77, 1, 0}, -/* 80 */ { 4, s_2_80, 77, 1, 0}, -/* 81 */ { 4, s_2_81, 77, 1, 0}, -/* 82 */ { 5, s_2_82, 77, 1, 0}, -/* 83 */ { 3, s_2_83, -1, 1, 0}, -/* 84 */ { 2, s_2_84, -1, 1, 0}, -/* 85 */ { 3, s_2_85, 84, 1, 0}, -/* 86 */ { 3, s_2_86, -1, 1, 0}, -/* 87 */ { 5, s_2_87, -1, 1, 0}, -/* 88 */ { 3, s_2_88, -1, 4, 0}, -/* 89 */ { 6, s_2_89, 88, 3, 0}, -/* 90 */ { 3, s_2_90, -1, 1, 0}, -/* 91 */ { 4, s_2_91, -1, 1, 0}, -/* 92 */ { 4, s_2_92, -1, 2, 0}, -/* 93 */ { 6, s_2_93, -1, 1, 0}, -/* 94 */ { 6, s_2_94, -1, 1, 0}, -/* 95 */ { 6, s_2_95, -1, 1, 0}, -/* 96 */ { 5, s_2_96, -1, 1, 0}, -/* 97 */ { 6, s_2_97, -1, 3, 0}, -/* 98 */ { 5, s_2_98, -1, 1, 0}, -/* 99 */ { 5, s_2_99, -1, 1, 0}, -/*100 */ { 5, s_2_100, -1, 1, 0}, -/*101 */ { 5, s_2_101, -1, 1, 0}, -/*102 */ { 7, s_2_102, -1, 1, 0}, -/*103 */ { 4, s_2_103, -1, 1, 0}, -/*104 */ { 5, s_2_104, 103, 1, 0}, -/*105 */ { 5, s_2_105, 103, 1, 0}, -/*106 */ { 4, s_2_106, -1, 1, 0}, -/*107 */ { 7, s_2_107, 106, 1, 0}, -/*108 */ { 9, s_2_108, 107, 5, 0}, -/*109 */ { 6, s_2_109, -1, 1, 0}, -/*110 */ { 5, s_2_110, -1, 1, 0}, -/*111 */ { 8, s_2_111, 110, 1, 0}, -/*112 */ { 4, s_2_112, -1, 1, 0}, -/*113 */ { 4, s_2_113, -1, 1, 0}, -/*114 */ { 4, s_2_114, -1, 1, 0}, -/*115 */ { 5, s_2_115, 114, 1, 0}, -/*116 */ { 6, s_2_116, 115, 1, 0}, -/*117 */ { 5, s_2_117, -1, 1, 0}, -/*118 */ { 4, s_2_118, -1, 1, 0}, -/*119 */ { 4, s_2_119, -1, 1, 0}, -/*120 */ { 5, s_2_120, -1, 1, 0}, -/*121 */ { 5, s_2_121, -1, 1, 0}, -/*122 */ { 4, s_2_122, -1, 1, 0}, -/*123 */ { 4, s_2_123, -1, 1, 0}, -/*124 */ { 5, s_2_124, -1, 1, 0}, -/*125 */ { 8, s_2_125, 124, 1, 0}, -/*126 */ { 8, s_2_126, 124, 1, 0}, -/*127 */ { 5, s_2_127, -1, 4, 0}, -/*128 */ { 8, s_2_128, 127, 3, 0}, -/*129 */ { 4, s_2_129, -1, 1, 0}, -/*130 */ { 6, s_2_130, 129, 1, 0}, -/*131 */ { 6, s_2_131, -1, 3, 0}, -/*132 */ { 9, s_2_132, -1, 1, 0}, -/*133 */ { 4, s_2_133, -1, 1, 0}, -/*134 */ { 4, s_2_134, -1, 1, 0}, -/*135 */ { 5, s_2_135, -1, 3, 0}, -/*136 */ { 4, s_2_136, -1, 1, 0}, -/*137 */ { 5, s_2_137, -1, 1, 0}, -/*138 */ { 2, s_2_138, -1, 1, 0}, -/*139 */ { 3, s_2_139, 138, 1, 0}, -/*140 */ { 4, s_2_140, 138, 1, 0}, -/*141 */ { 3, s_2_141, -1, 1, 0}, -/*142 */ { 6, s_2_142, 141, 1, 0}, -/*143 */ { 8, s_2_143, 142, 5, 0}, -/*144 */ { 4, s_2_144, -1, 1, 0}, -/*145 */ { 5, s_2_145, 144, 1, 0}, -/*146 */ { 6, s_2_146, 145, 2, 0}, -/*147 */ { 4, s_2_147, -1, 1, 0}, -/*148 */ { 4, s_2_148, -1, 1, 0}, -/*149 */ { 5, s_2_149, -1, 1, 0}, -/*150 */ { 5, s_2_150, -1, 1, 0}, -/*151 */ { 3, s_2_151, -1, 1, 0}, -/*152 */ { 3, s_2_152, -1, 1, 0}, -/*153 */ { 4, s_2_153, 152, 1, 0}, -/*154 */ { 5, s_2_154, 153, 1, 0}, -/*155 */ { 5, s_2_155, 153, 1, 0}, -/*156 */ { 3, s_2_156, -1, 1, 0}, -/*157 */ { 5, s_2_157, 156, 1, 0}, -/*158 */ { 8, s_2_158, 157, 1, 0}, -/*159 */ { 7, s_2_159, 157, 1, 0}, -/*160 */ { 9, s_2_160, 159, 1, 0}, -/*161 */ { 5, s_2_161, 156, 1, 0}, -/*162 */ { 3, s_2_162, -1, 1, 0}, -/*163 */ { 4, s_2_163, -1, 1, 0}, -/*164 */ { 4, s_2_164, -1, 1, 0}, -/*165 */ { 5, s_2_165, 164, 1, 0}, -/*166 */ { 6, s_2_166, 165, 1, 0}, -/*167 */ { 3, s_2_167, -1, 1, 0}, -/*168 */ { 3, s_2_168, -1, 1, 0}, -/*169 */ { 3, s_2_169, -1, 1, 0}, -/*170 */ { 5, s_2_170, 169, 1, 0}, -/*171 */ { 5, s_2_171, 169, 1, 0}, -/*172 */ { 2, s_2_172, -1, 1, 0}, -/*173 */ { 2, s_2_173, -1, 1, 0}, -/*174 */ { 2, s_2_174, -1, 1, 0}, -/*175 */ { 3, s_2_175, 174, 1, 0}, -/*176 */ { 2, s_2_176, -1, 1, 0}, -/*177 */ { 4, s_2_177, -1, 1, 0}, -/*178 */ { 7, s_2_178, 177, 1, 0}, -/*179 */ { 6, s_2_179, 177, 1, 0}, -/*180 */ { 8, s_2_180, 179, 1, 0}, -/*181 */ { 4, s_2_181, -1, 1, 0}, -/*182 */ { 2, s_2_182, -1, 1, 0}, -/*183 */ { 3, s_2_183, -1, 1, 0}, -/*184 */ { 3, s_2_184, -1, 1, 0}, -/*185 */ { 4, s_2_185, 184, 1, 0}, -/*186 */ { 4, s_2_186, 184, 1, 0}, -/*187 */ { 5, s_2_187, 186, 1, 0}, -/*188 */ { 7, s_2_188, 187, 1, 0}, -/*189 */ { 2, s_2_189, -1, 1, 0}, -/*190 */ { 5, s_2_190, -1, 1, 0}, -/*191 */ { 5, s_2_191, -1, 1, 0}, -/*192 */ { 5, s_2_192, -1, 1, 0}, -/*193 */ { 4, s_2_193, -1, 1, 0}, -/*194 */ { 5, s_2_194, -1, 1, 0}, -/*195 */ { 4, s_2_195, -1, 1, 0}, -/*196 */ { 1, s_2_196, -1, 1, 0}, -/*197 */ { 2, s_2_197, 196, 1, 0}, -/*198 */ { 3, s_2_198, 197, 1, 0}, -/*199 */ { 4, s_2_199, 198, 1, 0} +{ 3, s_2_0, -1, 4, 0}, +{ 6, s_2_1, 0, 3, 0}, +{ 4, s_2_2, -1, 1, 0}, +{ 3, s_2_3, -1, 2, 0}, +{ 5, s_2_4, -1, 1, 0}, +{ 5, s_2_5, -1, 1, 0}, +{ 5, s_2_6, -1, 1, 0}, +{ 4, s_2_7, -1, 1, 0}, +{ 5, s_2_8, -1, 3, 0}, +{ 4, s_2_9, -1, 1, 0}, +{ 5, s_2_10, 9, 1, 0}, +{ 4, s_2_11, -1, 1, 0}, +{ 4, s_2_12, -1, 1, 0}, +{ 6, s_2_13, -1, 1, 0}, +{ 4, s_2_14, -1, 1, 0}, +{ 4, s_2_15, -1, 1, 0}, +{ 5, s_2_16, -1, 1, 0}, +{ 3, s_2_17, -1, 1, 0}, +{ 6, s_2_18, 17, 1, 0}, +{ 8, s_2_19, 18, 5, 0}, +{ 3, s_2_20, -1, 1, 0}, +{ 3, s_2_21, -1, 1, 0}, +{ 3, s_2_22, -1, 1, 0}, +{ 5, s_2_23, 22, 1, 0}, +{ 3, s_2_24, -1, 1, 0}, +{ 4, s_2_25, 24, 1, 0}, +{ 5, s_2_26, 25, 1, 0}, +{ 5, s_2_27, -1, 1, 0}, +{ 3, s_2_28, -1, 1, 0}, +{ 3, s_2_29, -1, 1, 0}, +{ 4, s_2_30, -1, 1, 0}, +{ 4, s_2_31, -1, 1, 0}, +{ 4, s_2_32, -1, 1, 0}, +{ 3, s_2_33, -1, 1, 0}, +{ 3, s_2_34, -1, 1, 0}, +{ 3, s_2_35, -1, 1, 0}, +{ 4, s_2_36, -1, 1, 0}, +{ 7, s_2_37, 36, 1, 0}, +{ 7, s_2_38, 36, 1, 0}, +{ 3, s_2_39, -1, 1, 0}, +{ 5, s_2_40, 39, 1, 0}, +{ 3, s_2_41, -1, 1, 0}, +{ 5, s_2_42, -1, 3, 0}, +{ 2, s_2_43, -1, 4, 0}, +{ 5, s_2_44, 43, 1, 0}, +{ 3, s_2_45, -1, 1, 0}, +{ 3, s_2_46, -1, 1, 0}, +{ 2, s_2_47, -1, 1, 0}, +{ 4, s_2_48, -1, 1, 0}, +{ 3, s_2_49, -1, 1, 0}, +{ 4, s_2_50, 49, 1, 0}, +{ 4, s_2_51, 49, 1, 0}, +{ 4, s_2_52, -1, 1, 0}, +{ 7, s_2_53, 52, 1, 0}, +{ 7, s_2_54, 52, 1, 0}, +{ 6, s_2_55, 52, 1, 0}, +{ 4, s_2_56, -1, 1, 0}, +{ 4, s_2_57, -1, 1, 0}, +{ 4, s_2_58, -1, 1, 0}, +{ 3, s_2_59, -1, 1, 0}, +{ 3, s_2_60, -1, 1, 0}, +{ 4, s_2_61, -1, 3, 0}, +{ 3, s_2_62, -1, 1, 0}, +{ 4, s_2_63, -1, 1, 0}, +{ 2, s_2_64, -1, 1, 0}, +{ 2, s_2_65, -1, 1, 0}, +{ 3, s_2_66, -1, 1, 0}, +{ 3, s_2_67, -1, 1, 0}, +{ 4, s_2_68, -1, 1, 0}, +{ 4, s_2_69, -1, 1, 0}, +{ 5, s_2_70, -1, 1, 0}, +{ 5, s_2_71, -1, 1, 0}, +{ 5, s_2_72, -1, 1, 0}, +{ 5, s_2_73, -1, 1, 0}, +{ 7, s_2_74, 73, 5, 0}, +{ 4, s_2_75, -1, 1, 0}, +{ 5, s_2_76, -1, 1, 0}, +{ 2, s_2_77, -1, 1, 0}, +{ 6, s_2_78, 77, 1, 0}, +{ 4, s_2_79, 77, 1, 0}, +{ 4, s_2_80, 77, 1, 0}, +{ 4, s_2_81, 77, 1, 0}, +{ 5, s_2_82, 77, 1, 0}, +{ 3, s_2_83, -1, 1, 0}, +{ 2, s_2_84, -1, 1, 0}, +{ 3, s_2_85, 84, 1, 0}, +{ 3, s_2_86, -1, 1, 0}, +{ 5, s_2_87, -1, 1, 0}, +{ 3, s_2_88, -1, 4, 0}, +{ 6, s_2_89, 88, 3, 0}, +{ 3, s_2_90, -1, 1, 0}, +{ 4, s_2_91, -1, 1, 0}, +{ 4, s_2_92, -1, 2, 0}, +{ 6, s_2_93, -1, 1, 0}, +{ 6, s_2_94, -1, 1, 0}, +{ 6, s_2_95, -1, 1, 0}, +{ 5, s_2_96, -1, 1, 0}, +{ 6, s_2_97, -1, 3, 0}, +{ 5, s_2_98, -1, 1, 0}, +{ 5, s_2_99, -1, 1, 0}, +{ 5, s_2_100, -1, 1, 0}, +{ 5, s_2_101, -1, 1, 0}, +{ 7, s_2_102, -1, 1, 0}, +{ 4, s_2_103, -1, 1, 0}, +{ 5, s_2_104, 103, 1, 0}, +{ 5, s_2_105, 103, 1, 0}, +{ 4, s_2_106, -1, 1, 0}, +{ 7, s_2_107, 106, 1, 0}, +{ 9, s_2_108, 107, 5, 0}, +{ 6, s_2_109, -1, 1, 0}, +{ 5, s_2_110, -1, 1, 0}, +{ 8, s_2_111, 110, 1, 0}, +{ 4, s_2_112, -1, 1, 0}, +{ 4, s_2_113, -1, 1, 0}, +{ 4, s_2_114, -1, 1, 0}, +{ 5, s_2_115, 114, 1, 0}, +{ 6, s_2_116, 115, 1, 0}, +{ 5, s_2_117, -1, 1, 0}, +{ 4, s_2_118, -1, 1, 0}, +{ 4, s_2_119, -1, 1, 0}, +{ 5, s_2_120, -1, 1, 0}, +{ 5, s_2_121, -1, 1, 0}, +{ 4, s_2_122, -1, 1, 0}, +{ 4, s_2_123, -1, 1, 0}, +{ 5, s_2_124, -1, 1, 0}, +{ 8, s_2_125, 124, 1, 0}, +{ 8, s_2_126, 124, 1, 0}, +{ 5, s_2_127, -1, 4, 0}, +{ 8, s_2_128, 127, 3, 0}, +{ 4, s_2_129, -1, 1, 0}, +{ 6, s_2_130, 129, 1, 0}, +{ 6, s_2_131, -1, 3, 0}, +{ 9, s_2_132, -1, 1, 0}, +{ 4, s_2_133, -1, 1, 0}, +{ 4, s_2_134, -1, 1, 0}, +{ 5, s_2_135, -1, 3, 0}, +{ 4, s_2_136, -1, 1, 0}, +{ 5, s_2_137, -1, 1, 0}, +{ 2, s_2_138, -1, 1, 0}, +{ 3, s_2_139, 138, 1, 0}, +{ 4, s_2_140, 138, 1, 0}, +{ 3, s_2_141, -1, 1, 0}, +{ 6, s_2_142, 141, 1, 0}, +{ 8, s_2_143, 142, 5, 0}, +{ 4, s_2_144, -1, 1, 0}, +{ 5, s_2_145, 144, 1, 0}, +{ 6, s_2_146, 145, 2, 0}, +{ 4, s_2_147, -1, 1, 0}, +{ 4, s_2_148, -1, 1, 0}, +{ 5, s_2_149, -1, 1, 0}, +{ 5, s_2_150, -1, 1, 0}, +{ 3, s_2_151, -1, 1, 0}, +{ 3, s_2_152, -1, 1, 0}, +{ 4, s_2_153, 152, 1, 0}, +{ 5, s_2_154, 153, 1, 0}, +{ 5, s_2_155, 153, 1, 0}, +{ 3, s_2_156, -1, 1, 0}, +{ 5, s_2_157, 156, 1, 0}, +{ 8, s_2_158, 157, 1, 0}, +{ 7, s_2_159, 157, 1, 0}, +{ 9, s_2_160, 159, 1, 0}, +{ 5, s_2_161, 156, 1, 0}, +{ 3, s_2_162, -1, 1, 0}, +{ 4, s_2_163, -1, 1, 0}, +{ 4, s_2_164, -1, 1, 0}, +{ 5, s_2_165, 164, 1, 0}, +{ 6, s_2_166, 165, 1, 0}, +{ 3, s_2_167, -1, 1, 0}, +{ 3, s_2_168, -1, 1, 0}, +{ 3, s_2_169, -1, 1, 0}, +{ 5, s_2_170, 169, 1, 0}, +{ 5, s_2_171, 169, 1, 0}, +{ 2, s_2_172, -1, 1, 0}, +{ 2, s_2_173, -1, 1, 0}, +{ 2, s_2_174, -1, 1, 0}, +{ 3, s_2_175, 174, 1, 0}, +{ 2, s_2_176, -1, 1, 0}, +{ 4, s_2_177, -1, 1, 0}, +{ 7, s_2_178, 177, 1, 0}, +{ 6, s_2_179, 177, 1, 0}, +{ 8, s_2_180, 179, 1, 0}, +{ 4, s_2_181, -1, 1, 0}, +{ 2, s_2_182, -1, 1, 0}, +{ 3, s_2_183, -1, 1, 0}, +{ 3, s_2_184, -1, 1, 0}, +{ 4, s_2_185, 184, 1, 0}, +{ 4, s_2_186, 184, 1, 0}, +{ 5, s_2_187, 186, 1, 0}, +{ 7, s_2_188, 187, 1, 0}, +{ 2, s_2_189, -1, 1, 0}, +{ 5, s_2_190, -1, 1, 0}, +{ 5, s_2_191, -1, 1, 0}, +{ 5, s_2_192, -1, 1, 0}, +{ 4, s_2_193, -1, 1, 0}, +{ 5, s_2_194, -1, 1, 0}, +{ 4, s_2_195, -1, 1, 0}, +{ 1, s_2_196, -1, 1, 0}, +{ 2, s_2_197, 196, 1, 0}, +{ 3, s_2_198, 197, 1, 0}, +{ 4, s_2_199, 198, 1, 0} }; static const symbol s_3_0[3] = { 'a', 'b', 'a' }; @@ -833,289 +833,289 @@ static const symbol s_3_282[2] = { 'i', 0xF3 }; static const struct among a_3[283] = { -/* 0 */ { 3, s_3_0, -1, 1, 0}, -/* 1 */ { 4, s_3_1, -1, 1, 0}, -/* 2 */ { 4, s_3_2, -1, 1, 0}, -/* 3 */ { 4, s_3_3, -1, 1, 0}, -/* 4 */ { 3, s_3_4, -1, 1, 0}, -/* 5 */ { 3, s_3_5, -1, 1, 0}, -/* 6 */ { 3, s_3_6, -1, 1, 0}, -/* 7 */ { 3, s_3_7, -1, 1, 0}, -/* 8 */ { 2, s_3_8, -1, 1, 0}, -/* 9 */ { 4, s_3_9, 8, 1, 0}, -/* 10 */ { 4, s_3_10, 8, 1, 0}, -/* 11 */ { 3, s_3_11, -1, 1, 0}, -/* 12 */ { 4, s_3_12, -1, 1, 0}, -/* 13 */ { 3, s_3_13, -1, 1, 0}, -/* 14 */ { 5, s_3_14, -1, 1, 0}, -/* 15 */ { 3, s_3_15, -1, 1, 0}, -/* 16 */ { 3, s_3_16, -1, 1, 0}, -/* 17 */ { 3, s_3_17, -1, 1, 0}, -/* 18 */ { 4, s_3_18, -1, 1, 0}, -/* 19 */ { 2, s_3_19, -1, 1, 0}, -/* 20 */ { 4, s_3_20, 19, 1, 0}, -/* 21 */ { 4, s_3_21, 19, 1, 0}, -/* 22 */ { 4, s_3_22, 19, 1, 0}, -/* 23 */ { 2, s_3_23, -1, 1, 0}, -/* 24 */ { 3, s_3_24, -1, 1, 0}, -/* 25 */ { 3, s_3_25, -1, 1, 0}, -/* 26 */ { 2, s_3_26, -1, 1, 0}, -/* 27 */ { 2, s_3_27, -1, 1, 0}, -/* 28 */ { 2, s_3_28, -1, 1, 0}, -/* 29 */ { 2, s_3_29, -1, 1, 0}, -/* 30 */ { 2, s_3_30, -1, 1, 0}, -/* 31 */ { 3, s_3_31, 30, 1, 0}, -/* 32 */ { 3, s_3_32, -1, 1, 0}, -/* 33 */ { 4, s_3_33, -1, 1, 0}, -/* 34 */ { 4, s_3_34, -1, 1, 0}, -/* 35 */ { 4, s_3_35, -1, 1, 0}, -/* 36 */ { 2, s_3_36, -1, 1, 0}, -/* 37 */ { 3, s_3_37, -1, 1, 0}, -/* 38 */ { 5, s_3_38, -1, 1, 0}, -/* 39 */ { 4, s_3_39, -1, 1, 0}, -/* 40 */ { 4, s_3_40, -1, 1, 0}, -/* 41 */ { 2, s_3_41, -1, 1, 0}, -/* 42 */ { 2, s_3_42, -1, 1, 0}, -/* 43 */ { 4, s_3_43, 42, 1, 0}, -/* 44 */ { 4, s_3_44, 42, 1, 0}, -/* 45 */ { 4, s_3_45, 42, 1, 0}, -/* 46 */ { 4, s_3_46, 42, 1, 0}, -/* 47 */ { 5, s_3_47, 42, 1, 0}, -/* 48 */ { 5, s_3_48, 42, 1, 0}, -/* 49 */ { 5, s_3_49, 42, 1, 0}, -/* 50 */ { 5, s_3_50, 42, 1, 0}, -/* 51 */ { 4, s_3_51, 42, 1, 0}, -/* 52 */ { 4, s_3_52, 42, 1, 0}, -/* 53 */ { 4, s_3_53, 42, 1, 0}, -/* 54 */ { 5, s_3_54, 42, 1, 0}, -/* 55 */ { 3, s_3_55, 42, 1, 0}, -/* 56 */ { 5, s_3_56, 55, 1, 0}, -/* 57 */ { 5, s_3_57, 55, 1, 0}, -/* 58 */ { 5, s_3_58, -1, 1, 0}, -/* 59 */ { 5, s_3_59, -1, 1, 0}, -/* 60 */ { 5, s_3_60, -1, 1, 0}, -/* 61 */ { 5, s_3_61, -1, 1, 0}, -/* 62 */ { 5, s_3_62, -1, 1, 0}, -/* 63 */ { 5, s_3_63, -1, 1, 0}, -/* 64 */ { 5, s_3_64, -1, 1, 0}, -/* 65 */ { 2, s_3_65, -1, 1, 0}, -/* 66 */ { 2, s_3_66, -1, 1, 0}, -/* 67 */ { 4, s_3_67, 66, 1, 0}, -/* 68 */ { 5, s_3_68, 66, 1, 0}, -/* 69 */ { 4, s_3_69, 66, 1, 0}, -/* 70 */ { 5, s_3_70, 66, 1, 0}, -/* 71 */ { 4, s_3_71, 66, 1, 0}, -/* 72 */ { 3, s_3_72, 66, 1, 0}, -/* 73 */ { 5, s_3_73, 72, 1, 0}, -/* 74 */ { 5, s_3_74, 72, 1, 0}, -/* 75 */ { 5, s_3_75, 72, 1, 0}, -/* 76 */ { 2, s_3_76, -1, 1, 0}, -/* 77 */ { 3, s_3_77, 76, 1, 0}, -/* 78 */ { 5, s_3_78, 77, 1, 0}, -/* 79 */ { 5, s_3_79, 77, 1, 0}, -/* 80 */ { 4, s_3_80, 76, 1, 0}, -/* 81 */ { 4, s_3_81, 76, 1, 0}, -/* 82 */ { 4, s_3_82, 76, 1, 0}, -/* 83 */ { 4, s_3_83, 76, 1, 0}, -/* 84 */ { 4, s_3_84, 76, 1, 0}, -/* 85 */ { 4, s_3_85, 76, 1, 0}, -/* 86 */ { 5, s_3_86, 76, 1, 0}, -/* 87 */ { 5, s_3_87, 76, 1, 0}, -/* 88 */ { 5, s_3_88, 76, 1, 0}, -/* 89 */ { 5, s_3_89, 76, 1, 0}, -/* 90 */ { 5, s_3_90, 76, 1, 0}, -/* 91 */ { 5, s_3_91, 76, 1, 0}, -/* 92 */ { 6, s_3_92, 76, 1, 0}, -/* 93 */ { 6, s_3_93, 76, 1, 0}, -/* 94 */ { 6, s_3_94, 76, 1, 0}, -/* 95 */ { 4, s_3_95, 76, 1, 0}, -/* 96 */ { 4, s_3_96, 76, 1, 0}, -/* 97 */ { 5, s_3_97, 96, 1, 0}, -/* 98 */ { 4, s_3_98, 76, 1, 0}, -/* 99 */ { 3, s_3_99, 76, 1, 0}, -/*100 */ { 2, s_3_100, -1, 1, 0}, -/*101 */ { 4, s_3_101, 100, 1, 0}, -/*102 */ { 3, s_3_102, 100, 1, 0}, -/*103 */ { 4, s_3_103, 102, 1, 0}, -/*104 */ { 5, s_3_104, 102, 1, 0}, -/*105 */ { 5, s_3_105, 102, 1, 0}, -/*106 */ { 5, s_3_106, 102, 1, 0}, -/*107 */ { 5, s_3_107, 102, 1, 0}, -/*108 */ { 6, s_3_108, 100, 1, 0}, -/*109 */ { 5, s_3_109, 100, 1, 0}, -/*110 */ { 4, s_3_110, -1, 1, 0}, -/*111 */ { 5, s_3_111, -1, 1, 0}, -/*112 */ { 4, s_3_112, -1, 1, 0}, -/*113 */ { 4, s_3_113, -1, 1, 0}, -/*114 */ { 4, s_3_114, -1, 1, 0}, -/*115 */ { 3, s_3_115, -1, 1, 0}, -/*116 */ { 3, s_3_116, -1, 1, 0}, -/*117 */ { 3, s_3_117, -1, 1, 0}, -/*118 */ { 4, s_3_118, -1, 2, 0}, -/*119 */ { 5, s_3_119, -1, 1, 0}, -/*120 */ { 2, s_3_120, -1, 1, 0}, -/*121 */ { 3, s_3_121, -1, 1, 0}, -/*122 */ { 4, s_3_122, 121, 1, 0}, -/*123 */ { 3, s_3_123, -1, 1, 0}, -/*124 */ { 4, s_3_124, -1, 1, 0}, -/*125 */ { 2, s_3_125, -1, 1, 0}, -/*126 */ { 4, s_3_126, 125, 1, 0}, -/*127 */ { 2, s_3_127, -1, 1, 0}, -/*128 */ { 5, s_3_128, 127, 1, 0}, -/*129 */ { 2, s_3_129, -1, 1, 0}, -/*130 */ { 4, s_3_130, -1, 1, 0}, -/*131 */ { 2, s_3_131, -1, 1, 0}, -/*132 */ { 4, s_3_132, 131, 1, 0}, -/*133 */ { 4, s_3_133, 131, 1, 0}, -/*134 */ { 4, s_3_134, 131, 1, 0}, -/*135 */ { 4, s_3_135, 131, 1, 0}, -/*136 */ { 5, s_3_136, 131, 1, 0}, -/*137 */ { 3, s_3_137, 131, 1, 0}, -/*138 */ { 5, s_3_138, 137, 1, 0}, -/*139 */ { 5, s_3_139, 137, 1, 0}, -/*140 */ { 5, s_3_140, 137, 1, 0}, -/*141 */ { 3, s_3_141, -1, 1, 0}, -/*142 */ { 2, s_3_142, -1, 1, 0}, -/*143 */ { 4, s_3_143, 142, 1, 0}, -/*144 */ { 4, s_3_144, 142, 1, 0}, -/*145 */ { 4, s_3_145, 142, 1, 0}, -/*146 */ { 4, s_3_146, 142, 1, 0}, -/*147 */ { 5, s_3_147, 142, 1, 0}, -/*148 */ { 3, s_3_148, 142, 1, 0}, -/*149 */ { 5, s_3_149, 148, 1, 0}, -/*150 */ { 5, s_3_150, 148, 1, 0}, -/*151 */ { 4, s_3_151, 142, 1, 0}, -/*152 */ { 4, s_3_152, 142, 1, 0}, -/*153 */ { 6, s_3_153, 142, 1, 0}, -/*154 */ { 4, s_3_154, 142, 1, 0}, -/*155 */ { 4, s_3_155, 142, 1, 0}, -/*156 */ { 5, s_3_156, 142, 1, 0}, -/*157 */ { 5, s_3_157, 142, 1, 0}, -/*158 */ { 5, s_3_158, 142, 1, 0}, -/*159 */ { 5, s_3_159, 142, 1, 0}, -/*160 */ { 5, s_3_160, 142, 1, 0}, -/*161 */ { 4, s_3_161, 142, 1, 0}, -/*162 */ { 6, s_3_162, 161, 1, 0}, -/*163 */ { 6, s_3_163, 161, 1, 0}, -/*164 */ { 4, s_3_164, 142, 1, 0}, -/*165 */ { 4, s_3_165, 142, 1, 0}, -/*166 */ { 5, s_3_166, 165, 1, 0}, -/*167 */ { 4, s_3_167, 142, 1, 0}, -/*168 */ { 3, s_3_168, 142, 1, 0}, -/*169 */ { 5, s_3_169, -1, 1, 0}, -/*170 */ { 5, s_3_170, -1, 1, 0}, -/*171 */ { 6, s_3_171, -1, 1, 0}, -/*172 */ { 4, s_3_172, -1, 1, 0}, -/*173 */ { 6, s_3_173, 172, 1, 0}, -/*174 */ { 6, s_3_174, 172, 1, 0}, -/*175 */ { 6, s_3_175, 172, 1, 0}, -/*176 */ { 5, s_3_176, -1, 1, 0}, -/*177 */ { 6, s_3_177, -1, 1, 0}, -/*178 */ { 6, s_3_178, -1, 1, 0}, -/*179 */ { 6, s_3_179, -1, 1, 0}, -/*180 */ { 4, s_3_180, -1, 1, 0}, -/*181 */ { 3, s_3_181, -1, 1, 0}, -/*182 */ { 4, s_3_182, 181, 1, 0}, -/*183 */ { 5, s_3_183, 181, 1, 0}, -/*184 */ { 5, s_3_184, 181, 1, 0}, -/*185 */ { 5, s_3_185, 181, 1, 0}, -/*186 */ { 5, s_3_186, 181, 1, 0}, -/*187 */ { 6, s_3_187, -1, 1, 0}, -/*188 */ { 5, s_3_188, -1, 1, 0}, -/*189 */ { 5, s_3_189, -1, 1, 0}, -/*190 */ { 3, s_3_190, -1, 1, 0}, -/*191 */ { 5, s_3_191, -1, 1, 0}, -/*192 */ { 5, s_3_192, -1, 1, 0}, -/*193 */ { 5, s_3_193, -1, 1, 0}, -/*194 */ { 3, s_3_194, -1, 1, 0}, -/*195 */ { 4, s_3_195, -1, 1, 0}, -/*196 */ { 4, s_3_196, -1, 1, 0}, -/*197 */ { 4, s_3_197, -1, 1, 0}, -/*198 */ { 6, s_3_198, 197, 1, 0}, -/*199 */ { 6, s_3_199, 197, 1, 0}, -/*200 */ { 7, s_3_200, 197, 1, 0}, -/*201 */ { 5, s_3_201, 197, 1, 0}, -/*202 */ { 7, s_3_202, 201, 1, 0}, -/*203 */ { 7, s_3_203, 201, 1, 0}, -/*204 */ { 7, s_3_204, 201, 1, 0}, -/*205 */ { 6, s_3_205, -1, 1, 0}, -/*206 */ { 6, s_3_206, -1, 1, 0}, -/*207 */ { 6, s_3_207, -1, 1, 0}, -/*208 */ { 6, s_3_208, -1, 1, 0}, -/*209 */ { 7, s_3_209, -1, 1, 0}, -/*210 */ { 4, s_3_210, -1, 1, 0}, -/*211 */ { 5, s_3_211, -1, 1, 0}, -/*212 */ { 3, s_3_212, -1, 1, 0}, -/*213 */ { 5, s_3_213, 212, 1, 0}, -/*214 */ { 3, s_3_214, -1, 1, 0}, -/*215 */ { 3, s_3_215, -1, 1, 0}, -/*216 */ { 3, s_3_216, -1, 1, 0}, -/*217 */ { 4, s_3_217, -1, 1, 0}, -/*218 */ { 2, s_3_218, -1, 1, 0}, -/*219 */ { 4, s_3_219, 218, 1, 0}, -/*220 */ { 4, s_3_220, 218, 1, 0}, -/*221 */ { 4, s_3_221, -1, 1, 0}, -/*222 */ { 4, s_3_222, -1, 1, 0}, -/*223 */ { 4, s_3_223, -1, 1, 0}, -/*224 */ { 2, s_3_224, -1, 1, 0}, -/*225 */ { 4, s_3_225, 224, 1, 0}, -/*226 */ { 2, s_3_226, -1, 1, 0}, -/*227 */ { 3, s_3_227, -1, 1, 0}, -/*228 */ { 2, s_3_228, -1, 1, 0}, -/*229 */ { 2, s_3_229, -1, 1, 0}, -/*230 */ { 3, s_3_230, -1, 1, 0}, -/*231 */ { 3, s_3_231, -1, 1, 0}, -/*232 */ { 3, s_3_232, -1, 1, 0}, -/*233 */ { 2, s_3_233, -1, 1, 0}, -/*234 */ { 2, s_3_234, -1, 1, 0}, -/*235 */ { 2, s_3_235, -1, 1, 0}, -/*236 */ { 4, s_3_236, 235, 1, 0}, -/*237 */ { 3, s_3_237, -1, 1, 0}, -/*238 */ { 4, s_3_238, -1, 1, 0}, -/*239 */ { 4, s_3_239, -1, 1, 0}, -/*240 */ { 4, s_3_240, -1, 1, 0}, -/*241 */ { 4, s_3_241, -1, 1, 0}, -/*242 */ { 4, s_3_242, -1, 1, 0}, -/*243 */ { 5, s_3_243, -1, 1, 0}, -/*244 */ { 5, s_3_244, -1, 1, 0}, -/*245 */ { 7, s_3_245, 244, 1, 0}, -/*246 */ { 5, s_3_246, -1, 1, 0}, -/*247 */ { 5, s_3_247, -1, 1, 0}, -/*248 */ { 5, s_3_248, -1, 1, 0}, -/*249 */ { 5, s_3_249, -1, 1, 0}, -/*250 */ { 4, s_3_250, -1, 1, 0}, -/*251 */ { 4, s_3_251, -1, 1, 0}, -/*252 */ { 5, s_3_252, -1, 1, 0}, -/*253 */ { 3, s_3_253, -1, 1, 0}, -/*254 */ { 5, s_3_254, 253, 1, 0}, -/*255 */ { 3, s_3_255, -1, 1, 0}, -/*256 */ { 5, s_3_256, 255, 1, 0}, -/*257 */ { 5, s_3_257, 255, 1, 0}, -/*258 */ { 5, s_3_258, -1, 1, 0}, -/*259 */ { 5, s_3_259, -1, 1, 0}, -/*260 */ { 5, s_3_260, -1, 1, 0}, -/*261 */ { 5, s_3_261, -1, 1, 0}, -/*262 */ { 5, s_3_262, -1, 1, 0}, -/*263 */ { 5, s_3_263, -1, 1, 0}, -/*264 */ { 2, s_3_264, -1, 1, 0}, -/*265 */ { 2, s_3_265, -1, 1, 0}, -/*266 */ { 3, s_3_266, 265, 1, 0}, -/*267 */ { 2, s_3_267, -1, 1, 0}, -/*268 */ { 3, s_3_268, -1, 1, 0}, -/*269 */ { 2, s_3_269, -1, 1, 0}, -/*270 */ { 3, s_3_270, -1, 1, 0}, -/*271 */ { 3, s_3_271, -1, 1, 0}, -/*272 */ { 4, s_3_272, -1, 1, 0}, -/*273 */ { 3, s_3_273, -1, 1, 0}, -/*274 */ { 3, s_3_274, -1, 1, 0}, -/*275 */ { 3, s_3_275, -1, 1, 0}, -/*276 */ { 3, s_3_276, -1, 1, 0}, -/*277 */ { 3, s_3_277, -1, 1, 0}, -/*278 */ { 3, s_3_278, -1, 1, 0}, -/*279 */ { 3, s_3_279, -1, 1, 0}, -/*280 */ { 1, s_3_280, -1, 1, 0}, -/*281 */ { 2, s_3_281, -1, 1, 0}, -/*282 */ { 2, s_3_282, -1, 1, 0} +{ 3, s_3_0, -1, 1, 0}, +{ 4, s_3_1, -1, 1, 0}, +{ 4, s_3_2, -1, 1, 0}, +{ 4, s_3_3, -1, 1, 0}, +{ 3, s_3_4, -1, 1, 0}, +{ 3, s_3_5, -1, 1, 0}, +{ 3, s_3_6, -1, 1, 0}, +{ 3, s_3_7, -1, 1, 0}, +{ 2, s_3_8, -1, 1, 0}, +{ 4, s_3_9, 8, 1, 0}, +{ 4, s_3_10, 8, 1, 0}, +{ 3, s_3_11, -1, 1, 0}, +{ 4, s_3_12, -1, 1, 0}, +{ 3, s_3_13, -1, 1, 0}, +{ 5, s_3_14, -1, 1, 0}, +{ 3, s_3_15, -1, 1, 0}, +{ 3, s_3_16, -1, 1, 0}, +{ 3, s_3_17, -1, 1, 0}, +{ 4, s_3_18, -1, 1, 0}, +{ 2, s_3_19, -1, 1, 0}, +{ 4, s_3_20, 19, 1, 0}, +{ 4, s_3_21, 19, 1, 0}, +{ 4, s_3_22, 19, 1, 0}, +{ 2, s_3_23, -1, 1, 0}, +{ 3, s_3_24, -1, 1, 0}, +{ 3, s_3_25, -1, 1, 0}, +{ 2, s_3_26, -1, 1, 0}, +{ 2, s_3_27, -1, 1, 0}, +{ 2, s_3_28, -1, 1, 0}, +{ 2, s_3_29, -1, 1, 0}, +{ 2, s_3_30, -1, 1, 0}, +{ 3, s_3_31, 30, 1, 0}, +{ 3, s_3_32, -1, 1, 0}, +{ 4, s_3_33, -1, 1, 0}, +{ 4, s_3_34, -1, 1, 0}, +{ 4, s_3_35, -1, 1, 0}, +{ 2, s_3_36, -1, 1, 0}, +{ 3, s_3_37, -1, 1, 0}, +{ 5, s_3_38, -1, 1, 0}, +{ 4, s_3_39, -1, 1, 0}, +{ 4, s_3_40, -1, 1, 0}, +{ 2, s_3_41, -1, 1, 0}, +{ 2, s_3_42, -1, 1, 0}, +{ 4, s_3_43, 42, 1, 0}, +{ 4, s_3_44, 42, 1, 0}, +{ 4, s_3_45, 42, 1, 0}, +{ 4, s_3_46, 42, 1, 0}, +{ 5, s_3_47, 42, 1, 0}, +{ 5, s_3_48, 42, 1, 0}, +{ 5, s_3_49, 42, 1, 0}, +{ 5, s_3_50, 42, 1, 0}, +{ 4, s_3_51, 42, 1, 0}, +{ 4, s_3_52, 42, 1, 0}, +{ 4, s_3_53, 42, 1, 0}, +{ 5, s_3_54, 42, 1, 0}, +{ 3, s_3_55, 42, 1, 0}, +{ 5, s_3_56, 55, 1, 0}, +{ 5, s_3_57, 55, 1, 0}, +{ 5, s_3_58, -1, 1, 0}, +{ 5, s_3_59, -1, 1, 0}, +{ 5, s_3_60, -1, 1, 0}, +{ 5, s_3_61, -1, 1, 0}, +{ 5, s_3_62, -1, 1, 0}, +{ 5, s_3_63, -1, 1, 0}, +{ 5, s_3_64, -1, 1, 0}, +{ 2, s_3_65, -1, 1, 0}, +{ 2, s_3_66, -1, 1, 0}, +{ 4, s_3_67, 66, 1, 0}, +{ 5, s_3_68, 66, 1, 0}, +{ 4, s_3_69, 66, 1, 0}, +{ 5, s_3_70, 66, 1, 0}, +{ 4, s_3_71, 66, 1, 0}, +{ 3, s_3_72, 66, 1, 0}, +{ 5, s_3_73, 72, 1, 0}, +{ 5, s_3_74, 72, 1, 0}, +{ 5, s_3_75, 72, 1, 0}, +{ 2, s_3_76, -1, 1, 0}, +{ 3, s_3_77, 76, 1, 0}, +{ 5, s_3_78, 77, 1, 0}, +{ 5, s_3_79, 77, 1, 0}, +{ 4, s_3_80, 76, 1, 0}, +{ 4, s_3_81, 76, 1, 0}, +{ 4, s_3_82, 76, 1, 0}, +{ 4, s_3_83, 76, 1, 0}, +{ 4, s_3_84, 76, 1, 0}, +{ 4, s_3_85, 76, 1, 0}, +{ 5, s_3_86, 76, 1, 0}, +{ 5, s_3_87, 76, 1, 0}, +{ 5, s_3_88, 76, 1, 0}, +{ 5, s_3_89, 76, 1, 0}, +{ 5, s_3_90, 76, 1, 0}, +{ 5, s_3_91, 76, 1, 0}, +{ 6, s_3_92, 76, 1, 0}, +{ 6, s_3_93, 76, 1, 0}, +{ 6, s_3_94, 76, 1, 0}, +{ 4, s_3_95, 76, 1, 0}, +{ 4, s_3_96, 76, 1, 0}, +{ 5, s_3_97, 96, 1, 0}, +{ 4, s_3_98, 76, 1, 0}, +{ 3, s_3_99, 76, 1, 0}, +{ 2, s_3_100, -1, 1, 0}, +{ 4, s_3_101, 100, 1, 0}, +{ 3, s_3_102, 100, 1, 0}, +{ 4, s_3_103, 102, 1, 0}, +{ 5, s_3_104, 102, 1, 0}, +{ 5, s_3_105, 102, 1, 0}, +{ 5, s_3_106, 102, 1, 0}, +{ 5, s_3_107, 102, 1, 0}, +{ 6, s_3_108, 100, 1, 0}, +{ 5, s_3_109, 100, 1, 0}, +{ 4, s_3_110, -1, 1, 0}, +{ 5, s_3_111, -1, 1, 0}, +{ 4, s_3_112, -1, 1, 0}, +{ 4, s_3_113, -1, 1, 0}, +{ 4, s_3_114, -1, 1, 0}, +{ 3, s_3_115, -1, 1, 0}, +{ 3, s_3_116, -1, 1, 0}, +{ 3, s_3_117, -1, 1, 0}, +{ 4, s_3_118, -1, 2, 0}, +{ 5, s_3_119, -1, 1, 0}, +{ 2, s_3_120, -1, 1, 0}, +{ 3, s_3_121, -1, 1, 0}, +{ 4, s_3_122, 121, 1, 0}, +{ 3, s_3_123, -1, 1, 0}, +{ 4, s_3_124, -1, 1, 0}, +{ 2, s_3_125, -1, 1, 0}, +{ 4, s_3_126, 125, 1, 0}, +{ 2, s_3_127, -1, 1, 0}, +{ 5, s_3_128, 127, 1, 0}, +{ 2, s_3_129, -1, 1, 0}, +{ 4, s_3_130, -1, 1, 0}, +{ 2, s_3_131, -1, 1, 0}, +{ 4, s_3_132, 131, 1, 0}, +{ 4, s_3_133, 131, 1, 0}, +{ 4, s_3_134, 131, 1, 0}, +{ 4, s_3_135, 131, 1, 0}, +{ 5, s_3_136, 131, 1, 0}, +{ 3, s_3_137, 131, 1, 0}, +{ 5, s_3_138, 137, 1, 0}, +{ 5, s_3_139, 137, 1, 0}, +{ 5, s_3_140, 137, 1, 0}, +{ 3, s_3_141, -1, 1, 0}, +{ 2, s_3_142, -1, 1, 0}, +{ 4, s_3_143, 142, 1, 0}, +{ 4, s_3_144, 142, 1, 0}, +{ 4, s_3_145, 142, 1, 0}, +{ 4, s_3_146, 142, 1, 0}, +{ 5, s_3_147, 142, 1, 0}, +{ 3, s_3_148, 142, 1, 0}, +{ 5, s_3_149, 148, 1, 0}, +{ 5, s_3_150, 148, 1, 0}, +{ 4, s_3_151, 142, 1, 0}, +{ 4, s_3_152, 142, 1, 0}, +{ 6, s_3_153, 142, 1, 0}, +{ 4, s_3_154, 142, 1, 0}, +{ 4, s_3_155, 142, 1, 0}, +{ 5, s_3_156, 142, 1, 0}, +{ 5, s_3_157, 142, 1, 0}, +{ 5, s_3_158, 142, 1, 0}, +{ 5, s_3_159, 142, 1, 0}, +{ 5, s_3_160, 142, 1, 0}, +{ 4, s_3_161, 142, 1, 0}, +{ 6, s_3_162, 161, 1, 0}, +{ 6, s_3_163, 161, 1, 0}, +{ 4, s_3_164, 142, 1, 0}, +{ 4, s_3_165, 142, 1, 0}, +{ 5, s_3_166, 165, 1, 0}, +{ 4, s_3_167, 142, 1, 0}, +{ 3, s_3_168, 142, 1, 0}, +{ 5, s_3_169, -1, 1, 0}, +{ 5, s_3_170, -1, 1, 0}, +{ 6, s_3_171, -1, 1, 0}, +{ 4, s_3_172, -1, 1, 0}, +{ 6, s_3_173, 172, 1, 0}, +{ 6, s_3_174, 172, 1, 0}, +{ 6, s_3_175, 172, 1, 0}, +{ 5, s_3_176, -1, 1, 0}, +{ 6, s_3_177, -1, 1, 0}, +{ 6, s_3_178, -1, 1, 0}, +{ 6, s_3_179, -1, 1, 0}, +{ 4, s_3_180, -1, 1, 0}, +{ 3, s_3_181, -1, 1, 0}, +{ 4, s_3_182, 181, 1, 0}, +{ 5, s_3_183, 181, 1, 0}, +{ 5, s_3_184, 181, 1, 0}, +{ 5, s_3_185, 181, 1, 0}, +{ 5, s_3_186, 181, 1, 0}, +{ 6, s_3_187, -1, 1, 0}, +{ 5, s_3_188, -1, 1, 0}, +{ 5, s_3_189, -1, 1, 0}, +{ 3, s_3_190, -1, 1, 0}, +{ 5, s_3_191, -1, 1, 0}, +{ 5, s_3_192, -1, 1, 0}, +{ 5, s_3_193, -1, 1, 0}, +{ 3, s_3_194, -1, 1, 0}, +{ 4, s_3_195, -1, 1, 0}, +{ 4, s_3_196, -1, 1, 0}, +{ 4, s_3_197, -1, 1, 0}, +{ 6, s_3_198, 197, 1, 0}, +{ 6, s_3_199, 197, 1, 0}, +{ 7, s_3_200, 197, 1, 0}, +{ 5, s_3_201, 197, 1, 0}, +{ 7, s_3_202, 201, 1, 0}, +{ 7, s_3_203, 201, 1, 0}, +{ 7, s_3_204, 201, 1, 0}, +{ 6, s_3_205, -1, 1, 0}, +{ 6, s_3_206, -1, 1, 0}, +{ 6, s_3_207, -1, 1, 0}, +{ 6, s_3_208, -1, 1, 0}, +{ 7, s_3_209, -1, 1, 0}, +{ 4, s_3_210, -1, 1, 0}, +{ 5, s_3_211, -1, 1, 0}, +{ 3, s_3_212, -1, 1, 0}, +{ 5, s_3_213, 212, 1, 0}, +{ 3, s_3_214, -1, 1, 0}, +{ 3, s_3_215, -1, 1, 0}, +{ 3, s_3_216, -1, 1, 0}, +{ 4, s_3_217, -1, 1, 0}, +{ 2, s_3_218, -1, 1, 0}, +{ 4, s_3_219, 218, 1, 0}, +{ 4, s_3_220, 218, 1, 0}, +{ 4, s_3_221, -1, 1, 0}, +{ 4, s_3_222, -1, 1, 0}, +{ 4, s_3_223, -1, 1, 0}, +{ 2, s_3_224, -1, 1, 0}, +{ 4, s_3_225, 224, 1, 0}, +{ 2, s_3_226, -1, 1, 0}, +{ 3, s_3_227, -1, 1, 0}, +{ 2, s_3_228, -1, 1, 0}, +{ 2, s_3_229, -1, 1, 0}, +{ 3, s_3_230, -1, 1, 0}, +{ 3, s_3_231, -1, 1, 0}, +{ 3, s_3_232, -1, 1, 0}, +{ 2, s_3_233, -1, 1, 0}, +{ 2, s_3_234, -1, 1, 0}, +{ 2, s_3_235, -1, 1, 0}, +{ 4, s_3_236, 235, 1, 0}, +{ 3, s_3_237, -1, 1, 0}, +{ 4, s_3_238, -1, 1, 0}, +{ 4, s_3_239, -1, 1, 0}, +{ 4, s_3_240, -1, 1, 0}, +{ 4, s_3_241, -1, 1, 0}, +{ 4, s_3_242, -1, 1, 0}, +{ 5, s_3_243, -1, 1, 0}, +{ 5, s_3_244, -1, 1, 0}, +{ 7, s_3_245, 244, 1, 0}, +{ 5, s_3_246, -1, 1, 0}, +{ 5, s_3_247, -1, 1, 0}, +{ 5, s_3_248, -1, 1, 0}, +{ 5, s_3_249, -1, 1, 0}, +{ 4, s_3_250, -1, 1, 0}, +{ 4, s_3_251, -1, 1, 0}, +{ 5, s_3_252, -1, 1, 0}, +{ 3, s_3_253, -1, 1, 0}, +{ 5, s_3_254, 253, 1, 0}, +{ 3, s_3_255, -1, 1, 0}, +{ 5, s_3_256, 255, 1, 0}, +{ 5, s_3_257, 255, 1, 0}, +{ 5, s_3_258, -1, 1, 0}, +{ 5, s_3_259, -1, 1, 0}, +{ 5, s_3_260, -1, 1, 0}, +{ 5, s_3_261, -1, 1, 0}, +{ 5, s_3_262, -1, 1, 0}, +{ 5, s_3_263, -1, 1, 0}, +{ 2, s_3_264, -1, 1, 0}, +{ 2, s_3_265, -1, 1, 0}, +{ 3, s_3_266, 265, 1, 0}, +{ 2, s_3_267, -1, 1, 0}, +{ 3, s_3_268, -1, 1, 0}, +{ 2, s_3_269, -1, 1, 0}, +{ 3, s_3_270, -1, 1, 0}, +{ 3, s_3_271, -1, 1, 0}, +{ 4, s_3_272, -1, 1, 0}, +{ 3, s_3_273, -1, 1, 0}, +{ 3, s_3_274, -1, 1, 0}, +{ 3, s_3_275, -1, 1, 0}, +{ 3, s_3_276, -1, 1, 0}, +{ 3, s_3_277, -1, 1, 0}, +{ 3, s_3_278, -1, 1, 0}, +{ 3, s_3_279, -1, 1, 0}, +{ 1, s_3_280, -1, 1, 0}, +{ 2, s_3_281, -1, 1, 0}, +{ 2, s_3_282, -1, 1, 0} }; static const symbol s_4_0[1] = { 'a' }; @@ -1143,28 +1143,28 @@ static const symbol s_4_21[1] = { 0xF3 }; static const struct among a_4[22] = { -/* 0 */ { 1, s_4_0, -1, 1, 0}, -/* 1 */ { 1, s_4_1, -1, 1, 0}, -/* 2 */ { 1, s_4_2, -1, 1, 0}, -/* 3 */ { 2, s_4_3, -1, 1, 0}, -/* 4 */ { 1, s_4_4, -1, 1, 0}, -/* 5 */ { 2, s_4_5, -1, 1, 0}, -/* 6 */ { 1, s_4_6, -1, 1, 0}, -/* 7 */ { 2, s_4_7, 6, 1, 0}, -/* 8 */ { 2, s_4_8, 6, 1, 0}, -/* 9 */ { 2, s_4_9, 6, 1, 0}, -/* 10 */ { 2, s_4_10, -1, 1, 0}, -/* 11 */ { 2, s_4_11, -1, 1, 0}, -/* 12 */ { 2, s_4_12, -1, 1, 0}, -/* 13 */ { 3, s_4_13, -1, 2, 0}, -/* 14 */ { 3, s_4_14, -1, 1, 0}, -/* 15 */ { 1, s_4_15, -1, 1, 0}, -/* 16 */ { 1, s_4_16, -1, 1, 0}, -/* 17 */ { 1, s_4_17, -1, 1, 0}, -/* 18 */ { 1, s_4_18, -1, 1, 0}, -/* 19 */ { 1, s_4_19, -1, 1, 0}, -/* 20 */ { 1, s_4_20, -1, 1, 0}, -/* 21 */ { 1, s_4_21, -1, 1, 0} +{ 1, s_4_0, -1, 1, 0}, +{ 1, s_4_1, -1, 1, 0}, +{ 1, s_4_2, -1, 1, 0}, +{ 2, s_4_3, -1, 1, 0}, +{ 1, s_4_4, -1, 1, 0}, +{ 2, s_4_5, -1, 1, 0}, +{ 1, s_4_6, -1, 1, 0}, +{ 2, s_4_7, 6, 1, 0}, +{ 2, s_4_8, 6, 1, 0}, +{ 2, s_4_9, 6, 1, 0}, +{ 2, s_4_10, -1, 1, 0}, +{ 2, s_4_11, -1, 1, 0}, +{ 2, s_4_12, -1, 1, 0}, +{ 3, s_4_13, -1, 2, 0}, +{ 3, s_4_14, -1, 1, 0}, +{ 1, s_4_15, -1, 1, 0}, +{ 1, s_4_16, -1, 1, 0}, +{ 1, s_4_17, -1, 1, 0}, +{ 1, s_4_18, -1, 1, 0}, +{ 1, s_4_19, -1, 1, 0}, +{ 1, s_4_20, -1, 1, 0}, +{ 1, s_4_21, -1, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 129, 81, 6, 10 }; @@ -1180,81 +1180,80 @@ static const symbol s_7[] = { 'i', 'c' }; static const symbol s_8[] = { 'c' }; static const symbol s_9[] = { 'i', 'c' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 38 */ - z->I[1] = z->l; /* $p2 = , line 39 */ - { int c1 = z->c; /* do, line 41 */ - { /* gopast */ /* grouping v, line 42 */ +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int ret = out_grouping(z, g_v, 97, 252, 1); if (ret < 0) goto lab0; z->c += ret; } - { /* gopast */ /* non v, line 42 */ + { int ret = in_grouping(z, g_v, 97, 252, 1); if (ret < 0) goto lab0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 42 */ - { /* gopast */ /* grouping v, line 43 */ + z->I[1] = z->c; + { int ret = out_grouping(z, g_v, 97, 252, 1); if (ret < 0) goto lab0; z->c += ret; } - { /* gopast */ /* non v, line 43 */ + { int ret = in_grouping(z, g_v, 97, 252, 1); if (ret < 0) goto lab0; z->c += ret; } - z->I[1] = z->c; /* setmark p2, line 43 */ + z->I[0] = z->c; lab0: z->c = c1; } return 1; } -static int r_cleaning(struct SN_env * z) { /* forwardmode */ +static int r_cleaning(struct SN_env * z) { int among_var; -/* repeat, line 47 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 48 */ - among_var = find_among(z, a_0, 13); /* substring, line 48 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + among_var = find_among(z, a_0, 13); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 48 */ - switch (among_var) { /* among, line 48 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_0); /* <-, line 49 */ + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_1); /* <-, line 51 */ + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_2); /* <-, line 53 */ + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 1, s_3); /* <-, line 55 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 1, s_4); /* <-, line 57 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 1, s_5); /* <-, line 60 */ + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } break; case 7: if (z->c >= z->l) goto lab0; - z->c++; /* next, line 61 */ + z->c++; break; } continue; @@ -1265,74 +1264,74 @@ static int r_cleaning(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 67 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 68 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 71 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1634850 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 71 */ +static int r_attached_pronoun(struct SN_env * z) { + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1634850 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_1, 39))) return 0; - z->bra = z->c; /* ], line 71 */ - { int ret = r_R1(z); /* call R1, line 81 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 81 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ +static int r_standard_suffix(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 86 */ - among_var = find_among_b(z, a_2, 200); /* substring, line 86 */ + z->ket = z->c; + among_var = find_among_b(z, a_2, 200); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 86 */ - switch (among_var) { /* among, line 86 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R1(z); /* call R1, line 110 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 110 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 112 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 112 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - { int ret = r_R2(z); /* call R2, line 114 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_6); /* <-, line 114 */ + { int ret = slice_from_s(z, 3, s_6); if (ret < 0) return ret; } break; case 4: - { int ret = r_R2(z); /* call R2, line 116 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 2, s_7); /* <-, line 116 */ + { int ret = slice_from_s(z, 2, s_7); if (ret < 0) return ret; } break; case 5: - { int ret = r_R1(z); /* call R1, line 118 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 1, s_8); /* <-, line 118 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } break; @@ -1340,26 +1339,26 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ +static int r_verb_suffix(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 123 */ - among_var = find_among_b(z, a_3, 283); /* substring, line 123 */ + z->ket = z->c; + among_var = find_among_b(z, a_3, 283); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 123 */ - switch (among_var) { /* among, line 123 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R1(z); /* call R1, line 168 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 168 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 170 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 170 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -1367,26 +1366,26 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ +static int r_residual_suffix(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 175 */ - among_var = find_among_b(z, a_4, 22); /* substring, line 175 */ + z->ket = z->c; + among_var = find_among_b(z, a_4, 22); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 175 */ - switch (among_var) { /* among, line 175 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R1(z); /* call R1, line 178 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 178 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R1(z); /* call R1, line 180 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 2, s_9); /* <-, line 180 */ + { int ret = slice_from_s(z, 2, s_9); if (ret < 0) return ret; } break; @@ -1394,29 +1393,29 @@ static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -extern int catalan_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ - /* do, line 186 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 186 */ +extern int catalan_ISO_8859_1_stem(struct SN_env * z) { + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 187 */ + z->lb = z->c; z->c = z->l; - { int m1 = z->l - z->c; (void)m1; /* do, line 188 */ - { int ret = r_attached_pronoun(z); /* call attached_pronoun, line 188 */ + { int m1 = z->l - z->c; (void)m1; + { int ret = r_attached_pronoun(z); if (ret < 0) return ret; } z->c = z->l - m1; } - { int m2 = z->l - z->c; (void)m2; /* do, line 189 */ - { int m3 = z->l - z->c; (void)m3; /* or, line 189 */ - { int ret = r_standard_suffix(z); /* call standard_suffix, line 189 */ + { int m2 = z->l - z->c; (void)m2; + { int m3 = z->l - z->c; (void)m3; + { int ret = r_standard_suffix(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } goto lab1; lab2: z->c = z->l - m3; - { int ret = r_verb_suffix(z); /* call verb_suffix, line 190 */ + { int ret = r_verb_suffix(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -1425,15 +1424,15 @@ extern int catalan_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ lab0: z->c = z->l - m2; } - { int m4 = z->l - z->c; (void)m4; /* do, line 192 */ - { int ret = r_residual_suffix(z); /* call residual_suffix, line 192 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_residual_suffix(z); if (ret < 0) return ret; } z->c = z->l - m4; } z->c = z->lb; - { int c5 = z->c; /* do, line 194 */ - { int ret = r_cleaning(z); /* call cleaning, line 194 */ + { int c5 = z->c; + { int ret = r_cleaning(z); if (ret < 0) return ret; } z->c = c5; @@ -1441,7 +1440,7 @@ extern int catalan_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * catalan_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); } +extern struct SN_env * catalan_ISO_8859_1_create_env(void) { return SN_create_env(0, 2); } extern void catalan_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c index dff225884b8aa..88ce5717c706c 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_danish.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -61,38 +61,38 @@ static const symbol s_0_31[4] = { 'e', 'r', 'e', 't' }; static const struct among a_0[32] = { -/* 0 */ { 3, s_0_0, -1, 1, 0}, -/* 1 */ { 5, s_0_1, 0, 1, 0}, -/* 2 */ { 4, s_0_2, -1, 1, 0}, -/* 3 */ { 1, s_0_3, -1, 1, 0}, -/* 4 */ { 5, s_0_4, 3, 1, 0}, -/* 5 */ { 4, s_0_5, 3, 1, 0}, -/* 6 */ { 6, s_0_6, 5, 1, 0}, -/* 7 */ { 3, s_0_7, 3, 1, 0}, -/* 8 */ { 4, s_0_8, 3, 1, 0}, -/* 9 */ { 3, s_0_9, 3, 1, 0}, -/* 10 */ { 2, s_0_10, -1, 1, 0}, -/* 11 */ { 5, s_0_11, 10, 1, 0}, -/* 12 */ { 4, s_0_12, 10, 1, 0}, -/* 13 */ { 2, s_0_13, -1, 1, 0}, -/* 14 */ { 5, s_0_14, 13, 1, 0}, -/* 15 */ { 4, s_0_15, 13, 1, 0}, -/* 16 */ { 1, s_0_16, -1, 2, 0}, -/* 17 */ { 4, s_0_17, 16, 1, 0}, -/* 18 */ { 2, s_0_18, 16, 1, 0}, -/* 19 */ { 5, s_0_19, 18, 1, 0}, -/* 20 */ { 7, s_0_20, 19, 1, 0}, -/* 21 */ { 4, s_0_21, 18, 1, 0}, -/* 22 */ { 5, s_0_22, 18, 1, 0}, -/* 23 */ { 4, s_0_23, 18, 1, 0}, -/* 24 */ { 3, s_0_24, 16, 1, 0}, -/* 25 */ { 6, s_0_25, 24, 1, 0}, -/* 26 */ { 5, s_0_26, 24, 1, 0}, -/* 27 */ { 3, s_0_27, 16, 1, 0}, -/* 28 */ { 3, s_0_28, 16, 1, 0}, -/* 29 */ { 5, s_0_29, 28, 1, 0}, -/* 30 */ { 2, s_0_30, -1, 1, 0}, -/* 31 */ { 4, s_0_31, 30, 1, 0} +{ 3, s_0_0, -1, 1, 0}, +{ 5, s_0_1, 0, 1, 0}, +{ 4, s_0_2, -1, 1, 0}, +{ 1, s_0_3, -1, 1, 0}, +{ 5, s_0_4, 3, 1, 0}, +{ 4, s_0_5, 3, 1, 0}, +{ 6, s_0_6, 5, 1, 0}, +{ 3, s_0_7, 3, 1, 0}, +{ 4, s_0_8, 3, 1, 0}, +{ 3, s_0_9, 3, 1, 0}, +{ 2, s_0_10, -1, 1, 0}, +{ 5, s_0_11, 10, 1, 0}, +{ 4, s_0_12, 10, 1, 0}, +{ 2, s_0_13, -1, 1, 0}, +{ 5, s_0_14, 13, 1, 0}, +{ 4, s_0_15, 13, 1, 0}, +{ 1, s_0_16, -1, 2, 0}, +{ 4, s_0_17, 16, 1, 0}, +{ 2, s_0_18, 16, 1, 0}, +{ 5, s_0_19, 18, 1, 0}, +{ 7, s_0_20, 19, 1, 0}, +{ 4, s_0_21, 18, 1, 0}, +{ 5, s_0_22, 18, 1, 0}, +{ 4, s_0_23, 18, 1, 0}, +{ 3, s_0_24, 16, 1, 0}, +{ 6, s_0_25, 24, 1, 0}, +{ 5, s_0_26, 24, 1, 0}, +{ 3, s_0_27, 16, 1, 0}, +{ 3, s_0_28, 16, 1, 0}, +{ 5, s_0_29, 28, 1, 0}, +{ 2, s_0_30, -1, 1, 0}, +{ 4, s_0_31, 30, 1, 0} }; static const symbol s_1_0[2] = { 'g', 'd' }; @@ -102,10 +102,10 @@ static const symbol s_1_3[2] = { 'k', 't' }; static const struct among a_1[4] = { -/* 0 */ { 2, s_1_0, -1, -1, 0}, -/* 1 */ { 2, s_1_1, -1, -1, 0}, -/* 2 */ { 2, s_1_2, -1, -1, 0}, -/* 3 */ { 2, s_1_3, -1, -1, 0} +{ 2, s_1_0, -1, -1, 0}, +{ 2, s_1_1, -1, -1, 0}, +{ 2, s_1_2, -1, -1, 0}, +{ 2, s_1_3, -1, -1, 0} }; static const symbol s_2_0[2] = { 'i', 'g' }; @@ -116,11 +116,11 @@ static const symbol s_2_4[4] = { 'l', 0xF8, 's', 't' }; static const struct among a_2[5] = { -/* 0 */ { 2, s_2_0, -1, 1, 0}, -/* 1 */ { 3, s_2_1, 0, 1, 0}, -/* 2 */ { 4, s_2_2, 1, 1, 0}, -/* 3 */ { 3, s_2_3, -1, 1, 0}, -/* 4 */ { 4, s_2_4, -1, 2, 0} +{ 2, s_2_0, -1, 1, 0}, +{ 3, s_2_1, 0, 1, 0}, +{ 4, s_2_2, 1, 1, 0}, +{ 3, s_2_3, -1, 1, 0}, +{ 4, s_2_4, -1, 2, 0} }; static const unsigned char g_c[] = { 119, 223, 119, 1 }; @@ -133,52 +133,50 @@ static const symbol s_0[] = { 's', 't' }; static const symbol s_1[] = { 'i', 'g' }; static const symbol s_2[] = { 'l', 0xF8, 's' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 33 */ - { int c_test1 = z->c; /* test, line 35 */ - { int ret = z->c + 3; /* hop, line 35 */ - if (0 > ret || ret > z->l) return 0; - z->c = ret; - } - z->I[1] = z->c; /* setmark x, line 35 */ +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + { int c_test1 = z->c; +z->c = z->c + 3; + if (z->c > z->l) return 0; + z->I[0] = z->c; z->c = c_test1; } - if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 36 */ - { /* gopast */ /* non v, line 36 */ + if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; + { int ret = in_grouping(z, g_v, 97, 248, 1); if (ret < 0) return 0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 36 */ - /* try, line 37 */ - if (!(z->I[0] < z->I[1])) goto lab0; /* $( < ), line 37 */ - z->I[0] = z->I[1]; /* $p1 = , line 37 */ + z->I[1] = z->c; + + if (!(z->I[1] < z->I[0])) goto lab0; + z->I[1] = z->I[0]; lab0: return 1; } -static int r_main_suffix(struct SN_env * z) { /* backwardmode */ +static int r_main_suffix(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 43 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 43 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 43 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } among_var = find_among_b(z, a_0, 32); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 43 */ + z->bra = z->c; z->lb = mlimit1; } - switch (among_var) { /* among, line 44 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 50 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (in_grouping_b(z, g_s_ending, 97, 229, 0)) return 0; /* grouping s_ending, line 52 */ - { int ret = slice_del(z); /* delete, line 52 */ + if (in_grouping_b(z, g_s_ending, 97, 229, 0)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -186,67 +184,67 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_consonant_pair(struct SN_env * z) { /* backwardmode */ - { int m_test1 = z->l - z->c; /* test, line 57 */ +static int r_consonant_pair(struct SN_env * z) { + { int m_test1 = z->l - z->c; - { int mlimit2; /* setlimit, line 58 */ - if (z->c < z->I[0]) return 0; - mlimit2 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 58 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; } /* substring, line 58 */ + { int mlimit2; + if (z->c < z->I[1]) return 0; + mlimit2 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; } if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; } - z->bra = z->c; /* ], line 58 */ + z->bra = z->c; z->lb = mlimit2; } z->c = z->l - m_test1; } if (z->c <= z->lb) return 0; - z->c--; /* next, line 64 */ - z->bra = z->c; /* ], line 64 */ - { int ret = slice_del(z); /* delete, line 64 */ + z->c--; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_other_suffix(struct SN_env * z) { /* backwardmode */ +static int r_other_suffix(struct SN_env * z) { int among_var; - { int m1 = z->l - z->c; (void)m1; /* do, line 68 */ - z->ket = z->c; /* [, line 68 */ - if (!(eq_s_b(z, 2, s_0))) goto lab0; /* literal, line 68 */ - z->bra = z->c; /* ], line 68 */ - if (!(eq_s_b(z, 2, s_1))) goto lab0; /* literal, line 68 */ - { int ret = slice_del(z); /* delete, line 68 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_0))) goto lab0; + z->bra = z->c; + if (!(eq_s_b(z, 2, s_1))) goto lab0; + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: z->c = z->l - m1; } - { int mlimit2; /* setlimit, line 69 */ - if (z->c < z->I[0]) return 0; - mlimit2 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 69 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; } /* substring, line 69 */ + { int mlimit2; + if (z->c < z->I[1]) return 0; + mlimit2 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; } among_var = find_among_b(z, a_2, 5); if (!(among_var)) { z->lb = mlimit2; return 0; } - z->bra = z->c; /* ], line 69 */ + z->bra = z->c; z->lb = mlimit2; } - switch (among_var) { /* among, line 70 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 72 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m3 = z->l - z->c; (void)m3; /* do, line 72 */ - { int ret = r_consonant_pair(z); /* call consonant_pair, line 72 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_consonant_pair(z); if (ret < 0) return ret; } z->c = z->l - m3; } break; case 2: - { int ret = slice_from_s(z, 3, s_2); /* <-, line 74 */ + { int ret = slice_from_s(z, 3, s_2); if (ret < 0) return ret; } break; @@ -254,54 +252,54 @@ static int r_other_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_undouble(struct SN_env * z) { /* backwardmode */ +static int r_undouble(struct SN_env * z) { - { int mlimit1; /* setlimit, line 78 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 78 */ - if (in_grouping_b(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; } /* grouping c, line 78 */ - z->bra = z->c; /* ], line 78 */ - z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 78 */ - if (z->S[0] == 0) return -1; /* -> ch, line 78 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (in_grouping_b(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; } + z->bra = z->c; + z->S[0] = slice_to(z, z->S[0]); + if (z->S[0] == 0) return -1; z->lb = mlimit1; } - if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 79 */ - { int ret = slice_del(z); /* delete, line 80 */ + if (!(eq_v_b(z, z->S[0]))) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -extern int danish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 86 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 86 */ +extern int danish_ISO_8859_1_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_mark_regions(z); if (ret < 0) return ret; } z->c = c1; } - z->lb = z->c; z->c = z->l; /* backwards, line 87 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 88 */ - { int ret = r_main_suffix(z); /* call main_suffix, line 88 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_main_suffix(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 89 */ - { int ret = r_consonant_pair(z); /* call consonant_pair, line 89 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_consonant_pair(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 90 */ - { int ret = r_other_suffix(z); /* call other_suffix, line 90 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_other_suffix(z); if (ret < 0) return ret; } z->c = z->l - m4; } - { int m5 = z->l - z->c; (void)m5; /* do, line 91 */ - { int ret = r_undouble(z); /* call undouble, line 91 */ + { int m5 = z->l - z->c; (void)m5; + { int ret = r_undouble(z); if (ret < 0) return ret; } z->c = z->l - m5; @@ -310,7 +308,7 @@ extern int danish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * danish_ISO_8859_1_create_env(void) { return SN_create_env(1, 2, 0); } +extern struct SN_env * danish_ISO_8859_1_create_env(void) { return SN_create_env(1, 2); } extern void danish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 1); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c index aa33b42df3960..08de47a0959c2 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_dutch.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -43,17 +43,17 @@ static const symbol s_0_10[1] = { 0xFC }; static const struct among a_0[11] = { -/* 0 */ { 0, 0, -1, 6, 0}, -/* 1 */ { 1, s_0_1, 0, 1, 0}, -/* 2 */ { 1, s_0_2, 0, 1, 0}, -/* 3 */ { 1, s_0_3, 0, 2, 0}, -/* 4 */ { 1, s_0_4, 0, 2, 0}, -/* 5 */ { 1, s_0_5, 0, 3, 0}, -/* 6 */ { 1, s_0_6, 0, 3, 0}, -/* 7 */ { 1, s_0_7, 0, 4, 0}, -/* 8 */ { 1, s_0_8, 0, 4, 0}, -/* 9 */ { 1, s_0_9, 0, 5, 0}, -/* 10 */ { 1, s_0_10, 0, 5, 0} +{ 0, 0, -1, 6, 0}, +{ 1, s_0_1, 0, 1, 0}, +{ 1, s_0_2, 0, 1, 0}, +{ 1, s_0_3, 0, 2, 0}, +{ 1, s_0_4, 0, 2, 0}, +{ 1, s_0_5, 0, 3, 0}, +{ 1, s_0_6, 0, 3, 0}, +{ 1, s_0_7, 0, 4, 0}, +{ 1, s_0_8, 0, 4, 0}, +{ 1, s_0_9, 0, 5, 0}, +{ 1, s_0_10, 0, 5, 0} }; static const symbol s_1_1[1] = { 'I' }; @@ -61,9 +61,9 @@ static const symbol s_1_2[1] = { 'Y' }; static const struct among a_1[3] = { -/* 0 */ { 0, 0, -1, 3, 0}, -/* 1 */ { 1, s_1_1, 0, 2, 0}, -/* 2 */ { 1, s_1_2, 0, 1, 0} +{ 0, 0, -1, 3, 0}, +{ 1, s_1_1, 0, 2, 0}, +{ 1, s_1_2, 0, 1, 0} }; static const symbol s_2_0[2] = { 'd', 'd' }; @@ -72,9 +72,9 @@ static const symbol s_2_2[2] = { 't', 't' }; static const struct among a_2[3] = { -/* 0 */ { 2, s_2_0, -1, -1, 0}, -/* 1 */ { 2, s_2_1, -1, -1, 0}, -/* 2 */ { 2, s_2_2, -1, -1, 0} +{ 2, s_2_0, -1, -1, 0}, +{ 2, s_2_1, -1, -1, 0}, +{ 2, s_2_2, -1, -1, 0} }; static const symbol s_3_0[3] = { 'e', 'n', 'e' }; @@ -85,11 +85,11 @@ static const symbol s_3_4[1] = { 's' }; static const struct among a_3[5] = { -/* 0 */ { 3, s_3_0, -1, 2, 0}, -/* 1 */ { 2, s_3_1, -1, 3, 0}, -/* 2 */ { 2, s_3_2, -1, 2, 0}, -/* 3 */ { 5, s_3_3, 2, 1, 0}, -/* 4 */ { 1, s_3_4, -1, 3, 0} +{ 3, s_3_0, -1, 2, 0}, +{ 2, s_3_1, -1, 3, 0}, +{ 2, s_3_2, -1, 2, 0}, +{ 5, s_3_3, 2, 1, 0}, +{ 1, s_3_4, -1, 3, 0} }; static const symbol s_4_0[3] = { 'e', 'n', 'd' }; @@ -101,12 +101,12 @@ static const symbol s_4_5[3] = { 'b', 'a', 'r' }; static const struct among a_4[6] = { -/* 0 */ { 3, s_4_0, -1, 1, 0}, -/* 1 */ { 2, s_4_1, -1, 2, 0}, -/* 2 */ { 3, s_4_2, -1, 1, 0}, -/* 3 */ { 4, s_4_3, -1, 3, 0}, -/* 4 */ { 4, s_4_4, -1, 4, 0}, -/* 5 */ { 3, s_4_5, -1, 5, 0} +{ 3, s_4_0, -1, 1, 0}, +{ 2, s_4_1, -1, 2, 0}, +{ 3, s_4_2, -1, 1, 0}, +{ 4, s_4_3, -1, 3, 0}, +{ 4, s_4_4, -1, 4, 0}, +{ 3, s_4_5, -1, 5, 0} }; static const symbol s_5_0[2] = { 'a', 'a' }; @@ -116,10 +116,10 @@ static const symbol s_5_3[2] = { 'u', 'u' }; static const struct among a_5[4] = { -/* 0 */ { 2, s_5_0, -1, -1, 0}, -/* 1 */ { 2, s_5_1, -1, -1, 0}, -/* 2 */ { 2, s_5_2, -1, -1, 0}, -/* 3 */ { 2, s_5_3, -1, -1, 0} +{ 2, s_5_0, -1, -1, 0}, +{ 2, s_5_1, -1, -1, 0}, +{ 2, s_5_2, -1, -1, 0}, +{ 2, s_5_3, -1, -1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; @@ -144,46 +144,45 @@ static const symbol s_12[] = { 'h', 'e', 'i', 'd' }; static const symbol s_13[] = { 'e', 'n' }; static const symbol s_14[] = { 'i', 'g' }; -static int r_prelude(struct SN_env * z) { /* forwardmode */ +static int r_prelude(struct SN_env * z) { int among_var; - { int c_test1 = z->c; /* test, line 42 */ -/* repeat, line 42 */ - - while(1) { int c2 = z->c; - z->bra = z->c; /* [, line 43 */ - if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((340306450 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else /* substring, line 43 */ + { int c_test1 = z->c; + while(1) { + int c2 = z->c; + z->bra = z->c; + if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((340306450 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else among_var = find_among(z, a_0, 11); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 43 */ - switch (among_var) { /* among, line 43 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_0); /* <-, line 45 */ + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_1); /* <-, line 47 */ + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_2); /* <-, line 49 */ + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 1, s_3); /* <-, line 51 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 1, s_4); /* <-, line 53 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } break; case 6: if (z->c >= z->l) goto lab0; - z->c++; /* next, line 54 */ + z->c++; break; } continue; @@ -193,39 +192,38 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ } z->c = c_test1; } - { int c3 = z->c; /* try, line 57 */ - z->bra = z->c; /* [, line 57 */ - if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; } /* literal, line 57 */ + { int c3 = z->c; + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; } z->c++; - z->ket = z->c; /* ], line 57 */ - { int ret = slice_from_s(z, 1, s_5); /* <-, line 57 */ + z->ket = z->c; + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } lab1: ; } -/* repeat, line 58 */ - - while(1) { int c4 = z->c; - while(1) { /* goto, line 58 */ + while(1) { + int c4 = z->c; + while(1) { int c5 = z->c; - if (in_grouping(z, g_v, 97, 232, 0)) goto lab3; /* grouping v, line 59 */ - z->bra = z->c; /* [, line 59 */ - { int c6 = z->c; /* or, line 59 */ - if (z->c == z->l || z->p[z->c] != 'i') goto lab5; /* literal, line 59 */ + if (in_grouping(z, g_v, 97, 232, 0)) goto lab3; + z->bra = z->c; + { int c6 = z->c; + if (z->c == z->l || z->p[z->c] != 'i') goto lab5; z->c++; - z->ket = z->c; /* ], line 59 */ - if (in_grouping(z, g_v, 97, 232, 0)) goto lab5; /* grouping v, line 59 */ - { int ret = slice_from_s(z, 1, s_6); /* <-, line 59 */ + z->ket = z->c; + if (in_grouping(z, g_v, 97, 232, 0)) goto lab5; + { int ret = slice_from_s(z, 1, s_6); if (ret < 0) return ret; } goto lab4; lab5: z->c = c6; - if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 60 */ + if (z->c == z->l || z->p[z->c] != 'y') goto lab3; z->c++; - z->ket = z->c; /* ], line 60 */ - { int ret = slice_from_s(z, 1, s_7); /* <-, line 60 */ + z->ket = z->c; + { int ret = slice_from_s(z, 1, s_7); if (ret < 0) return ret; } } @@ -235,7 +233,7 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ lab3: z->c = c5; if (z->c >= z->l) goto lab2; - z->c++; /* goto, line 58 */ + z->c++; } continue; lab2: @@ -245,62 +243,61 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 66 */ - z->I[1] = z->l; /* $p2 = , line 67 */ - { /* gopast */ /* grouping v, line 69 */ +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + z->I[0] = z->l; + { int ret = out_grouping(z, g_v, 97, 232, 1); if (ret < 0) return 0; z->c += ret; } - { /* gopast */ /* non v, line 69 */ + { int ret = in_grouping(z, g_v, 97, 232, 1); if (ret < 0) return 0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 69 */ - /* try, line 70 */ - if (!(z->I[0] < 3)) goto lab0; /* $( < ), line 70 */ - z->I[0] = 3; /* $p1 = , line 70 */ + z->I[1] = z->c; + + if (!(z->I[1] < 3)) goto lab0; + z->I[1] = 3; lab0: - { /* gopast */ /* grouping v, line 71 */ + { int ret = out_grouping(z, g_v, 97, 232, 1); if (ret < 0) return 0; z->c += ret; } - { /* gopast */ /* non v, line 71 */ + { int ret = in_grouping(z, g_v, 97, 232, 1); if (ret < 0) return 0; z->c += ret; } - z->I[1] = z->c; /* setmark p2, line 71 */ + z->I[0] = z->c; return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ +static int r_postlude(struct SN_env * z) { int among_var; -/* repeat, line 75 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 77 */ - if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else /* substring, line 77 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else among_var = find_among(z, a_1, 3); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 77 */ - switch (among_var) { /* among, line 77 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_8); /* <-, line 78 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_9); /* <-, line 79 */ + { int ret = slice_from_s(z, 1, s_9); if (ret < 0) return ret; } break; case 3: if (z->c >= z->l) goto lab0; - z->c++; /* next, line 80 */ + z->c++; break; } continue; @@ -311,109 +308,109 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 87 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 88 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_undouble(struct SN_env * z) { /* backwardmode */ - { int m_test1 = z->l - z->c; /* test, line 91 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 91 */ +static int r_undouble(struct SN_env * z) { + { int m_test1 = z->l - z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_2, 3))) return 0; z->c = z->l - m_test1; } - z->ket = z->c; /* [, line 91 */ + z->ket = z->c; if (z->c <= z->lb) return 0; - z->c--; /* next, line 91 */ - z->bra = z->c; /* ], line 91 */ - { int ret = slice_del(z); /* delete, line 91 */ + z->c--; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_e_ending(struct SN_env * z) { /* backwardmode */ - z->B[0] = 0; /* unset e_found, line 95 */ - z->ket = z->c; /* [, line 96 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 96 */ +static int r_e_ending(struct SN_env * z) { + z->I[2] = 0; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; z->c--; - z->bra = z->c; /* ], line 96 */ - { int ret = r_R1(z); /* call R1, line 96 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int m_test1 = z->l - z->c; /* test, line 96 */ - if (out_grouping_b(z, g_v, 97, 232, 0)) return 0; /* non v, line 96 */ + { int m_test1 = z->l - z->c; + if (out_grouping_b(z, g_v, 97, 232, 0)) return 0; z->c = z->l - m_test1; } - { int ret = slice_del(z); /* delete, line 96 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 1; /* set e_found, line 97 */ - { int ret = r_undouble(z); /* call undouble, line 98 */ + z->I[2] = 1; + { int ret = r_undouble(z); if (ret <= 0) return ret; } return 1; } -static int r_en_ending(struct SN_env * z) { /* backwardmode */ - { int ret = r_R1(z); /* call R1, line 102 */ +static int r_en_ending(struct SN_env * z) { + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int m1 = z->l - z->c; (void)m1; /* and, line 102 */ - if (out_grouping_b(z, g_v, 97, 232, 0)) return 0; /* non v, line 102 */ + { int m1 = z->l - z->c; (void)m1; + if (out_grouping_b(z, g_v, 97, 232, 0)) return 0; z->c = z->l - m1; - { int m2 = z->l - z->c; (void)m2; /* not, line 102 */ - if (!(eq_s_b(z, 3, s_10))) goto lab0; /* literal, line 102 */ + { int m2 = z->l - z->c; (void)m2; + if (!(eq_s_b(z, 3, s_10))) goto lab0; return 0; lab0: z->c = z->l - m2; } } - { int ret = slice_del(z); /* delete, line 102 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_undouble(z); /* call undouble, line 103 */ + { int ret = r_undouble(z); if (ret <= 0) return ret; } return 1; } -static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ +static int r_standard_suffix(struct SN_env * z) { int among_var; - { int m1 = z->l - z->c; (void)m1; /* do, line 107 */ - z->ket = z->c; /* [, line 108 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 108 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; among_var = find_among_b(z, a_3, 5); if (!(among_var)) goto lab0; - z->bra = z->c; /* ], line 108 */ - switch (among_var) { /* among, line 108 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R1(z); /* call R1, line 110 */ + { int ret = r_R1(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } - { int ret = slice_from_s(z, 4, s_11); /* <-, line 110 */ + { int ret = slice_from_s(z, 4, s_11); if (ret < 0) return ret; } break; case 2: - { int ret = r_en_ending(z); /* call en_ending, line 113 */ + { int ret = r_en_ending(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } break; case 3: - { int ret = r_R1(z); /* call R1, line 116 */ + { int ret = r_R1(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } - if (out_grouping_b(z, g_v_j, 97, 232, 0)) goto lab0; /* non v_j, line 116 */ - { int ret = slice_del(z); /* delete, line 116 */ + if (out_grouping_b(z, g_v_j, 97, 232, 0)) goto lab0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -421,77 +418,77 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ lab0: z->c = z->l - m1; } - { int m2 = z->l - z->c; (void)m2; /* do, line 120 */ - { int ret = r_e_ending(z); /* call e_ending, line 120 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_e_ending(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 122 */ - z->ket = z->c; /* [, line 122 */ - if (!(eq_s_b(z, 4, s_12))) goto lab1; /* literal, line 122 */ - z->bra = z->c; /* ], line 122 */ - { int ret = r_R2(z); /* call R2, line 122 */ + { int m3 = z->l - z->c; (void)m3; + z->ket = z->c; + if (!(eq_s_b(z, 4, s_12))) goto lab1; + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } - { int m4 = z->l - z->c; (void)m4; /* not, line 122 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2; /* literal, line 122 */ + { int m4 = z->l - z->c; (void)m4; + if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2; z->c--; goto lab1; lab2: z->c = z->l - m4; } - { int ret = slice_del(z); /* delete, line 122 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 123 */ - if (!(eq_s_b(z, 2, s_13))) goto lab1; /* literal, line 123 */ - z->bra = z->c; /* ], line 123 */ - { int ret = r_en_ending(z); /* call en_ending, line 123 */ + z->ket = z->c; + if (!(eq_s_b(z, 2, s_13))) goto lab1; + z->bra = z->c; + { int ret = r_en_ending(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } lab1: z->c = z->l - m3; } - { int m5 = z->l - z->c; (void)m5; /* do, line 126 */ - z->ket = z->c; /* [, line 127 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; /* substring, line 127 */ + { int m5 = z->l - z->c; (void)m5; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; among_var = find_among_b(z, a_4, 6); if (!(among_var)) goto lab3; - z->bra = z->c; /* ], line 127 */ - switch (among_var) { /* among, line 127 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 129 */ + { int ret = r_R2(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 129 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m6 = z->l - z->c; (void)m6; /* or, line 130 */ - z->ket = z->c; /* [, line 130 */ - if (!(eq_s_b(z, 2, s_14))) goto lab5; /* literal, line 130 */ - z->bra = z->c; /* ], line 130 */ - { int ret = r_R2(z); /* call R2, line 130 */ + { int m6 = z->l - z->c; (void)m6; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_14))) goto lab5; + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) goto lab5; if (ret < 0) return ret; } - { int m7 = z->l - z->c; (void)m7; /* not, line 130 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; /* literal, line 130 */ + { int m7 = z->l - z->c; (void)m7; + if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; z->c--; goto lab5; lab6: z->c = z->l - m7; } - { int ret = slice_del(z); /* delete, line 130 */ + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab4; lab5: z->c = z->l - m6; - { int ret = r_undouble(z); /* call undouble, line 130 */ + { int ret = r_undouble(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } @@ -499,50 +496,50 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ lab4: break; case 2: - { int ret = r_R2(z); /* call R2, line 133 */ + { int ret = r_R2(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } - { int m8 = z->l - z->c; (void)m8; /* not, line 133 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7; /* literal, line 133 */ + { int m8 = z->l - z->c; (void)m8; + if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7; z->c--; goto lab3; lab7: z->c = z->l - m8; } - { int ret = slice_del(z); /* delete, line 133 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - { int ret = r_R2(z); /* call R2, line 136 */ + { int ret = r_R2(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 136 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_e_ending(z); /* call e_ending, line 136 */ + { int ret = r_e_ending(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } break; case 4: - { int ret = r_R2(z); /* call R2, line 139 */ + { int ret = r_R2(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 139 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 5: - { int ret = r_R2(z); /* call R2, line 142 */ + { int ret = r_R2(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } - if (!(z->B[0])) goto lab3; /* Boolean test e_found, line 142 */ - { int ret = slice_del(z); /* delete, line 142 */ + if (!(z->I[2])) goto lab3; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -550,19 +547,19 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ lab3: z->c = z->l - m5; } - { int m9 = z->l - z->c; (void)m9; /* do, line 146 */ - if (out_grouping_b(z, g_v_I, 73, 232, 0)) goto lab8; /* non v_I, line 147 */ - { int m_test10 = z->l - z->c; /* test, line 148 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8; /* among, line 149 */ + { int m9 = z->l - z->c; (void)m9; + if (out_grouping_b(z, g_v_I, 73, 232, 0)) goto lab8; + { int m_test10 = z->l - z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8; if (!(find_among_b(z, a_5, 4))) goto lab8; - if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab8; /* non v, line 150 */ + if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab8; z->c = z->l - m_test10; } - z->ket = z->c; /* [, line 152 */ + z->ket = z->c; if (z->c <= z->lb) goto lab8; - z->c--; /* next, line 152 */ - z->bra = z->c; /* ], line 152 */ - { int ret = slice_del(z); /* delete, line 152 */ + z->c--; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } lab8: @@ -571,28 +568,28 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -extern int dutch_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 159 */ - { int ret = r_prelude(z); /* call prelude, line 159 */ +extern int dutch_ISO_8859_1_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_prelude(z); if (ret < 0) return ret; } z->c = c1; } - { int c2 = z->c; /* do, line 160 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 160 */ + { int c2 = z->c; + { int ret = r_mark_regions(z); if (ret < 0) return ret; } z->c = c2; } - z->lb = z->c; z->c = z->l; /* backwards, line 161 */ + z->lb = z->c; z->c = z->l; - /* do, line 162 */ - { int ret = r_standard_suffix(z); /* call standard_suffix, line 162 */ + + { int ret = r_standard_suffix(z); if (ret < 0) return ret; } z->c = z->lb; - { int c3 = z->c; /* do, line 163 */ - { int ret = r_postlude(z); /* call postlude, line 163 */ + { int c3 = z->c; + { int ret = r_postlude(z); if (ret < 0) return ret; } z->c = c3; @@ -600,7 +597,7 @@ extern int dutch_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * dutch_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 1); } +extern struct SN_env * dutch_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); } extern void dutch_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c index d1f80c6c3b3c8..db67d68aed408 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_english.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -42,9 +42,9 @@ static const symbol s_0_2[5] = { 'g', 'e', 'n', 'e', 'r' }; static const struct among a_0[3] = { -/* 0 */ { 5, s_0_0, -1, -1, 0}, -/* 1 */ { 6, s_0_1, -1, -1, 0}, -/* 2 */ { 5, s_0_2, -1, -1, 0} +{ 5, s_0_0, -1, -1, 0}, +{ 6, s_0_1, -1, -1, 0}, +{ 5, s_0_2, -1, -1, 0} }; static const symbol s_1_0[1] = { '\'' }; @@ -53,9 +53,9 @@ static const symbol s_1_2[2] = { '\'', 's' }; static const struct among a_1[3] = { -/* 0 */ { 1, s_1_0, -1, 1, 0}, -/* 1 */ { 3, s_1_1, 0, 1, 0}, -/* 2 */ { 2, s_1_2, -1, 1, 0} +{ 1, s_1_0, -1, 1, 0}, +{ 3, s_1_1, 0, 1, 0}, +{ 2, s_1_2, -1, 1, 0} }; static const symbol s_2_0[3] = { 'i', 'e', 'd' }; @@ -67,12 +67,12 @@ static const symbol s_2_5[2] = { 'u', 's' }; static const struct among a_2[6] = { -/* 0 */ { 3, s_2_0, -1, 2, 0}, -/* 1 */ { 1, s_2_1, -1, 3, 0}, -/* 2 */ { 3, s_2_2, 1, 2, 0}, -/* 3 */ { 4, s_2_3, 1, 1, 0}, -/* 4 */ { 2, s_2_4, 1, -1, 0}, -/* 5 */ { 2, s_2_5, 1, -1, 0} +{ 3, s_2_0, -1, 2, 0}, +{ 1, s_2_1, -1, 3, 0}, +{ 3, s_2_2, 1, 2, 0}, +{ 4, s_2_3, 1, 1, 0}, +{ 2, s_2_4, 1, -1, 0}, +{ 2, s_2_5, 1, -1, 0} }; static const symbol s_3_1[2] = { 'b', 'b' }; @@ -90,19 +90,19 @@ static const symbol s_3_12[2] = { 'i', 'z' }; static const struct among a_3[13] = { -/* 0 */ { 0, 0, -1, 3, 0}, -/* 1 */ { 2, s_3_1, 0, 2, 0}, -/* 2 */ { 2, s_3_2, 0, 2, 0}, -/* 3 */ { 2, s_3_3, 0, 2, 0}, -/* 4 */ { 2, s_3_4, 0, 2, 0}, -/* 5 */ { 2, s_3_5, 0, 1, 0}, -/* 6 */ { 2, s_3_6, 0, 2, 0}, -/* 7 */ { 2, s_3_7, 0, 2, 0}, -/* 8 */ { 2, s_3_8, 0, 2, 0}, -/* 9 */ { 2, s_3_9, 0, 2, 0}, -/* 10 */ { 2, s_3_10, 0, 1, 0}, -/* 11 */ { 2, s_3_11, 0, 2, 0}, -/* 12 */ { 2, s_3_12, 0, 1, 0} +{ 0, 0, -1, 3, 0}, +{ 2, s_3_1, 0, 2, 0}, +{ 2, s_3_2, 0, 2, 0}, +{ 2, s_3_3, 0, 2, 0}, +{ 2, s_3_4, 0, 2, 0}, +{ 2, s_3_5, 0, 1, 0}, +{ 2, s_3_6, 0, 2, 0}, +{ 2, s_3_7, 0, 2, 0}, +{ 2, s_3_8, 0, 2, 0}, +{ 2, s_3_9, 0, 2, 0}, +{ 2, s_3_10, 0, 1, 0}, +{ 2, s_3_11, 0, 2, 0}, +{ 2, s_3_12, 0, 1, 0} }; static const symbol s_4_0[2] = { 'e', 'd' }; @@ -114,12 +114,12 @@ static const symbol s_4_5[5] = { 'i', 'n', 'g', 'l', 'y' }; static const struct among a_4[6] = { -/* 0 */ { 2, s_4_0, -1, 2, 0}, -/* 1 */ { 3, s_4_1, 0, 1, 0}, -/* 2 */ { 3, s_4_2, -1, 2, 0}, -/* 3 */ { 4, s_4_3, -1, 2, 0}, -/* 4 */ { 5, s_4_4, 3, 1, 0}, -/* 5 */ { 5, s_4_5, -1, 2, 0} +{ 2, s_4_0, -1, 2, 0}, +{ 3, s_4_1, 0, 1, 0}, +{ 3, s_4_2, -1, 2, 0}, +{ 4, s_4_3, -1, 2, 0}, +{ 5, s_4_4, 3, 1, 0}, +{ 5, s_4_5, -1, 2, 0} }; static const symbol s_5_0[4] = { 'a', 'n', 'c', 'i' }; @@ -149,30 +149,30 @@ static const symbol s_5_23[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' }; static const struct among a_5[24] = { -/* 0 */ { 4, s_5_0, -1, 3, 0}, -/* 1 */ { 4, s_5_1, -1, 2, 0}, -/* 2 */ { 3, s_5_2, -1, 13, 0}, -/* 3 */ { 2, s_5_3, -1, 15, 0}, -/* 4 */ { 3, s_5_4, 3, 12, 0}, -/* 5 */ { 4, s_5_5, 4, 4, 0}, -/* 6 */ { 4, s_5_6, 3, 8, 0}, -/* 7 */ { 5, s_5_7, 3, 9, 0}, -/* 8 */ { 6, s_5_8, 3, 14, 0}, -/* 9 */ { 5, s_5_9, 3, 10, 0}, -/* 10 */ { 5, s_5_10, 3, 5, 0}, -/* 11 */ { 5, s_5_11, -1, 8, 0}, -/* 12 */ { 6, s_5_12, -1, 12, 0}, -/* 13 */ { 5, s_5_13, -1, 11, 0}, -/* 14 */ { 6, s_5_14, -1, 1, 0}, -/* 15 */ { 7, s_5_15, 14, 7, 0}, -/* 16 */ { 5, s_5_16, -1, 8, 0}, -/* 17 */ { 5, s_5_17, -1, 7, 0}, -/* 18 */ { 7, s_5_18, 17, 6, 0}, -/* 19 */ { 4, s_5_19, -1, 6, 0}, -/* 20 */ { 4, s_5_20, -1, 7, 0}, -/* 21 */ { 7, s_5_21, -1, 11, 0}, -/* 22 */ { 7, s_5_22, -1, 9, 0}, -/* 23 */ { 7, s_5_23, -1, 10, 0} +{ 4, s_5_0, -1, 3, 0}, +{ 4, s_5_1, -1, 2, 0}, +{ 3, s_5_2, -1, 13, 0}, +{ 2, s_5_3, -1, 15, 0}, +{ 3, s_5_4, 3, 12, 0}, +{ 4, s_5_5, 4, 4, 0}, +{ 4, s_5_6, 3, 8, 0}, +{ 5, s_5_7, 3, 9, 0}, +{ 6, s_5_8, 3, 14, 0}, +{ 5, s_5_9, 3, 10, 0}, +{ 5, s_5_10, 3, 5, 0}, +{ 5, s_5_11, -1, 8, 0}, +{ 6, s_5_12, -1, 12, 0}, +{ 5, s_5_13, -1, 11, 0}, +{ 6, s_5_14, -1, 1, 0}, +{ 7, s_5_15, 14, 7, 0}, +{ 5, s_5_16, -1, 8, 0}, +{ 5, s_5_17, -1, 7, 0}, +{ 7, s_5_18, 17, 6, 0}, +{ 4, s_5_19, -1, 6, 0}, +{ 4, s_5_20, -1, 7, 0}, +{ 7, s_5_21, -1, 11, 0}, +{ 7, s_5_22, -1, 9, 0}, +{ 7, s_5_23, -1, 10, 0} }; static const symbol s_6_0[5] = { 'i', 'c', 'a', 't', 'e' }; @@ -187,15 +187,15 @@ static const symbol s_6_8[4] = { 'n', 'e', 's', 's' }; static const struct among a_6[9] = { -/* 0 */ { 5, s_6_0, -1, 4, 0}, -/* 1 */ { 5, s_6_1, -1, 6, 0}, -/* 2 */ { 5, s_6_2, -1, 3, 0}, -/* 3 */ { 5, s_6_3, -1, 4, 0}, -/* 4 */ { 4, s_6_4, -1, 4, 0}, -/* 5 */ { 6, s_6_5, -1, 1, 0}, -/* 6 */ { 7, s_6_6, 5, 2, 0}, -/* 7 */ { 3, s_6_7, -1, 5, 0}, -/* 8 */ { 4, s_6_8, -1, 5, 0} +{ 5, s_6_0, -1, 4, 0}, +{ 5, s_6_1, -1, 6, 0}, +{ 5, s_6_2, -1, 3, 0}, +{ 5, s_6_3, -1, 4, 0}, +{ 4, s_6_4, -1, 4, 0}, +{ 6, s_6_5, -1, 1, 0}, +{ 7, s_6_6, 5, 2, 0}, +{ 3, s_6_7, -1, 5, 0}, +{ 4, s_6_8, -1, 5, 0} }; static const symbol s_7_0[2] = { 'i', 'c' }; @@ -219,24 +219,24 @@ static const symbol s_7_17[5] = { 'e', 'm', 'e', 'n', 't' }; static const struct among a_7[18] = { -/* 0 */ { 2, s_7_0, -1, 1, 0}, -/* 1 */ { 4, s_7_1, -1, 1, 0}, -/* 2 */ { 4, s_7_2, -1, 1, 0}, -/* 3 */ { 4, s_7_3, -1, 1, 0}, -/* 4 */ { 4, s_7_4, -1, 1, 0}, -/* 5 */ { 3, s_7_5, -1, 1, 0}, -/* 6 */ { 3, s_7_6, -1, 1, 0}, -/* 7 */ { 3, s_7_7, -1, 1, 0}, -/* 8 */ { 3, s_7_8, -1, 1, 0}, -/* 9 */ { 2, s_7_9, -1, 1, 0}, -/* 10 */ { 3, s_7_10, -1, 1, 0}, -/* 11 */ { 3, s_7_11, -1, 2, 0}, -/* 12 */ { 2, s_7_12, -1, 1, 0}, -/* 13 */ { 3, s_7_13, -1, 1, 0}, -/* 14 */ { 3, s_7_14, -1, 1, 0}, -/* 15 */ { 3, s_7_15, -1, 1, 0}, -/* 16 */ { 4, s_7_16, 15, 1, 0}, -/* 17 */ { 5, s_7_17, 16, 1, 0} +{ 2, s_7_0, -1, 1, 0}, +{ 4, s_7_1, -1, 1, 0}, +{ 4, s_7_2, -1, 1, 0}, +{ 4, s_7_3, -1, 1, 0}, +{ 4, s_7_4, -1, 1, 0}, +{ 3, s_7_5, -1, 1, 0}, +{ 3, s_7_6, -1, 1, 0}, +{ 3, s_7_7, -1, 1, 0}, +{ 3, s_7_8, -1, 1, 0}, +{ 2, s_7_9, -1, 1, 0}, +{ 3, s_7_10, -1, 1, 0}, +{ 3, s_7_11, -1, 2, 0}, +{ 2, s_7_12, -1, 1, 0}, +{ 3, s_7_13, -1, 1, 0}, +{ 3, s_7_14, -1, 1, 0}, +{ 3, s_7_15, -1, 1, 0}, +{ 4, s_7_16, 15, 1, 0}, +{ 5, s_7_17, 16, 1, 0} }; static const symbol s_8_0[1] = { 'e' }; @@ -244,8 +244,8 @@ static const symbol s_8_1[1] = { 'l' }; static const struct among a_8[2] = { -/* 0 */ { 1, s_8_0, -1, 1, 0}, -/* 1 */ { 1, s_8_1, -1, 2, 0} +{ 1, s_8_0, -1, 1, 0}, +{ 1, s_8_1, -1, 2, 0} }; static const symbol s_9_0[7] = { 's', 'u', 'c', 'c', 'e', 'e', 'd' }; @@ -259,14 +259,14 @@ static const symbol s_9_7[6] = { 'o', 'u', 't', 'i', 'n', 'g' }; static const struct among a_9[8] = { -/* 0 */ { 7, s_9_0, -1, -1, 0}, -/* 1 */ { 7, s_9_1, -1, -1, 0}, -/* 2 */ { 6, s_9_2, -1, -1, 0}, -/* 3 */ { 7, s_9_3, -1, -1, 0}, -/* 4 */ { 6, s_9_4, -1, -1, 0}, -/* 5 */ { 7, s_9_5, -1, -1, 0}, -/* 6 */ { 7, s_9_6, -1, -1, 0}, -/* 7 */ { 6, s_9_7, -1, -1, 0} +{ 7, s_9_0, -1, -1, 0}, +{ 7, s_9_1, -1, -1, 0}, +{ 6, s_9_2, -1, -1, 0}, +{ 7, s_9_3, -1, -1, 0}, +{ 6, s_9_4, -1, -1, 0}, +{ 7, s_9_5, -1, -1, 0}, +{ 7, s_9_6, -1, -1, 0}, +{ 6, s_9_7, -1, -1, 0} }; static const symbol s_10_0[5] = { 'a', 'n', 'd', 'e', 's' }; @@ -290,24 +290,24 @@ static const symbol s_10_17[4] = { 'u', 'g', 'l', 'y' }; static const struct among a_10[18] = { -/* 0 */ { 5, s_10_0, -1, -1, 0}, -/* 1 */ { 5, s_10_1, -1, -1, 0}, -/* 2 */ { 4, s_10_2, -1, -1, 0}, -/* 3 */ { 6, s_10_3, -1, -1, 0}, -/* 4 */ { 5, s_10_4, -1, 3, 0}, -/* 5 */ { 5, s_10_5, -1, 9, 0}, -/* 6 */ { 6, s_10_6, -1, 7, 0}, -/* 7 */ { 4, s_10_7, -1, -1, 0}, -/* 8 */ { 4, s_10_8, -1, 6, 0}, -/* 9 */ { 5, s_10_9, -1, 4, 0}, -/* 10 */ { 4, s_10_10, -1, -1, 0}, -/* 11 */ { 4, s_10_11, -1, 10, 0}, -/* 12 */ { 6, s_10_12, -1, 11, 0}, -/* 13 */ { 5, s_10_13, -1, 2, 0}, -/* 14 */ { 4, s_10_14, -1, 1, 0}, -/* 15 */ { 3, s_10_15, -1, -1, 0}, -/* 16 */ { 5, s_10_16, -1, 5, 0}, -/* 17 */ { 4, s_10_17, -1, 8, 0} +{ 5, s_10_0, -1, -1, 0}, +{ 5, s_10_1, -1, -1, 0}, +{ 4, s_10_2, -1, -1, 0}, +{ 6, s_10_3, -1, -1, 0}, +{ 5, s_10_4, -1, 3, 0}, +{ 5, s_10_5, -1, 9, 0}, +{ 6, s_10_6, -1, 7, 0}, +{ 4, s_10_7, -1, -1, 0}, +{ 4, s_10_8, -1, 6, 0}, +{ 5, s_10_9, -1, 4, 0}, +{ 4, s_10_10, -1, -1, 0}, +{ 4, s_10_11, -1, 10, 0}, +{ 6, s_10_12, -1, 11, 0}, +{ 5, s_10_13, -1, 2, 0}, +{ 4, s_10_14, -1, 1, 0}, +{ 3, s_10_15, -1, -1, 0}, +{ 5, s_10_16, -1, 5, 0}, +{ 4, s_10_17, -1, 8, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 1 }; @@ -356,53 +356,52 @@ static const symbol s_36[] = { 'o', 'n', 'l', 'i' }; static const symbol s_37[] = { 's', 'i', 'n', 'g', 'l' }; static const symbol s_38[] = { 'y' }; -static int r_prelude(struct SN_env * z) { /* forwardmode */ - z->B[0] = 0; /* unset Y_found, line 26 */ - { int c1 = z->c; /* do, line 27 */ - z->bra = z->c; /* [, line 27 */ - if (z->c == z->l || z->p[z->c] != '\'') goto lab0; /* literal, line 27 */ +static int r_prelude(struct SN_env * z) { + z->I[2] = 0; + { int c1 = z->c; + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != '\'') goto lab0; z->c++; - z->ket = z->c; /* ], line 27 */ - { int ret = slice_del(z); /* delete, line 27 */ + z->ket = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: z->c = c1; } - { int c2 = z->c; /* do, line 28 */ - z->bra = z->c; /* [, line 28 */ - if (z->c == z->l || z->p[z->c] != 'y') goto lab1; /* literal, line 28 */ + { int c2 = z->c; + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'y') goto lab1; z->c++; - z->ket = z->c; /* ], line 28 */ - { int ret = slice_from_s(z, 1, s_0); /* <-, line 28 */ + z->ket = z->c; + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } - z->B[0] = 1; /* set Y_found, line 28 */ + z->I[2] = 1; lab1: z->c = c2; } - { int c3 = z->c; /* do, line 29 */ -/* repeat, line 29 */ - - while(1) { int c4 = z->c; - while(1) { /* goto, line 29 */ + { int c3 = z->c; + while(1) { + int c4 = z->c; + while(1) { int c5 = z->c; - if (in_grouping(z, g_v, 97, 121, 0)) goto lab4; /* grouping v, line 29 */ - z->bra = z->c; /* [, line 29 */ - if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 29 */ + if (in_grouping(z, g_v, 97, 121, 0)) goto lab4; + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'y') goto lab4; z->c++; - z->ket = z->c; /* ], line 29 */ + z->ket = z->c; z->c = c5; break; lab4: z->c = c5; if (z->c >= z->l) goto lab3; - z->c++; /* goto, line 29 */ + z->c++; } - { int ret = slice_from_s(z, 1, s_1); /* <-, line 29 */ + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } - z->B[0] = 1; /* set Y_found, line 29 */ + z->I[2] = 1; continue; lab3: z->c = c4; @@ -413,109 +412,107 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 33 */ - z->I[1] = z->l; /* $p2 = , line 34 */ - { int c1 = z->c; /* do, line 35 */ - { int c2 = z->c; /* or, line 41 */ - if (z->c + 4 >= z->l || z->p[z->c + 4] >> 5 != 3 || !((2375680 >> (z->p[z->c + 4] & 0x1f)) & 1)) goto lab2; /* among, line 36 */ +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int c2 = z->c; + if (z->c + 4 >= z->l || z->p[z->c + 4] >> 5 != 3 || !((2375680 >> (z->p[z->c + 4] & 0x1f)) & 1)) goto lab2; if (!(find_among(z, a_0, 3))) goto lab2; goto lab1; lab2: z->c = c2; - { /* gopast */ /* grouping v, line 41 */ + { int ret = out_grouping(z, g_v, 97, 121, 1); if (ret < 0) goto lab0; z->c += ret; } - { /* gopast */ /* non v, line 41 */ + { int ret = in_grouping(z, g_v, 97, 121, 1); if (ret < 0) goto lab0; z->c += ret; } } lab1: - z->I[0] = z->c; /* setmark p1, line 42 */ - { /* gopast */ /* grouping v, line 43 */ + z->I[1] = z->c; + { int ret = out_grouping(z, g_v, 97, 121, 1); if (ret < 0) goto lab0; z->c += ret; } - { /* gopast */ /* non v, line 43 */ + { int ret = in_grouping(z, g_v, 97, 121, 1); if (ret < 0) goto lab0; z->c += ret; } - z->I[1] = z->c; /* setmark p2, line 43 */ + z->I[0] = z->c; lab0: z->c = c1; } return 1; } -static int r_shortv(struct SN_env * z) { /* backwardmode */ - { int m1 = z->l - z->c; (void)m1; /* or, line 51 */ - if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) goto lab1; /* non v_WXY, line 50 */ - if (in_grouping_b(z, g_v, 97, 121, 0)) goto lab1; /* grouping v, line 50 */ - if (out_grouping_b(z, g_v, 97, 121, 0)) goto lab1; /* non v, line 50 */ +static int r_shortv(struct SN_env * z) { + { int m1 = z->l - z->c; (void)m1; + if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) goto lab1; + if (in_grouping_b(z, g_v, 97, 121, 0)) goto lab1; + if (out_grouping_b(z, g_v, 97, 121, 0)) goto lab1; goto lab0; lab1: z->c = z->l - m1; - if (out_grouping_b(z, g_v, 97, 121, 0)) return 0; /* non v, line 52 */ - if (in_grouping_b(z, g_v, 97, 121, 0)) return 0; /* grouping v, line 52 */ - if (z->c > z->lb) return 0; /* atlimit, line 52 */ + if (out_grouping_b(z, g_v, 97, 121, 0)) return 0; + if (in_grouping_b(z, g_v, 97, 121, 0)) return 0; + if (z->c > z->lb) return 0; } lab0: return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 55 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 56 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_Step_1a(struct SN_env * z) { /* backwardmode */ +static int r_Step_1a(struct SN_env * z) { int among_var; - { int m1 = z->l - z->c; (void)m1; /* try, line 59 */ - z->ket = z->c; /* [, line 60 */ - if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m1; goto lab0; } /* substring, line 60 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m1; goto lab0; } if (!(find_among_b(z, a_1, 3))) { z->c = z->l - m1; goto lab0; } - z->bra = z->c; /* ], line 60 */ - { int ret = slice_del(z); /* delete, line 62 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: ; } - z->ket = z->c; /* [, line 65 */ - if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0; /* substring, line 65 */ + z->ket = z->c; + if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0; among_var = find_among_b(z, a_2, 6); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 65 */ - switch (among_var) { /* among, line 65 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 2, s_2); /* <-, line 66 */ + { int ret = slice_from_s(z, 2, s_2); if (ret < 0) return ret; } break; case 2: - { int m2 = z->l - z->c; (void)m2; /* or, line 68 */ - { int ret = z->c - 2; /* hop, line 68 */ - if (z->lb > ret || ret > z->l) goto lab2; - z->c = ret; - } - { int ret = slice_from_s(z, 1, s_3); /* <-, line 68 */ + { int m2 = z->l - z->c; (void)m2; +z->c = z->c - 2; + if (z->c < z->lb) goto lab2; + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } goto lab1; lab2: z->c = z->l - m2; - { int ret = slice_from_s(z, 2, s_4); /* <-, line 68 */ + { int ret = slice_from_s(z, 2, s_4); if (ret < 0) return ret; } } @@ -523,13 +520,13 @@ static int r_Step_1a(struct SN_env * z) { /* backwardmode */ break; case 3: if (z->c <= z->lb) return 0; - z->c--; /* next, line 69 */ - { /* gopast */ /* grouping v, line 69 */ + z->c--; + { int ret = out_grouping_b(z, g_v, 97, 121, 1); if (ret < 0) return 0; z->c -= ret; } - { int ret = slice_del(z); /* delete, line 69 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -537,70 +534,70 @@ static int r_Step_1a(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_1b(struct SN_env * z) { /* backwardmode */ +static int r_Step_1b(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 75 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33554576 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 75 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33554576 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_4, 6); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 75 */ - switch (among_var) { /* among, line 75 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R1(z); /* call R1, line 77 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 2, s_5); /* <-, line 77 */ + { int ret = slice_from_s(z, 2, s_5); if (ret < 0) return ret; } break; case 2: - { int m_test1 = z->l - z->c; /* test, line 80 */ - { /* gopast */ /* grouping v, line 80 */ + { int m_test1 = z->l - z->c; + { int ret = out_grouping_b(z, g_v, 97, 121, 1); if (ret < 0) return 0; z->c -= ret; } z->c = z->l - m_test1; } - { int ret = slice_del(z); /* delete, line 80 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m_test2 = z->l - z->c; /* test, line 81 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else /* substring, line 81 */ + { int m_test2 = z->l - z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else among_var = find_among_b(z, a_3, 13); if (!(among_var)) return 0; z->c = z->l - m_test2; } - switch (among_var) { /* among, line 81 */ + switch (among_var) { case 1: { int ret; { int saved_c = z->c; - ret = insert_s(z, z->c, z->c, 1, s_6); /* <+, line 83 */ + ret = insert_s(z, z->c, z->c, 1, s_6); z->c = saved_c; } if (ret < 0) return ret; } break; case 2: - z->ket = z->c; /* [, line 86 */ + z->ket = z->c; if (z->c <= z->lb) return 0; - z->c--; /* next, line 86 */ - z->bra = z->c; /* ], line 86 */ - { int ret = slice_del(z); /* delete, line 86 */ + z->c--; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - if (z->c != z->I[0]) return 0; /* atmark, line 87 */ - { int m_test3 = z->l - z->c; /* test, line 87 */ - { int ret = r_shortv(z); /* call shortv, line 87 */ + if (z->c != z->I[1]) return 0; + { int m_test3 = z->l - z->c; + { int ret = r_shortv(z); if (ret <= 0) return ret; } z->c = z->l - m_test3; } { int ret; { int saved_c = z->c; - ret = insert_s(z, z->c, z->c, 1, s_7); /* <+, line 87 */ + ret = insert_s(z, z->c, z->c, 1, s_7); z->c = saved_c; } if (ret < 0) return ret; @@ -612,116 +609,116 @@ static int r_Step_1b(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_1c(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 94 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 94 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 94 */ +static int r_Step_1c(struct SN_env * z) { + z->ket = z->c; + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; z->c--; goto lab0; lab1: z->c = z->l - m1; - if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 94 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; z->c--; } lab0: - z->bra = z->c; /* ], line 94 */ - if (out_grouping_b(z, g_v, 97, 121, 0)) return 0; /* non v, line 95 */ - /* not, line 95 */ - if (z->c > z->lb) goto lab2; /* atlimit, line 95 */ + z->bra = z->c; + if (out_grouping_b(z, g_v, 97, 121, 0)) return 0; + + if (z->c > z->lb) goto lab2; return 0; lab2: - { int ret = slice_from_s(z, 1, s_8); /* <-, line 96 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } return 1; } -static int r_Step_2(struct SN_env * z) { /* backwardmode */ +static int r_Step_2(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 100 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 100 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_5, 24); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 100 */ - { int ret = r_R1(z); /* call R1, line 100 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 100 */ + switch (among_var) { case 1: - { int ret = slice_from_s(z, 4, s_9); /* <-, line 101 */ + { int ret = slice_from_s(z, 4, s_9); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 4, s_10); /* <-, line 102 */ + { int ret = slice_from_s(z, 4, s_10); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 4, s_11); /* <-, line 103 */ + { int ret = slice_from_s(z, 4, s_11); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 4, s_12); /* <-, line 104 */ + { int ret = slice_from_s(z, 4, s_12); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 3, s_13); /* <-, line 105 */ + { int ret = slice_from_s(z, 3, s_13); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 3, s_14); /* <-, line 107 */ + { int ret = slice_from_s(z, 3, s_14); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 3, s_15); /* <-, line 109 */ + { int ret = slice_from_s(z, 3, s_15); if (ret < 0) return ret; } break; case 8: - { int ret = slice_from_s(z, 2, s_16); /* <-, line 111 */ + { int ret = slice_from_s(z, 2, s_16); if (ret < 0) return ret; } break; case 9: - { int ret = slice_from_s(z, 3, s_17); /* <-, line 112 */ + { int ret = slice_from_s(z, 3, s_17); if (ret < 0) return ret; } break; case 10: - { int ret = slice_from_s(z, 3, s_18); /* <-, line 114 */ + { int ret = slice_from_s(z, 3, s_18); if (ret < 0) return ret; } break; case 11: - { int ret = slice_from_s(z, 3, s_19); /* <-, line 116 */ + { int ret = slice_from_s(z, 3, s_19); if (ret < 0) return ret; } break; case 12: - { int ret = slice_from_s(z, 3, s_20); /* <-, line 118 */ + { int ret = slice_from_s(z, 3, s_20); if (ret < 0) return ret; } break; case 13: - if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 119 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; z->c--; - { int ret = slice_from_s(z, 2, s_21); /* <-, line 119 */ + { int ret = slice_from_s(z, 2, s_21); if (ret < 0) return ret; } break; case 14: - { int ret = slice_from_s(z, 4, s_22); /* <-, line 121 */ + { int ret = slice_from_s(z, 4, s_22); if (ret < 0) return ret; } break; case 15: - if (in_grouping_b(z, g_valid_LI, 99, 116, 0)) return 0; /* grouping valid_LI, line 122 */ - { int ret = slice_del(z); /* delete, line 122 */ + if (in_grouping_b(z, g_valid_LI, 99, 116, 0)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -729,47 +726,47 @@ static int r_Step_2(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_3(struct SN_env * z) { /* backwardmode */ +static int r_Step_3(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 127 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 127 */ + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_6, 9); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 127 */ - { int ret = r_R1(z); /* call R1, line 127 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 127 */ + switch (among_var) { case 1: - { int ret = slice_from_s(z, 4, s_23); /* <-, line 128 */ + { int ret = slice_from_s(z, 4, s_23); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 3, s_24); /* <-, line 129 */ + { int ret = slice_from_s(z, 3, s_24); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 2, s_25); /* <-, line 130 */ + { int ret = slice_from_s(z, 2, s_25); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 2, s_26); /* <-, line 132 */ + { int ret = slice_from_s(z, 2, s_26); if (ret < 0) return ret; } break; case 5: - { int ret = slice_del(z); /* delete, line 134 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 6: - { int ret = r_R2(z); /* call R2, line 136 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 136 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -777,34 +774,34 @@ static int r_Step_3(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_4(struct SN_env * z) { /* backwardmode */ +static int r_Step_4(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 141 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 141 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_7, 18); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 141 */ - { int ret = r_R2(z); /* call R2, line 141 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 141 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 144 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int m1 = z->l - z->c; (void)m1; /* or, line 145 */ - if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 145 */ + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; z->c--; goto lab0; lab1: z->c = z->l - m1; - if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 145 */ + if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; z->c--; } lab0: - { int ret = slice_del(z); /* delete, line 145 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -812,28 +809,28 @@ static int r_Step_4(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_5(struct SN_env * z) { /* backwardmode */ +static int r_Step_5(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 150 */ - if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0; /* substring, line 150 */ + z->ket = z->c; + if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0; among_var = find_among_b(z, a_8, 2); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 150 */ - switch (among_var) { /* among, line 150 */ + z->bra = z->c; + switch (among_var) { case 1: - { int m1 = z->l - z->c; (void)m1; /* or, line 151 */ - { int ret = r_R2(z); /* call R2, line 151 */ + { int m1 = z->l - z->c; (void)m1; + { int ret = r_R2(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m1; - { int ret = r_R1(z); /* call R1, line 151 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int m2 = z->l - z->c; (void)m2; /* not, line 151 */ - { int ret = r_shortv(z); /* call shortv, line 151 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_shortv(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } @@ -843,17 +840,17 @@ static int r_Step_5(struct SN_env * z) { /* backwardmode */ } } lab0: - { int ret = slice_del(z); /* delete, line 151 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 152 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 152 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; z->c--; - { int ret = slice_del(z); /* delete, line 152 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -861,76 +858,76 @@ static int r_Step_5(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_exception2(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 158 */ - if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; /* substring, line 158 */ +static int r_exception2(struct SN_env * z) { + z->ket = z->c; + if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; if (!(find_among_b(z, a_9, 8))) return 0; - z->bra = z->c; /* ], line 158 */ - if (z->c > z->lb) return 0; /* atlimit, line 158 */ + z->bra = z->c; + if (z->c > z->lb) return 0; return 1; } -static int r_exception1(struct SN_env * z) { /* forwardmode */ +static int r_exception1(struct SN_env * z) { int among_var; - z->bra = z->c; /* [, line 170 */ - if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0; /* substring, line 170 */ + z->bra = z->c; + if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0; among_var = find_among(z, a_10, 18); if (!(among_var)) return 0; - z->ket = z->c; /* ], line 170 */ - if (z->c < z->l) return 0; /* atlimit, line 170 */ - switch (among_var) { /* among, line 170 */ + z->ket = z->c; + if (z->c < z->l) return 0; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 3, s_27); /* <-, line 174 */ + { int ret = slice_from_s(z, 3, s_27); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 3, s_28); /* <-, line 175 */ + { int ret = slice_from_s(z, 3, s_28); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 3, s_29); /* <-, line 176 */ + { int ret = slice_from_s(z, 3, s_29); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 3, s_30); /* <-, line 177 */ + { int ret = slice_from_s(z, 3, s_30); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 3, s_31); /* <-, line 178 */ + { int ret = slice_from_s(z, 3, s_31); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 3, s_32); /* <-, line 182 */ + { int ret = slice_from_s(z, 3, s_32); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 5, s_33); /* <-, line 183 */ + { int ret = slice_from_s(z, 5, s_33); if (ret < 0) return ret; } break; case 8: - { int ret = slice_from_s(z, 4, s_34); /* <-, line 184 */ + { int ret = slice_from_s(z, 4, s_34); if (ret < 0) return ret; } break; case 9: - { int ret = slice_from_s(z, 5, s_35); /* <-, line 185 */ + { int ret = slice_from_s(z, 5, s_35); if (ret < 0) return ret; } break; case 10: - { int ret = slice_from_s(z, 4, s_36); /* <-, line 186 */ + { int ret = slice_from_s(z, 4, s_36); if (ret < 0) return ret; } break; case 11: - { int ret = slice_from_s(z, 5, s_37); /* <-, line 187 */ + { int ret = slice_from_s(z, 5, s_37); if (ret < 0) return ret; } break; @@ -938,25 +935,24 @@ static int r_exception1(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ - if (!(z->B[0])) return 0; /* Boolean test Y_found, line 203 */ -/* repeat, line 203 */ - - while(1) { int c1 = z->c; - while(1) { /* goto, line 203 */ +static int r_postlude(struct SN_env * z) { + if (!(z->I[2])) return 0; + while(1) { + int c1 = z->c; + while(1) { int c2 = z->c; - z->bra = z->c; /* [, line 203 */ - if (z->c == z->l || z->p[z->c] != 'Y') goto lab1; /* literal, line 203 */ + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'Y') goto lab1; z->c++; - z->ket = z->c; /* ], line 203 */ + z->ket = z->c; z->c = c2; break; lab1: z->c = c2; if (z->c >= z->l) goto lab0; - z->c++; /* goto, line 203 */ + z->c++; } - { int ret = slice_from_s(z, 1, s_38); /* <-, line 203 */ + { int ret = slice_from_s(z, 1, s_38); if (ret < 0) return ret; } continue; @@ -967,20 +963,18 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -extern int english_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* or, line 207 */ - { int ret = r_exception1(z); /* call exception1, line 207 */ +extern int english_ISO_8859_1_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_exception1(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } goto lab0; lab1: z->c = c1; - { int c2 = z->c; /* not, line 208 */ - { int ret = z->c + 3; /* hop, line 208 */ - if (0 > ret || ret > z->l) goto lab3; - z->c = ret; - } + { int c2 = z->c; +z->c = z->c + 3; + if (z->c > z->l) goto lab3; goto lab2; lab3: z->c = c2; @@ -988,62 +982,62 @@ extern int english_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ goto lab0; lab2: z->c = c1; - /* do, line 209 */ - { int ret = r_prelude(z); /* call prelude, line 209 */ + + { int ret = r_prelude(z); if (ret < 0) return ret; } - /* do, line 210 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 210 */ + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 211 */ + z->lb = z->c; z->c = z->l; - { int m3 = z->l - z->c; (void)m3; /* do, line 213 */ - { int ret = r_Step_1a(z); /* call Step_1a, line 213 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_Step_1a(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* or, line 215 */ - { int ret = r_exception2(z); /* call exception2, line 215 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_exception2(z); if (ret == 0) goto lab5; if (ret < 0) return ret; } goto lab4; lab5: z->c = z->l - m4; - { int m5 = z->l - z->c; (void)m5; /* do, line 217 */ - { int ret = r_Step_1b(z); /* call Step_1b, line 217 */ + { int m5 = z->l - z->c; (void)m5; + { int ret = r_Step_1b(z); if (ret < 0) return ret; } z->c = z->l - m5; } - { int m6 = z->l - z->c; (void)m6; /* do, line 218 */ - { int ret = r_Step_1c(z); /* call Step_1c, line 218 */ + { int m6 = z->l - z->c; (void)m6; + { int ret = r_Step_1c(z); if (ret < 0) return ret; } z->c = z->l - m6; } - { int m7 = z->l - z->c; (void)m7; /* do, line 220 */ - { int ret = r_Step_2(z); /* call Step_2, line 220 */ + { int m7 = z->l - z->c; (void)m7; + { int ret = r_Step_2(z); if (ret < 0) return ret; } z->c = z->l - m7; } - { int m8 = z->l - z->c; (void)m8; /* do, line 221 */ - { int ret = r_Step_3(z); /* call Step_3, line 221 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_Step_3(z); if (ret < 0) return ret; } z->c = z->l - m8; } - { int m9 = z->l - z->c; (void)m9; /* do, line 222 */ - { int ret = r_Step_4(z); /* call Step_4, line 222 */ + { int m9 = z->l - z->c; (void)m9; + { int ret = r_Step_4(z); if (ret < 0) return ret; } z->c = z->l - m9; } - { int m10 = z->l - z->c; (void)m10; /* do, line 224 */ - { int ret = r_Step_5(z); /* call Step_5, line 224 */ + { int m10 = z->l - z->c; (void)m10; + { int ret = r_Step_5(z); if (ret < 0) return ret; } z->c = z->l - m10; @@ -1051,8 +1045,8 @@ extern int english_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ } lab4: z->c = z->lb; - { int c11 = z->c; /* do, line 227 */ - { int ret = r_postlude(z); /* call postlude, line 227 */ + { int c11 = z->c; + { int ret = r_postlude(z); if (ret < 0) return ret; } z->c = c11; @@ -1062,7 +1056,7 @@ extern int english_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * english_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 1); } +extern struct SN_env * english_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); } extern void english_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c index 3bb6615a68c44..70eae3a3fa380 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_finnish.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -45,16 +45,16 @@ static const symbol s_0_9[2] = { 'k', 0xF6 }; static const struct among a_0[10] = { -/* 0 */ { 2, s_0_0, -1, 1, 0}, -/* 1 */ { 3, s_0_1, -1, 2, 0}, -/* 2 */ { 4, s_0_2, -1, 1, 0}, -/* 3 */ { 3, s_0_3, -1, 1, 0}, -/* 4 */ { 3, s_0_4, -1, 1, 0}, -/* 5 */ { 3, s_0_5, -1, 1, 0}, -/* 6 */ { 4, s_0_6, -1, 1, 0}, -/* 7 */ { 2, s_0_7, -1, 1, 0}, -/* 8 */ { 2, s_0_8, -1, 1, 0}, -/* 9 */ { 2, s_0_9, -1, 1, 0} +{ 2, s_0_0, -1, 1, 0}, +{ 3, s_0_1, -1, 2, 0}, +{ 4, s_0_2, -1, 1, 0}, +{ 3, s_0_3, -1, 1, 0}, +{ 3, s_0_4, -1, 1, 0}, +{ 3, s_0_5, -1, 1, 0}, +{ 4, s_0_6, -1, 1, 0}, +{ 2, s_0_7, -1, 1, 0}, +{ 2, s_0_8, -1, 1, 0}, +{ 2, s_0_9, -1, 1, 0} }; static const symbol s_1_0[3] = { 'l', 'l', 'a' }; @@ -66,12 +66,12 @@ static const symbol s_1_5[3] = { 's', 't', 'a' }; static const struct among a_1[6] = { -/* 0 */ { 3, s_1_0, -1, -1, 0}, -/* 1 */ { 2, s_1_1, -1, -1, 0}, -/* 2 */ { 3, s_1_2, -1, -1, 0}, -/* 3 */ { 2, s_1_3, -1, -1, 0}, -/* 4 */ { 3, s_1_4, 3, -1, 0}, -/* 5 */ { 3, s_1_5, 3, -1, 0} +{ 3, s_1_0, -1, -1, 0}, +{ 2, s_1_1, -1, -1, 0}, +{ 3, s_1_2, -1, -1, 0}, +{ 2, s_1_3, -1, -1, 0}, +{ 3, s_1_4, 3, -1, 0}, +{ 3, s_1_5, 3, -1, 0} }; static const symbol s_2_0[3] = { 'l', 'l', 0xE4 }; @@ -83,12 +83,12 @@ static const symbol s_2_5[3] = { 's', 't', 0xE4 }; static const struct among a_2[6] = { -/* 0 */ { 3, s_2_0, -1, -1, 0}, -/* 1 */ { 2, s_2_1, -1, -1, 0}, -/* 2 */ { 3, s_2_2, -1, -1, 0}, -/* 3 */ { 2, s_2_3, -1, -1, 0}, -/* 4 */ { 3, s_2_4, 3, -1, 0}, -/* 5 */ { 3, s_2_5, 3, -1, 0} +{ 3, s_2_0, -1, -1, 0}, +{ 2, s_2_1, -1, -1, 0}, +{ 3, s_2_2, -1, -1, 0}, +{ 2, s_2_3, -1, -1, 0}, +{ 3, s_2_4, 3, -1, 0}, +{ 3, s_2_5, 3, -1, 0} }; static const symbol s_3_0[3] = { 'l', 'l', 'e' }; @@ -96,8 +96,8 @@ static const symbol s_3_1[3] = { 'i', 'n', 'e' }; static const struct among a_3[2] = { -/* 0 */ { 3, s_3_0, -1, -1, 0}, -/* 1 */ { 3, s_3_1, -1, -1, 0} +{ 3, s_3_0, -1, -1, 0}, +{ 3, s_3_1, -1, -1, 0} }; static const symbol s_4_0[3] = { 'n', 's', 'a' }; @@ -112,15 +112,15 @@ static const symbol s_4_8[3] = { 'n', 's', 0xE4 }; static const struct among a_4[9] = { -/* 0 */ { 3, s_4_0, -1, 3, 0}, -/* 1 */ { 3, s_4_1, -1, 3, 0}, -/* 2 */ { 3, s_4_2, -1, 3, 0}, -/* 3 */ { 2, s_4_3, -1, 2, 0}, -/* 4 */ { 2, s_4_4, -1, 1, 0}, -/* 5 */ { 2, s_4_5, -1, 4, 0}, -/* 6 */ { 2, s_4_6, -1, 6, 0}, -/* 7 */ { 2, s_4_7, -1, 5, 0}, -/* 8 */ { 3, s_4_8, -1, 3, 0} +{ 3, s_4_0, -1, 3, 0}, +{ 3, s_4_1, -1, 3, 0}, +{ 3, s_4_2, -1, 3, 0}, +{ 2, s_4_3, -1, 2, 0}, +{ 2, s_4_4, -1, 1, 0}, +{ 2, s_4_5, -1, 4, 0}, +{ 2, s_4_6, -1, 6, 0}, +{ 2, s_4_7, -1, 5, 0}, +{ 3, s_4_8, -1, 3, 0} }; static const symbol s_5_0[2] = { 'a', 'a' }; @@ -133,13 +133,13 @@ static const symbol s_5_6[2] = { 0xF6, 0xF6 }; static const struct among a_5[7] = { -/* 0 */ { 2, s_5_0, -1, -1, 0}, -/* 1 */ { 2, s_5_1, -1, -1, 0}, -/* 2 */ { 2, s_5_2, -1, -1, 0}, -/* 3 */ { 2, s_5_3, -1, -1, 0}, -/* 4 */ { 2, s_5_4, -1, -1, 0}, -/* 5 */ { 2, s_5_5, -1, -1, 0}, -/* 6 */ { 2, s_5_6, -1, -1, 0} +{ 2, s_5_0, -1, -1, 0}, +{ 2, s_5_1, -1, -1, 0}, +{ 2, s_5_2, -1, -1, 0}, +{ 2, s_5_3, -1, -1, 0}, +{ 2, s_5_4, -1, -1, 0}, +{ 2, s_5_5, -1, -1, 0}, +{ 2, s_5_6, -1, -1, 0} }; static const symbol s_6_0[1] = { 'a' }; @@ -175,36 +175,36 @@ static const symbol s_6_29[3] = { 't', 't', 0xE4 }; static const struct among a_6[30] = { -/* 0 */ { 1, s_6_0, -1, 8, 0}, -/* 1 */ { 3, s_6_1, 0, -1, 0}, -/* 2 */ { 2, s_6_2, 0, -1, 0}, -/* 3 */ { 3, s_6_3, 0, -1, 0}, -/* 4 */ { 2, s_6_4, 0, -1, 0}, -/* 5 */ { 3, s_6_5, 4, -1, 0}, -/* 6 */ { 3, s_6_6, 4, -1, 0}, -/* 7 */ { 3, s_6_7, 4, 2, 0}, -/* 8 */ { 3, s_6_8, -1, -1, 0}, -/* 9 */ { 3, s_6_9, -1, -1, 0}, -/* 10 */ { 3, s_6_10, -1, -1, 0}, -/* 11 */ { 1, s_6_11, -1, 7, 0}, -/* 12 */ { 3, s_6_12, 11, 1, 0}, -/* 13 */ { 3, s_6_13, 11, -1, r_VI}, -/* 14 */ { 4, s_6_14, 11, -1, r_LONG}, -/* 15 */ { 3, s_6_15, 11, 2, 0}, -/* 16 */ { 4, s_6_16, 11, -1, r_VI}, -/* 17 */ { 3, s_6_17, 11, 3, 0}, -/* 18 */ { 4, s_6_18, 11, -1, r_VI}, -/* 19 */ { 3, s_6_19, 11, 4, 0}, -/* 20 */ { 3, s_6_20, 11, 5, 0}, -/* 21 */ { 3, s_6_21, 11, 6, 0}, -/* 22 */ { 1, s_6_22, -1, 8, 0}, -/* 23 */ { 3, s_6_23, 22, -1, 0}, -/* 24 */ { 2, s_6_24, 22, -1, 0}, -/* 25 */ { 3, s_6_25, 22, -1, 0}, -/* 26 */ { 2, s_6_26, 22, -1, 0}, -/* 27 */ { 3, s_6_27, 26, -1, 0}, -/* 28 */ { 3, s_6_28, 26, -1, 0}, -/* 29 */ { 3, s_6_29, 26, 2, 0} +{ 1, s_6_0, -1, 8, 0}, +{ 3, s_6_1, 0, -1, 0}, +{ 2, s_6_2, 0, -1, 0}, +{ 3, s_6_3, 0, -1, 0}, +{ 2, s_6_4, 0, -1, 0}, +{ 3, s_6_5, 4, -1, 0}, +{ 3, s_6_6, 4, -1, 0}, +{ 3, s_6_7, 4, 2, 0}, +{ 3, s_6_8, -1, -1, 0}, +{ 3, s_6_9, -1, -1, 0}, +{ 3, s_6_10, -1, -1, 0}, +{ 1, s_6_11, -1, 7, 0}, +{ 3, s_6_12, 11, 1, 0}, +{ 3, s_6_13, 11, -1, r_VI}, +{ 4, s_6_14, 11, -1, r_LONG}, +{ 3, s_6_15, 11, 2, 0}, +{ 4, s_6_16, 11, -1, r_VI}, +{ 3, s_6_17, 11, 3, 0}, +{ 4, s_6_18, 11, -1, r_VI}, +{ 3, s_6_19, 11, 4, 0}, +{ 3, s_6_20, 11, 5, 0}, +{ 3, s_6_21, 11, 6, 0}, +{ 1, s_6_22, -1, 8, 0}, +{ 3, s_6_23, 22, -1, 0}, +{ 2, s_6_24, 22, -1, 0}, +{ 3, s_6_25, 22, -1, 0}, +{ 2, s_6_26, 22, -1, 0}, +{ 3, s_6_27, 26, -1, 0}, +{ 3, s_6_28, 26, -1, 0}, +{ 3, s_6_29, 26, 2, 0} }; static const symbol s_7_0[3] = { 'e', 'j', 'a' }; @@ -224,20 +224,20 @@ static const symbol s_7_13[4] = { 'i', 'm', 'p', 0xE4 }; static const struct among a_7[14] = { -/* 0 */ { 3, s_7_0, -1, -1, 0}, -/* 1 */ { 3, s_7_1, -1, 1, 0}, -/* 2 */ { 4, s_7_2, 1, -1, 0}, -/* 3 */ { 3, s_7_3, -1, 1, 0}, -/* 4 */ { 4, s_7_4, 3, -1, 0}, -/* 5 */ { 3, s_7_5, -1, 1, 0}, -/* 6 */ { 4, s_7_6, 5, -1, 0}, -/* 7 */ { 3, s_7_7, -1, 1, 0}, -/* 8 */ { 4, s_7_8, 7, -1, 0}, -/* 9 */ { 3, s_7_9, -1, -1, 0}, -/* 10 */ { 3, s_7_10, -1, 1, 0}, -/* 11 */ { 4, s_7_11, 10, -1, 0}, -/* 12 */ { 3, s_7_12, -1, 1, 0}, -/* 13 */ { 4, s_7_13, 12, -1, 0} +{ 3, s_7_0, -1, -1, 0}, +{ 3, s_7_1, -1, 1, 0}, +{ 4, s_7_2, 1, -1, 0}, +{ 3, s_7_3, -1, 1, 0}, +{ 4, s_7_4, 3, -1, 0}, +{ 3, s_7_5, -1, 1, 0}, +{ 4, s_7_6, 5, -1, 0}, +{ 3, s_7_7, -1, 1, 0}, +{ 4, s_7_8, 7, -1, 0}, +{ 3, s_7_9, -1, -1, 0}, +{ 3, s_7_10, -1, 1, 0}, +{ 4, s_7_11, 10, -1, 0}, +{ 3, s_7_12, -1, 1, 0}, +{ 4, s_7_13, 12, -1, 0} }; static const symbol s_8_0[1] = { 'i' }; @@ -245,8 +245,8 @@ static const symbol s_8_1[1] = { 'j' }; static const struct among a_8[2] = { -/* 0 */ { 1, s_8_0, -1, -1, 0}, -/* 1 */ { 1, s_8_1, -1, -1, 0} +{ 1, s_8_0, -1, -1, 0}, +{ 1, s_8_1, -1, -1, 0} }; static const symbol s_9_0[3] = { 'm', 'm', 'a' }; @@ -254,8 +254,8 @@ static const symbol s_9_1[4] = { 'i', 'm', 'm', 'a' }; static const struct among a_9[2] = { -/* 0 */ { 3, s_9_0, -1, 1, 0}, -/* 1 */ { 4, s_9_1, 0, -1, 0} +{ 3, s_9_0, -1, 1, 0}, +{ 4, s_9_1, 0, -1, 0} }; static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 }; @@ -274,118 +274,118 @@ static const symbol s_2[] = { 'i', 'e' }; static const symbol s_3[] = { 'p', 'o' }; static const symbol s_4[] = { 'p', 'o' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 44 */ - z->I[1] = z->l; /* $p2 = , line 45 */ - if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 47 */ - { /* gopast */ /* non V1, line 47 */ +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + z->I[0] = z->l; + if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0; + { int ret = in_grouping(z, g_V1, 97, 246, 1); if (ret < 0) return 0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 47 */ - if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 48 */ - { /* gopast */ /* non V1, line 48 */ + z->I[1] = z->c; + if (out_grouping(z, g_V1, 97, 246, 1) < 0) return 0; + { int ret = in_grouping(z, g_V1, 97, 246, 1); if (ret < 0) return 0; z->c += ret; } - z->I[1] = z->c; /* setmark p2, line 48 */ + z->I[0] = z->c; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 53 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_particle_etc(struct SN_env * z) { /* backwardmode */ +static int r_particle_etc(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 56 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 56 */ - among_var = find_among_b(z, a_0, 10); /* substring, line 56 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + among_var = find_among_b(z, a_0, 10); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 56 */ + z->bra = z->c; z->lb = mlimit1; } - switch (among_var) { /* among, line 57 */ + switch (among_var) { case 1: - if (in_grouping_b(z, g_particle_end, 97, 246, 0)) return 0; /* grouping particle_end, line 63 */ + if (in_grouping_b(z, g_particle_end, 97, 246, 0)) return 0; break; case 2: - { int ret = r_R2(z); /* call R2, line 65 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } break; } - { int ret = slice_del(z); /* delete, line 67 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_possessive(struct SN_env * z) { /* backwardmode */ +static int r_possessive(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 70 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 70 */ - among_var = find_among_b(z, a_4, 9); /* substring, line 70 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + among_var = find_among_b(z, a_4, 9); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 70 */ + z->bra = z->c; z->lb = mlimit1; } - switch (among_var) { /* among, line 71 */ + switch (among_var) { case 1: - { int m2 = z->l - z->c; (void)m2; /* not, line 73 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0; /* literal, line 73 */ + { int m2 = z->l - z->c; (void)m2; + if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0; z->c--; return 0; lab0: z->c = z->l - m2; } - { int ret = slice_del(z); /* delete, line 73 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_del(z); /* delete, line 75 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 75 */ - if (!(eq_s_b(z, 3, s_0))) return 0; /* literal, line 75 */ - z->bra = z->c; /* ], line 75 */ - { int ret = slice_from_s(z, 3, s_1); /* <-, line 75 */ + z->ket = z->c; + if (!(eq_s_b(z, 3, s_0))) return 0; + z->bra = z->c; + { int ret = slice_from_s(z, 3, s_1); if (ret < 0) return ret; } break; case 3: - { int ret = slice_del(z); /* delete, line 79 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 4: - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0; /* among, line 82 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0; if (!(find_among_b(z, a_1, 6))) return 0; - { int ret = slice_del(z); /* delete, line 82 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 5: - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 228) return 0; /* among, line 84 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 228) return 0; if (!(find_among_b(z, a_2, 6))) return 0; - { int ret = slice_del(z); /* delete, line 85 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 6: - if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0; /* among, line 87 */ + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0; if (!(find_among_b(z, a_3, 2))) return 0; - { int ret = slice_del(z); /* delete, line 87 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -393,244 +393,244 @@ static int r_possessive(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_LONG(struct SN_env * z) { /* backwardmode */ - if (!(find_among_b(z, a_5, 7))) return 0; /* among, line 92 */ +static int r_LONG(struct SN_env * z) { + if (!(find_among_b(z, a_5, 7))) return 0; return 1; } -static int r_VI(struct SN_env * z) { /* backwardmode */ - if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 94 */ +static int r_VI(struct SN_env * z) { + if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; z->c--; - if (in_grouping_b(z, g_V2, 97, 246, 0)) return 0; /* grouping V2, line 94 */ + if (in_grouping_b(z, g_V2, 97, 246, 0)) return 0; return 1; } -static int r_case_ending(struct SN_env * z) { /* backwardmode */ +static int r_case_ending(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 97 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 97 */ - among_var = find_among_b(z, a_6, 30); /* substring, line 97 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + among_var = find_among_b(z, a_6, 30); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 97 */ + z->bra = z->c; z->lb = mlimit1; } - switch (among_var) { /* among, line 98 */ + switch (among_var) { case 1: - if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0; /* literal, line 99 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0; z->c--; break; case 2: - if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 100 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; z->c--; break; case 3: - if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 101 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; z->c--; break; case 4: - if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0; /* literal, line 102 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0; z->c--; break; case 5: - if (z->c <= z->lb || z->p[z->c - 1] != 0xE4) return 0; /* literal, line 103 */ + if (z->c <= z->lb || z->p[z->c - 1] != 0xE4) return 0; z->c--; break; case 6: - if (z->c <= z->lb || z->p[z->c - 1] != 0xF6) return 0; /* literal, line 104 */ + if (z->c <= z->lb || z->p[z->c - 1] != 0xF6) return 0; z->c--; break; case 7: - { int m2 = z->l - z->c; (void)m2; /* try, line 112 */ - { int m3 = z->l - z->c; (void)m3; /* and, line 114 */ - { int m4 = z->l - z->c; (void)m4; /* or, line 113 */ - { int ret = r_LONG(z); /* call LONG, line 112 */ + { int m2 = z->l - z->c; (void)m2; + { int m3 = z->l - z->c; (void)m3; + { int m4 = z->l - z->c; (void)m4; + { int ret = r_LONG(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } goto lab1; lab2: z->c = z->l - m4; - if (!(eq_s_b(z, 2, s_2))) { z->c = z->l - m2; goto lab0; } /* literal, line 113 */ + if (!(eq_s_b(z, 2, s_2))) { z->c = z->l - m2; goto lab0; } } lab1: z->c = z->l - m3; if (z->c <= z->lb) { z->c = z->l - m2; goto lab0; } - z->c--; /* next, line 114 */ + z->c--; } - z->bra = z->c; /* ], line 114 */ + z->bra = z->c; lab0: ; } break; case 8: - if (in_grouping_b(z, g_V1, 97, 246, 0)) return 0; /* grouping V1, line 120 */ - if (in_grouping_b(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 120 */ + if (in_grouping_b(z, g_V1, 97, 246, 0)) return 0; + if (in_grouping_b(z, g_C, 98, 122, 0)) return 0; break; } - { int ret = slice_del(z); /* delete, line 139 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 1; /* set ending_removed, line 140 */ + z->I[2] = 1; return 1; } -static int r_other_endings(struct SN_env * z) { /* backwardmode */ +static int r_other_endings(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 143 */ - if (z->c < z->I[1]) return 0; - mlimit1 = z->lb; z->lb = z->I[1]; - z->ket = z->c; /* [, line 143 */ - among_var = find_among_b(z, a_7, 14); /* substring, line 143 */ + { int mlimit1; + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; + among_var = find_among_b(z, a_7, 14); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 143 */ + z->bra = z->c; z->lb = mlimit1; } - switch (among_var) { /* among, line 144 */ + switch (among_var) { case 1: - { int m2 = z->l - z->c; (void)m2; /* not, line 147 */ - if (!(eq_s_b(z, 2, s_3))) goto lab0; /* literal, line 147 */ + { int m2 = z->l - z->c; (void)m2; + if (!(eq_s_b(z, 2, s_3))) goto lab0; return 0; lab0: z->c = z->l - m2; } break; } - { int ret = slice_del(z); /* delete, line 152 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_i_plural(struct SN_env * z) { /* backwardmode */ +static int r_i_plural(struct SN_env * z) { - { int mlimit1; /* setlimit, line 155 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 155 */ - if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; } /* substring, line 155 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; } if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 155 */ + z->bra = z->c; z->lb = mlimit1; } - { int ret = slice_del(z); /* delete, line 159 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_t_plural(struct SN_env * z) { /* backwardmode */ +static int r_t_plural(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 162 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 163 */ - if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; } /* literal, line 163 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; } z->c--; - z->bra = z->c; /* ], line 163 */ - { int m_test2 = z->l - z->c; /* test, line 163 */ - if (in_grouping_b(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; } /* grouping V1, line 163 */ + z->bra = z->c; + { int m_test2 = z->l - z->c; + if (in_grouping_b(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; } z->c = z->l - m_test2; } - { int ret = slice_del(z); /* delete, line 164 */ + { int ret = slice_del(z); if (ret < 0) return ret; } z->lb = mlimit1; } - { int mlimit3; /* setlimit, line 166 */ - if (z->c < z->I[1]) return 0; - mlimit3 = z->lb; z->lb = z->I[1]; - z->ket = z->c; /* [, line 166 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; } /* substring, line 166 */ + { int mlimit3; + if (z->c < z->I[0]) return 0; + mlimit3 = z->lb; z->lb = z->I[0]; + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; } among_var = find_among_b(z, a_9, 2); if (!(among_var)) { z->lb = mlimit3; return 0; } - z->bra = z->c; /* ], line 166 */ + z->bra = z->c; z->lb = mlimit3; } - switch (among_var) { /* among, line 167 */ + switch (among_var) { case 1: - { int m4 = z->l - z->c; (void)m4; /* not, line 168 */ - if (!(eq_s_b(z, 2, s_4))) goto lab0; /* literal, line 168 */ + { int m4 = z->l - z->c; (void)m4; + if (!(eq_s_b(z, 2, s_4))) goto lab0; return 0; lab0: z->c = z->l - m4; } break; } - { int ret = slice_del(z); /* delete, line 171 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_tidy(struct SN_env * z) { /* backwardmode */ +static int r_tidy(struct SN_env * z) { - { int mlimit1; /* setlimit, line 174 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - { int m2 = z->l - z->c; (void)m2; /* do, line 175 */ - { int m3 = z->l - z->c; (void)m3; /* and, line 175 */ - { int ret = r_LONG(z); /* call LONG, line 175 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + { int m2 = z->l - z->c; (void)m2; + { int m3 = z->l - z->c; (void)m3; + { int ret = r_LONG(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } z->c = z->l - m3; - z->ket = z->c; /* [, line 175 */ + z->ket = z->c; if (z->c <= z->lb) goto lab0; - z->c--; /* next, line 175 */ - z->bra = z->c; /* ], line 175 */ - { int ret = slice_del(z); /* delete, line 175 */ + z->c--; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } } lab0: z->c = z->l - m2; } - { int m4 = z->l - z->c; (void)m4; /* do, line 176 */ - z->ket = z->c; /* [, line 176 */ - if (in_grouping_b(z, g_AEI, 97, 228, 0)) goto lab1; /* grouping AEI, line 176 */ - z->bra = z->c; /* ], line 176 */ - if (in_grouping_b(z, g_C, 98, 122, 0)) goto lab1; /* grouping C, line 176 */ - { int ret = slice_del(z); /* delete, line 176 */ + { int m4 = z->l - z->c; (void)m4; + z->ket = z->c; + if (in_grouping_b(z, g_AEI, 97, 228, 0)) goto lab1; + z->bra = z->c; + if (in_grouping_b(z, g_C, 98, 122, 0)) goto lab1; + { int ret = slice_del(z); if (ret < 0) return ret; } lab1: z->c = z->l - m4; } - { int m5 = z->l - z->c; (void)m5; /* do, line 177 */ - z->ket = z->c; /* [, line 177 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2; /* literal, line 177 */ + { int m5 = z->l - z->c; (void)m5; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2; z->c--; - z->bra = z->c; /* ], line 177 */ - { int m6 = z->l - z->c; (void)m6; /* or, line 177 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4; /* literal, line 177 */ + z->bra = z->c; + { int m6 = z->l - z->c; (void)m6; + if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4; z->c--; goto lab3; lab4: z->c = z->l - m6; - if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2; /* literal, line 177 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2; z->c--; } lab3: - { int ret = slice_del(z); /* delete, line 177 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab2: z->c = z->l - m5; } - { int m7 = z->l - z->c; (void)m7; /* do, line 178 */ - z->ket = z->c; /* [, line 178 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5; /* literal, line 178 */ + { int m7 = z->l - z->c; (void)m7; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5; z->c--; - z->bra = z->c; /* ], line 178 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab5; /* literal, line 178 */ + z->bra = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab5; z->c--; - { int ret = slice_del(z); /* delete, line 178 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab5: @@ -638,72 +638,72 @@ static int r_tidy(struct SN_env * z) { /* backwardmode */ } z->lb = mlimit1; } - if (in_grouping_b(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 180 */ - z->ket = z->c; /* [, line 180 */ - if (in_grouping_b(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 180 */ - z->bra = z->c; /* ], line 180 */ - z->S[0] = slice_to(z, z->S[0]); /* -> x, line 180 */ - if (z->S[0] == 0) return -1; /* -> x, line 180 */ - if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 180 */ - { int ret = slice_del(z); /* delete, line 180 */ + if (in_grouping_b(z, g_V1, 97, 246, 1) < 0) return 0; + z->ket = z->c; + if (in_grouping_b(z, g_C, 98, 122, 0)) return 0; + z->bra = z->c; + z->S[0] = slice_to(z, z->S[0]); + if (z->S[0] == 0) return -1; + if (!(eq_v_b(z, z->S[0]))) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -extern int finnish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 186 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 186 */ +extern int finnish_ISO_8859_1_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_mark_regions(z); if (ret < 0) return ret; } z->c = c1; } - z->B[0] = 0; /* unset ending_removed, line 187 */ - z->lb = z->c; z->c = z->l; /* backwards, line 188 */ + z->I[2] = 0; + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 189 */ - { int ret = r_particle_etc(z); /* call particle_etc, line 189 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_particle_etc(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 190 */ - { int ret = r_possessive(z); /* call possessive, line 190 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_possessive(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 191 */ - { int ret = r_case_ending(z); /* call case_ending, line 191 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_case_ending(z); if (ret < 0) return ret; } z->c = z->l - m4; } - { int m5 = z->l - z->c; (void)m5; /* do, line 192 */ - { int ret = r_other_endings(z); /* call other_endings, line 192 */ + { int m5 = z->l - z->c; (void)m5; + { int ret = r_other_endings(z); if (ret < 0) return ret; } z->c = z->l - m5; } - /* or, line 193 */ - if (!(z->B[0])) goto lab1; /* Boolean test ending_removed, line 193 */ - { int m6 = z->l - z->c; (void)m6; /* do, line 193 */ - { int ret = r_i_plural(z); /* call i_plural, line 193 */ + + if (!(z->I[2])) goto lab1; + { int m6 = z->l - z->c; (void)m6; + { int ret = r_i_plural(z); if (ret < 0) return ret; } z->c = z->l - m6; } goto lab0; lab1: - { int m7 = z->l - z->c; (void)m7; /* do, line 193 */ - { int ret = r_t_plural(z); /* call t_plural, line 193 */ + { int m7 = z->l - z->c; (void)m7; + { int ret = r_t_plural(z); if (ret < 0) return ret; } z->c = z->l - m7; } lab0: - { int m8 = z->l - z->c; (void)m8; /* do, line 194 */ - { int ret = r_tidy(z); /* call tidy, line 194 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_tidy(z); if (ret < 0) return ret; } z->c = z->l - m8; @@ -712,7 +712,7 @@ extern int finnish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * finnish_ISO_8859_1_create_env(void) { return SN_create_env(1, 2, 1); } +extern struct SN_env * finnish_ISO_8859_1_create_env(void) { return SN_create_env(1, 3); } extern void finnish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 1); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c index bbf6985ba5841..05fd6b61a246e 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_french.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -39,9 +39,9 @@ static const symbol s_0_2[3] = { 't', 'a', 'p' }; static const struct among a_0[3] = { -/* 0 */ { 3, s_0_0, -1, -1, 0}, -/* 1 */ { 3, s_0_1, -1, -1, 0}, -/* 2 */ { 3, s_0_2, -1, -1, 0} +{ 3, s_0_0, -1, -1, 0}, +{ 3, s_0_1, -1, -1, 0}, +{ 3, s_0_2, -1, -1, 0} }; static const symbol s_1_1[1] = { 'H' }; @@ -53,13 +53,13 @@ static const symbol s_1_6[1] = { 'Y' }; static const struct among a_1[7] = { -/* 0 */ { 0, 0, -1, 7, 0}, -/* 1 */ { 1, s_1_1, 0, 6, 0}, -/* 2 */ { 2, s_1_2, 1, 4, 0}, -/* 3 */ { 2, s_1_3, 1, 5, 0}, -/* 4 */ { 1, s_1_4, 0, 1, 0}, -/* 5 */ { 1, s_1_5, 0, 2, 0}, -/* 6 */ { 1, s_1_6, 0, 3, 0} +{ 0, 0, -1, 7, 0}, +{ 1, s_1_1, 0, 6, 0}, +{ 2, s_1_2, 1, 4, 0}, +{ 2, s_1_3, 1, 5, 0}, +{ 1, s_1_4, 0, 1, 0}, +{ 1, s_1_5, 0, 2, 0}, +{ 1, s_1_6, 0, 3, 0} }; static const symbol s_2_0[3] = { 'i', 'q', 'U' }; @@ -71,12 +71,12 @@ static const symbol s_2_5[2] = { 'i', 'v' }; static const struct among a_2[6] = { -/* 0 */ { 3, s_2_0, -1, 3, 0}, -/* 1 */ { 3, s_2_1, -1, 3, 0}, -/* 2 */ { 3, s_2_2, -1, 4, 0}, -/* 3 */ { 3, s_2_3, -1, 4, 0}, -/* 4 */ { 3, s_2_4, -1, 2, 0}, -/* 5 */ { 2, s_2_5, -1, 1, 0} +{ 3, s_2_0, -1, 3, 0}, +{ 3, s_2_1, -1, 3, 0}, +{ 3, s_2_2, -1, 4, 0}, +{ 3, s_2_3, -1, 4, 0}, +{ 3, s_2_4, -1, 2, 0}, +{ 2, s_2_5, -1, 1, 0} }; static const symbol s_3_0[2] = { 'i', 'c' }; @@ -85,9 +85,9 @@ static const symbol s_3_2[2] = { 'i', 'v' }; static const struct among a_3[3] = { -/* 0 */ { 2, s_3_0, -1, 2, 0}, -/* 1 */ { 4, s_3_1, -1, 1, 0}, -/* 2 */ { 2, s_3_2, -1, 3, 0} +{ 2, s_3_0, -1, 2, 0}, +{ 4, s_3_1, -1, 1, 0}, +{ 2, s_3_2, -1, 3, 0} }; static const symbol s_4_0[4] = { 'i', 'q', 'U', 'e' }; @@ -136,49 +136,49 @@ static const symbol s_4_42[3] = { 'i', 't', 0xE9 }; static const struct among a_4[43] = { -/* 0 */ { 4, s_4_0, -1, 1, 0}, -/* 1 */ { 6, s_4_1, -1, 2, 0}, -/* 2 */ { 4, s_4_2, -1, 1, 0}, -/* 3 */ { 4, s_4_3, -1, 5, 0}, -/* 4 */ { 5, s_4_4, -1, 3, 0}, -/* 5 */ { 4, s_4_5, -1, 1, 0}, -/* 6 */ { 4, s_4_6, -1, 1, 0}, -/* 7 */ { 4, s_4_7, -1, 11, 0}, -/* 8 */ { 4, s_4_8, -1, 1, 0}, -/* 9 */ { 3, s_4_9, -1, 8, 0}, -/* 10 */ { 2, s_4_10, -1, 8, 0}, -/* 11 */ { 5, s_4_11, -1, 4, 0}, -/* 12 */ { 5, s_4_12, -1, 2, 0}, -/* 13 */ { 5, s_4_13, -1, 4, 0}, -/* 14 */ { 5, s_4_14, -1, 2, 0}, -/* 15 */ { 5, s_4_15, -1, 1, 0}, -/* 16 */ { 7, s_4_16, -1, 2, 0}, -/* 17 */ { 5, s_4_17, -1, 1, 0}, -/* 18 */ { 5, s_4_18, -1, 5, 0}, -/* 19 */ { 6, s_4_19, -1, 3, 0}, -/* 20 */ { 5, s_4_20, -1, 1, 0}, -/* 21 */ { 5, s_4_21, -1, 1, 0}, -/* 22 */ { 5, s_4_22, -1, 11, 0}, -/* 23 */ { 5, s_4_23, -1, 1, 0}, -/* 24 */ { 4, s_4_24, -1, 8, 0}, -/* 25 */ { 3, s_4_25, -1, 8, 0}, -/* 26 */ { 6, s_4_26, -1, 4, 0}, -/* 27 */ { 6, s_4_27, -1, 2, 0}, -/* 28 */ { 6, s_4_28, -1, 4, 0}, -/* 29 */ { 6, s_4_29, -1, 2, 0}, -/* 30 */ { 5, s_4_30, -1, 15, 0}, -/* 31 */ { 6, s_4_31, 30, 6, 0}, -/* 32 */ { 9, s_4_32, 31, 12, 0}, -/* 33 */ { 4, s_4_33, -1, 7, 0}, -/* 34 */ { 4, s_4_34, -1, 15, 0}, -/* 35 */ { 5, s_4_35, 34, 6, 0}, -/* 36 */ { 8, s_4_36, 35, 12, 0}, -/* 37 */ { 6, s_4_37, 34, 13, 0}, -/* 38 */ { 6, s_4_38, 34, 14, 0}, -/* 39 */ { 3, s_4_39, -1, 10, 0}, -/* 40 */ { 4, s_4_40, 39, 9, 0}, -/* 41 */ { 3, s_4_41, -1, 1, 0}, -/* 42 */ { 3, s_4_42, -1, 7, 0} +{ 4, s_4_0, -1, 1, 0}, +{ 6, s_4_1, -1, 2, 0}, +{ 4, s_4_2, -1, 1, 0}, +{ 4, s_4_3, -1, 5, 0}, +{ 5, s_4_4, -1, 3, 0}, +{ 4, s_4_5, -1, 1, 0}, +{ 4, s_4_6, -1, 1, 0}, +{ 4, s_4_7, -1, 11, 0}, +{ 4, s_4_8, -1, 1, 0}, +{ 3, s_4_9, -1, 8, 0}, +{ 2, s_4_10, -1, 8, 0}, +{ 5, s_4_11, -1, 4, 0}, +{ 5, s_4_12, -1, 2, 0}, +{ 5, s_4_13, -1, 4, 0}, +{ 5, s_4_14, -1, 2, 0}, +{ 5, s_4_15, -1, 1, 0}, +{ 7, s_4_16, -1, 2, 0}, +{ 5, s_4_17, -1, 1, 0}, +{ 5, s_4_18, -1, 5, 0}, +{ 6, s_4_19, -1, 3, 0}, +{ 5, s_4_20, -1, 1, 0}, +{ 5, s_4_21, -1, 1, 0}, +{ 5, s_4_22, -1, 11, 0}, +{ 5, s_4_23, -1, 1, 0}, +{ 4, s_4_24, -1, 8, 0}, +{ 3, s_4_25, -1, 8, 0}, +{ 6, s_4_26, -1, 4, 0}, +{ 6, s_4_27, -1, 2, 0}, +{ 6, s_4_28, -1, 4, 0}, +{ 6, s_4_29, -1, 2, 0}, +{ 5, s_4_30, -1, 15, 0}, +{ 6, s_4_31, 30, 6, 0}, +{ 9, s_4_32, 31, 12, 0}, +{ 4, s_4_33, -1, 7, 0}, +{ 4, s_4_34, -1, 15, 0}, +{ 5, s_4_35, 34, 6, 0}, +{ 8, s_4_36, 35, 12, 0}, +{ 6, s_4_37, 34, 13, 0}, +{ 6, s_4_38, 34, 14, 0}, +{ 3, s_4_39, -1, 10, 0}, +{ 4, s_4_40, 39, 9, 0}, +{ 3, s_4_41, -1, 1, 0}, +{ 3, s_4_42, -1, 7, 0} }; static const symbol s_5_0[3] = { 'i', 'r', 'a' }; @@ -219,41 +219,41 @@ static const symbol s_5_34[5] = { 'i', 's', 's', 'e', 'z' }; static const struct among a_5[35] = { -/* 0 */ { 3, s_5_0, -1, 1, 0}, -/* 1 */ { 2, s_5_1, -1, 1, 0}, -/* 2 */ { 4, s_5_2, -1, 1, 0}, -/* 3 */ { 7, s_5_3, -1, 1, 0}, -/* 4 */ { 1, s_5_4, -1, 1, 0}, -/* 5 */ { 4, s_5_5, 4, 1, 0}, -/* 6 */ { 2, s_5_6, -1, 1, 0}, -/* 7 */ { 4, s_5_7, -1, 1, 0}, -/* 8 */ { 3, s_5_8, -1, 1, 0}, -/* 9 */ { 4, s_5_9, -1, 1, 0}, -/* 10 */ { 5, s_5_10, -1, 1, 0}, -/* 11 */ { 8, s_5_11, -1, 1, 0}, -/* 12 */ { 4, s_5_12, -1, 1, 0}, -/* 13 */ { 2, s_5_13, -1, 1, 0}, -/* 14 */ { 5, s_5_14, 13, 1, 0}, -/* 15 */ { 6, s_5_15, 13, 1, 0}, -/* 16 */ { 6, s_5_16, -1, 1, 0}, -/* 17 */ { 7, s_5_17, -1, 1, 0}, -/* 18 */ { 5, s_5_18, -1, 1, 0}, -/* 19 */ { 6, s_5_19, -1, 1, 0}, -/* 20 */ { 7, s_5_20, -1, 1, 0}, -/* 21 */ { 2, s_5_21, -1, 1, 0}, -/* 22 */ { 5, s_5_22, 21, 1, 0}, -/* 23 */ { 6, s_5_23, 21, 1, 0}, -/* 24 */ { 6, s_5_24, -1, 1, 0}, -/* 25 */ { 7, s_5_25, -1, 1, 0}, -/* 26 */ { 8, s_5_26, -1, 1, 0}, -/* 27 */ { 5, s_5_27, -1, 1, 0}, -/* 28 */ { 6, s_5_28, -1, 1, 0}, -/* 29 */ { 5, s_5_29, -1, 1, 0}, -/* 30 */ { 2, s_5_30, -1, 1, 0}, -/* 31 */ { 5, s_5_31, -1, 1, 0}, -/* 32 */ { 6, s_5_32, -1, 1, 0}, -/* 33 */ { 4, s_5_33, -1, 1, 0}, -/* 34 */ { 5, s_5_34, -1, 1, 0} +{ 3, s_5_0, -1, 1, 0}, +{ 2, s_5_1, -1, 1, 0}, +{ 4, s_5_2, -1, 1, 0}, +{ 7, s_5_3, -1, 1, 0}, +{ 1, s_5_4, -1, 1, 0}, +{ 4, s_5_5, 4, 1, 0}, +{ 2, s_5_6, -1, 1, 0}, +{ 4, s_5_7, -1, 1, 0}, +{ 3, s_5_8, -1, 1, 0}, +{ 4, s_5_9, -1, 1, 0}, +{ 5, s_5_10, -1, 1, 0}, +{ 8, s_5_11, -1, 1, 0}, +{ 4, s_5_12, -1, 1, 0}, +{ 2, s_5_13, -1, 1, 0}, +{ 5, s_5_14, 13, 1, 0}, +{ 6, s_5_15, 13, 1, 0}, +{ 6, s_5_16, -1, 1, 0}, +{ 7, s_5_17, -1, 1, 0}, +{ 5, s_5_18, -1, 1, 0}, +{ 6, s_5_19, -1, 1, 0}, +{ 7, s_5_20, -1, 1, 0}, +{ 2, s_5_21, -1, 1, 0}, +{ 5, s_5_22, 21, 1, 0}, +{ 6, s_5_23, 21, 1, 0}, +{ 6, s_5_24, -1, 1, 0}, +{ 7, s_5_25, -1, 1, 0}, +{ 8, s_5_26, -1, 1, 0}, +{ 5, s_5_27, -1, 1, 0}, +{ 6, s_5_28, -1, 1, 0}, +{ 5, s_5_29, -1, 1, 0}, +{ 2, s_5_30, -1, 1, 0}, +{ 5, s_5_31, -1, 1, 0}, +{ 6, s_5_32, -1, 1, 0}, +{ 4, s_5_33, -1, 1, 0}, +{ 5, s_5_34, -1, 1, 0} }; static const symbol s_6_0[1] = { 'a' }; @@ -297,44 +297,44 @@ static const symbol s_6_37[1] = { 0xE9 }; static const struct among a_6[38] = { -/* 0 */ { 1, s_6_0, -1, 3, 0}, -/* 1 */ { 3, s_6_1, 0, 2, 0}, -/* 2 */ { 4, s_6_2, -1, 3, 0}, -/* 3 */ { 4, s_6_3, -1, 3, 0}, -/* 4 */ { 2, s_6_4, -1, 2, 0}, -/* 5 */ { 2, s_6_5, -1, 3, 0}, -/* 6 */ { 4, s_6_6, 5, 2, 0}, -/* 7 */ { 2, s_6_7, -1, 2, 0}, -/* 8 */ { 2, s_6_8, -1, 3, 0}, -/* 9 */ { 4, s_6_9, 8, 2, 0}, -/* 10 */ { 4, s_6_10, -1, 3, 0}, -/* 11 */ { 5, s_6_11, -1, 3, 0}, -/* 12 */ { 5, s_6_12, -1, 3, 0}, -/* 13 */ { 4, s_6_13, -1, 3, 0}, -/* 14 */ { 3, s_6_14, -1, 2, 0}, -/* 15 */ { 3, s_6_15, -1, 3, 0}, -/* 16 */ { 5, s_6_16, 15, 2, 0}, -/* 17 */ { 4, s_6_17, -1, 1, 0}, -/* 18 */ { 6, s_6_18, 17, 2, 0}, -/* 19 */ { 7, s_6_19, 17, 3, 0}, -/* 20 */ { 5, s_6_20, -1, 2, 0}, -/* 21 */ { 4, s_6_21, -1, 3, 0}, -/* 22 */ { 2, s_6_22, -1, 2, 0}, -/* 23 */ { 3, s_6_23, -1, 3, 0}, -/* 24 */ { 5, s_6_24, 23, 2, 0}, -/* 25 */ { 3, s_6_25, -1, 3, 0}, -/* 26 */ { 5, s_6_26, -1, 3, 0}, -/* 27 */ { 7, s_6_27, 26, 2, 0}, -/* 28 */ { 5, s_6_28, -1, 2, 0}, -/* 29 */ { 6, s_6_29, -1, 3, 0}, -/* 30 */ { 5, s_6_30, -1, 2, 0}, -/* 31 */ { 2, s_6_31, -1, 3, 0}, -/* 32 */ { 2, s_6_32, -1, 2, 0}, -/* 33 */ { 3, s_6_33, 32, 2, 0}, -/* 34 */ { 5, s_6_34, 33, 2, 0}, -/* 35 */ { 6, s_6_35, 33, 3, 0}, -/* 36 */ { 4, s_6_36, 32, 2, 0}, -/* 37 */ { 1, s_6_37, -1, 2, 0} +{ 1, s_6_0, -1, 3, 0}, +{ 3, s_6_1, 0, 2, 0}, +{ 4, s_6_2, -1, 3, 0}, +{ 4, s_6_3, -1, 3, 0}, +{ 2, s_6_4, -1, 2, 0}, +{ 2, s_6_5, -1, 3, 0}, +{ 4, s_6_6, 5, 2, 0}, +{ 2, s_6_7, -1, 2, 0}, +{ 2, s_6_8, -1, 3, 0}, +{ 4, s_6_9, 8, 2, 0}, +{ 4, s_6_10, -1, 3, 0}, +{ 5, s_6_11, -1, 3, 0}, +{ 5, s_6_12, -1, 3, 0}, +{ 4, s_6_13, -1, 3, 0}, +{ 3, s_6_14, -1, 2, 0}, +{ 3, s_6_15, -1, 3, 0}, +{ 5, s_6_16, 15, 2, 0}, +{ 4, s_6_17, -1, 1, 0}, +{ 6, s_6_18, 17, 2, 0}, +{ 7, s_6_19, 17, 3, 0}, +{ 5, s_6_20, -1, 2, 0}, +{ 4, s_6_21, -1, 3, 0}, +{ 2, s_6_22, -1, 2, 0}, +{ 3, s_6_23, -1, 3, 0}, +{ 5, s_6_24, 23, 2, 0}, +{ 3, s_6_25, -1, 3, 0}, +{ 5, s_6_26, -1, 3, 0}, +{ 7, s_6_27, 26, 2, 0}, +{ 5, s_6_28, -1, 2, 0}, +{ 6, s_6_29, -1, 3, 0}, +{ 5, s_6_30, -1, 2, 0}, +{ 2, s_6_31, -1, 3, 0}, +{ 2, s_6_32, -1, 2, 0}, +{ 3, s_6_33, 32, 2, 0}, +{ 5, s_6_34, 33, 2, 0}, +{ 6, s_6_35, 33, 3, 0}, +{ 4, s_6_36, 32, 2, 0}, +{ 1, s_6_37, -1, 2, 0} }; static const symbol s_7_0[1] = { 'e' }; @@ -346,12 +346,12 @@ static const symbol s_7_5[3] = { 'i', 'e', 'r' }; static const struct among a_7[6] = { -/* 0 */ { 1, s_7_0, -1, 3, 0}, -/* 1 */ { 4, s_7_1, 0, 2, 0}, -/* 2 */ { 4, s_7_2, 0, 2, 0}, -/* 3 */ { 3, s_7_3, -1, 1, 0}, -/* 4 */ { 3, s_7_4, -1, 2, 0}, -/* 5 */ { 3, s_7_5, -1, 2, 0} +{ 1, s_7_0, -1, 3, 0}, +{ 4, s_7_1, 0, 2, 0}, +{ 4, s_7_2, 0, 2, 0}, +{ 3, s_7_3, -1, 1, 0}, +{ 3, s_7_4, -1, 2, 0}, +{ 3, s_7_5, -1, 2, 0} }; static const symbol s_8_0[3] = { 'e', 'l', 'l' }; @@ -362,11 +362,11 @@ static const symbol s_8_4[3] = { 'e', 't', 't' }; static const struct among a_8[5] = { -/* 0 */ { 3, s_8_0, -1, -1, 0}, -/* 1 */ { 4, s_8_1, -1, -1, 0}, -/* 2 */ { 3, s_8_2, -1, -1, 0}, -/* 3 */ { 3, s_8_3, -1, -1, 0}, -/* 4 */ { 3, s_8_4, -1, -1, 0} +{ 3, s_8_0, -1, -1, 0}, +{ 4, s_8_1, -1, -1, 0}, +{ 3, s_8_2, -1, -1, 0}, +{ 3, s_8_3, -1, -1, 0}, +{ 3, s_8_4, -1, -1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 }; @@ -409,40 +409,39 @@ static const symbol s_32[] = { 'e' }; static const symbol s_33[] = { 'i' }; static const symbol s_34[] = { 'c' }; -static int r_prelude(struct SN_env * z) { /* forwardmode */ -/* repeat, line 38 */ - - while(1) { int c1 = z->c; - while(1) { /* goto, line 38 */ +static int r_prelude(struct SN_env * z) { + while(1) { + int c1 = z->c; + while(1) { int c2 = z->c; - { int c3 = z->c; /* or, line 44 */ - if (in_grouping(z, g_v, 97, 251, 0)) goto lab3; /* grouping v, line 40 */ - z->bra = z->c; /* [, line 40 */ - { int c4 = z->c; /* or, line 40 */ - if (z->c == z->l || z->p[z->c] != 'u') goto lab5; /* literal, line 40 */ + { int c3 = z->c; + if (in_grouping(z, g_v, 97, 251, 0)) goto lab3; + z->bra = z->c; + { int c4 = z->c; + if (z->c == z->l || z->p[z->c] != 'u') goto lab5; z->c++; - z->ket = z->c; /* ], line 40 */ - if (in_grouping(z, g_v, 97, 251, 0)) goto lab5; /* grouping v, line 40 */ - { int ret = slice_from_s(z, 1, s_0); /* <-, line 40 */ + z->ket = z->c; + if (in_grouping(z, g_v, 97, 251, 0)) goto lab5; + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } goto lab4; lab5: z->c = c4; - if (z->c == z->l || z->p[z->c] != 'i') goto lab6; /* literal, line 41 */ + if (z->c == z->l || z->p[z->c] != 'i') goto lab6; z->c++; - z->ket = z->c; /* ], line 41 */ - if (in_grouping(z, g_v, 97, 251, 0)) goto lab6; /* grouping v, line 41 */ - { int ret = slice_from_s(z, 1, s_1); /* <-, line 41 */ + z->ket = z->c; + if (in_grouping(z, g_v, 97, 251, 0)) goto lab6; + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } goto lab4; lab6: z->c = c4; - if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 42 */ + if (z->c == z->l || z->p[z->c] != 'y') goto lab3; z->c++; - z->ket = z->c; /* ], line 42 */ - { int ret = slice_from_s(z, 1, s_2); /* <-, line 42 */ + z->ket = z->c; + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } } @@ -450,44 +449,44 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ goto lab2; lab3: z->c = c3; - z->bra = z->c; /* [, line 45 */ - if (z->c == z->l || z->p[z->c] != 0xEB) goto lab7; /* literal, line 45 */ + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 0xEB) goto lab7; z->c++; - z->ket = z->c; /* ], line 45 */ - { int ret = slice_from_s(z, 2, s_3); /* <-, line 45 */ + z->ket = z->c; + { int ret = slice_from_s(z, 2, s_3); if (ret < 0) return ret; } goto lab2; lab7: z->c = c3; - z->bra = z->c; /* [, line 47 */ - if (z->c == z->l || z->p[z->c] != 0xEF) goto lab8; /* literal, line 47 */ + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 0xEF) goto lab8; z->c++; - z->ket = z->c; /* ], line 47 */ - { int ret = slice_from_s(z, 2, s_4); /* <-, line 47 */ + z->ket = z->c; + { int ret = slice_from_s(z, 2, s_4); if (ret < 0) return ret; } goto lab2; lab8: z->c = c3; - z->bra = z->c; /* [, line 49 */ - if (z->c == z->l || z->p[z->c] != 'y') goto lab9; /* literal, line 49 */ + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'y') goto lab9; z->c++; - z->ket = z->c; /* ], line 49 */ - if (in_grouping(z, g_v, 97, 251, 0)) goto lab9; /* grouping v, line 49 */ - { int ret = slice_from_s(z, 1, s_5); /* <-, line 49 */ + z->ket = z->c; + if (in_grouping(z, g_v, 97, 251, 0)) goto lab9; + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } goto lab2; lab9: z->c = c3; - if (z->c == z->l || z->p[z->c] != 'q') goto lab1; /* literal, line 51 */ + if (z->c == z->l || z->p[z->c] != 'q') goto lab1; z->c++; - z->bra = z->c; /* [, line 51 */ - if (z->c == z->l || z->p[z->c] != 'u') goto lab1; /* literal, line 51 */ + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'u') goto lab1; z->c++; - z->ket = z->c; /* ], line 51 */ - { int ret = slice_from_s(z, 1, s_6); /* <-, line 51 */ + z->ket = z->c; + { int ret = slice_from_s(z, 1, s_6); if (ret < 0) return ret; } } @@ -497,7 +496,7 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ lab1: z->c = c2; if (z->c >= z->l) goto lab0; - z->c++; /* goto, line 38 */ + z->c++; } continue; lab0: @@ -507,110 +506,109 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $pV = , line 56 */ - z->I[1] = z->l; /* $p1 = , line 57 */ - z->I[2] = z->l; /* $p2 = , line 58 */ - { int c1 = z->c; /* do, line 60 */ - { int c2 = z->c; /* or, line 62 */ - if (in_grouping(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 61 */ - if (in_grouping(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 61 */ +static int r_mark_regions(struct SN_env * z) { + z->I[2] = z->l; + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int c2 = z->c; + if (in_grouping(z, g_v, 97, 251, 0)) goto lab2; + if (in_grouping(z, g_v, 97, 251, 0)) goto lab2; if (z->c >= z->l) goto lab2; - z->c++; /* next, line 61 */ + z->c++; goto lab1; lab2: z->c = c2; - if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((331776 >> (z->p[z->c + 2] & 0x1f)) & 1)) goto lab3; /* among, line 63 */ + if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((331776 >> (z->p[z->c + 2] & 0x1f)) & 1)) goto lab3; if (!(find_among(z, a_0, 3))) goto lab3; goto lab1; lab3: z->c = c2; if (z->c >= z->l) goto lab0; - z->c++; /* next, line 70 */ - { /* gopast */ /* grouping v, line 70 */ + z->c++; + { int ret = out_grouping(z, g_v, 97, 251, 1); if (ret < 0) goto lab0; z->c += ret; } } lab1: - z->I[0] = z->c; /* setmark pV, line 71 */ + z->I[2] = z->c; lab0: z->c = c1; } - { int c3 = z->c; /* do, line 73 */ - { /* gopast */ /* grouping v, line 74 */ + { int c3 = z->c; + { int ret = out_grouping(z, g_v, 97, 251, 1); if (ret < 0) goto lab4; z->c += ret; } - { /* gopast */ /* non v, line 74 */ + { int ret = in_grouping(z, g_v, 97, 251, 1); if (ret < 0) goto lab4; z->c += ret; } - z->I[1] = z->c; /* setmark p1, line 74 */ - { /* gopast */ /* grouping v, line 75 */ + z->I[1] = z->c; + { int ret = out_grouping(z, g_v, 97, 251, 1); if (ret < 0) goto lab4; z->c += ret; } - { /* gopast */ /* non v, line 75 */ + { int ret = in_grouping(z, g_v, 97, 251, 1); if (ret < 0) goto lab4; z->c += ret; } - z->I[2] = z->c; /* setmark p2, line 75 */ + z->I[0] = z->c; lab4: z->c = c3; } return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ +static int r_postlude(struct SN_env * z) { int among_var; -/* repeat, line 79 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 81 */ - if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else /* substring, line 81 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else among_var = find_among(z, a_1, 7); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 81 */ - switch (among_var) { /* among, line 81 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_7); /* <-, line 82 */ + { int ret = slice_from_s(z, 1, s_7); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_8); /* <-, line 83 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_9); /* <-, line 84 */ + { int ret = slice_from_s(z, 1, s_9); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 1, s_10); /* <-, line 85 */ + { int ret = slice_from_s(z, 1, s_10); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 1, s_11); /* <-, line 86 */ + { int ret = slice_from_s(z, 1, s_11); if (ret < 0) return ret; } break; case 6: - { int ret = slice_del(z); /* delete, line 87 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 7: if (z->c >= z->l) goto lab0; - z->c++; /* next, line 88 */ + z->c++; break; } continue; @@ -621,59 +619,59 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_RV(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 94 */ +static int r_RV(struct SN_env * z) { + if (!(z->I[2] <= z->c)) return 0; return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 95 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 96 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ +static int r_standard_suffix(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 99 */ - among_var = find_among_b(z, a_4, 43); /* substring, line 99 */ + z->ket = z->c; + among_var = find_among_b(z, a_4, 43); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 99 */ - switch (among_var) { /* among, line 99 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 103 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 103 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 106 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 106 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m1 = z->l - z->c; (void)m1; /* try, line 107 */ - z->ket = z->c; /* [, line 107 */ - if (!(eq_s_b(z, 2, s_12))) { z->c = z->l - m1; goto lab0; } /* literal, line 107 */ - z->bra = z->c; /* ], line 107 */ - { int m2 = z->l - z->c; (void)m2; /* or, line 107 */ - { int ret = r_R2(z); /* call R2, line 107 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_12))) { z->c = z->l - m1; goto lab0; } + z->bra = z->c; + { int m2 = z->l - z->c; (void)m2; + { int ret = r_R2(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 107 */ + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab1; lab2: z->c = z->l - m2; - { int ret = slice_from_s(z, 3, s_13); /* <-, line 107 */ + { int ret = slice_from_s(z, 3, s_13); if (ret < 0) return ret; } } @@ -683,98 +681,98 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 3: - { int ret = r_R2(z); /* call R2, line 111 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_14); /* <-, line 111 */ + { int ret = slice_from_s(z, 3, s_14); if (ret < 0) return ret; } break; case 4: - { int ret = r_R2(z); /* call R2, line 114 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 1, s_15); /* <-, line 114 */ + { int ret = slice_from_s(z, 1, s_15); if (ret < 0) return ret; } break; case 5: - { int ret = r_R2(z); /* call R2, line 117 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_16); /* <-, line 117 */ + { int ret = slice_from_s(z, 3, s_16); if (ret < 0) return ret; } break; case 6: - { int ret = r_RV(z); /* call RV, line 121 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 121 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m3 = z->l - z->c; (void)m3; /* try, line 122 */ - z->ket = z->c; /* [, line 123 */ - among_var = find_among_b(z, a_2, 6); /* substring, line 123 */ + { int m3 = z->l - z->c; (void)m3; + z->ket = z->c; + among_var = find_among_b(z, a_2, 6); if (!(among_var)) { z->c = z->l - m3; goto lab3; } - z->bra = z->c; /* ], line 123 */ - switch (among_var) { /* among, line 123 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 124 */ + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m3; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 124 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 124 */ - if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m3; goto lab3; } /* literal, line 124 */ - z->bra = z->c; /* ], line 124 */ - { int ret = r_R2(z); /* call R2, line 124 */ + z->ket = z->c; + if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m3; goto lab3; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m3; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 124 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int m4 = z->l - z->c; (void)m4; /* or, line 125 */ - { int ret = r_R2(z); /* call R2, line 125 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_R2(z); if (ret == 0) goto lab5; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 125 */ + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab4; lab5: z->c = z->l - m4; - { int ret = r_R1(z); /* call R1, line 125 */ + { int ret = r_R1(z); if (ret == 0) { z->c = z->l - m3; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_from_s(z, 3, s_18); /* <-, line 125 */ + { int ret = slice_from_s(z, 3, s_18); if (ret < 0) return ret; } } lab4: break; case 3: - { int ret = r_R2(z); /* call R2, line 127 */ + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m3; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 127 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 4: - { int ret = r_RV(z); /* call RV, line 129 */ + { int ret = r_RV(z); if (ret == 0) { z->c = z->l - m3; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_from_s(z, 1, s_19); /* <-, line 129 */ + { int ret = slice_from_s(z, 1, s_19); if (ret < 0) return ret; } break; @@ -784,61 +782,61 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 7: - { int ret = r_R2(z); /* call R2, line 136 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 136 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m5 = z->l - z->c; (void)m5; /* try, line 137 */ - z->ket = z->c; /* [, line 138 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m5; goto lab6; } /* substring, line 138 */ + { int m5 = z->l - z->c; (void)m5; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m5; goto lab6; } among_var = find_among_b(z, a_3, 3); if (!(among_var)) { z->c = z->l - m5; goto lab6; } - z->bra = z->c; /* ], line 138 */ - switch (among_var) { /* among, line 138 */ + z->bra = z->c; + switch (among_var) { case 1: - { int m6 = z->l - z->c; (void)m6; /* or, line 139 */ - { int ret = r_R2(z); /* call R2, line 139 */ + { int m6 = z->l - z->c; (void)m6; + { int ret = r_R2(z); if (ret == 0) goto lab8; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 139 */ + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab7; lab8: z->c = z->l - m6; - { int ret = slice_from_s(z, 3, s_20); /* <-, line 139 */ + { int ret = slice_from_s(z, 3, s_20); if (ret < 0) return ret; } } lab7: break; case 2: - { int m7 = z->l - z->c; (void)m7; /* or, line 140 */ - { int ret = r_R2(z); /* call R2, line 140 */ + { int m7 = z->l - z->c; (void)m7; + { int ret = r_R2(z); if (ret == 0) goto lab10; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 140 */ + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab9; lab10: z->c = z->l - m7; - { int ret = slice_from_s(z, 3, s_21); /* <-, line 140 */ + { int ret = slice_from_s(z, 3, s_21); if (ret < 0) return ret; } } lab9: break; case 3: - { int ret = r_R2(z); /* call R2, line 141 */ + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m5; goto lab6; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 141 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -848,38 +846,38 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 8: - { int ret = r_R2(z); /* call R2, line 148 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 148 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m8 = z->l - z->c; (void)m8; /* try, line 149 */ - z->ket = z->c; /* [, line 149 */ - if (!(eq_s_b(z, 2, s_22))) { z->c = z->l - m8; goto lab11; } /* literal, line 149 */ - z->bra = z->c; /* ], line 149 */ - { int ret = r_R2(z); /* call R2, line 149 */ + { int m8 = z->l - z->c; (void)m8; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_22))) { z->c = z->l - m8; goto lab11; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m8; goto lab11; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 149 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 149 */ - if (!(eq_s_b(z, 2, s_23))) { z->c = z->l - m8; goto lab11; } /* literal, line 149 */ - z->bra = z->c; /* ], line 149 */ - { int m9 = z->l - z->c; (void)m9; /* or, line 149 */ - { int ret = r_R2(z); /* call R2, line 149 */ + z->ket = z->c; + if (!(eq_s_b(z, 2, s_23))) { z->c = z->l - m8; goto lab11; } + z->bra = z->c; + { int m9 = z->l - z->c; (void)m9; + { int ret = r_R2(z); if (ret == 0) goto lab13; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 149 */ + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab12; lab13: z->c = z->l - m9; - { int ret = slice_from_s(z, 3, s_24); /* <-, line 149 */ + { int ret = slice_from_s(z, 3, s_24); if (ret < 0) return ret; } } @@ -889,101 +887,101 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 9: - { int ret = slice_from_s(z, 3, s_25); /* <-, line 151 */ + { int ret = slice_from_s(z, 3, s_25); if (ret < 0) return ret; } break; case 10: - { int ret = r_R1(z); /* call R1, line 152 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 2, s_26); /* <-, line 152 */ + { int ret = slice_from_s(z, 2, s_26); if (ret < 0) return ret; } break; case 11: - { int m10 = z->l - z->c; (void)m10; /* or, line 154 */ - { int ret = r_R2(z); /* call R2, line 154 */ + { int m10 = z->l - z->c; (void)m10; + { int ret = r_R2(z); if (ret == 0) goto lab15; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 154 */ + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab14; lab15: z->c = z->l - m10; - { int ret = r_R1(z); /* call R1, line 154 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_27); /* <-, line 154 */ + { int ret = slice_from_s(z, 3, s_27); if (ret < 0) return ret; } } lab14: break; case 12: - { int ret = r_R1(z); /* call R1, line 157 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - if (out_grouping_b(z, g_v, 97, 251, 0)) return 0; /* non v, line 157 */ - { int ret = slice_del(z); /* delete, line 157 */ + if (out_grouping_b(z, g_v, 97, 251, 0)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 13: - { int ret = r_RV(z); /* call RV, line 162 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_28); /* <-, line 162 */ + { int ret = slice_from_s(z, 3, s_28); if (ret < 0) return ret; } - return 0; /* fail, line 162 */ + return 0; break; case 14: - { int ret = r_RV(z); /* call RV, line 163 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_29); /* <-, line 163 */ + { int ret = slice_from_s(z, 3, s_29); if (ret < 0) return ret; } - return 0; /* fail, line 163 */ + return 0; break; case 15: - { int m_test11 = z->l - z->c; /* test, line 165 */ - if (in_grouping_b(z, g_v, 97, 251, 0)) return 0; /* grouping v, line 165 */ - { int ret = r_RV(z); /* call RV, line 165 */ + { int m_test11 = z->l - z->c; + if (in_grouping_b(z, g_v, 97, 251, 0)) return 0; + { int ret = r_RV(z); if (ret <= 0) return ret; } z->c = z->l - m_test11; } - { int ret = slice_del(z); /* delete, line 165 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - return 0; /* fail, line 165 */ + return 0; break; } return 1; } -static int r_i_verb_suffix(struct SN_env * z) { /* backwardmode */ +static int r_i_verb_suffix(struct SN_env * z) { - { int mlimit1; /* setlimit, line 170 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 171 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 171 */ + { int mlimit1; + if (z->c < z->I[2]) return 0; + mlimit1 = z->lb; z->lb = z->I[2]; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } if (!(find_among_b(z, a_5, 35))) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 171 */ - { int m2 = z->l - z->c; (void)m2; /* not, line 177 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0; /* literal, line 177 */ + z->bra = z->c; + { int m2 = z->l - z->c; (void)m2; + if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0; z->c--; { z->lb = mlimit1; return 0; } lab0: z->c = z->l - m2; } - if (out_grouping_b(z, g_v, 97, 251, 0)) { z->lb = mlimit1; return 0; } /* non v, line 177 */ - { int ret = slice_del(z); /* delete, line 177 */ + if (out_grouping_b(z, g_v, 97, 251, 0)) { z->lb = mlimit1; return 0; } + { int ret = slice_del(z); if (ret < 0) return ret; } z->lb = mlimit1; @@ -991,41 +989,41 @@ static int r_i_verb_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ +static int r_verb_suffix(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 181 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 182 */ - among_var = find_among_b(z, a_6, 38); /* substring, line 182 */ + { int mlimit1; + if (z->c < z->I[2]) return 0; + mlimit1 = z->lb; z->lb = z->I[2]; + z->ket = z->c; + among_var = find_among_b(z, a_6, 38); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 182 */ - switch (among_var) { /* among, line 182 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 184 */ + { int ret = r_R2(z); if (ret == 0) { z->lb = mlimit1; return 0; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 184 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_del(z); /* delete, line 192 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - { int ret = slice_del(z); /* delete, line 197 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m2 = z->l - z->c; (void)m2; /* try, line 198 */ - z->ket = z->c; /* [, line 198 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; } /* literal, line 198 */ + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; } z->c--; - z->bra = z->c; /* ], line 198 */ - { int ret = slice_del(z); /* delete, line 198 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: @@ -1038,66 +1036,66 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ +static int r_residual_suffix(struct SN_env * z) { int among_var; - { int m1 = z->l - z->c; (void)m1; /* try, line 206 */ - z->ket = z->c; /* [, line 206 */ - if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; } /* literal, line 206 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; } z->c--; - z->bra = z->c; /* ], line 206 */ - { int m_test2 = z->l - z->c; /* test, line 206 */ - { int m3 = z->l - z->c; (void)m3; /* or, line 206 */ - if (!(eq_s_b(z, 2, s_30))) goto lab2; /* literal, line 206 */ + z->bra = z->c; + { int m_test2 = z->l - z->c; + { int m3 = z->l - z->c; (void)m3; + if (!(eq_s_b(z, 2, s_30))) goto lab2; goto lab1; lab2: z->c = z->l - m3; - if (out_grouping_b(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m1; goto lab0; } /* non keep_with_s, line 206 */ + if (out_grouping_b(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m1; goto lab0; } } lab1: z->c = z->l - m_test2; } - { int ret = slice_del(z); /* delete, line 206 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: ; } - { int mlimit4; /* setlimit, line 207 */ - if (z->c < z->I[0]) return 0; - mlimit4 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 208 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((278560 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit4; return 0; } /* substring, line 208 */ + { int mlimit4; + if (z->c < z->I[2]) return 0; + mlimit4 = z->lb; z->lb = z->I[2]; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((278560 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit4; return 0; } among_var = find_among_b(z, a_7, 6); if (!(among_var)) { z->lb = mlimit4; return 0; } - z->bra = z->c; /* ], line 208 */ - switch (among_var) { /* among, line 208 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 209 */ + { int ret = r_R2(z); if (ret == 0) { z->lb = mlimit4; return 0; } if (ret < 0) return ret; } - { int m5 = z->l - z->c; (void)m5; /* or, line 209 */ - if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab4; /* literal, line 209 */ + { int m5 = z->l - z->c; (void)m5; + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab4; z->c--; goto lab3; lab4: z->c = z->l - m5; - if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit4; return 0; } /* literal, line 209 */ + if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit4; return 0; } z->c--; } lab3: - { int ret = slice_del(z); /* delete, line 209 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_31); /* <-, line 211 */ + { int ret = slice_from_s(z, 1, s_31); if (ret < 0) return ret; } break; case 3: - { int ret = slice_del(z); /* delete, line 212 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -1107,25 +1105,26 @@ static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_un_double(struct SN_env * z) { /* backwardmode */ - { int m_test1 = z->l - z->c; /* test, line 218 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 218 */ +static int r_un_double(struct SN_env * z) { + { int m_test1 = z->l - z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_8, 5))) return 0; z->c = z->l - m_test1; } - z->ket = z->c; /* [, line 218 */ + z->ket = z->c; if (z->c <= z->lb) return 0; - z->c--; /* next, line 218 */ - z->bra = z->c; /* ], line 218 */ - { int ret = slice_del(z); /* delete, line 218 */ + z->c--; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_un_accent(struct SN_env * z) { /* backwardmode */ +static int r_un_accent(struct SN_env * z) { { int i = 1; - while(1) { if (out_grouping_b(z, g_v, 97, 251, 0)) goto lab0; /* non v, line 222 */ + while(1) { + if (out_grouping_b(z, g_v, 97, 251, 0)) goto lab0; i--; continue; lab0: @@ -1133,78 +1132,78 @@ static int r_un_accent(struct SN_env * z) { /* backwardmode */ } if (i > 0) return 0; } - z->ket = z->c; /* [, line 223 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 223 */ - if (z->c <= z->lb || z->p[z->c - 1] != 0xE9) goto lab2; /* literal, line 223 */ + z->ket = z->c; + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 0xE9) goto lab2; z->c--; goto lab1; lab2: z->c = z->l - m1; - if (z->c <= z->lb || z->p[z->c - 1] != 0xE8) return 0; /* literal, line 223 */ + if (z->c <= z->lb || z->p[z->c - 1] != 0xE8) return 0; z->c--; } lab1: - z->bra = z->c; /* ], line 223 */ - { int ret = slice_from_s(z, 1, s_32); /* <-, line 223 */ + z->bra = z->c; + { int ret = slice_from_s(z, 1, s_32); if (ret < 0) return ret; } return 1; } -extern int french_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 229 */ - { int ret = r_prelude(z); /* call prelude, line 229 */ +extern int french_ISO_8859_1_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_prelude(z); if (ret < 0) return ret; } z->c = c1; } - /* do, line 230 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 230 */ + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 231 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 233 */ - { int m3 = z->l - z->c; (void)m3; /* or, line 243 */ - { int m4 = z->l - z->c; (void)m4; /* and, line 239 */ - { int m5 = z->l - z->c; (void)m5; /* or, line 235 */ - { int ret = r_standard_suffix(z); /* call standard_suffix, line 235 */ + { int m2 = z->l - z->c; (void)m2; + { int m3 = z->l - z->c; (void)m3; + { int m4 = z->l - z->c; (void)m4; + { int m5 = z->l - z->c; (void)m5; + { int ret = r_standard_suffix(z); if (ret == 0) goto lab4; if (ret < 0) return ret; } goto lab3; lab4: z->c = z->l - m5; - { int ret = r_i_verb_suffix(z); /* call i_verb_suffix, line 236 */ + { int ret = r_i_verb_suffix(z); if (ret == 0) goto lab5; if (ret < 0) return ret; } goto lab3; lab5: z->c = z->l - m5; - { int ret = r_verb_suffix(z); /* call verb_suffix, line 237 */ + { int ret = r_verb_suffix(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } } lab3: z->c = z->l - m4; - { int m6 = z->l - z->c; (void)m6; /* try, line 240 */ - z->ket = z->c; /* [, line 240 */ - { int m7 = z->l - z->c; (void)m7; /* or, line 240 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8; /* literal, line 240 */ + { int m6 = z->l - z->c; (void)m6; + z->ket = z->c; + { int m7 = z->l - z->c; (void)m7; + if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8; z->c--; - z->bra = z->c; /* ], line 240 */ - { int ret = slice_from_s(z, 1, s_33); /* <-, line 240 */ + z->bra = z->c; + { int ret = slice_from_s(z, 1, s_33); if (ret < 0) return ret; } goto lab7; lab8: z->c = z->l - m7; - if (z->c <= z->lb || z->p[z->c - 1] != 0xE7) { z->c = z->l - m6; goto lab6; } /* literal, line 241 */ + if (z->c <= z->lb || z->p[z->c - 1] != 0xE7) { z->c = z->l - m6; goto lab6; } z->c--; - z->bra = z->c; /* ], line 241 */ - { int ret = slice_from_s(z, 1, s_34); /* <-, line 241 */ + z->bra = z->c; + { int ret = slice_from_s(z, 1, s_34); if (ret < 0) return ret; } } @@ -1216,7 +1215,7 @@ extern int french_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ goto lab1; lab2: z->c = z->l - m3; - { int ret = r_residual_suffix(z); /* call residual_suffix, line 244 */ + { int ret = r_residual_suffix(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -1225,21 +1224,21 @@ extern int french_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ lab0: z->c = z->l - m2; } - { int m8 = z->l - z->c; (void)m8; /* do, line 249 */ - { int ret = r_un_double(z); /* call un_double, line 249 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_un_double(z); if (ret < 0) return ret; } z->c = z->l - m8; } - { int m9 = z->l - z->c; (void)m9; /* do, line 250 */ - { int ret = r_un_accent(z); /* call un_accent, line 250 */ + { int m9 = z->l - z->c; (void)m9; + { int ret = r_un_accent(z); if (ret < 0) return ret; } z->c = z->l - m9; } z->c = z->lb; - { int c10 = z->c; /* do, line 252 */ - { int ret = r_postlude(z); /* call postlude, line 252 */ + { int c10 = z->c; + { int ret = r_postlude(z); if (ret < 0) return ret; } z->c = c10; @@ -1247,7 +1246,7 @@ extern int french_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * french_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); } +extern struct SN_env * french_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); } extern void french_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c index 48d6fbc294a1c..5c5cfb6e80a07 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_german.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -35,12 +35,12 @@ static const symbol s_0_5[1] = { 0xFC }; static const struct among a_0[6] = { -/* 0 */ { 0, 0, -1, 5, 0}, -/* 1 */ { 1, s_0_1, 0, 2, 0}, -/* 2 */ { 1, s_0_2, 0, 1, 0}, -/* 3 */ { 1, s_0_3, 0, 3, 0}, -/* 4 */ { 1, s_0_4, 0, 4, 0}, -/* 5 */ { 1, s_0_5, 0, 2, 0} +{ 0, 0, -1, 5, 0}, +{ 1, s_0_1, 0, 2, 0}, +{ 1, s_0_2, 0, 1, 0}, +{ 1, s_0_3, 0, 3, 0}, +{ 1, s_0_4, 0, 4, 0}, +{ 1, s_0_5, 0, 2, 0} }; static const symbol s_1_0[1] = { 'e' }; @@ -53,13 +53,13 @@ static const symbol s_1_6[2] = { 'e', 's' }; static const struct among a_1[7] = { -/* 0 */ { 1, s_1_0, -1, 2, 0}, -/* 1 */ { 2, s_1_1, -1, 1, 0}, -/* 2 */ { 2, s_1_2, -1, 2, 0}, -/* 3 */ { 3, s_1_3, -1, 1, 0}, -/* 4 */ { 2, s_1_4, -1, 1, 0}, -/* 5 */ { 1, s_1_5, -1, 3, 0}, -/* 6 */ { 2, s_1_6, 5, 2, 0} +{ 1, s_1_0, -1, 2, 0}, +{ 2, s_1_1, -1, 1, 0}, +{ 2, s_1_2, -1, 2, 0}, +{ 3, s_1_3, -1, 1, 0}, +{ 2, s_1_4, -1, 1, 0}, +{ 1, s_1_5, -1, 3, 0}, +{ 2, s_1_6, 5, 2, 0} }; static const symbol s_2_0[2] = { 'e', 'n' }; @@ -69,10 +69,10 @@ static const symbol s_2_3[3] = { 'e', 's', 't' }; static const struct among a_2[4] = { -/* 0 */ { 2, s_2_0, -1, 1, 0}, -/* 1 */ { 2, s_2_1, -1, 1, 0}, -/* 2 */ { 2, s_2_2, -1, 2, 0}, -/* 3 */ { 3, s_2_3, 2, 1, 0} +{ 2, s_2_0, -1, 1, 0}, +{ 2, s_2_1, -1, 1, 0}, +{ 2, s_2_2, -1, 2, 0}, +{ 3, s_2_3, 2, 1, 0} }; static const symbol s_3_0[2] = { 'i', 'g' }; @@ -80,8 +80,8 @@ static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' }; static const struct among a_3[2] = { -/* 0 */ { 2, s_3_0, -1, 1, 0}, -/* 1 */ { 4, s_3_1, -1, 1, 0} +{ 2, s_3_0, -1, 1, 0}, +{ 4, s_3_1, -1, 1, 0} }; static const symbol s_4_0[3] = { 'e', 'n', 'd' }; @@ -95,14 +95,14 @@ static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' }; static const struct among a_4[8] = { -/* 0 */ { 3, s_4_0, -1, 1, 0}, -/* 1 */ { 2, s_4_1, -1, 2, 0}, -/* 2 */ { 3, s_4_2, -1, 1, 0}, -/* 3 */ { 4, s_4_3, -1, 3, 0}, -/* 4 */ { 4, s_4_4, -1, 2, 0}, -/* 5 */ { 2, s_4_5, -1, 2, 0}, -/* 6 */ { 4, s_4_6, -1, 3, 0}, -/* 7 */ { 4, s_4_7, -1, 4, 0} +{ 3, s_4_0, -1, 1, 0}, +{ 2, s_4_1, -1, 2, 0}, +{ 3, s_4_2, -1, 1, 0}, +{ 4, s_4_3, -1, 3, 0}, +{ 4, s_4_4, -1, 2, 0}, +{ 2, s_4_5, -1, 2, 0}, +{ 4, s_4_6, -1, 3, 0}, +{ 4, s_4_7, -1, 4, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 }; @@ -123,24 +123,23 @@ static const symbol s_8[] = { 'i', 'g' }; static const symbol s_9[] = { 'e', 'r' }; static const symbol s_10[] = { 'e', 'n' }; -static int r_prelude(struct SN_env * z) { /* forwardmode */ - { int c_test1 = z->c; /* test, line 35 */ -/* repeat, line 35 */ - - while(1) { int c2 = z->c; - { int c3 = z->c; /* or, line 38 */ - z->bra = z->c; /* [, line 37 */ - if (z->c == z->l || z->p[z->c] != 0xDF) goto lab2; /* literal, line 37 */ +static int r_prelude(struct SN_env * z) { + { int c_test1 = z->c; + while(1) { + int c2 = z->c; + { int c3 = z->c; + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 0xDF) goto lab2; z->c++; - z->ket = z->c; /* ], line 37 */ - { int ret = slice_from_s(z, 2, s_0); /* <-, line 37 */ + z->ket = z->c; + { int ret = slice_from_s(z, 2, s_0); if (ret < 0) return ret; } goto lab1; lab2: z->c = c3; if (z->c >= z->l) goto lab0; - z->c++; /* next, line 38 */ + z->c++; } lab1: continue; @@ -150,29 +149,28 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ } z->c = c_test1; } -/* repeat, line 41 */ - - while(1) { int c4 = z->c; - while(1) { /* goto, line 41 */ + while(1) { + int c4 = z->c; + while(1) { int c5 = z->c; - if (in_grouping(z, g_v, 97, 252, 0)) goto lab4; /* grouping v, line 42 */ - z->bra = z->c; /* [, line 42 */ - { int c6 = z->c; /* or, line 42 */ - if (z->c == z->l || z->p[z->c] != 'u') goto lab6; /* literal, line 42 */ + if (in_grouping(z, g_v, 97, 252, 0)) goto lab4; + z->bra = z->c; + { int c6 = z->c; + if (z->c == z->l || z->p[z->c] != 'u') goto lab6; z->c++; - z->ket = z->c; /* ], line 42 */ - if (in_grouping(z, g_v, 97, 252, 0)) goto lab6; /* grouping v, line 42 */ - { int ret = slice_from_s(z, 1, s_1); /* <-, line 42 */ + z->ket = z->c; + if (in_grouping(z, g_v, 97, 252, 0)) goto lab6; + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } goto lab5; lab6: z->c = c6; - if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 43 */ + if (z->c == z->l || z->p[z->c] != 'y') goto lab4; z->c++; - z->ket = z->c; /* ], line 43 */ - if (in_grouping(z, g_v, 97, 252, 0)) goto lab4; /* grouping v, line 43 */ - { int ret = slice_from_s(z, 1, s_2); /* <-, line 43 */ + z->ket = z->c; + if (in_grouping(z, g_v, 97, 252, 0)) goto lab4; + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } } @@ -182,7 +180,7 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ lab4: z->c = c5; if (z->c >= z->l) goto lab3; - z->c++; /* goto, line 41 */ + z->c++; } continue; lab3: @@ -192,79 +190,76 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 49 */ - z->I[1] = z->l; /* $p2 = , line 50 */ - { int c_test1 = z->c; /* test, line 52 */ - { int ret = z->c + 3; /* hop, line 52 */ - if (0 > ret || ret > z->l) return 0; - z->c = ret; - } - z->I[2] = z->c; /* setmark x, line 52 */ +static int r_mark_regions(struct SN_env * z) { + z->I[2] = z->l; + z->I[1] = z->l; + { int c_test1 = z->c; +z->c = z->c + 3; + if (z->c > z->l) return 0; + z->I[0] = z->c; z->c = c_test1; } - { /* gopast */ /* grouping v, line 54 */ + { int ret = out_grouping(z, g_v, 97, 252, 1); if (ret < 0) return 0; z->c += ret; } - { /* gopast */ /* non v, line 54 */ + { int ret = in_grouping(z, g_v, 97, 252, 1); if (ret < 0) return 0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 54 */ - /* try, line 55 */ - if (!(z->I[0] < z->I[2])) goto lab0; /* $( < ), line 55 */ - z->I[0] = z->I[2]; /* $p1 = , line 55 */ + z->I[2] = z->c; + + if (!(z->I[2] < z->I[0])) goto lab0; + z->I[2] = z->I[0]; lab0: - { /* gopast */ /* grouping v, line 56 */ + { int ret = out_grouping(z, g_v, 97, 252, 1); if (ret < 0) return 0; z->c += ret; } - { /* gopast */ /* non v, line 56 */ + { int ret = in_grouping(z, g_v, 97, 252, 1); if (ret < 0) return 0; z->c += ret; } - z->I[1] = z->c; /* setmark p2, line 56 */ + z->I[1] = z->c; return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ +static int r_postlude(struct SN_env * z) { int among_var; -/* repeat, line 60 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 62 */ - among_var = find_among(z, a_0, 6); /* substring, line 62 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + among_var = find_among(z, a_0, 6); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 62 */ - switch (among_var) { /* among, line 62 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_3); /* <-, line 63 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_4); /* <-, line 64 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_5); /* <-, line 65 */ + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 1, s_6); /* <-, line 66 */ + { int ret = slice_from_s(z, 1, s_6); if (ret < 0) return ret; } break; case 5: if (z->c >= z->l) goto lab0; - z->c++; /* next, line 68 */ + z->c++; break; } continue; @@ -275,45 +270,45 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 75 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[2] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 76 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ +static int r_standard_suffix(struct SN_env * z) { int among_var; - { int m1 = z->l - z->c; (void)m1; /* do, line 79 */ - z->ket = z->c; /* [, line 80 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 80 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; among_var = find_among_b(z, a_1, 7); if (!(among_var)) goto lab0; - z->bra = z->c; /* ], line 80 */ - { int ret = r_R1(z); /* call R1, line 80 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } - switch (among_var) { /* among, line 80 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 82 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_del(z); /* delete, line 85 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m2 = z->l - z->c; (void)m2; /* try, line 86 */ - z->ket = z->c; /* [, line 86 */ - if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; } /* literal, line 86 */ + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; } z->c--; - z->bra = z->c; /* ], line 86 */ - if (!(eq_s_b(z, 3, s_7))) { z->c = z->l - m2; goto lab1; } /* literal, line 86 */ - { int ret = slice_del(z); /* delete, line 86 */ + z->bra = z->c; + if (!(eq_s_b(z, 3, s_7))) { z->c = z->l - m2; goto lab1; } + { int ret = slice_del(z); if (ret < 0) return ret; } lab1: @@ -321,8 +316,8 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 3: - if (in_grouping_b(z, g_s_ending, 98, 116, 0)) goto lab0; /* grouping s_ending, line 89 */ - { int ret = slice_del(z); /* delete, line 89 */ + if (in_grouping_b(z, g_s_ending, 98, 116, 0)) goto lab0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -330,29 +325,27 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ lab0: z->c = z->l - m1; } - { int m3 = z->l - z->c; (void)m3; /* do, line 93 */ - z->ket = z->c; /* [, line 94 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2; /* substring, line 94 */ + { int m3 = z->l - z->c; (void)m3; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2; among_var = find_among_b(z, a_2, 4); if (!(among_var)) goto lab2; - z->bra = z->c; /* ], line 94 */ - { int ret = r_R1(z); /* call R1, line 94 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } - switch (among_var) { /* among, line 94 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 96 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab2; /* grouping st_ending, line 99 */ - { int ret = z->c - 3; /* hop, line 99 */ - if (z->lb > ret || ret > z->l) goto lab2; - z->c = ret; - } - { int ret = slice_del(z); /* delete, line 99 */ + if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab2; +z->c = z->c - 3; + if (z->c < z->lb) goto lab2; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -360,37 +353,37 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ lab2: z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 103 */ - z->ket = z->c; /* [, line 104 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; /* substring, line 104 */ + { int m4 = z->l - z->c; (void)m4; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; among_var = find_among_b(z, a_4, 8); if (!(among_var)) goto lab3; - z->bra = z->c; /* ], line 104 */ - { int ret = r_R2(z); /* call R2, line 104 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } - switch (among_var) { /* among, line 104 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 106 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m5 = z->l - z->c; (void)m5; /* try, line 107 */ - z->ket = z->c; /* [, line 107 */ - if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m5; goto lab4; } /* literal, line 107 */ - z->bra = z->c; /* ], line 107 */ - { int m6 = z->l - z->c; (void)m6; /* not, line 107 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5; /* literal, line 107 */ + { int m5 = z->l - z->c; (void)m5; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m5; goto lab4; } + z->bra = z->c; + { int m6 = z->l - z->c; (void)m6; + if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5; z->c--; { z->c = z->l - m5; goto lab4; } lab5: z->c = z->l - m6; } - { int ret = r_R2(z); /* call R2, line 107 */ + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m5; goto lab4; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 107 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab4: @@ -398,37 +391,37 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 2: - { int m7 = z->l - z->c; (void)m7; /* not, line 110 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; /* literal, line 110 */ + { int m7 = z->l - z->c; (void)m7; + if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; z->c--; goto lab3; lab6: z->c = z->l - m7; } - { int ret = slice_del(z); /* delete, line 110 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - { int ret = slice_del(z); /* delete, line 113 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m8 = z->l - z->c; (void)m8; /* try, line 114 */ - z->ket = z->c; /* [, line 115 */ - { int m9 = z->l - z->c; (void)m9; /* or, line 115 */ - if (!(eq_s_b(z, 2, s_9))) goto lab9; /* literal, line 115 */ + { int m8 = z->l - z->c; (void)m8; + z->ket = z->c; + { int m9 = z->l - z->c; (void)m9; + if (!(eq_s_b(z, 2, s_9))) goto lab9; goto lab8; lab9: z->c = z->l - m9; - if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m8; goto lab7; } /* literal, line 115 */ + if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m8; goto lab7; } } lab8: - z->bra = z->c; /* ], line 115 */ - { int ret = r_R1(z); /* call R1, line 115 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret == 0) { z->c = z->l - m8; goto lab7; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 115 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab7: @@ -436,19 +429,19 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 4: - { int ret = slice_del(z); /* delete, line 119 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m10 = z->l - z->c; (void)m10; /* try, line 120 */ - z->ket = z->c; /* [, line 121 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; } /* substring, line 121 */ + { int m10 = z->l - z->c; (void)m10; + z->ket = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; } if (!(find_among_b(z, a_3, 2))) { z->c = z->l - m10; goto lab10; } - z->bra = z->c; /* ], line 121 */ - { int ret = r_R2(z); /* call R2, line 121 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m10; goto lab10; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 123 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab10: @@ -462,28 +455,28 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -extern int german_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 134 */ - { int ret = r_prelude(z); /* call prelude, line 134 */ +extern int german_ISO_8859_1_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_prelude(z); if (ret < 0) return ret; } z->c = c1; } - { int c2 = z->c; /* do, line 135 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 135 */ + { int c2 = z->c; + { int ret = r_mark_regions(z); if (ret < 0) return ret; } z->c = c2; } - z->lb = z->c; z->c = z->l; /* backwards, line 136 */ + z->lb = z->c; z->c = z->l; - /* do, line 137 */ - { int ret = r_standard_suffix(z); /* call standard_suffix, line 137 */ + + { int ret = r_standard_suffix(z); if (ret < 0) return ret; } z->c = z->lb; - { int c3 = z->c; /* do, line 138 */ - { int ret = r_postlude(z); /* call postlude, line 138 */ + { int c3 = z->c; + { int ret = r_postlude(z); if (ret < 0) return ret; } z->c = c3; @@ -491,7 +484,7 @@ extern int german_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * german_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); } +extern struct SN_env * german_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); } extern void german_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_indonesian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_indonesian.c index 6e0c911d690f9..5fda5450cf87e 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_indonesian.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_indonesian.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -37,9 +37,9 @@ static const symbol s_0_2[3] = { 'p', 'u', 'n' }; static const struct among a_0[3] = { -/* 0 */ { 3, s_0_0, -1, 1, 0}, -/* 1 */ { 3, s_0_1, -1, 1, 0}, -/* 2 */ { 3, s_0_2, -1, 1, 0} +{ 3, s_0_0, -1, 1, 0}, +{ 3, s_0_1, -1, 1, 0}, +{ 3, s_0_2, -1, 1, 0} }; static const symbol s_1_0[3] = { 'n', 'y', 'a' }; @@ -48,9 +48,9 @@ static const symbol s_1_2[2] = { 'm', 'u' }; static const struct among a_1[3] = { -/* 0 */ { 3, s_1_0, -1, 1, 0}, -/* 1 */ { 2, s_1_1, -1, 1, 0}, -/* 2 */ { 2, s_1_2, -1, 1, 0} +{ 3, s_1_0, -1, 1, 0}, +{ 2, s_1_1, -1, 1, 0}, +{ 2, s_1_2, -1, 1, 0} }; static const symbol s_2_0[1] = { 'i' }; @@ -59,9 +59,9 @@ static const symbol s_2_2[3] = { 'k', 'a', 'n' }; static const struct among a_2[3] = { -/* 0 */ { 1, s_2_0, -1, 1, r_SUFFIX_I_OK}, -/* 1 */ { 2, s_2_1, -1, 1, r_SUFFIX_AN_OK}, -/* 2 */ { 3, s_2_2, 1, 1, r_SUFFIX_KAN_OK} +{ 1, s_2_0, -1, 1, r_SUFFIX_I_OK}, +{ 2, s_2_1, -1, 1, r_SUFFIX_AN_OK}, +{ 3, s_2_2, 1, 1, r_SUFFIX_KAN_OK} }; static const symbol s_3_0[2] = { 'd', 'i' }; @@ -79,18 +79,18 @@ static const symbol s_3_11[3] = { 't', 'e', 'r' }; static const struct among a_3[12] = { -/* 0 */ { 2, s_3_0, -1, 1, 0}, -/* 1 */ { 2, s_3_1, -1, 2, 0}, -/* 2 */ { 2, s_3_2, -1, 1, 0}, -/* 3 */ { 3, s_3_3, 2, 5, 0}, -/* 4 */ { 3, s_3_4, 2, 1, 0}, -/* 5 */ { 4, s_3_5, 4, 1, 0}, -/* 6 */ { 4, s_3_6, 4, 3, r_VOWEL}, -/* 7 */ { 3, s_3_7, -1, 6, 0}, -/* 8 */ { 3, s_3_8, -1, 2, 0}, -/* 9 */ { 4, s_3_9, 8, 2, 0}, -/* 10 */ { 4, s_3_10, 8, 4, r_VOWEL}, -/* 11 */ { 3, s_3_11, -1, 1, 0} +{ 2, s_3_0, -1, 1, 0}, +{ 2, s_3_1, -1, 2, 0}, +{ 2, s_3_2, -1, 1, 0}, +{ 3, s_3_3, 2, 5, 0}, +{ 3, s_3_4, 2, 1, 0}, +{ 4, s_3_5, 4, 1, 0}, +{ 4, s_3_6, 4, 3, r_VOWEL}, +{ 3, s_3_7, -1, 6, 0}, +{ 3, s_3_8, -1, 2, 0}, +{ 4, s_3_9, 8, 2, 0}, +{ 4, s_3_10, 8, 4, r_VOWEL}, +{ 3, s_3_11, -1, 1, 0} }; static const symbol s_4_0[2] = { 'b', 'e' }; @@ -102,12 +102,12 @@ static const symbol s_4_5[3] = { 'p', 'e', 'r' }; static const struct among a_4[6] = { -/* 0 */ { 2, s_4_0, -1, 3, r_KER}, -/* 1 */ { 7, s_4_1, 0, 4, 0}, -/* 2 */ { 3, s_4_2, 0, 3, 0}, -/* 3 */ { 2, s_4_3, -1, 1, 0}, -/* 4 */ { 7, s_4_4, 3, 2, 0}, -/* 5 */ { 3, s_4_5, 3, 1, 0} +{ 2, s_4_0, -1, 3, r_KER}, +{ 7, s_4_1, 0, 4, 0}, +{ 3, s_4_2, 0, 3, 0}, +{ 2, s_4_3, -1, 1, 0}, +{ 7, s_4_4, 3, 2, 0}, +{ 3, s_4_5, 3, 1, 0} }; static const unsigned char g_vowel[] = { 17, 65, 16 }; @@ -120,46 +120,46 @@ static const symbol s_4[] = { 'p' }; static const symbol s_5[] = { 'a', 'j', 'a', 'r' }; static const symbol s_6[] = { 'a', 'j', 'a', 'r' }; -static int r_remove_particle(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 51 */ - if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 104 && z->p[z->c - 1] != 110)) return 0; /* substring, line 51 */ +static int r_remove_particle(struct SN_env * z) { + z->ket = z->c; + if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 104 && z->p[z->c - 1] != 110)) return 0; if (!(find_among_b(z, a_0, 3))) return 0; - z->bra = z->c; /* ], line 51 */ - { int ret = slice_del(z); /* delete, line 52 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->I[0] -= 1; /* $measure -= , line 52 */ + z->I[1] -= 1; return 1; } -static int r_remove_possessive_pronoun(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 57 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 117)) return 0; /* substring, line 57 */ +static int r_remove_possessive_pronoun(struct SN_env * z) { + z->ket = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 117)) return 0; if (!(find_among_b(z, a_1, 3))) return 0; - z->bra = z->c; /* ], line 57 */ - { int ret = slice_del(z); /* delete, line 58 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->I[0] -= 1; /* $measure -= , line 58 */ + z->I[1] -= 1; return 1; } -static int r_SUFFIX_KAN_OK(struct SN_env * z) { /* backwardmode */ - /* and, line 85 */ - if (!(z->I[1] != 3)) return 0; /* $( != ), line 85 */ - if (!(z->I[1] != 2)) return 0; /* $( != ), line 85 */ +static int r_SUFFIX_KAN_OK(struct SN_env * z) { + + if (!(z->I[0] != 3)) return 0; + if (!(z->I[0] != 2)) return 0; return 1; } -static int r_SUFFIX_AN_OK(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] != 1)) return 0; /* $( != ), line 89 */ +static int r_SUFFIX_AN_OK(struct SN_env * z) { + if (!(z->I[0] != 1)) return 0; return 1; } -static int r_SUFFIX_I_OK(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= 2)) return 0; /* $( <= ), line 93 */ - { int m1 = z->l - z->c; (void)m1; /* not, line 128 */ - if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0; /* literal, line 128 */ +static int r_SUFFIX_I_OK(struct SN_env * z) { + if (!(z->I[0] <= 2)) return 0; + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0; z->c--; return 0; lab0: @@ -168,100 +168,100 @@ static int r_SUFFIX_I_OK(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_remove_suffix(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 132 */ - if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 110)) return 0; /* substring, line 132 */ +static int r_remove_suffix(struct SN_env * z) { + z->ket = z->c; + if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 110)) return 0; if (!(find_among_b(z, a_2, 3))) return 0; - z->bra = z->c; /* ], line 132 */ - { int ret = slice_del(z); /* delete, line 134 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->I[0] -= 1; /* $measure -= , line 134 */ + z->I[1] -= 1; return 1; } -static int r_VOWEL(struct SN_env * z) { /* forwardmode */ - if (in_grouping(z, g_vowel, 97, 117, 0)) return 0; /* grouping vowel, line 141 */ +static int r_VOWEL(struct SN_env * z) { + if (in_grouping(z, g_vowel, 97, 117, 0)) return 0; return 1; } -static int r_KER(struct SN_env * z) { /* forwardmode */ - if (out_grouping(z, g_vowel, 97, 117, 0)) return 0; /* non vowel, line 143 */ - if (!(eq_s(z, 2, s_0))) return 0; /* literal, line 143 */ +static int r_KER(struct SN_env * z) { + if (out_grouping(z, g_vowel, 97, 117, 0)) return 0; + if (!(eq_s(z, 2, s_0))) return 0; return 1; } -static int r_remove_first_order_prefix(struct SN_env * z) { /* forwardmode */ +static int r_remove_first_order_prefix(struct SN_env * z) { int among_var; - z->bra = z->c; /* [, line 146 */ - if (z->c + 1 >= z->l || (z->p[z->c + 1] != 105 && z->p[z->c + 1] != 101)) return 0; /* substring, line 146 */ + z->bra = z->c; + if (z->c + 1 >= z->l || (z->p[z->c + 1] != 105 && z->p[z->c + 1] != 101)) return 0; among_var = find_among(z, a_3, 12); if (!(among_var)) return 0; - z->ket = z->c; /* ], line 146 */ - switch (among_var) { /* among, line 146 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 147 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->I[1] = 1; /* $prefix = , line 147 */ - z->I[0] -= 1; /* $measure -= , line 147 */ + z->I[0] = 1; + z->I[1] -= 1; break; case 2: - { int ret = slice_del(z); /* delete, line 148 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->I[1] = 3; /* $prefix = , line 148 */ - z->I[0] -= 1; /* $measure -= , line 148 */ + z->I[0] = 3; + z->I[1] -= 1; break; case 3: - z->I[1] = 1; /* $prefix = , line 149 */ - { int ret = slice_from_s(z, 1, s_1); /* <-, line 149 */ + z->I[0] = 1; + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } - z->I[0] -= 1; /* $measure -= , line 149 */ + z->I[1] -= 1; break; case 4: - z->I[1] = 3; /* $prefix = , line 150 */ - { int ret = slice_from_s(z, 1, s_2); /* <-, line 150 */ + z->I[0] = 3; + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } - z->I[0] -= 1; /* $measure -= , line 150 */ + z->I[1] -= 1; break; case 5: - z->I[1] = 1; /* $prefix = , line 151 */ - z->I[0] -= 1; /* $measure -= , line 151 */ - { int c1 = z->c; /* or, line 151 */ - { int c2 = z->c; /* and, line 151 */ - if (in_grouping(z, g_vowel, 97, 117, 0)) goto lab1; /* grouping vowel, line 151 */ + z->I[0] = 1; + z->I[1] -= 1; + { int c1 = z->c; + { int c2 = z->c; + if (in_grouping(z, g_vowel, 97, 117, 0)) goto lab1; z->c = c2; - { int ret = slice_from_s(z, 1, s_3); /* <-, line 151 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } } goto lab0; lab1: z->c = c1; - { int ret = slice_del(z); /* delete, line 151 */ + { int ret = slice_del(z); if (ret < 0) return ret; } } lab0: break; case 6: - z->I[1] = 3; /* $prefix = , line 152 */ - z->I[0] -= 1; /* $measure -= , line 152 */ - { int c3 = z->c; /* or, line 152 */ - { int c4 = z->c; /* and, line 152 */ - if (in_grouping(z, g_vowel, 97, 117, 0)) goto lab3; /* grouping vowel, line 152 */ + z->I[0] = 3; + z->I[1] -= 1; + { int c3 = z->c; + { int c4 = z->c; + if (in_grouping(z, g_vowel, 97, 117, 0)) goto lab3; z->c = c4; - { int ret = slice_from_s(z, 1, s_4); /* <-, line 152 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } } goto lab2; lab3: z->c = c3; - { int ret = slice_del(z); /* delete, line 152 */ + { int ret = slice_del(z); if (ret < 0) return ret; } } @@ -271,57 +271,56 @@ static int r_remove_first_order_prefix(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_remove_second_order_prefix(struct SN_env * z) { /* forwardmode */ +static int r_remove_second_order_prefix(struct SN_env * z) { int among_var; - z->bra = z->c; /* [, line 162 */ - if (z->c + 1 >= z->l || z->p[z->c + 1] != 101) return 0; /* substring, line 162 */ + z->bra = z->c; + if (z->c + 1 >= z->l || z->p[z->c + 1] != 101) return 0; among_var = find_among(z, a_4, 6); if (!(among_var)) return 0; - z->ket = z->c; /* ], line 162 */ - switch (among_var) { /* among, line 162 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 163 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->I[1] = 2; /* $prefix = , line 163 */ - z->I[0] -= 1; /* $measure -= , line 163 */ + z->I[0] = 2; + z->I[1] -= 1; break; case 2: - { int ret = slice_from_s(z, 4, s_5); /* <-, line 164 */ + { int ret = slice_from_s(z, 4, s_5); if (ret < 0) return ret; } - z->I[0] -= 1; /* $measure -= , line 164 */ + z->I[1] -= 1; break; case 3: - { int ret = slice_del(z); /* delete, line 165 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->I[1] = 4; /* $prefix = , line 165 */ - z->I[0] -= 1; /* $measure -= , line 165 */ + z->I[0] = 4; + z->I[1] -= 1; break; case 4: - { int ret = slice_from_s(z, 4, s_6); /* <-, line 166 */ + { int ret = slice_from_s(z, 4, s_6); if (ret < 0) return ret; } - z->I[1] = 4; /* $prefix = , line 166 */ - z->I[0] -= 1; /* $measure -= , line 166 */ + z->I[0] = 4; + z->I[1] -= 1; break; } return 1; } -extern int indonesian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ - z->I[0] = 0; /* $measure = , line 172 */ - { int c1 = z->c; /* do, line 173 */ -/* repeat, line 173 */ - - while(1) { int c2 = z->c; - { /* gopast */ /* grouping vowel, line 173 */ +extern int indonesian_ISO_8859_1_stem(struct SN_env * z) { + z->I[1] = 0; + { int c1 = z->c; + while(1) { + int c2 = z->c; + { int ret = out_grouping(z, g_vowel, 97, 117, 1); if (ret < 0) goto lab1; z->c += ret; } - z->I[0] += 1; /* $measure += , line 173 */ + z->I[1] += 1; continue; lab1: z->c = c2; @@ -329,45 +328,45 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ } z->c = c1; } - if (!(z->I[0] > 2)) return 0; /* $( > ), line 174 */ - z->I[1] = 0; /* $prefix = , line 175 */ - z->lb = z->c; z->c = z->l; /* backwards, line 176 */ + if (!(z->I[1] > 2)) return 0; + z->I[0] = 0; + z->lb = z->c; z->c = z->l; - { int m3 = z->l - z->c; (void)m3; /* do, line 177 */ - { int ret = r_remove_particle(z); /* call remove_particle, line 177 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_remove_particle(z); if (ret < 0) return ret; } z->c = z->l - m3; } - if (!(z->I[0] > 2)) return 0; /* $( > ), line 178 */ - { int m4 = z->l - z->c; (void)m4; /* do, line 179 */ - { int ret = r_remove_possessive_pronoun(z); /* call remove_possessive_pronoun, line 179 */ + if (!(z->I[1] > 2)) return 0; + { int m4 = z->l - z->c; (void)m4; + { int ret = r_remove_possessive_pronoun(z); if (ret < 0) return ret; } z->c = z->l - m4; } z->c = z->lb; - if (!(z->I[0] > 2)) return 0; /* $( > ), line 181 */ - { int c5 = z->c; /* or, line 188 */ - { int c_test6 = z->c; /* test, line 182 */ - { int ret = r_remove_first_order_prefix(z); /* call remove_first_order_prefix, line 183 */ + if (!(z->I[1] > 2)) return 0; + { int c5 = z->c; + { int c_test6 = z->c; + { int ret = r_remove_first_order_prefix(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } - { int c7 = z->c; /* do, line 184 */ - { int c_test8 = z->c; /* test, line 185 */ - if (!(z->I[0] > 2)) goto lab4; /* $( > ), line 185 */ - z->lb = z->c; z->c = z->l; /* backwards, line 185 */ + { int c7 = z->c; + { int c_test8 = z->c; + if (!(z->I[1] > 2)) goto lab4; + z->lb = z->c; z->c = z->l; - { int ret = r_remove_suffix(z); /* call remove_suffix, line 185 */ + { int ret = r_remove_suffix(z); if (ret == 0) goto lab4; if (ret < 0) return ret; } z->c = z->lb; z->c = c_test8; } - if (!(z->I[0] > 2)) goto lab4; /* $( > ), line 186 */ - { int ret = r_remove_second_order_prefix(z); /* call remove_second_order_prefix, line 186 */ + if (!(z->I[1] > 2)) goto lab4; + { int ret = r_remove_second_order_prefix(z); if (ret == 0) goto lab4; if (ret < 0) return ret; } @@ -379,17 +378,17 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ goto lab2; lab3: z->c = c5; - { int c9 = z->c; /* do, line 189 */ - { int ret = r_remove_second_order_prefix(z); /* call remove_second_order_prefix, line 189 */ + { int c9 = z->c; + { int ret = r_remove_second_order_prefix(z); if (ret < 0) return ret; } z->c = c9; } - { int c10 = z->c; /* do, line 190 */ - if (!(z->I[0] > 2)) goto lab5; /* $( > ), line 190 */ - z->lb = z->c; z->c = z->l; /* backwards, line 190 */ + { int c10 = z->c; + if (!(z->I[1] > 2)) goto lab5; + z->lb = z->c; z->c = z->l; - { int ret = r_remove_suffix(z); /* call remove_suffix, line 190 */ + { int ret = r_remove_suffix(z); if (ret == 0) goto lab5; if (ret < 0) return ret; } @@ -402,7 +401,7 @@ extern int indonesian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * indonesian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); } +extern struct SN_env * indonesian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2); } extern void indonesian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_irish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_irish.c index 87df430aea649..fbe75f89a0c1b 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_irish.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_irish.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -56,30 +56,30 @@ static const symbol s_0_23[2] = { 't', 's' }; static const struct among a_0[24] = { -/* 0 */ { 2, s_0_0, -1, 1, 0}, -/* 1 */ { 2, s_0_1, -1, 4, 0}, -/* 2 */ { 3, s_0_2, 1, 2, 0}, -/* 3 */ { 2, s_0_3, -1, 8, 0}, -/* 4 */ { 2, s_0_4, -1, 5, 0}, -/* 5 */ { 2, s_0_5, -1, 1, 0}, -/* 6 */ { 4, s_0_6, 5, 2, 0}, -/* 7 */ { 2, s_0_7, -1, 6, 0}, -/* 8 */ { 2, s_0_8, -1, 9, 0}, -/* 9 */ { 2, s_0_9, -1, 2, 0}, -/* 10 */ { 2, s_0_10, -1, 5, 0}, -/* 11 */ { 2, s_0_11, -1, 7, 0}, -/* 12 */ { 2, s_0_12, -1, 1, 0}, -/* 13 */ { 2, s_0_13, -1, 1, 0}, -/* 14 */ { 2, s_0_14, -1, 4, 0}, -/* 15 */ { 2, s_0_15, -1, 10, 0}, -/* 16 */ { 2, s_0_16, -1, 1, 0}, -/* 17 */ { 2, s_0_17, -1, 6, 0}, -/* 18 */ { 2, s_0_18, -1, 7, 0}, -/* 19 */ { 2, s_0_19, -1, 8, 0}, -/* 20 */ { 2, s_0_20, -1, 3, 0}, -/* 21 */ { 2, s_0_21, -1, 1, 0}, -/* 22 */ { 2, s_0_22, -1, 9, 0}, -/* 23 */ { 2, s_0_23, -1, 3, 0} +{ 2, s_0_0, -1, 1, 0}, +{ 2, s_0_1, -1, 4, 0}, +{ 3, s_0_2, 1, 2, 0}, +{ 2, s_0_3, -1, 8, 0}, +{ 2, s_0_4, -1, 5, 0}, +{ 2, s_0_5, -1, 1, 0}, +{ 4, s_0_6, 5, 2, 0}, +{ 2, s_0_7, -1, 6, 0}, +{ 2, s_0_8, -1, 9, 0}, +{ 2, s_0_9, -1, 2, 0}, +{ 2, s_0_10, -1, 5, 0}, +{ 2, s_0_11, -1, 7, 0}, +{ 2, s_0_12, -1, 1, 0}, +{ 2, s_0_13, -1, 1, 0}, +{ 2, s_0_14, -1, 4, 0}, +{ 2, s_0_15, -1, 10, 0}, +{ 2, s_0_16, -1, 1, 0}, +{ 2, s_0_17, -1, 6, 0}, +{ 2, s_0_18, -1, 7, 0}, +{ 2, s_0_19, -1, 8, 0}, +{ 2, s_0_20, -1, 3, 0}, +{ 2, s_0_21, -1, 1, 0}, +{ 2, s_0_22, -1, 9, 0}, +{ 2, s_0_23, -1, 3, 0} }; static const symbol s_1_0[6] = { 0xED, 'o', 'c', 'h', 't', 'a' }; @@ -101,22 +101,22 @@ static const symbol s_1_15[4] = { 'a', 'i', 'r', 0xED }; static const struct among a_1[16] = { -/* 0 */ { 6, s_1_0, -1, 1, 0}, -/* 1 */ { 7, s_1_1, 0, 1, 0}, -/* 2 */ { 3, s_1_2, -1, 2, 0}, -/* 3 */ { 4, s_1_3, 2, 2, 0}, -/* 4 */ { 3, s_1_4, -1, 1, 0}, -/* 5 */ { 4, s_1_5, 4, 1, 0}, -/* 6 */ { 3, s_1_6, -1, 1, 0}, -/* 7 */ { 4, s_1_7, 6, 1, 0}, -/* 8 */ { 3, s_1_8, -1, 1, 0}, -/* 9 */ { 4, s_1_9, 8, 1, 0}, -/* 10 */ { 3, s_1_10, -1, 1, 0}, -/* 11 */ { 4, s_1_11, 10, 1, 0}, -/* 12 */ { 5, s_1_12, -1, 1, 0}, -/* 13 */ { 6, s_1_13, 12, 1, 0}, -/* 14 */ { 3, s_1_14, -1, 2, 0}, -/* 15 */ { 4, s_1_15, 14, 2, 0} +{ 6, s_1_0, -1, 1, 0}, +{ 7, s_1_1, 0, 1, 0}, +{ 3, s_1_2, -1, 2, 0}, +{ 4, s_1_3, 2, 2, 0}, +{ 3, s_1_4, -1, 1, 0}, +{ 4, s_1_5, 4, 1, 0}, +{ 3, s_1_6, -1, 1, 0}, +{ 4, s_1_7, 6, 1, 0}, +{ 3, s_1_8, -1, 1, 0}, +{ 4, s_1_9, 8, 1, 0}, +{ 3, s_1_10, -1, 1, 0}, +{ 4, s_1_11, 10, 1, 0}, +{ 5, s_1_12, -1, 1, 0}, +{ 6, s_1_13, 12, 1, 0}, +{ 3, s_1_14, -1, 2, 0}, +{ 4, s_1_15, 14, 2, 0} }; static const symbol s_2_0[8] = { 0xF3, 'i', 'd', 'e', 'a', 'c', 'h', 'a' }; @@ -147,31 +147,31 @@ static const symbol s_2_24[12] = { 'g', 'r', 'a', 'f', 'a', 0xED, 'o', 'c', 'h', static const struct among a_2[25] = { -/* 0 */ { 8, s_2_0, -1, 6, 0}, -/* 1 */ { 7, s_2_1, -1, 5, 0}, -/* 2 */ { 5, s_2_2, -1, 1, 0}, -/* 3 */ { 8, s_2_3, 2, 2, 0}, -/* 4 */ { 6, s_2_4, 2, 1, 0}, -/* 5 */ { 11, s_2_5, -1, 4, 0}, -/* 6 */ { 5, s_2_6, -1, 5, 0}, -/* 7 */ { 3, s_2_7, -1, 1, 0}, -/* 8 */ { 4, s_2_8, 7, 1, 0}, -/* 9 */ { 7, s_2_9, 8, 6, 0}, -/* 10 */ { 7, s_2_10, 8, 3, 0}, -/* 11 */ { 6, s_2_11, 7, 5, 0}, -/* 12 */ { 9, s_2_12, -1, 4, 0}, -/* 13 */ { 7, s_2_13, -1, 5, 0}, -/* 14 */ { 6, s_2_14, -1, 6, 0}, -/* 15 */ { 7, s_2_15, -1, 1, 0}, -/* 16 */ { 8, s_2_16, 15, 1, 0}, -/* 17 */ { 6, s_2_17, -1, 3, 0}, -/* 18 */ { 5, s_2_18, -1, 3, 0}, -/* 19 */ { 4, s_2_19, -1, 1, 0}, -/* 20 */ { 7, s_2_20, 19, 2, 0}, -/* 21 */ { 5, s_2_21, 19, 1, 0}, -/* 22 */ { 10, s_2_22, -1, 4, 0}, -/* 23 */ { 9, s_2_23, -1, 2, 0}, -/* 24 */ { 12, s_2_24, -1, 4, 0} +{ 8, s_2_0, -1, 6, 0}, +{ 7, s_2_1, -1, 5, 0}, +{ 5, s_2_2, -1, 1, 0}, +{ 8, s_2_3, 2, 2, 0}, +{ 6, s_2_4, 2, 1, 0}, +{ 11, s_2_5, -1, 4, 0}, +{ 5, s_2_6, -1, 5, 0}, +{ 3, s_2_7, -1, 1, 0}, +{ 4, s_2_8, 7, 1, 0}, +{ 7, s_2_9, 8, 6, 0}, +{ 7, s_2_10, 8, 3, 0}, +{ 6, s_2_11, 7, 5, 0}, +{ 9, s_2_12, -1, 4, 0}, +{ 7, s_2_13, -1, 5, 0}, +{ 6, s_2_14, -1, 6, 0}, +{ 7, s_2_15, -1, 1, 0}, +{ 8, s_2_16, 15, 1, 0}, +{ 6, s_2_17, -1, 3, 0}, +{ 5, s_2_18, -1, 3, 0}, +{ 4, s_2_19, -1, 1, 0}, +{ 7, s_2_20, 19, 2, 0}, +{ 5, s_2_21, 19, 1, 0}, +{ 10, s_2_22, -1, 4, 0}, +{ 9, s_2_23, -1, 2, 0}, +{ 12, s_2_24, -1, 4, 0} }; static const symbol s_3_0[4] = { 'i', 'm', 'i', 'd' }; @@ -189,18 +189,18 @@ static const symbol s_3_11[3] = { 't', 'a', 'r' }; static const struct among a_3[12] = { -/* 0 */ { 4, s_3_0, -1, 1, 0}, -/* 1 */ { 5, s_3_1, 0, 1, 0}, -/* 2 */ { 4, s_3_2, -1, 1, 0}, -/* 3 */ { 5, s_3_3, 2, 1, 0}, -/* 4 */ { 3, s_3_4, -1, 2, 0}, -/* 5 */ { 4, s_3_5, 4, 2, 0}, -/* 6 */ { 5, s_3_6, -1, 1, 0}, -/* 7 */ { 4, s_3_7, -1, 1, 0}, -/* 8 */ { 3, s_3_8, -1, 2, 0}, -/* 9 */ { 3, s_3_9, -1, 2, 0}, -/* 10 */ { 4, s_3_10, -1, 2, 0}, -/* 11 */ { 3, s_3_11, -1, 2, 0} +{ 4, s_3_0, -1, 1, 0}, +{ 5, s_3_1, 0, 1, 0}, +{ 4, s_3_2, -1, 1, 0}, +{ 5, s_3_3, 2, 1, 0}, +{ 3, s_3_4, -1, 2, 0}, +{ 4, s_3_5, 4, 2, 0}, +{ 5, s_3_6, -1, 1, 0}, +{ 4, s_3_7, -1, 1, 0}, +{ 3, s_3_8, -1, 2, 0}, +{ 3, s_3_9, -1, 2, 0}, +{ 4, s_3_10, -1, 2, 0}, +{ 3, s_3_11, -1, 2, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 2 }; @@ -220,103 +220,103 @@ static const symbol s_11[] = { 'g', 'r', 'a', 'f' }; static const symbol s_12[] = { 'p', 'a', 'i', 't', 'e' }; static const symbol s_13[] = { 0xF3, 'i', 'd' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $pV = , line 30 */ - z->I[1] = z->l; /* $p1 = , line 31 */ - z->I[2] = z->l; /* $p2 = , line 32 */ - { int c1 = z->c; /* do, line 34 */ - { /* gopast */ /* grouping v, line 35 */ +static int r_mark_regions(struct SN_env * z) { + z->I[2] = z->l; + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int ret = out_grouping(z, g_v, 97, 250, 1); if (ret < 0) goto lab0; z->c += ret; } - z->I[0] = z->c; /* setmark pV, line 35 */ + z->I[2] = z->c; lab0: z->c = c1; } - { int c2 = z->c; /* do, line 37 */ - { /* gopast */ /* grouping v, line 38 */ + { int c2 = z->c; + { int ret = out_grouping(z, g_v, 97, 250, 1); if (ret < 0) goto lab1; z->c += ret; } - { /* gopast */ /* non v, line 38 */ + { int ret = in_grouping(z, g_v, 97, 250, 1); if (ret < 0) goto lab1; z->c += ret; } - z->I[1] = z->c; /* setmark p1, line 38 */ - { /* gopast */ /* grouping v, line 39 */ + z->I[1] = z->c; + { int ret = out_grouping(z, g_v, 97, 250, 1); if (ret < 0) goto lab1; z->c += ret; } - { /* gopast */ /* non v, line 39 */ + { int ret = in_grouping(z, g_v, 97, 250, 1); if (ret < 0) goto lab1; z->c += ret; } - z->I[2] = z->c; /* setmark p2, line 39 */ + z->I[0] = z->c; lab1: z->c = c2; } return 1; } -static int r_initial_morph(struct SN_env * z) { /* forwardmode */ +static int r_initial_morph(struct SN_env * z) { int among_var; - z->bra = z->c; /* [, line 44 */ - among_var = find_among(z, a_0, 24); /* substring, line 44 */ + z->bra = z->c; + among_var = find_among(z, a_0, 24); if (!(among_var)) return 0; - z->ket = z->c; /* ], line 44 */ - switch (among_var) { /* among, line 44 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 46 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_0); /* <-, line 52 */ + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_1); /* <-, line 58 */ + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 1, s_2); /* <-, line 61 */ + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 1, s_3); /* <-, line 63 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 1, s_4); /* <-, line 65 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 1, s_5); /* <-, line 69 */ + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } break; case 8: - { int ret = slice_from_s(z, 1, s_6); /* <-, line 71 */ + { int ret = slice_from_s(z, 1, s_6); if (ret < 0) return ret; } break; case 9: - { int ret = slice_from_s(z, 1, s_7); /* <-, line 75 */ + { int ret = slice_from_s(z, 1, s_7); if (ret < 0) return ret; } break; case 10: - { int ret = slice_from_s(z, 1, s_8); /* <-, line 89 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } break; @@ -324,41 +324,41 @@ static int r_initial_morph(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_RV(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 99 */ +static int r_RV(struct SN_env * z) { + if (!(z->I[2] <= z->c)) return 0; return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 100 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 101 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_noun_sfx(struct SN_env * z) { /* backwardmode */ +static int r_noun_sfx(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 104 */ - among_var = find_among_b(z, a_1, 16); /* substring, line 104 */ + z->ket = z->c; + among_var = find_among_b(z, a_1, 16); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 104 */ - switch (among_var) { /* among, line 104 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R1(z); /* call R1, line 108 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 108 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 110 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 110 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -366,43 +366,43 @@ static int r_noun_sfx(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_deriv(struct SN_env * z) { /* backwardmode */ +static int r_deriv(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 114 */ - among_var = find_among_b(z, a_2, 25); /* substring, line 114 */ + z->ket = z->c; + among_var = find_among_b(z, a_2, 25); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 114 */ - switch (among_var) { /* among, line 114 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 116 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 116 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 3, s_9); /* <-, line 118 */ + { int ret = slice_from_s(z, 3, s_9); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 3, s_10); /* <-, line 120 */ + { int ret = slice_from_s(z, 3, s_10); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 4, s_11); /* <-, line 122 */ + { int ret = slice_from_s(z, 4, s_11); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 5, s_12); /* <-, line 124 */ + { int ret = slice_from_s(z, 5, s_12); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 3, s_13); /* <-, line 126 */ + { int ret = slice_from_s(z, 3, s_13); if (ret < 0) return ret; } break; @@ -410,27 +410,27 @@ static int r_deriv(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_verb_sfx(struct SN_env * z) { /* backwardmode */ +static int r_verb_sfx(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 130 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((282896 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 130 */ + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((282896 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_3, 12); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 130 */ - switch (among_var) { /* among, line 130 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_RV(z); /* call RV, line 133 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 133 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R1(z); /* call R1, line 138 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 138 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -438,33 +438,33 @@ static int r_verb_sfx(struct SN_env * z) { /* backwardmode */ return 1; } -extern int irish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 144 */ - { int ret = r_initial_morph(z); /* call initial_morph, line 144 */ +extern int irish_ISO_8859_1_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_initial_morph(z); if (ret < 0) return ret; } z->c = c1; } - /* do, line 145 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 145 */ + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 146 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 147 */ - { int ret = r_noun_sfx(z); /* call noun_sfx, line 147 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_noun_sfx(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 148 */ - { int ret = r_deriv(z); /* call deriv, line 148 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_deriv(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 149 */ - { int ret = r_verb_sfx(z); /* call verb_sfx, line 149 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_verb_sfx(z); if (ret < 0) return ret; } z->c = z->l - m4; @@ -473,7 +473,7 @@ extern int irish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * irish_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); } +extern struct SN_env * irish_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); } extern void irish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c index a06e8902d93df..e71178e404dbc 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_italian.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -40,13 +40,13 @@ static const symbol s_0_6[1] = { 0xFA }; static const struct among a_0[7] = { -/* 0 */ { 0, 0, -1, 7, 0}, -/* 1 */ { 2, s_0_1, 0, 6, 0}, -/* 2 */ { 1, s_0_2, 0, 1, 0}, -/* 3 */ { 1, s_0_3, 0, 2, 0}, -/* 4 */ { 1, s_0_4, 0, 3, 0}, -/* 5 */ { 1, s_0_5, 0, 4, 0}, -/* 6 */ { 1, s_0_6, 0, 5, 0} +{ 0, 0, -1, 7, 0}, +{ 2, s_0_1, 0, 6, 0}, +{ 1, s_0_2, 0, 1, 0}, +{ 1, s_0_3, 0, 2, 0}, +{ 1, s_0_4, 0, 3, 0}, +{ 1, s_0_5, 0, 4, 0}, +{ 1, s_0_6, 0, 5, 0} }; static const symbol s_1_1[1] = { 'I' }; @@ -54,9 +54,9 @@ static const symbol s_1_2[1] = { 'U' }; static const struct among a_1[3] = { -/* 0 */ { 0, 0, -1, 3, 0}, -/* 1 */ { 1, s_1_1, 0, 1, 0}, -/* 2 */ { 1, s_1_2, 0, 2, 0} +{ 0, 0, -1, 3, 0}, +{ 1, s_1_1, 0, 1, 0}, +{ 1, s_1_2, 0, 2, 0} }; static const symbol s_2_0[2] = { 'l', 'a' }; @@ -99,43 +99,43 @@ static const symbol s_2_36[4] = { 'v', 'e', 'l', 'o' }; static const struct among a_2[37] = { -/* 0 */ { 2, s_2_0, -1, -1, 0}, -/* 1 */ { 4, s_2_1, 0, -1, 0}, -/* 2 */ { 6, s_2_2, 0, -1, 0}, -/* 3 */ { 4, s_2_3, 0, -1, 0}, -/* 4 */ { 4, s_2_4, 0, -1, 0}, -/* 5 */ { 4, s_2_5, 0, -1, 0}, -/* 6 */ { 2, s_2_6, -1, -1, 0}, -/* 7 */ { 4, s_2_7, 6, -1, 0}, -/* 8 */ { 6, s_2_8, 6, -1, 0}, -/* 9 */ { 4, s_2_9, 6, -1, 0}, -/* 10 */ { 4, s_2_10, 6, -1, 0}, -/* 11 */ { 4, s_2_11, 6, -1, 0}, -/* 12 */ { 2, s_2_12, -1, -1, 0}, -/* 13 */ { 4, s_2_13, 12, -1, 0}, -/* 14 */ { 6, s_2_14, 12, -1, 0}, -/* 15 */ { 4, s_2_15, 12, -1, 0}, -/* 16 */ { 4, s_2_16, 12, -1, 0}, -/* 17 */ { 4, s_2_17, 12, -1, 0}, -/* 18 */ { 4, s_2_18, 12, -1, 0}, -/* 19 */ { 2, s_2_19, -1, -1, 0}, -/* 20 */ { 2, s_2_20, -1, -1, 0}, -/* 21 */ { 4, s_2_21, 20, -1, 0}, -/* 22 */ { 6, s_2_22, 20, -1, 0}, -/* 23 */ { 4, s_2_23, 20, -1, 0}, -/* 24 */ { 4, s_2_24, 20, -1, 0}, -/* 25 */ { 4, s_2_25, 20, -1, 0}, -/* 26 */ { 3, s_2_26, 20, -1, 0}, -/* 27 */ { 2, s_2_27, -1, -1, 0}, -/* 28 */ { 2, s_2_28, -1, -1, 0}, -/* 29 */ { 2, s_2_29, -1, -1, 0}, -/* 30 */ { 2, s_2_30, -1, -1, 0}, -/* 31 */ { 2, s_2_31, -1, -1, 0}, -/* 32 */ { 4, s_2_32, 31, -1, 0}, -/* 33 */ { 6, s_2_33, 31, -1, 0}, -/* 34 */ { 4, s_2_34, 31, -1, 0}, -/* 35 */ { 4, s_2_35, 31, -1, 0}, -/* 36 */ { 4, s_2_36, 31, -1, 0} +{ 2, s_2_0, -1, -1, 0}, +{ 4, s_2_1, 0, -1, 0}, +{ 6, s_2_2, 0, -1, 0}, +{ 4, s_2_3, 0, -1, 0}, +{ 4, s_2_4, 0, -1, 0}, +{ 4, s_2_5, 0, -1, 0}, +{ 2, s_2_6, -1, -1, 0}, +{ 4, s_2_7, 6, -1, 0}, +{ 6, s_2_8, 6, -1, 0}, +{ 4, s_2_9, 6, -1, 0}, +{ 4, s_2_10, 6, -1, 0}, +{ 4, s_2_11, 6, -1, 0}, +{ 2, s_2_12, -1, -1, 0}, +{ 4, s_2_13, 12, -1, 0}, +{ 6, s_2_14, 12, -1, 0}, +{ 4, s_2_15, 12, -1, 0}, +{ 4, s_2_16, 12, -1, 0}, +{ 4, s_2_17, 12, -1, 0}, +{ 4, s_2_18, 12, -1, 0}, +{ 2, s_2_19, -1, -1, 0}, +{ 2, s_2_20, -1, -1, 0}, +{ 4, s_2_21, 20, -1, 0}, +{ 6, s_2_22, 20, -1, 0}, +{ 4, s_2_23, 20, -1, 0}, +{ 4, s_2_24, 20, -1, 0}, +{ 4, s_2_25, 20, -1, 0}, +{ 3, s_2_26, 20, -1, 0}, +{ 2, s_2_27, -1, -1, 0}, +{ 2, s_2_28, -1, -1, 0}, +{ 2, s_2_29, -1, -1, 0}, +{ 2, s_2_30, -1, -1, 0}, +{ 2, s_2_31, -1, -1, 0}, +{ 4, s_2_32, 31, -1, 0}, +{ 6, s_2_33, 31, -1, 0}, +{ 4, s_2_34, 31, -1, 0}, +{ 4, s_2_35, 31, -1, 0}, +{ 4, s_2_36, 31, -1, 0} }; static const symbol s_3_0[4] = { 'a', 'n', 'd', 'o' }; @@ -146,11 +146,11 @@ static const symbol s_3_4[2] = { 'i', 'r' }; static const struct among a_3[5] = { -/* 0 */ { 4, s_3_0, -1, 1, 0}, -/* 1 */ { 4, s_3_1, -1, 1, 0}, -/* 2 */ { 2, s_3_2, -1, 2, 0}, -/* 3 */ { 2, s_3_3, -1, 2, 0}, -/* 4 */ { 2, s_3_4, -1, 2, 0} +{ 4, s_3_0, -1, 1, 0}, +{ 4, s_3_1, -1, 1, 0}, +{ 2, s_3_2, -1, 2, 0}, +{ 2, s_3_3, -1, 2, 0}, +{ 2, s_3_4, -1, 2, 0} }; static const symbol s_4_0[2] = { 'i', 'c' }; @@ -160,10 +160,10 @@ static const symbol s_4_3[2] = { 'i', 'v' }; static const struct among a_4[4] = { -/* 0 */ { 2, s_4_0, -1, -1, 0}, -/* 1 */ { 4, s_4_1, -1, -1, 0}, -/* 2 */ { 2, s_4_2, -1, -1, 0}, -/* 3 */ { 2, s_4_3, -1, 1, 0} +{ 2, s_4_0, -1, -1, 0}, +{ 4, s_4_1, -1, -1, 0}, +{ 2, s_4_2, -1, -1, 0}, +{ 2, s_4_3, -1, 1, 0} }; static const symbol s_5_0[2] = { 'i', 'c' }; @@ -172,9 +172,9 @@ static const symbol s_5_2[2] = { 'i', 'v' }; static const struct among a_5[3] = { -/* 0 */ { 2, s_5_0, -1, 1, 0}, -/* 1 */ { 4, s_5_1, -1, 1, 0}, -/* 2 */ { 2, s_5_2, -1, 1, 0} +{ 2, s_5_0, -1, 1, 0}, +{ 4, s_5_1, -1, 1, 0}, +{ 2, s_5_2, -1, 1, 0} }; static const symbol s_6_0[3] = { 'i', 'c', 'a' }; @@ -231,57 +231,57 @@ static const symbol s_6_50[4] = { 'i', 's', 't', 0xEC }; static const struct among a_6[51] = { -/* 0 */ { 3, s_6_0, -1, 1, 0}, -/* 1 */ { 5, s_6_1, -1, 3, 0}, -/* 2 */ { 3, s_6_2, -1, 1, 0}, -/* 3 */ { 4, s_6_3, -1, 1, 0}, -/* 4 */ { 3, s_6_4, -1, 9, 0}, -/* 5 */ { 4, s_6_5, -1, 1, 0}, -/* 6 */ { 4, s_6_6, -1, 5, 0}, -/* 7 */ { 3, s_6_7, -1, 1, 0}, -/* 8 */ { 6, s_6_8, 7, 1, 0}, -/* 9 */ { 4, s_6_9, -1, 1, 0}, -/* 10 */ { 5, s_6_10, -1, 3, 0}, -/* 11 */ { 5, s_6_11, -1, 1, 0}, -/* 12 */ { 5, s_6_12, -1, 1, 0}, -/* 13 */ { 6, s_6_13, -1, 4, 0}, -/* 14 */ { 6, s_6_14, -1, 2, 0}, -/* 15 */ { 6, s_6_15, -1, 4, 0}, -/* 16 */ { 5, s_6_16, -1, 2, 0}, -/* 17 */ { 3, s_6_17, -1, 1, 0}, -/* 18 */ { 4, s_6_18, -1, 1, 0}, -/* 19 */ { 5, s_6_19, -1, 1, 0}, -/* 20 */ { 6, s_6_20, 19, 7, 0}, -/* 21 */ { 4, s_6_21, -1, 1, 0}, -/* 22 */ { 3, s_6_22, -1, 9, 0}, -/* 23 */ { 4, s_6_23, -1, 1, 0}, -/* 24 */ { 4, s_6_24, -1, 5, 0}, -/* 25 */ { 3, s_6_25, -1, 1, 0}, -/* 26 */ { 6, s_6_26, 25, 1, 0}, -/* 27 */ { 4, s_6_27, -1, 1, 0}, -/* 28 */ { 5, s_6_28, -1, 1, 0}, -/* 29 */ { 5, s_6_29, -1, 1, 0}, -/* 30 */ { 4, s_6_30, -1, 1, 0}, -/* 31 */ { 6, s_6_31, -1, 4, 0}, -/* 32 */ { 6, s_6_32, -1, 2, 0}, -/* 33 */ { 6, s_6_33, -1, 4, 0}, -/* 34 */ { 5, s_6_34, -1, 2, 0}, -/* 35 */ { 3, s_6_35, -1, 1, 0}, -/* 36 */ { 4, s_6_36, -1, 1, 0}, -/* 37 */ { 6, s_6_37, -1, 6, 0}, -/* 38 */ { 6, s_6_38, -1, 6, 0}, -/* 39 */ { 4, s_6_39, -1, 1, 0}, -/* 40 */ { 3, s_6_40, -1, 9, 0}, -/* 41 */ { 3, s_6_41, -1, 1, 0}, -/* 42 */ { 4, s_6_42, -1, 1, 0}, -/* 43 */ { 3, s_6_43, -1, 1, 0}, -/* 44 */ { 6, s_6_44, -1, 6, 0}, -/* 45 */ { 6, s_6_45, -1, 6, 0}, -/* 46 */ { 3, s_6_46, -1, 9, 0}, -/* 47 */ { 3, s_6_47, -1, 8, 0}, -/* 48 */ { 4, s_6_48, -1, 1, 0}, -/* 49 */ { 4, s_6_49, -1, 1, 0}, -/* 50 */ { 4, s_6_50, -1, 1, 0} +{ 3, s_6_0, -1, 1, 0}, +{ 5, s_6_1, -1, 3, 0}, +{ 3, s_6_2, -1, 1, 0}, +{ 4, s_6_3, -1, 1, 0}, +{ 3, s_6_4, -1, 9, 0}, +{ 4, s_6_5, -1, 1, 0}, +{ 4, s_6_6, -1, 5, 0}, +{ 3, s_6_7, -1, 1, 0}, +{ 6, s_6_8, 7, 1, 0}, +{ 4, s_6_9, -1, 1, 0}, +{ 5, s_6_10, -1, 3, 0}, +{ 5, s_6_11, -1, 1, 0}, +{ 5, s_6_12, -1, 1, 0}, +{ 6, s_6_13, -1, 4, 0}, +{ 6, s_6_14, -1, 2, 0}, +{ 6, s_6_15, -1, 4, 0}, +{ 5, s_6_16, -1, 2, 0}, +{ 3, s_6_17, -1, 1, 0}, +{ 4, s_6_18, -1, 1, 0}, +{ 5, s_6_19, -1, 1, 0}, +{ 6, s_6_20, 19, 7, 0}, +{ 4, s_6_21, -1, 1, 0}, +{ 3, s_6_22, -1, 9, 0}, +{ 4, s_6_23, -1, 1, 0}, +{ 4, s_6_24, -1, 5, 0}, +{ 3, s_6_25, -1, 1, 0}, +{ 6, s_6_26, 25, 1, 0}, +{ 4, s_6_27, -1, 1, 0}, +{ 5, s_6_28, -1, 1, 0}, +{ 5, s_6_29, -1, 1, 0}, +{ 4, s_6_30, -1, 1, 0}, +{ 6, s_6_31, -1, 4, 0}, +{ 6, s_6_32, -1, 2, 0}, +{ 6, s_6_33, -1, 4, 0}, +{ 5, s_6_34, -1, 2, 0}, +{ 3, s_6_35, -1, 1, 0}, +{ 4, s_6_36, -1, 1, 0}, +{ 6, s_6_37, -1, 6, 0}, +{ 6, s_6_38, -1, 6, 0}, +{ 4, s_6_39, -1, 1, 0}, +{ 3, s_6_40, -1, 9, 0}, +{ 3, s_6_41, -1, 1, 0}, +{ 4, s_6_42, -1, 1, 0}, +{ 3, s_6_43, -1, 1, 0}, +{ 6, s_6_44, -1, 6, 0}, +{ 6, s_6_45, -1, 6, 0}, +{ 3, s_6_46, -1, 9, 0}, +{ 3, s_6_47, -1, 8, 0}, +{ 4, s_6_48, -1, 1, 0}, +{ 4, s_6_49, -1, 1, 0}, +{ 4, s_6_50, -1, 1, 0} }; static const symbol s_7_0[4] = { 'i', 's', 'c', 'a' }; @@ -374,93 +374,93 @@ static const symbol s_7_86[3] = { 'i', 'r', 0xF2 }; static const struct among a_7[87] = { -/* 0 */ { 4, s_7_0, -1, 1, 0}, -/* 1 */ { 4, s_7_1, -1, 1, 0}, -/* 2 */ { 3, s_7_2, -1, 1, 0}, -/* 3 */ { 3, s_7_3, -1, 1, 0}, -/* 4 */ { 3, s_7_4, -1, 1, 0}, -/* 5 */ { 3, s_7_5, -1, 1, 0}, -/* 6 */ { 3, s_7_6, -1, 1, 0}, -/* 7 */ { 3, s_7_7, -1, 1, 0}, -/* 8 */ { 6, s_7_8, -1, 1, 0}, -/* 9 */ { 6, s_7_9, -1, 1, 0}, -/* 10 */ { 4, s_7_10, -1, 1, 0}, -/* 11 */ { 4, s_7_11, -1, 1, 0}, -/* 12 */ { 3, s_7_12, -1, 1, 0}, -/* 13 */ { 3, s_7_13, -1, 1, 0}, -/* 14 */ { 3, s_7_14, -1, 1, 0}, -/* 15 */ { 4, s_7_15, -1, 1, 0}, -/* 16 */ { 3, s_7_16, -1, 1, 0}, -/* 17 */ { 5, s_7_17, 16, 1, 0}, -/* 18 */ { 5, s_7_18, 16, 1, 0}, -/* 19 */ { 5, s_7_19, 16, 1, 0}, -/* 20 */ { 3, s_7_20, -1, 1, 0}, -/* 21 */ { 5, s_7_21, 20, 1, 0}, -/* 22 */ { 5, s_7_22, 20, 1, 0}, -/* 23 */ { 3, s_7_23, -1, 1, 0}, -/* 24 */ { 6, s_7_24, -1, 1, 0}, -/* 25 */ { 6, s_7_25, -1, 1, 0}, -/* 26 */ { 3, s_7_26, -1, 1, 0}, -/* 27 */ { 4, s_7_27, -1, 1, 0}, -/* 28 */ { 4, s_7_28, -1, 1, 0}, -/* 29 */ { 4, s_7_29, -1, 1, 0}, -/* 30 */ { 4, s_7_30, -1, 1, 0}, -/* 31 */ { 4, s_7_31, -1, 1, 0}, -/* 32 */ { 4, s_7_32, -1, 1, 0}, -/* 33 */ { 4, s_7_33, -1, 1, 0}, -/* 34 */ { 3, s_7_34, -1, 1, 0}, -/* 35 */ { 3, s_7_35, -1, 1, 0}, -/* 36 */ { 6, s_7_36, -1, 1, 0}, -/* 37 */ { 6, s_7_37, -1, 1, 0}, -/* 38 */ { 3, s_7_38, -1, 1, 0}, -/* 39 */ { 3, s_7_39, -1, 1, 0}, -/* 40 */ { 3, s_7_40, -1, 1, 0}, -/* 41 */ { 3, s_7_41, -1, 1, 0}, -/* 42 */ { 4, s_7_42, -1, 1, 0}, -/* 43 */ { 4, s_7_43, -1, 1, 0}, -/* 44 */ { 4, s_7_44, -1, 1, 0}, -/* 45 */ { 4, s_7_45, -1, 1, 0}, -/* 46 */ { 4, s_7_46, -1, 1, 0}, -/* 47 */ { 5, s_7_47, -1, 1, 0}, -/* 48 */ { 5, s_7_48, -1, 1, 0}, -/* 49 */ { 5, s_7_49, -1, 1, 0}, -/* 50 */ { 5, s_7_50, -1, 1, 0}, -/* 51 */ { 5, s_7_51, -1, 1, 0}, -/* 52 */ { 6, s_7_52, -1, 1, 0}, -/* 53 */ { 4, s_7_53, -1, 1, 0}, -/* 54 */ { 4, s_7_54, -1, 1, 0}, -/* 55 */ { 6, s_7_55, 54, 1, 0}, -/* 56 */ { 6, s_7_56, 54, 1, 0}, -/* 57 */ { 4, s_7_57, -1, 1, 0}, -/* 58 */ { 3, s_7_58, -1, 1, 0}, -/* 59 */ { 6, s_7_59, 58, 1, 0}, -/* 60 */ { 5, s_7_60, 58, 1, 0}, -/* 61 */ { 5, s_7_61, 58, 1, 0}, -/* 62 */ { 5, s_7_62, 58, 1, 0}, -/* 63 */ { 6, s_7_63, -1, 1, 0}, -/* 64 */ { 6, s_7_64, -1, 1, 0}, -/* 65 */ { 3, s_7_65, -1, 1, 0}, -/* 66 */ { 6, s_7_66, 65, 1, 0}, -/* 67 */ { 5, s_7_67, 65, 1, 0}, -/* 68 */ { 5, s_7_68, 65, 1, 0}, -/* 69 */ { 5, s_7_69, 65, 1, 0}, -/* 70 */ { 8, s_7_70, -1, 1, 0}, -/* 71 */ { 8, s_7_71, -1, 1, 0}, -/* 72 */ { 6, s_7_72, -1, 1, 0}, -/* 73 */ { 6, s_7_73, -1, 1, 0}, -/* 74 */ { 6, s_7_74, -1, 1, 0}, -/* 75 */ { 3, s_7_75, -1, 1, 0}, -/* 76 */ { 3, s_7_76, -1, 1, 0}, -/* 77 */ { 3, s_7_77, -1, 1, 0}, -/* 78 */ { 3, s_7_78, -1, 1, 0}, -/* 79 */ { 3, s_7_79, -1, 1, 0}, -/* 80 */ { 3, s_7_80, -1, 1, 0}, -/* 81 */ { 2, s_7_81, -1, 1, 0}, -/* 82 */ { 2, s_7_82, -1, 1, 0}, -/* 83 */ { 3, s_7_83, -1, 1, 0}, -/* 84 */ { 3, s_7_84, -1, 1, 0}, -/* 85 */ { 3, s_7_85, -1, 1, 0}, -/* 86 */ { 3, s_7_86, -1, 1, 0} +{ 4, s_7_0, -1, 1, 0}, +{ 4, s_7_1, -1, 1, 0}, +{ 3, s_7_2, -1, 1, 0}, +{ 3, s_7_3, -1, 1, 0}, +{ 3, s_7_4, -1, 1, 0}, +{ 3, s_7_5, -1, 1, 0}, +{ 3, s_7_6, -1, 1, 0}, +{ 3, s_7_7, -1, 1, 0}, +{ 6, s_7_8, -1, 1, 0}, +{ 6, s_7_9, -1, 1, 0}, +{ 4, s_7_10, -1, 1, 0}, +{ 4, s_7_11, -1, 1, 0}, +{ 3, s_7_12, -1, 1, 0}, +{ 3, s_7_13, -1, 1, 0}, +{ 3, s_7_14, -1, 1, 0}, +{ 4, s_7_15, -1, 1, 0}, +{ 3, s_7_16, -1, 1, 0}, +{ 5, s_7_17, 16, 1, 0}, +{ 5, s_7_18, 16, 1, 0}, +{ 5, s_7_19, 16, 1, 0}, +{ 3, s_7_20, -1, 1, 0}, +{ 5, s_7_21, 20, 1, 0}, +{ 5, s_7_22, 20, 1, 0}, +{ 3, s_7_23, -1, 1, 0}, +{ 6, s_7_24, -1, 1, 0}, +{ 6, s_7_25, -1, 1, 0}, +{ 3, s_7_26, -1, 1, 0}, +{ 4, s_7_27, -1, 1, 0}, +{ 4, s_7_28, -1, 1, 0}, +{ 4, s_7_29, -1, 1, 0}, +{ 4, s_7_30, -1, 1, 0}, +{ 4, s_7_31, -1, 1, 0}, +{ 4, s_7_32, -1, 1, 0}, +{ 4, s_7_33, -1, 1, 0}, +{ 3, s_7_34, -1, 1, 0}, +{ 3, s_7_35, -1, 1, 0}, +{ 6, s_7_36, -1, 1, 0}, +{ 6, s_7_37, -1, 1, 0}, +{ 3, s_7_38, -1, 1, 0}, +{ 3, s_7_39, -1, 1, 0}, +{ 3, s_7_40, -1, 1, 0}, +{ 3, s_7_41, -1, 1, 0}, +{ 4, s_7_42, -1, 1, 0}, +{ 4, s_7_43, -1, 1, 0}, +{ 4, s_7_44, -1, 1, 0}, +{ 4, s_7_45, -1, 1, 0}, +{ 4, s_7_46, -1, 1, 0}, +{ 5, s_7_47, -1, 1, 0}, +{ 5, s_7_48, -1, 1, 0}, +{ 5, s_7_49, -1, 1, 0}, +{ 5, s_7_50, -1, 1, 0}, +{ 5, s_7_51, -1, 1, 0}, +{ 6, s_7_52, -1, 1, 0}, +{ 4, s_7_53, -1, 1, 0}, +{ 4, s_7_54, -1, 1, 0}, +{ 6, s_7_55, 54, 1, 0}, +{ 6, s_7_56, 54, 1, 0}, +{ 4, s_7_57, -1, 1, 0}, +{ 3, s_7_58, -1, 1, 0}, +{ 6, s_7_59, 58, 1, 0}, +{ 5, s_7_60, 58, 1, 0}, +{ 5, s_7_61, 58, 1, 0}, +{ 5, s_7_62, 58, 1, 0}, +{ 6, s_7_63, -1, 1, 0}, +{ 6, s_7_64, -1, 1, 0}, +{ 3, s_7_65, -1, 1, 0}, +{ 6, s_7_66, 65, 1, 0}, +{ 5, s_7_67, 65, 1, 0}, +{ 5, s_7_68, 65, 1, 0}, +{ 5, s_7_69, 65, 1, 0}, +{ 8, s_7_70, -1, 1, 0}, +{ 8, s_7_71, -1, 1, 0}, +{ 6, s_7_72, -1, 1, 0}, +{ 6, s_7_73, -1, 1, 0}, +{ 6, s_7_74, -1, 1, 0}, +{ 3, s_7_75, -1, 1, 0}, +{ 3, s_7_76, -1, 1, 0}, +{ 3, s_7_77, -1, 1, 0}, +{ 3, s_7_78, -1, 1, 0}, +{ 3, s_7_79, -1, 1, 0}, +{ 3, s_7_80, -1, 1, 0}, +{ 2, s_7_81, -1, 1, 0}, +{ 2, s_7_82, -1, 1, 0}, +{ 3, s_7_83, -1, 1, 0}, +{ 3, s_7_84, -1, 1, 0}, +{ 3, s_7_85, -1, 1, 0}, +{ 3, s_7_86, -1, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 }; @@ -488,50 +488,49 @@ static const symbol s_15[] = { 'a', 't' }; static const symbol s_16[] = { 'a', 't' }; static const symbol s_17[] = { 'i', 'c' }; -static int r_prelude(struct SN_env * z) { /* forwardmode */ +static int r_prelude(struct SN_env * z) { int among_var; - { int c_test1 = z->c; /* test, line 35 */ -/* repeat, line 35 */ - - while(1) { int c2 = z->c; - z->bra = z->c; /* [, line 36 */ - among_var = find_among(z, a_0, 7); /* substring, line 36 */ + { int c_test1 = z->c; + while(1) { + int c2 = z->c; + z->bra = z->c; + among_var = find_among(z, a_0, 7); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 36 */ - switch (among_var) { /* among, line 36 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_0); /* <-, line 37 */ + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_1); /* <-, line 38 */ + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_2); /* <-, line 39 */ + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 1, s_3); /* <-, line 40 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 1, s_4); /* <-, line 41 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 2, s_5); /* <-, line 42 */ + { int ret = slice_from_s(z, 2, s_5); if (ret < 0) return ret; } break; case 7: if (z->c >= z->l) goto lab0; - z->c++; /* next, line 43 */ + z->c++; break; } continue; @@ -541,29 +540,28 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ } z->c = c_test1; } -/* repeat, line 46 */ - - while(1) { int c3 = z->c; - while(1) { /* goto, line 46 */ + while(1) { + int c3 = z->c; + while(1) { int c4 = z->c; - if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 47 */ - z->bra = z->c; /* [, line 47 */ - { int c5 = z->c; /* or, line 47 */ - if (z->c == z->l || z->p[z->c] != 'u') goto lab4; /* literal, line 47 */ + if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; + z->bra = z->c; + { int c5 = z->c; + if (z->c == z->l || z->p[z->c] != 'u') goto lab4; z->c++; - z->ket = z->c; /* ], line 47 */ - if (in_grouping(z, g_v, 97, 249, 0)) goto lab4; /* grouping v, line 47 */ - { int ret = slice_from_s(z, 1, s_6); /* <-, line 47 */ + z->ket = z->c; + if (in_grouping(z, g_v, 97, 249, 0)) goto lab4; + { int ret = slice_from_s(z, 1, s_6); if (ret < 0) return ret; } goto lab3; lab4: z->c = c5; - if (z->c == z->l || z->p[z->c] != 'i') goto lab2; /* literal, line 48 */ + if (z->c == z->l || z->p[z->c] != 'i') goto lab2; z->c++; - z->ket = z->c; /* ], line 48 */ - if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 48 */ - { int ret = slice_from_s(z, 1, s_7); /* <-, line 48 */ + z->ket = z->c; + if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; + { int ret = slice_from_s(z, 1, s_7); if (ret < 0) return ret; } } @@ -573,7 +571,7 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ lab2: z->c = c4; if (z->c >= z->l) goto lab1; - z->c++; /* goto, line 46 */ + z->c++; } continue; lab1: @@ -583,16 +581,16 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $pV = , line 54 */ - z->I[1] = z->l; /* $p1 = , line 55 */ - z->I[2] = z->l; /* $p2 = , line 56 */ - { int c1 = z->c; /* do, line 58 */ - { int c2 = z->c; /* or, line 60 */ - if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 59 */ - { int c3 = z->c; /* or, line 59 */ - if (out_grouping(z, g_v, 97, 249, 0)) goto lab4; /* non v, line 59 */ - { /* gopast */ /* grouping v, line 59 */ +static int r_mark_regions(struct SN_env * z) { + z->I[2] = z->l; + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int c2 = z->c; + if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; + { int c3 = z->c; + if (out_grouping(z, g_v, 97, 249, 0)) goto lab4; + { int ret = out_grouping(z, g_v, 97, 249, 1); if (ret < 0) goto lab4; z->c += ret; @@ -600,8 +598,8 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab3; lab4: z->c = c3; - if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 59 */ - { /* gopast */ /* non v, line 59 */ + if (in_grouping(z, g_v, 97, 249, 0)) goto lab2; + { int ret = in_grouping(z, g_v, 97, 249, 1); if (ret < 0) goto lab2; z->c += ret; @@ -611,10 +609,10 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab1; lab2: z->c = c2; - if (out_grouping(z, g_v, 97, 249, 0)) goto lab0; /* non v, line 61 */ - { int c4 = z->c; /* or, line 61 */ - if (out_grouping(z, g_v, 97, 249, 0)) goto lab6; /* non v, line 61 */ - { /* gopast */ /* grouping v, line 61 */ + if (out_grouping(z, g_v, 97, 249, 0)) goto lab0; + { int c4 = z->c; + if (out_grouping(z, g_v, 97, 249, 0)) goto lab6; + { int ret = out_grouping(z, g_v, 97, 249, 1); if (ret < 0) goto lab6; z->c += ret; @@ -622,71 +620,70 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab5; lab6: z->c = c4; - if (in_grouping(z, g_v, 97, 249, 0)) goto lab0; /* grouping v, line 61 */ + if (in_grouping(z, g_v, 97, 249, 0)) goto lab0; if (z->c >= z->l) goto lab0; - z->c++; /* next, line 61 */ + z->c++; } lab5: ; } lab1: - z->I[0] = z->c; /* setmark pV, line 62 */ + z->I[2] = z->c; lab0: z->c = c1; } - { int c5 = z->c; /* do, line 64 */ - { /* gopast */ /* grouping v, line 65 */ + { int c5 = z->c; + { int ret = out_grouping(z, g_v, 97, 249, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 65 */ + { int ret = in_grouping(z, g_v, 97, 249, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[1] = z->c; /* setmark p1, line 65 */ - { /* gopast */ /* grouping v, line 66 */ + z->I[1] = z->c; + { int ret = out_grouping(z, g_v, 97, 249, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 66 */ + { int ret = in_grouping(z, g_v, 97, 249, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[2] = z->c; /* setmark p2, line 66 */ + z->I[0] = z->c; lab7: z->c = c5; } return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ +static int r_postlude(struct SN_env * z) { int among_var; -/* repeat, line 70 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 72 */ - if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else /* substring, line 72 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else among_var = find_among(z, a_1, 3); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 72 */ - switch (among_var) { /* among, line 72 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_8); /* <-, line 73 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_9); /* <-, line 74 */ + { int ret = slice_from_s(z, 1, s_9); if (ret < 0) return ret; } break; case 3: if (z->c >= z->l) goto lab0; - z->c++; /* next, line 75 */ + z->c++; break; } continue; @@ -697,41 +694,41 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_RV(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 82 */ +static int r_RV(struct SN_env * z) { + if (!(z->I[2] <= z->c)) return 0; return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 83 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 84 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */ +static int r_attached_pronoun(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 87 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 87 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_2, 37))) return 0; - z->bra = z->c; /* ], line 87 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0; /* among, line 97 */ + z->bra = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0; among_var = find_among_b(z, a_3, 5); if (!(among_var)) return 0; - { int ret = r_RV(z); /* call RV, line 97 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 97 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 98 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_10); /* <-, line 99 */ + { int ret = slice_from_s(z, 1, s_10); if (ret < 0) return ret; } break; @@ -739,37 +736,37 @@ static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ +static int r_standard_suffix(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 104 */ - among_var = find_among_b(z, a_6, 51); /* substring, line 104 */ + z->ket = z->c; + among_var = find_among_b(z, a_6, 51); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 104 */ - switch (among_var) { /* among, line 104 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 111 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 111 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 113 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 113 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m1 = z->l - z->c; (void)m1; /* try, line 114 */ - z->ket = z->c; /* [, line 114 */ - if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m1; goto lab0; } /* literal, line 114 */ - z->bra = z->c; /* ], line 114 */ - { int ret = r_R2(z); /* call R2, line 114 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m1; goto lab0; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m1; goto lab0; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 114 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: @@ -777,67 +774,67 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 3: - { int ret = r_R2(z); /* call R2, line 117 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_12); /* <-, line 117 */ + { int ret = slice_from_s(z, 3, s_12); if (ret < 0) return ret; } break; case 4: - { int ret = r_R2(z); /* call R2, line 119 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 1, s_13); /* <-, line 119 */ + { int ret = slice_from_s(z, 1, s_13); if (ret < 0) return ret; } break; case 5: - { int ret = r_R2(z); /* call R2, line 121 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 4, s_14); /* <-, line 121 */ + { int ret = slice_from_s(z, 4, s_14); if (ret < 0) return ret; } break; case 6: - { int ret = r_RV(z); /* call RV, line 123 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 123 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 7: - { int ret = r_R1(z); /* call R1, line 125 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 125 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m2 = z->l - z->c; (void)m2; /* try, line 126 */ - z->ket = z->c; /* [, line 127 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; } /* substring, line 127 */ + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; } among_var = find_among_b(z, a_4, 4); if (!(among_var)) { z->c = z->l - m2; goto lab1; } - z->bra = z->c; /* ], line 127 */ - { int ret = r_R2(z); /* call R2, line 127 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m2; goto lab1; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 127 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - switch (among_var) { /* among, line 127 */ + switch (among_var) { case 1: - z->ket = z->c; /* [, line 128 */ - if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m2; goto lab1; } /* literal, line 128 */ - z->bra = z->c; /* ], line 128 */ - { int ret = r_R2(z); /* call R2, line 128 */ + z->ket = z->c; + if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m2; goto lab1; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m2; goto lab1; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 128 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -847,22 +844,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 8: - { int ret = r_R2(z); /* call R2, line 134 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 134 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m3 = z->l - z->c; (void)m3; /* try, line 135 */ - z->ket = z->c; /* [, line 136 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; } /* substring, line 136 */ + { int m3 = z->l - z->c; (void)m3; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; } if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m3; goto lab2; } - z->bra = z->c; /* ], line 136 */ - { int ret = r_R2(z); /* call R2, line 137 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m3; goto lab2; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 137 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab2: @@ -870,31 +867,31 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 9: - { int ret = r_R2(z); /* call R2, line 142 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 142 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m4 = z->l - z->c; (void)m4; /* try, line 143 */ - z->ket = z->c; /* [, line 143 */ - if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m4; goto lab3; } /* literal, line 143 */ - z->bra = z->c; /* ], line 143 */ - { int ret = r_R2(z); /* call R2, line 143 */ + { int m4 = z->l - z->c; (void)m4; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m4; goto lab3; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m4; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 143 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 143 */ - if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m4; goto lab3; } /* literal, line 143 */ - z->bra = z->c; /* ], line 143 */ - { int ret = r_R2(z); /* call R2, line 143 */ + z->ket = z->c; + if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m4; goto lab3; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m4; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 143 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab3: @@ -905,15 +902,15 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ +static int r_verb_suffix(struct SN_env * z) { - { int mlimit1; /* setlimit, line 148 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 149 */ - if (!(find_among_b(z, a_7, 87))) { z->lb = mlimit1; return 0; } /* substring, line 149 */ - z->bra = z->c; /* ], line 149 */ - { int ret = slice_del(z); /* delete, line 163 */ + { int mlimit1; + if (z->c < z->I[2]) return 0; + mlimit1 = z->lb; z->lb = z->I[2]; + z->ket = z->c; + if (!(find_among_b(z, a_7, 87))) { z->lb = mlimit1; return 0; } + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } z->lb = mlimit1; @@ -921,43 +918,43 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */ - { int m1 = z->l - z->c; (void)m1; /* try, line 171 */ - z->ket = z->c; /* [, line 172 */ - if (in_grouping_b(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m1; goto lab0; } /* grouping AEIO, line 172 */ - z->bra = z->c; /* ], line 172 */ - { int ret = r_RV(z); /* call RV, line 172 */ +static int r_vowel_suffix(struct SN_env * z) { + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (in_grouping_b(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m1; goto lab0; } + z->bra = z->c; + { int ret = r_RV(z); if (ret == 0) { z->c = z->l - m1; goto lab0; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 172 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 173 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'i') { z->c = z->l - m1; goto lab0; } /* literal, line 173 */ + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'i') { z->c = z->l - m1; goto lab0; } z->c--; - z->bra = z->c; /* ], line 173 */ - { int ret = r_RV(z); /* call RV, line 173 */ + z->bra = z->c; + { int ret = r_RV(z); if (ret == 0) { z->c = z->l - m1; goto lab0; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 173 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: ; } - { int m2 = z->l - z->c; (void)m2; /* try, line 175 */ - z->ket = z->c; /* [, line 176 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'h') { z->c = z->l - m2; goto lab1; } /* literal, line 176 */ + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'h') { z->c = z->l - m2; goto lab1; } z->c--; - z->bra = z->c; /* ], line 176 */ - if (in_grouping_b(z, g_CG, 99, 103, 0)) { z->c = z->l - m2; goto lab1; } /* grouping CG, line 176 */ - { int ret = r_RV(z); /* call RV, line 176 */ + z->bra = z->c; + if (in_grouping_b(z, g_CG, 99, 103, 0)) { z->c = z->l - m2; goto lab1; } + { int ret = r_RV(z); if (ret == 0) { z->c = z->l - m2; goto lab1; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 176 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab1: @@ -966,35 +963,35 @@ static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -extern int italian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 182 */ - { int ret = r_prelude(z); /* call prelude, line 182 */ +extern int italian_ISO_8859_1_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_prelude(z); if (ret < 0) return ret; } z->c = c1; } - /* do, line 183 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 183 */ + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 184 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 185 */ - { int ret = r_attached_pronoun(z); /* call attached_pronoun, line 185 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_attached_pronoun(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 186 */ - { int m4 = z->l - z->c; (void)m4; /* or, line 186 */ - { int ret = r_standard_suffix(z); /* call standard_suffix, line 186 */ + { int m3 = z->l - z->c; (void)m3; + { int m4 = z->l - z->c; (void)m4; + { int ret = r_standard_suffix(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } goto lab1; lab2: z->c = z->l - m4; - { int ret = r_verb_suffix(z); /* call verb_suffix, line 186 */ + { int ret = r_verb_suffix(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -1003,15 +1000,15 @@ extern int italian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ lab0: z->c = z->l - m3; } - { int m5 = z->l - z->c; (void)m5; /* do, line 187 */ - { int ret = r_vowel_suffix(z); /* call vowel_suffix, line 187 */ + { int m5 = z->l - z->c; (void)m5; + { int ret = r_vowel_suffix(z); if (ret < 0) return ret; } z->c = z->l - m5; } z->c = z->lb; - { int c6 = z->c; /* do, line 189 */ - { int ret = r_postlude(z); /* call postlude, line 189 */ + { int c6 = z->c; + { int ret = r_postlude(z); if (ret < 0) return ret; } z->c = c6; @@ -1019,7 +1016,7 @@ extern int italian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * italian_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); } +extern struct SN_env * italian_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); } extern void italian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c index a70f6f5aa200a..59f7579f1d70e 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_norwegian.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -57,35 +57,35 @@ static const symbol s_0_28[3] = { 'a', 's', 't' }; static const struct among a_0[29] = { -/* 0 */ { 1, s_0_0, -1, 1, 0}, -/* 1 */ { 1, s_0_1, -1, 1, 0}, -/* 2 */ { 3, s_0_2, 1, 1, 0}, -/* 3 */ { 4, s_0_3, 1, 1, 0}, -/* 4 */ { 4, s_0_4, 1, 1, 0}, -/* 5 */ { 3, s_0_5, 1, 1, 0}, -/* 6 */ { 3, s_0_6, 1, 1, 0}, -/* 7 */ { 6, s_0_7, 6, 1, 0}, -/* 8 */ { 4, s_0_8, 1, 3, 0}, -/* 9 */ { 2, s_0_9, -1, 1, 0}, -/* 10 */ { 5, s_0_10, 9, 1, 0}, -/* 11 */ { 2, s_0_11, -1, 1, 0}, -/* 12 */ { 2, s_0_12, -1, 1, 0}, -/* 13 */ { 5, s_0_13, 12, 1, 0}, -/* 14 */ { 1, s_0_14, -1, 2, 0}, -/* 15 */ { 2, s_0_15, 14, 1, 0}, -/* 16 */ { 2, s_0_16, 14, 1, 0}, -/* 17 */ { 4, s_0_17, 16, 1, 0}, -/* 18 */ { 5, s_0_18, 16, 1, 0}, -/* 19 */ { 4, s_0_19, 16, 1, 0}, -/* 20 */ { 7, s_0_20, 19, 1, 0}, -/* 21 */ { 3, s_0_21, 14, 1, 0}, -/* 22 */ { 6, s_0_22, 21, 1, 0}, -/* 23 */ { 3, s_0_23, 14, 1, 0}, -/* 24 */ { 3, s_0_24, 14, 1, 0}, -/* 25 */ { 2, s_0_25, -1, 1, 0}, -/* 26 */ { 3, s_0_26, 25, 1, 0}, -/* 27 */ { 3, s_0_27, -1, 3, 0}, -/* 28 */ { 3, s_0_28, -1, 1, 0} +{ 1, s_0_0, -1, 1, 0}, +{ 1, s_0_1, -1, 1, 0}, +{ 3, s_0_2, 1, 1, 0}, +{ 4, s_0_3, 1, 1, 0}, +{ 4, s_0_4, 1, 1, 0}, +{ 3, s_0_5, 1, 1, 0}, +{ 3, s_0_6, 1, 1, 0}, +{ 6, s_0_7, 6, 1, 0}, +{ 4, s_0_8, 1, 3, 0}, +{ 2, s_0_9, -1, 1, 0}, +{ 5, s_0_10, 9, 1, 0}, +{ 2, s_0_11, -1, 1, 0}, +{ 2, s_0_12, -1, 1, 0}, +{ 5, s_0_13, 12, 1, 0}, +{ 1, s_0_14, -1, 2, 0}, +{ 2, s_0_15, 14, 1, 0}, +{ 2, s_0_16, 14, 1, 0}, +{ 4, s_0_17, 16, 1, 0}, +{ 5, s_0_18, 16, 1, 0}, +{ 4, s_0_19, 16, 1, 0}, +{ 7, s_0_20, 19, 1, 0}, +{ 3, s_0_21, 14, 1, 0}, +{ 6, s_0_22, 21, 1, 0}, +{ 3, s_0_23, 14, 1, 0}, +{ 3, s_0_24, 14, 1, 0}, +{ 2, s_0_25, -1, 1, 0}, +{ 3, s_0_26, 25, 1, 0}, +{ 3, s_0_27, -1, 3, 0}, +{ 3, s_0_28, -1, 1, 0} }; static const symbol s_1_0[2] = { 'd', 't' }; @@ -93,8 +93,8 @@ static const symbol s_1_1[2] = { 'v', 't' }; static const struct among a_1[2] = { -/* 0 */ { 2, s_1_0, -1, -1, 0}, -/* 1 */ { 2, s_1_1, -1, -1, 0} +{ 2, s_1_0, -1, -1, 0}, +{ 2, s_1_1, -1, -1, 0} }; static const symbol s_2_0[3] = { 'l', 'e', 'g' }; @@ -111,17 +111,17 @@ static const symbol s_2_10[7] = { 'h', 'e', 't', 's', 'l', 'o', 'v' }; static const struct among a_2[11] = { -/* 0 */ { 3, s_2_0, -1, 1, 0}, -/* 1 */ { 4, s_2_1, 0, 1, 0}, -/* 2 */ { 2, s_2_2, -1, 1, 0}, -/* 3 */ { 3, s_2_3, 2, 1, 0}, -/* 4 */ { 3, s_2_4, 2, 1, 0}, -/* 5 */ { 4, s_2_5, 4, 1, 0}, -/* 6 */ { 3, s_2_6, -1, 1, 0}, -/* 7 */ { 3, s_2_7, -1, 1, 0}, -/* 8 */ { 4, s_2_8, 7, 1, 0}, -/* 9 */ { 4, s_2_9, 7, 1, 0}, -/* 10 */ { 7, s_2_10, 9, 1, 0} +{ 3, s_2_0, -1, 1, 0}, +{ 4, s_2_1, 0, 1, 0}, +{ 2, s_2_2, -1, 1, 0}, +{ 3, s_2_3, 2, 1, 0}, +{ 3, s_2_4, 2, 1, 0}, +{ 4, s_2_5, 4, 1, 0}, +{ 3, s_2_6, -1, 1, 0}, +{ 3, s_2_7, -1, 1, 0}, +{ 4, s_2_8, 7, 1, 0}, +{ 4, s_2_9, 7, 1, 0}, +{ 7, s_2_10, 9, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 }; @@ -130,66 +130,64 @@ static const unsigned char g_s_ending[] = { 119, 125, 149, 1 }; static const symbol s_0[] = { 'e', 'r' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 28 */ - { int c_test1 = z->c; /* test, line 30 */ - { int ret = z->c + 3; /* hop, line 30 */ - if (0 > ret || ret > z->l) return 0; - z->c = ret; - } - z->I[1] = z->c; /* setmark x, line 30 */ +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + { int c_test1 = z->c; +z->c = z->c + 3; + if (z->c > z->l) return 0; + z->I[0] = z->c; z->c = c_test1; } - if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 31 */ - { /* gopast */ /* non v, line 31 */ + if (out_grouping(z, g_v, 97, 248, 1) < 0) return 0; + { int ret = in_grouping(z, g_v, 97, 248, 1); if (ret < 0) return 0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 31 */ - /* try, line 32 */ - if (!(z->I[0] < z->I[1])) goto lab0; /* $( < ), line 32 */ - z->I[0] = z->I[1]; /* $p1 = , line 32 */ + z->I[1] = z->c; + + if (!(z->I[1] < z->I[0])) goto lab0; + z->I[1] = z->I[0]; lab0: return 1; } -static int r_main_suffix(struct SN_env * z) { /* backwardmode */ +static int r_main_suffix(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 38 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 38 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 38 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } among_var = find_among_b(z, a_0, 29); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 38 */ + z->bra = z->c; z->lb = mlimit1; } - switch (among_var) { /* among, line 39 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 44 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int m2 = z->l - z->c; (void)m2; /* or, line 46 */ - if (in_grouping_b(z, g_s_ending, 98, 122, 0)) goto lab1; /* grouping s_ending, line 46 */ + { int m2 = z->l - z->c; (void)m2; + if (in_grouping_b(z, g_s_ending, 98, 122, 0)) goto lab1; goto lab0; lab1: z->c = z->l - m2; - if (z->c <= z->lb || z->p[z->c - 1] != 'k') return 0; /* literal, line 46 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'k') return 0; z->c--; - if (out_grouping_b(z, g_v, 97, 248, 0)) return 0; /* non v, line 46 */ + if (out_grouping_b(z, g_v, 97, 248, 0)) return 0; } lab0: - { int ret = slice_del(z); /* delete, line 46 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 2, s_0); /* <-, line 48 */ + { int ret = slice_from_s(z, 2, s_0); if (ret < 0) return ret; } break; @@ -197,69 +195,69 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_consonant_pair(struct SN_env * z) { /* backwardmode */ - { int m_test1 = z->l - z->c; /* test, line 53 */ +static int r_consonant_pair(struct SN_env * z) { + { int m_test1 = z->l - z->c; - { int mlimit2; /* setlimit, line 54 */ - if (z->c < z->I[0]) return 0; - mlimit2 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 54 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; } /* substring, line 54 */ + { int mlimit2; + if (z->c < z->I[1]) return 0; + mlimit2 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; } if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit2; return 0; } - z->bra = z->c; /* ], line 54 */ + z->bra = z->c; z->lb = mlimit2; } z->c = z->l - m_test1; } if (z->c <= z->lb) return 0; - z->c--; /* next, line 59 */ - z->bra = z->c; /* ], line 59 */ - { int ret = slice_del(z); /* delete, line 59 */ + z->c--; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_other_suffix(struct SN_env * z) { /* backwardmode */ +static int r_other_suffix(struct SN_env * z) { - { int mlimit1; /* setlimit, line 63 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 63 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 63 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } if (!(find_among_b(z, a_2, 11))) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 63 */ + z->bra = z->c; z->lb = mlimit1; } - { int ret = slice_del(z); /* delete, line 67 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -extern int norwegian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 74 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 74 */ +extern int norwegian_ISO_8859_1_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_mark_regions(z); if (ret < 0) return ret; } z->c = c1; } - z->lb = z->c; z->c = z->l; /* backwards, line 75 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 76 */ - { int ret = r_main_suffix(z); /* call main_suffix, line 76 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_main_suffix(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 77 */ - { int ret = r_consonant_pair(z); /* call consonant_pair, line 77 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_consonant_pair(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 78 */ - { int ret = r_other_suffix(z); /* call other_suffix, line 78 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_other_suffix(z); if (ret < 0) return ret; } z->c = z->l - m4; @@ -268,7 +266,7 @@ extern int norwegian_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * norwegian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); } +extern struct SN_env * norwegian_ISO_8859_1_create_env(void) { return SN_create_env(0, 2); } extern void norwegian_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c index 4666afb725f20..c698662d42ce4 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_porter.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -39,10 +39,10 @@ static const symbol s_0_3[2] = { 's', 's' }; static const struct among a_0[4] = { -/* 0 */ { 1, s_0_0, -1, 3, 0}, -/* 1 */ { 3, s_0_1, 0, 2, 0}, -/* 2 */ { 4, s_0_2, 0, 1, 0}, -/* 3 */ { 2, s_0_3, 0, -1, 0} +{ 1, s_0_0, -1, 3, 0}, +{ 3, s_0_1, 0, 2, 0}, +{ 4, s_0_2, 0, 1, 0}, +{ 2, s_0_3, 0, -1, 0} }; static const symbol s_1_1[2] = { 'b', 'b' }; @@ -60,19 +60,19 @@ static const symbol s_1_12[2] = { 'i', 'z' }; static const struct among a_1[13] = { -/* 0 */ { 0, 0, -1, 3, 0}, -/* 1 */ { 2, s_1_1, 0, 2, 0}, -/* 2 */ { 2, s_1_2, 0, 2, 0}, -/* 3 */ { 2, s_1_3, 0, 2, 0}, -/* 4 */ { 2, s_1_4, 0, 2, 0}, -/* 5 */ { 2, s_1_5, 0, 1, 0}, -/* 6 */ { 2, s_1_6, 0, 2, 0}, -/* 7 */ { 2, s_1_7, 0, 2, 0}, -/* 8 */ { 2, s_1_8, 0, 2, 0}, -/* 9 */ { 2, s_1_9, 0, 2, 0}, -/* 10 */ { 2, s_1_10, 0, 1, 0}, -/* 11 */ { 2, s_1_11, 0, 2, 0}, -/* 12 */ { 2, s_1_12, 0, 1, 0} +{ 0, 0, -1, 3, 0}, +{ 2, s_1_1, 0, 2, 0}, +{ 2, s_1_2, 0, 2, 0}, +{ 2, s_1_3, 0, 2, 0}, +{ 2, s_1_4, 0, 2, 0}, +{ 2, s_1_5, 0, 1, 0}, +{ 2, s_1_6, 0, 2, 0}, +{ 2, s_1_7, 0, 2, 0}, +{ 2, s_1_8, 0, 2, 0}, +{ 2, s_1_9, 0, 2, 0}, +{ 2, s_1_10, 0, 1, 0}, +{ 2, s_1_11, 0, 2, 0}, +{ 2, s_1_12, 0, 1, 0} }; static const symbol s_2_0[2] = { 'e', 'd' }; @@ -81,9 +81,9 @@ static const symbol s_2_2[3] = { 'i', 'n', 'g' }; static const struct among a_2[3] = { -/* 0 */ { 2, s_2_0, -1, 2, 0}, -/* 1 */ { 3, s_2_1, 0, 1, 0}, -/* 2 */ { 3, s_2_2, -1, 2, 0} +{ 2, s_2_0, -1, 2, 0}, +{ 3, s_2_1, 0, 1, 0}, +{ 3, s_2_2, -1, 2, 0} }; static const symbol s_3_0[4] = { 'a', 'n', 'c', 'i' }; @@ -109,26 +109,26 @@ static const symbol s_3_19[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' }; static const struct among a_3[20] = { -/* 0 */ { 4, s_3_0, -1, 3, 0}, -/* 1 */ { 4, s_3_1, -1, 2, 0}, -/* 2 */ { 4, s_3_2, -1, 4, 0}, -/* 3 */ { 3, s_3_3, -1, 6, 0}, -/* 4 */ { 4, s_3_4, -1, 9, 0}, -/* 5 */ { 5, s_3_5, -1, 11, 0}, -/* 6 */ { 5, s_3_6, -1, 5, 0}, -/* 7 */ { 5, s_3_7, -1, 9, 0}, -/* 8 */ { 6, s_3_8, -1, 13, 0}, -/* 9 */ { 5, s_3_9, -1, 12, 0}, -/* 10 */ { 6, s_3_10, -1, 1, 0}, -/* 11 */ { 7, s_3_11, 10, 8, 0}, -/* 12 */ { 5, s_3_12, -1, 9, 0}, -/* 13 */ { 5, s_3_13, -1, 8, 0}, -/* 14 */ { 7, s_3_14, 13, 7, 0}, -/* 15 */ { 4, s_3_15, -1, 7, 0}, -/* 16 */ { 4, s_3_16, -1, 8, 0}, -/* 17 */ { 7, s_3_17, -1, 12, 0}, -/* 18 */ { 7, s_3_18, -1, 10, 0}, -/* 19 */ { 7, s_3_19, -1, 11, 0} +{ 4, s_3_0, -1, 3, 0}, +{ 4, s_3_1, -1, 2, 0}, +{ 4, s_3_2, -1, 4, 0}, +{ 3, s_3_3, -1, 6, 0}, +{ 4, s_3_4, -1, 9, 0}, +{ 5, s_3_5, -1, 11, 0}, +{ 5, s_3_6, -1, 5, 0}, +{ 5, s_3_7, -1, 9, 0}, +{ 6, s_3_8, -1, 13, 0}, +{ 5, s_3_9, -1, 12, 0}, +{ 6, s_3_10, -1, 1, 0}, +{ 7, s_3_11, 10, 8, 0}, +{ 5, s_3_12, -1, 9, 0}, +{ 5, s_3_13, -1, 8, 0}, +{ 7, s_3_14, 13, 7, 0}, +{ 4, s_3_15, -1, 7, 0}, +{ 4, s_3_16, -1, 8, 0}, +{ 7, s_3_17, -1, 12, 0}, +{ 7, s_3_18, -1, 10, 0}, +{ 7, s_3_19, -1, 11, 0} }; static const symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' }; @@ -141,13 +141,13 @@ static const symbol s_4_6[4] = { 'n', 'e', 's', 's' }; static const struct among a_4[7] = { -/* 0 */ { 5, s_4_0, -1, 2, 0}, -/* 1 */ { 5, s_4_1, -1, 3, 0}, -/* 2 */ { 5, s_4_2, -1, 1, 0}, -/* 3 */ { 5, s_4_3, -1, 2, 0}, -/* 4 */ { 4, s_4_4, -1, 2, 0}, -/* 5 */ { 3, s_4_5, -1, 3, 0}, -/* 6 */ { 4, s_4_6, -1, 3, 0} +{ 5, s_4_0, -1, 2, 0}, +{ 5, s_4_1, -1, 3, 0}, +{ 5, s_4_2, -1, 1, 0}, +{ 5, s_4_3, -1, 2, 0}, +{ 4, s_4_4, -1, 2, 0}, +{ 3, s_4_5, -1, 3, 0}, +{ 4, s_4_6, -1, 3, 0} }; static const symbol s_5_0[2] = { 'i', 'c' }; @@ -172,25 +172,25 @@ static const symbol s_5_18[2] = { 'o', 'u' }; static const struct among a_5[19] = { -/* 0 */ { 2, s_5_0, -1, 1, 0}, -/* 1 */ { 4, s_5_1, -1, 1, 0}, -/* 2 */ { 4, s_5_2, -1, 1, 0}, -/* 3 */ { 4, s_5_3, -1, 1, 0}, -/* 4 */ { 4, s_5_4, -1, 1, 0}, -/* 5 */ { 3, s_5_5, -1, 1, 0}, -/* 6 */ { 3, s_5_6, -1, 1, 0}, -/* 7 */ { 3, s_5_7, -1, 1, 0}, -/* 8 */ { 3, s_5_8, -1, 1, 0}, -/* 9 */ { 2, s_5_9, -1, 1, 0}, -/* 10 */ { 3, s_5_10, -1, 1, 0}, -/* 11 */ { 3, s_5_11, -1, 2, 0}, -/* 12 */ { 2, s_5_12, -1, 1, 0}, -/* 13 */ { 3, s_5_13, -1, 1, 0}, -/* 14 */ { 3, s_5_14, -1, 1, 0}, -/* 15 */ { 3, s_5_15, -1, 1, 0}, -/* 16 */ { 4, s_5_16, 15, 1, 0}, -/* 17 */ { 5, s_5_17, 16, 1, 0}, -/* 18 */ { 2, s_5_18, -1, 1, 0} +{ 2, s_5_0, -1, 1, 0}, +{ 4, s_5_1, -1, 1, 0}, +{ 4, s_5_2, -1, 1, 0}, +{ 4, s_5_3, -1, 1, 0}, +{ 4, s_5_4, -1, 1, 0}, +{ 3, s_5_5, -1, 1, 0}, +{ 3, s_5_6, -1, 1, 0}, +{ 3, s_5_7, -1, 1, 0}, +{ 3, s_5_8, -1, 1, 0}, +{ 2, s_5_9, -1, 1, 0}, +{ 3, s_5_10, -1, 1, 0}, +{ 3, s_5_11, -1, 2, 0}, +{ 2, s_5_12, -1, 1, 0}, +{ 3, s_5_13, -1, 1, 0}, +{ 3, s_5_14, -1, 1, 0}, +{ 3, s_5_15, -1, 1, 0}, +{ 4, s_5_16, 15, 1, 0}, +{ 5, s_5_17, 16, 1, 0}, +{ 2, s_5_18, -1, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 1 }; @@ -222,43 +222,43 @@ static const symbol s_21[] = { 'Y' }; static const symbol s_22[] = { 'Y' }; static const symbol s_23[] = { 'y' }; -static int r_shortv(struct SN_env * z) { /* backwardmode */ - if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) return 0; /* non v_WXY, line 19 */ - if (in_grouping_b(z, g_v, 97, 121, 0)) return 0; /* grouping v, line 19 */ - if (out_grouping_b(z, g_v, 97, 121, 0)) return 0; /* non v, line 19 */ +static int r_shortv(struct SN_env * z) { + if (out_grouping_b(z, g_v_WXY, 89, 121, 0)) return 0; + if (in_grouping_b(z, g_v, 97, 121, 0)) return 0; + if (out_grouping_b(z, g_v, 97, 121, 0)) return 0; return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 21 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 22 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_Step_1a(struct SN_env * z) { /* backwardmode */ +static int r_Step_1a(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 25 */ - if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0; /* substring, line 25 */ + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0; among_var = find_among_b(z, a_0, 4); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 25 */ - switch (among_var) { /* among, line 25 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 2, s_0); /* <-, line 26 */ + { int ret = slice_from_s(z, 2, s_0); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_1); /* <-, line 27 */ + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } break; case 3: - { int ret = slice_del(z); /* delete, line 29 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -266,70 +266,70 @@ static int r_Step_1a(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_1b(struct SN_env * z) { /* backwardmode */ +static int r_Step_1b(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 34 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; /* substring, line 34 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; among_var = find_among_b(z, a_2, 3); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 34 */ - switch (among_var) { /* among, line 34 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R1(z); /* call R1, line 35 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 2, s_2); /* <-, line 35 */ + { int ret = slice_from_s(z, 2, s_2); if (ret < 0) return ret; } break; case 2: - { int m_test1 = z->l - z->c; /* test, line 38 */ - { /* gopast */ /* grouping v, line 38 */ + { int m_test1 = z->l - z->c; + { int ret = out_grouping_b(z, g_v, 97, 121, 1); if (ret < 0) return 0; z->c -= ret; } z->c = z->l - m_test1; } - { int ret = slice_del(z); /* delete, line 38 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m_test2 = z->l - z->c; /* test, line 39 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else /* substring, line 39 */ + { int m_test2 = z->l - z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else among_var = find_among_b(z, a_1, 13); if (!(among_var)) return 0; z->c = z->l - m_test2; } - switch (among_var) { /* among, line 39 */ + switch (among_var) { case 1: { int ret; { int saved_c = z->c; - ret = insert_s(z, z->c, z->c, 1, s_3); /* <+, line 41 */ + ret = insert_s(z, z->c, z->c, 1, s_3); z->c = saved_c; } if (ret < 0) return ret; } break; case 2: - z->ket = z->c; /* [, line 44 */ + z->ket = z->c; if (z->c <= z->lb) return 0; - z->c--; /* next, line 44 */ - z->bra = z->c; /* ], line 44 */ - { int ret = slice_del(z); /* delete, line 44 */ + z->c--; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - if (z->c != z->I[0]) return 0; /* atmark, line 45 */ - { int m_test3 = z->l - z->c; /* test, line 45 */ - { int ret = r_shortv(z); /* call shortv, line 45 */ + if (z->c != z->I[1]) return 0; + { int m_test3 = z->l - z->c; + { int ret = r_shortv(z); if (ret <= 0) return ret; } z->c = z->l - m_test3; } { int ret; { int saved_c = z->c; - ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */ + ret = insert_s(z, z->c, z->c, 1, s_4); z->c = saved_c; } if (ret < 0) return ret; @@ -341,103 +341,103 @@ static int r_Step_1b(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_1c(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 52 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 52 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 52 */ +static int r_Step_1c(struct SN_env * z) { + z->ket = z->c; + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; z->c--; goto lab0; lab1: z->c = z->l - m1; - if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 52 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; z->c--; } lab0: - z->bra = z->c; /* ], line 52 */ - { /* gopast */ /* grouping v, line 53 */ + z->bra = z->c; + { int ret = out_grouping_b(z, g_v, 97, 121, 1); if (ret < 0) return 0; z->c -= ret; } - { int ret = slice_from_s(z, 1, s_5); /* <-, line 54 */ + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } return 1; } -static int r_Step_2(struct SN_env * z) { /* backwardmode */ +static int r_Step_2(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 58 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 58 */ + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_3, 20); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 58 */ - { int ret = r_R1(z); /* call R1, line 58 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 58 */ + switch (among_var) { case 1: - { int ret = slice_from_s(z, 4, s_6); /* <-, line 59 */ + { int ret = slice_from_s(z, 4, s_6); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 4, s_7); /* <-, line 60 */ + { int ret = slice_from_s(z, 4, s_7); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 4, s_8); /* <-, line 61 */ + { int ret = slice_from_s(z, 4, s_8); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 4, s_9); /* <-, line 62 */ + { int ret = slice_from_s(z, 4, s_9); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 3, s_10); /* <-, line 63 */ + { int ret = slice_from_s(z, 3, s_10); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 1, s_11); /* <-, line 64 */ + { int ret = slice_from_s(z, 1, s_11); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 3, s_12); /* <-, line 66 */ + { int ret = slice_from_s(z, 3, s_12); if (ret < 0) return ret; } break; case 8: - { int ret = slice_from_s(z, 3, s_13); /* <-, line 68 */ + { int ret = slice_from_s(z, 3, s_13); if (ret < 0) return ret; } break; case 9: - { int ret = slice_from_s(z, 2, s_14); /* <-, line 69 */ + { int ret = slice_from_s(z, 2, s_14); if (ret < 0) return ret; } break; case 10: - { int ret = slice_from_s(z, 3, s_15); /* <-, line 72 */ + { int ret = slice_from_s(z, 3, s_15); if (ret < 0) return ret; } break; case 11: - { int ret = slice_from_s(z, 3, s_16); /* <-, line 74 */ + { int ret = slice_from_s(z, 3, s_16); if (ret < 0) return ret; } break; case 12: - { int ret = slice_from_s(z, 3, s_17); /* <-, line 76 */ + { int ret = slice_from_s(z, 3, s_17); if (ret < 0) return ret; } break; case 13: - { int ret = slice_from_s(z, 3, s_18); /* <-, line 77 */ + { int ret = slice_from_s(z, 3, s_18); if (ret < 0) return ret; } break; @@ -445,29 +445,29 @@ static int r_Step_2(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_3(struct SN_env * z) { /* backwardmode */ +static int r_Step_3(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 82 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 82 */ + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_4, 7); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 82 */ - { int ret = r_R1(z); /* call R1, line 82 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 82 */ + switch (among_var) { case 1: - { int ret = slice_from_s(z, 2, s_19); /* <-, line 83 */ + { int ret = slice_from_s(z, 2, s_19); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 2, s_20); /* <-, line 85 */ + { int ret = slice_from_s(z, 2, s_20); if (ret < 0) return ret; } break; case 3: - { int ret = slice_del(z); /* delete, line 87 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -475,34 +475,34 @@ static int r_Step_3(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_4(struct SN_env * z) { /* backwardmode */ +static int r_Step_4(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 92 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 92 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_5, 19); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 92 */ - { int ret = r_R2(z); /* call R2, line 92 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 92 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 95 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int m1 = z->l - z->c; (void)m1; /* or, line 96 */ - if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 96 */ + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; z->c--; goto lab0; lab1: z->c = z->l - m1; - if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 96 */ + if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; z->c--; } lab0: - { int ret = slice_del(z); /* delete, line 96 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -510,24 +510,24 @@ static int r_Step_4(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_5a(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 101 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 101 */ +static int r_Step_5a(struct SN_env * z) { + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; z->c--; - z->bra = z->c; /* ], line 101 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 102 */ - { int ret = r_R2(z); /* call R2, line 102 */ + z->bra = z->c; + { int m1 = z->l - z->c; (void)m1; + { int ret = r_R2(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m1; - { int ret = r_R1(z); /* call R1, line 102 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int m2 = z->l - z->c; (void)m2; /* not, line 102 */ - { int ret = r_shortv(z); /* call shortv, line 102 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_shortv(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } @@ -537,64 +537,63 @@ static int r_Step_5a(struct SN_env * z) { /* backwardmode */ } } lab0: - { int ret = slice_del(z); /* delete, line 103 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_Step_5b(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 107 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 107 */ +static int r_Step_5b(struct SN_env * z) { + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; z->c--; - z->bra = z->c; /* ], line 107 */ - { int ret = r_R2(z); /* call R2, line 108 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret <= 0) return ret; } - if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 108 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; z->c--; - { int ret = slice_del(z); /* delete, line 109 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -extern int porter_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ - z->B[0] = 0; /* unset Y_found, line 115 */ - { int c1 = z->c; /* do, line 116 */ - z->bra = z->c; /* [, line 116 */ - if (z->c == z->l || z->p[z->c] != 'y') goto lab0; /* literal, line 116 */ +extern int porter_ISO_8859_1_stem(struct SN_env * z) { + z->I[2] = 0; + { int c1 = z->c; + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'y') goto lab0; z->c++; - z->ket = z->c; /* ], line 116 */ - { int ret = slice_from_s(z, 1, s_21); /* <-, line 116 */ + z->ket = z->c; + { int ret = slice_from_s(z, 1, s_21); if (ret < 0) return ret; } - z->B[0] = 1; /* set Y_found, line 116 */ + z->I[2] = 1; lab0: z->c = c1; } - { int c2 = z->c; /* do, line 117 */ -/* repeat, line 117 */ - - while(1) { int c3 = z->c; - while(1) { /* goto, line 117 */ + { int c2 = z->c; + while(1) { + int c3 = z->c; + while(1) { int c4 = z->c; - if (in_grouping(z, g_v, 97, 121, 0)) goto lab3; /* grouping v, line 117 */ - z->bra = z->c; /* [, line 117 */ - if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 117 */ + if (in_grouping(z, g_v, 97, 121, 0)) goto lab3; + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'y') goto lab3; z->c++; - z->ket = z->c; /* ], line 117 */ + z->ket = z->c; z->c = c4; break; lab3: z->c = c4; if (z->c >= z->l) goto lab2; - z->c++; /* goto, line 117 */ + z->c++; } - { int ret = slice_from_s(z, 1, s_22); /* <-, line 117 */ + { int ret = slice_from_s(z, 1, s_22); if (ret < 0) return ret; } - z->B[0] = 1; /* set Y_found, line 117 */ + z->I[2] = 1; continue; lab2: z->c = c3; @@ -602,104 +601,103 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ } z->c = c2; } - z->I[0] = z->l; /* $p1 = , line 119 */ - z->I[1] = z->l; /* $p2 = , line 120 */ - { int c5 = z->c; /* do, line 121 */ - { /* gopast */ /* grouping v, line 122 */ + z->I[1] = z->l; + z->I[0] = z->l; + { int c5 = z->c; + { int ret = out_grouping(z, g_v, 97, 121, 1); if (ret < 0) goto lab4; z->c += ret; } - { /* gopast */ /* non v, line 122 */ + { int ret = in_grouping(z, g_v, 97, 121, 1); if (ret < 0) goto lab4; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 122 */ - { /* gopast */ /* grouping v, line 123 */ + z->I[1] = z->c; + { int ret = out_grouping(z, g_v, 97, 121, 1); if (ret < 0) goto lab4; z->c += ret; } - { /* gopast */ /* non v, line 123 */ + { int ret = in_grouping(z, g_v, 97, 121, 1); if (ret < 0) goto lab4; z->c += ret; } - z->I[1] = z->c; /* setmark p2, line 123 */ + z->I[0] = z->c; lab4: z->c = c5; } - z->lb = z->c; z->c = z->l; /* backwards, line 126 */ + z->lb = z->c; z->c = z->l; - { int m6 = z->l - z->c; (void)m6; /* do, line 127 */ - { int ret = r_Step_1a(z); /* call Step_1a, line 127 */ + { int m6 = z->l - z->c; (void)m6; + { int ret = r_Step_1a(z); if (ret < 0) return ret; } z->c = z->l - m6; } - { int m7 = z->l - z->c; (void)m7; /* do, line 128 */ - { int ret = r_Step_1b(z); /* call Step_1b, line 128 */ + { int m7 = z->l - z->c; (void)m7; + { int ret = r_Step_1b(z); if (ret < 0) return ret; } z->c = z->l - m7; } - { int m8 = z->l - z->c; (void)m8; /* do, line 129 */ - { int ret = r_Step_1c(z); /* call Step_1c, line 129 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_Step_1c(z); if (ret < 0) return ret; } z->c = z->l - m8; } - { int m9 = z->l - z->c; (void)m9; /* do, line 130 */ - { int ret = r_Step_2(z); /* call Step_2, line 130 */ + { int m9 = z->l - z->c; (void)m9; + { int ret = r_Step_2(z); if (ret < 0) return ret; } z->c = z->l - m9; } - { int m10 = z->l - z->c; (void)m10; /* do, line 131 */ - { int ret = r_Step_3(z); /* call Step_3, line 131 */ + { int m10 = z->l - z->c; (void)m10; + { int ret = r_Step_3(z); if (ret < 0) return ret; } z->c = z->l - m10; } - { int m11 = z->l - z->c; (void)m11; /* do, line 132 */ - { int ret = r_Step_4(z); /* call Step_4, line 132 */ + { int m11 = z->l - z->c; (void)m11; + { int ret = r_Step_4(z); if (ret < 0) return ret; } z->c = z->l - m11; } - { int m12 = z->l - z->c; (void)m12; /* do, line 133 */ - { int ret = r_Step_5a(z); /* call Step_5a, line 133 */ + { int m12 = z->l - z->c; (void)m12; + { int ret = r_Step_5a(z); if (ret < 0) return ret; } z->c = z->l - m12; } - { int m13 = z->l - z->c; (void)m13; /* do, line 134 */ - { int ret = r_Step_5b(z); /* call Step_5b, line 134 */ + { int m13 = z->l - z->c; (void)m13; + { int ret = r_Step_5b(z); if (ret < 0) return ret; } z->c = z->l - m13; } z->c = z->lb; - { int c14 = z->c; /* do, line 137 */ - if (!(z->B[0])) goto lab5; /* Boolean test Y_found, line 137 */ -/* repeat, line 137 */ - - while(1) { int c15 = z->c; - while(1) { /* goto, line 137 */ + { int c14 = z->c; + if (!(z->I[2])) goto lab5; + while(1) { + int c15 = z->c; + while(1) { int c16 = z->c; - z->bra = z->c; /* [, line 137 */ - if (z->c == z->l || z->p[z->c] != 'Y') goto lab7; /* literal, line 137 */ + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'Y') goto lab7; z->c++; - z->ket = z->c; /* ], line 137 */ + z->ket = z->c; z->c = c16; break; lab7: z->c = c16; if (z->c >= z->l) goto lab6; - z->c++; /* goto, line 137 */ + z->c++; } - { int ret = slice_from_s(z, 1, s_23); /* <-, line 137 */ + { int ret = slice_from_s(z, 1, s_23); if (ret < 0) return ret; } continue; @@ -713,7 +711,7 @@ extern int porter_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * porter_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 1); } +extern struct SN_env * porter_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); } extern void porter_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c index 1e440a66e143c..23d883a7a13c4 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_portuguese.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -36,9 +36,9 @@ static const symbol s_0_2[1] = { 0xF5 }; static const struct among a_0[3] = { -/* 0 */ { 0, 0, -1, 3, 0}, -/* 1 */ { 1, s_0_1, 0, 1, 0}, -/* 2 */ { 1, s_0_2, 0, 2, 0} +{ 0, 0, -1, 3, 0}, +{ 1, s_0_1, 0, 1, 0}, +{ 1, s_0_2, 0, 2, 0} }; static const symbol s_1_1[2] = { 'a', '~' }; @@ -46,9 +46,9 @@ static const symbol s_1_2[2] = { 'o', '~' }; static const struct among a_1[3] = { -/* 0 */ { 0, 0, -1, 3, 0}, -/* 1 */ { 2, s_1_1, 0, 1, 0}, -/* 2 */ { 2, s_1_2, 0, 2, 0} +{ 0, 0, -1, 3, 0}, +{ 2, s_1_1, 0, 1, 0}, +{ 2, s_1_2, 0, 2, 0} }; static const symbol s_2_0[2] = { 'i', 'c' }; @@ -58,10 +58,10 @@ static const symbol s_2_3[2] = { 'i', 'v' }; static const struct among a_2[4] = { -/* 0 */ { 2, s_2_0, -1, -1, 0}, -/* 1 */ { 2, s_2_1, -1, -1, 0}, -/* 2 */ { 2, s_2_2, -1, -1, 0}, -/* 3 */ { 2, s_2_3, -1, 1, 0} +{ 2, s_2_0, -1, -1, 0}, +{ 2, s_2_1, -1, -1, 0}, +{ 2, s_2_2, -1, -1, 0}, +{ 2, s_2_3, -1, 1, 0} }; static const symbol s_3_0[4] = { 'a', 'n', 't', 'e' }; @@ -70,9 +70,9 @@ static const symbol s_3_2[4] = { 0xED, 'v', 'e', 'l' }; static const struct among a_3[3] = { -/* 0 */ { 4, s_3_0, -1, 1, 0}, -/* 1 */ { 4, s_3_1, -1, 1, 0}, -/* 2 */ { 4, s_3_2, -1, 1, 0} +{ 4, s_3_0, -1, 1, 0}, +{ 4, s_3_1, -1, 1, 0}, +{ 4, s_3_2, -1, 1, 0} }; static const symbol s_4_0[2] = { 'i', 'c' }; @@ -81,9 +81,9 @@ static const symbol s_4_2[2] = { 'i', 'v' }; static const struct among a_4[3] = { -/* 0 */ { 2, s_4_0, -1, 1, 0}, -/* 1 */ { 4, s_4_1, -1, 1, 0}, -/* 2 */ { 2, s_4_2, -1, 1, 0} +{ 2, s_4_0, -1, 1, 0}, +{ 4, s_4_1, -1, 1, 0}, +{ 2, s_4_2, -1, 1, 0} }; static const symbol s_5_0[3] = { 'i', 'c', 'a' }; @@ -134,51 +134,51 @@ static const symbol s_5_44[4] = { 'i', 'v', 'o', 's' }; static const struct among a_5[45] = { -/* 0 */ { 3, s_5_0, -1, 1, 0}, -/* 1 */ { 5, s_5_1, -1, 1, 0}, -/* 2 */ { 5, s_5_2, -1, 4, 0}, -/* 3 */ { 5, s_5_3, -1, 2, 0}, -/* 4 */ { 3, s_5_4, -1, 9, 0}, -/* 5 */ { 5, s_5_5, -1, 1, 0}, -/* 6 */ { 3, s_5_6, -1, 1, 0}, -/* 7 */ { 4, s_5_7, -1, 1, 0}, -/* 8 */ { 3, s_5_8, -1, 8, 0}, -/* 9 */ { 3, s_5_9, -1, 1, 0}, -/* 10 */ { 5, s_5_10, -1, 7, 0}, -/* 11 */ { 4, s_5_11, -1, 1, 0}, -/* 12 */ { 5, s_5_12, -1, 6, 0}, -/* 13 */ { 6, s_5_13, 12, 5, 0}, -/* 14 */ { 4, s_5_14, -1, 1, 0}, -/* 15 */ { 4, s_5_15, -1, 1, 0}, -/* 16 */ { 3, s_5_16, -1, 1, 0}, -/* 17 */ { 4, s_5_17, -1, 1, 0}, -/* 18 */ { 3, s_5_18, -1, 1, 0}, -/* 19 */ { 6, s_5_19, -1, 1, 0}, -/* 20 */ { 6, s_5_20, -1, 1, 0}, -/* 21 */ { 3, s_5_21, -1, 8, 0}, -/* 22 */ { 5, s_5_22, -1, 1, 0}, -/* 23 */ { 5, s_5_23, -1, 3, 0}, -/* 24 */ { 4, s_5_24, -1, 1, 0}, -/* 25 */ { 4, s_5_25, -1, 1, 0}, -/* 26 */ { 6, s_5_26, -1, 4, 0}, -/* 27 */ { 6, s_5_27, -1, 2, 0}, -/* 28 */ { 4, s_5_28, -1, 9, 0}, -/* 29 */ { 6, s_5_29, -1, 1, 0}, -/* 30 */ { 4, s_5_30, -1, 1, 0}, -/* 31 */ { 5, s_5_31, -1, 1, 0}, -/* 32 */ { 4, s_5_32, -1, 8, 0}, -/* 33 */ { 4, s_5_33, -1, 1, 0}, -/* 34 */ { 6, s_5_34, -1, 7, 0}, -/* 35 */ { 6, s_5_35, -1, 1, 0}, -/* 36 */ { 5, s_5_36, -1, 1, 0}, -/* 37 */ { 6, s_5_37, -1, 1, 0}, -/* 38 */ { 6, s_5_38, -1, 3, 0}, -/* 39 */ { 4, s_5_39, -1, 1, 0}, -/* 40 */ { 5, s_5_40, -1, 1, 0}, -/* 41 */ { 4, s_5_41, -1, 1, 0}, -/* 42 */ { 7, s_5_42, -1, 1, 0}, -/* 43 */ { 7, s_5_43, -1, 1, 0}, -/* 44 */ { 4, s_5_44, -1, 8, 0} +{ 3, s_5_0, -1, 1, 0}, +{ 5, s_5_1, -1, 1, 0}, +{ 5, s_5_2, -1, 4, 0}, +{ 5, s_5_3, -1, 2, 0}, +{ 3, s_5_4, -1, 9, 0}, +{ 5, s_5_5, -1, 1, 0}, +{ 3, s_5_6, -1, 1, 0}, +{ 4, s_5_7, -1, 1, 0}, +{ 3, s_5_8, -1, 8, 0}, +{ 3, s_5_9, -1, 1, 0}, +{ 5, s_5_10, -1, 7, 0}, +{ 4, s_5_11, -1, 1, 0}, +{ 5, s_5_12, -1, 6, 0}, +{ 6, s_5_13, 12, 5, 0}, +{ 4, s_5_14, -1, 1, 0}, +{ 4, s_5_15, -1, 1, 0}, +{ 3, s_5_16, -1, 1, 0}, +{ 4, s_5_17, -1, 1, 0}, +{ 3, s_5_18, -1, 1, 0}, +{ 6, s_5_19, -1, 1, 0}, +{ 6, s_5_20, -1, 1, 0}, +{ 3, s_5_21, -1, 8, 0}, +{ 5, s_5_22, -1, 1, 0}, +{ 5, s_5_23, -1, 3, 0}, +{ 4, s_5_24, -1, 1, 0}, +{ 4, s_5_25, -1, 1, 0}, +{ 6, s_5_26, -1, 4, 0}, +{ 6, s_5_27, -1, 2, 0}, +{ 4, s_5_28, -1, 9, 0}, +{ 6, s_5_29, -1, 1, 0}, +{ 4, s_5_30, -1, 1, 0}, +{ 5, s_5_31, -1, 1, 0}, +{ 4, s_5_32, -1, 8, 0}, +{ 4, s_5_33, -1, 1, 0}, +{ 6, s_5_34, -1, 7, 0}, +{ 6, s_5_35, -1, 1, 0}, +{ 5, s_5_36, -1, 1, 0}, +{ 6, s_5_37, -1, 1, 0}, +{ 6, s_5_38, -1, 3, 0}, +{ 4, s_5_39, -1, 1, 0}, +{ 5, s_5_40, -1, 1, 0}, +{ 4, s_5_41, -1, 1, 0}, +{ 7, s_5_42, -1, 1, 0}, +{ 7, s_5_43, -1, 1, 0}, +{ 4, s_5_44, -1, 8, 0} }; static const symbol s_6_0[3] = { 'a', 'd', 'a' }; @@ -304,126 +304,126 @@ static const symbol s_6_119[3] = { 'i', 'r', 0xE1 }; static const struct among a_6[120] = { -/* 0 */ { 3, s_6_0, -1, 1, 0}, -/* 1 */ { 3, s_6_1, -1, 1, 0}, -/* 2 */ { 2, s_6_2, -1, 1, 0}, -/* 3 */ { 4, s_6_3, 2, 1, 0}, -/* 4 */ { 4, s_6_4, 2, 1, 0}, -/* 5 */ { 4, s_6_5, 2, 1, 0}, -/* 6 */ { 3, s_6_6, -1, 1, 0}, -/* 7 */ { 3, s_6_7, -1, 1, 0}, -/* 8 */ { 3, s_6_8, -1, 1, 0}, -/* 9 */ { 3, s_6_9, -1, 1, 0}, -/* 10 */ { 4, s_6_10, -1, 1, 0}, -/* 11 */ { 4, s_6_11, -1, 1, 0}, -/* 12 */ { 4, s_6_12, -1, 1, 0}, -/* 13 */ { 4, s_6_13, -1, 1, 0}, -/* 14 */ { 4, s_6_14, -1, 1, 0}, -/* 15 */ { 4, s_6_15, -1, 1, 0}, -/* 16 */ { 2, s_6_16, -1, 1, 0}, -/* 17 */ { 4, s_6_17, 16, 1, 0}, -/* 18 */ { 4, s_6_18, 16, 1, 0}, -/* 19 */ { 4, s_6_19, 16, 1, 0}, -/* 20 */ { 2, s_6_20, -1, 1, 0}, -/* 21 */ { 3, s_6_21, 20, 1, 0}, -/* 22 */ { 5, s_6_22, 21, 1, 0}, -/* 23 */ { 5, s_6_23, 21, 1, 0}, -/* 24 */ { 5, s_6_24, 21, 1, 0}, -/* 25 */ { 4, s_6_25, 20, 1, 0}, -/* 26 */ { 4, s_6_26, 20, 1, 0}, -/* 27 */ { 4, s_6_27, 20, 1, 0}, -/* 28 */ { 4, s_6_28, 20, 1, 0}, -/* 29 */ { 2, s_6_29, -1, 1, 0}, -/* 30 */ { 4, s_6_30, 29, 1, 0}, -/* 31 */ { 4, s_6_31, 29, 1, 0}, -/* 32 */ { 4, s_6_32, 29, 1, 0}, -/* 33 */ { 5, s_6_33, 29, 1, 0}, -/* 34 */ { 5, s_6_34, 29, 1, 0}, -/* 35 */ { 5, s_6_35, 29, 1, 0}, -/* 36 */ { 3, s_6_36, -1, 1, 0}, -/* 37 */ { 3, s_6_37, -1, 1, 0}, -/* 38 */ { 4, s_6_38, -1, 1, 0}, -/* 39 */ { 4, s_6_39, -1, 1, 0}, -/* 40 */ { 4, s_6_40, -1, 1, 0}, -/* 41 */ { 5, s_6_41, -1, 1, 0}, -/* 42 */ { 5, s_6_42, -1, 1, 0}, -/* 43 */ { 5, s_6_43, -1, 1, 0}, -/* 44 */ { 2, s_6_44, -1, 1, 0}, -/* 45 */ { 2, s_6_45, -1, 1, 0}, -/* 46 */ { 2, s_6_46, -1, 1, 0}, -/* 47 */ { 2, s_6_47, -1, 1, 0}, -/* 48 */ { 4, s_6_48, 47, 1, 0}, -/* 49 */ { 4, s_6_49, 47, 1, 0}, -/* 50 */ { 3, s_6_50, 47, 1, 0}, -/* 51 */ { 5, s_6_51, 50, 1, 0}, -/* 52 */ { 5, s_6_52, 50, 1, 0}, -/* 53 */ { 5, s_6_53, 50, 1, 0}, -/* 54 */ { 4, s_6_54, 47, 1, 0}, -/* 55 */ { 4, s_6_55, 47, 1, 0}, -/* 56 */ { 4, s_6_56, 47, 1, 0}, -/* 57 */ { 4, s_6_57, 47, 1, 0}, -/* 58 */ { 2, s_6_58, -1, 1, 0}, -/* 59 */ { 5, s_6_59, 58, 1, 0}, -/* 60 */ { 5, s_6_60, 58, 1, 0}, -/* 61 */ { 5, s_6_61, 58, 1, 0}, -/* 62 */ { 4, s_6_62, 58, 1, 0}, -/* 63 */ { 4, s_6_63, 58, 1, 0}, -/* 64 */ { 4, s_6_64, 58, 1, 0}, -/* 65 */ { 5, s_6_65, 58, 1, 0}, -/* 66 */ { 5, s_6_66, 58, 1, 0}, -/* 67 */ { 5, s_6_67, 58, 1, 0}, -/* 68 */ { 5, s_6_68, 58, 1, 0}, -/* 69 */ { 5, s_6_69, 58, 1, 0}, -/* 70 */ { 5, s_6_70, 58, 1, 0}, -/* 71 */ { 2, s_6_71, -1, 1, 0}, -/* 72 */ { 3, s_6_72, 71, 1, 0}, -/* 73 */ { 3, s_6_73, 71, 1, 0}, -/* 74 */ { 5, s_6_74, 73, 1, 0}, -/* 75 */ { 5, s_6_75, 73, 1, 0}, -/* 76 */ { 5, s_6_76, 73, 1, 0}, -/* 77 */ { 5, s_6_77, 73, 1, 0}, -/* 78 */ { 5, s_6_78, 73, 1, 0}, -/* 79 */ { 5, s_6_79, 73, 1, 0}, -/* 80 */ { 6, s_6_80, 73, 1, 0}, -/* 81 */ { 6, s_6_81, 73, 1, 0}, -/* 82 */ { 6, s_6_82, 73, 1, 0}, -/* 83 */ { 5, s_6_83, 73, 1, 0}, -/* 84 */ { 4, s_6_84, 73, 1, 0}, -/* 85 */ { 6, s_6_85, 84, 1, 0}, -/* 86 */ { 6, s_6_86, 84, 1, 0}, -/* 87 */ { 6, s_6_87, 84, 1, 0}, -/* 88 */ { 4, s_6_88, -1, 1, 0}, -/* 89 */ { 4, s_6_89, -1, 1, 0}, -/* 90 */ { 4, s_6_90, -1, 1, 0}, -/* 91 */ { 6, s_6_91, 90, 1, 0}, -/* 92 */ { 6, s_6_92, 90, 1, 0}, -/* 93 */ { 6, s_6_93, 90, 1, 0}, -/* 94 */ { 6, s_6_94, 90, 1, 0}, -/* 95 */ { 5, s_6_95, 90, 1, 0}, -/* 96 */ { 7, s_6_96, 95, 1, 0}, -/* 97 */ { 7, s_6_97, 95, 1, 0}, -/* 98 */ { 7, s_6_98, 95, 1, 0}, -/* 99 */ { 4, s_6_99, -1, 1, 0}, -/*100 */ { 6, s_6_100, 99, 1, 0}, -/*101 */ { 6, s_6_101, 99, 1, 0}, -/*102 */ { 6, s_6_102, 99, 1, 0}, -/*103 */ { 7, s_6_103, 99, 1, 0}, -/*104 */ { 7, s_6_104, 99, 1, 0}, -/*105 */ { 7, s_6_105, 99, 1, 0}, -/*106 */ { 4, s_6_106, -1, 1, 0}, -/*107 */ { 5, s_6_107, -1, 1, 0}, -/*108 */ { 5, s_6_108, -1, 1, 0}, -/*109 */ { 5, s_6_109, -1, 1, 0}, -/*110 */ { 4, s_6_110, -1, 1, 0}, -/*111 */ { 4, s_6_111, -1, 1, 0}, -/*112 */ { 4, s_6_112, -1, 1, 0}, -/*113 */ { 4, s_6_113, -1, 1, 0}, -/*114 */ { 2, s_6_114, -1, 1, 0}, -/*115 */ { 2, s_6_115, -1, 1, 0}, -/*116 */ { 2, s_6_116, -1, 1, 0}, -/*117 */ { 3, s_6_117, -1, 1, 0}, -/*118 */ { 3, s_6_118, -1, 1, 0}, -/*119 */ { 3, s_6_119, -1, 1, 0} +{ 3, s_6_0, -1, 1, 0}, +{ 3, s_6_1, -1, 1, 0}, +{ 2, s_6_2, -1, 1, 0}, +{ 4, s_6_3, 2, 1, 0}, +{ 4, s_6_4, 2, 1, 0}, +{ 4, s_6_5, 2, 1, 0}, +{ 3, s_6_6, -1, 1, 0}, +{ 3, s_6_7, -1, 1, 0}, +{ 3, s_6_8, -1, 1, 0}, +{ 3, s_6_9, -1, 1, 0}, +{ 4, s_6_10, -1, 1, 0}, +{ 4, s_6_11, -1, 1, 0}, +{ 4, s_6_12, -1, 1, 0}, +{ 4, s_6_13, -1, 1, 0}, +{ 4, s_6_14, -1, 1, 0}, +{ 4, s_6_15, -1, 1, 0}, +{ 2, s_6_16, -1, 1, 0}, +{ 4, s_6_17, 16, 1, 0}, +{ 4, s_6_18, 16, 1, 0}, +{ 4, s_6_19, 16, 1, 0}, +{ 2, s_6_20, -1, 1, 0}, +{ 3, s_6_21, 20, 1, 0}, +{ 5, s_6_22, 21, 1, 0}, +{ 5, s_6_23, 21, 1, 0}, +{ 5, s_6_24, 21, 1, 0}, +{ 4, s_6_25, 20, 1, 0}, +{ 4, s_6_26, 20, 1, 0}, +{ 4, s_6_27, 20, 1, 0}, +{ 4, s_6_28, 20, 1, 0}, +{ 2, s_6_29, -1, 1, 0}, +{ 4, s_6_30, 29, 1, 0}, +{ 4, s_6_31, 29, 1, 0}, +{ 4, s_6_32, 29, 1, 0}, +{ 5, s_6_33, 29, 1, 0}, +{ 5, s_6_34, 29, 1, 0}, +{ 5, s_6_35, 29, 1, 0}, +{ 3, s_6_36, -1, 1, 0}, +{ 3, s_6_37, -1, 1, 0}, +{ 4, s_6_38, -1, 1, 0}, +{ 4, s_6_39, -1, 1, 0}, +{ 4, s_6_40, -1, 1, 0}, +{ 5, s_6_41, -1, 1, 0}, +{ 5, s_6_42, -1, 1, 0}, +{ 5, s_6_43, -1, 1, 0}, +{ 2, s_6_44, -1, 1, 0}, +{ 2, s_6_45, -1, 1, 0}, +{ 2, s_6_46, -1, 1, 0}, +{ 2, s_6_47, -1, 1, 0}, +{ 4, s_6_48, 47, 1, 0}, +{ 4, s_6_49, 47, 1, 0}, +{ 3, s_6_50, 47, 1, 0}, +{ 5, s_6_51, 50, 1, 0}, +{ 5, s_6_52, 50, 1, 0}, +{ 5, s_6_53, 50, 1, 0}, +{ 4, s_6_54, 47, 1, 0}, +{ 4, s_6_55, 47, 1, 0}, +{ 4, s_6_56, 47, 1, 0}, +{ 4, s_6_57, 47, 1, 0}, +{ 2, s_6_58, -1, 1, 0}, +{ 5, s_6_59, 58, 1, 0}, +{ 5, s_6_60, 58, 1, 0}, +{ 5, s_6_61, 58, 1, 0}, +{ 4, s_6_62, 58, 1, 0}, +{ 4, s_6_63, 58, 1, 0}, +{ 4, s_6_64, 58, 1, 0}, +{ 5, s_6_65, 58, 1, 0}, +{ 5, s_6_66, 58, 1, 0}, +{ 5, s_6_67, 58, 1, 0}, +{ 5, s_6_68, 58, 1, 0}, +{ 5, s_6_69, 58, 1, 0}, +{ 5, s_6_70, 58, 1, 0}, +{ 2, s_6_71, -1, 1, 0}, +{ 3, s_6_72, 71, 1, 0}, +{ 3, s_6_73, 71, 1, 0}, +{ 5, s_6_74, 73, 1, 0}, +{ 5, s_6_75, 73, 1, 0}, +{ 5, s_6_76, 73, 1, 0}, +{ 5, s_6_77, 73, 1, 0}, +{ 5, s_6_78, 73, 1, 0}, +{ 5, s_6_79, 73, 1, 0}, +{ 6, s_6_80, 73, 1, 0}, +{ 6, s_6_81, 73, 1, 0}, +{ 6, s_6_82, 73, 1, 0}, +{ 5, s_6_83, 73, 1, 0}, +{ 4, s_6_84, 73, 1, 0}, +{ 6, s_6_85, 84, 1, 0}, +{ 6, s_6_86, 84, 1, 0}, +{ 6, s_6_87, 84, 1, 0}, +{ 4, s_6_88, -1, 1, 0}, +{ 4, s_6_89, -1, 1, 0}, +{ 4, s_6_90, -1, 1, 0}, +{ 6, s_6_91, 90, 1, 0}, +{ 6, s_6_92, 90, 1, 0}, +{ 6, s_6_93, 90, 1, 0}, +{ 6, s_6_94, 90, 1, 0}, +{ 5, s_6_95, 90, 1, 0}, +{ 7, s_6_96, 95, 1, 0}, +{ 7, s_6_97, 95, 1, 0}, +{ 7, s_6_98, 95, 1, 0}, +{ 4, s_6_99, -1, 1, 0}, +{ 6, s_6_100, 99, 1, 0}, +{ 6, s_6_101, 99, 1, 0}, +{ 6, s_6_102, 99, 1, 0}, +{ 7, s_6_103, 99, 1, 0}, +{ 7, s_6_104, 99, 1, 0}, +{ 7, s_6_105, 99, 1, 0}, +{ 4, s_6_106, -1, 1, 0}, +{ 5, s_6_107, -1, 1, 0}, +{ 5, s_6_108, -1, 1, 0}, +{ 5, s_6_109, -1, 1, 0}, +{ 4, s_6_110, -1, 1, 0}, +{ 4, s_6_111, -1, 1, 0}, +{ 4, s_6_112, -1, 1, 0}, +{ 4, s_6_113, -1, 1, 0}, +{ 2, s_6_114, -1, 1, 0}, +{ 2, s_6_115, -1, 1, 0}, +{ 2, s_6_116, -1, 1, 0}, +{ 3, s_6_117, -1, 1, 0}, +{ 3, s_6_118, -1, 1, 0}, +{ 3, s_6_119, -1, 1, 0} }; static const symbol s_7_0[1] = { 'a' }; @@ -436,13 +436,13 @@ static const symbol s_7_6[1] = { 0xF3 }; static const struct among a_7[7] = { -/* 0 */ { 1, s_7_0, -1, 1, 0}, -/* 1 */ { 1, s_7_1, -1, 1, 0}, -/* 2 */ { 1, s_7_2, -1, 1, 0}, -/* 3 */ { 2, s_7_3, -1, 1, 0}, -/* 4 */ { 1, s_7_4, -1, 1, 0}, -/* 5 */ { 1, s_7_5, -1, 1, 0}, -/* 6 */ { 1, s_7_6, -1, 1, 0} +{ 1, s_7_0, -1, 1, 0}, +{ 1, s_7_1, -1, 1, 0}, +{ 1, s_7_2, -1, 1, 0}, +{ 2, s_7_3, -1, 1, 0}, +{ 1, s_7_4, -1, 1, 0}, +{ 1, s_7_5, -1, 1, 0}, +{ 1, s_7_6, -1, 1, 0} }; static const symbol s_8_0[1] = { 'e' }; @@ -452,10 +452,10 @@ static const symbol s_8_3[1] = { 0xEA }; static const struct among a_8[4] = { -/* 0 */ { 1, s_8_0, -1, 1, 0}, -/* 1 */ { 1, s_8_1, -1, 2, 0}, -/* 2 */ { 1, s_8_2, -1, 1, 0}, -/* 3 */ { 1, s_8_3, -1, 1, 0} +{ 1, s_8_0, -1, 1, 0}, +{ 1, s_8_1, -1, 2, 0}, +{ 1, s_8_2, -1, 1, 0}, +{ 1, s_8_3, -1, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 }; @@ -472,30 +472,29 @@ static const symbol s_8[] = { 'a', 't' }; static const symbol s_9[] = { 'i', 'r' }; static const symbol s_10[] = { 'c' }; -static int r_prelude(struct SN_env * z) { /* forwardmode */ +static int r_prelude(struct SN_env * z) { int among_var; -/* repeat, line 36 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 37 */ - if (z->c >= z->l || (z->p[z->c + 0] != 227 && z->p[z->c + 0] != 245)) among_var = 3; else /* substring, line 37 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + if (z->c >= z->l || (z->p[z->c + 0] != 227 && z->p[z->c + 0] != 245)) among_var = 3; else among_var = find_among(z, a_0, 3); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 37 */ - switch (among_var) { /* among, line 37 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 2, s_0); /* <-, line 38 */ + { int ret = slice_from_s(z, 2, s_0); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 2, s_1); /* <-, line 39 */ + { int ret = slice_from_s(z, 2, s_1); if (ret < 0) return ret; } break; case 3: if (z->c >= z->l) goto lab0; - z->c++; /* next, line 40 */ + z->c++; break; } continue; @@ -506,16 +505,16 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $pV = , line 46 */ - z->I[1] = z->l; /* $p1 = , line 47 */ - z->I[2] = z->l; /* $p2 = , line 48 */ - { int c1 = z->c; /* do, line 50 */ - { int c2 = z->c; /* or, line 52 */ - if (in_grouping(z, g_v, 97, 250, 0)) goto lab2; /* grouping v, line 51 */ - { int c3 = z->c; /* or, line 51 */ - if (out_grouping(z, g_v, 97, 250, 0)) goto lab4; /* non v, line 51 */ - { /* gopast */ /* grouping v, line 51 */ +static int r_mark_regions(struct SN_env * z) { + z->I[2] = z->l; + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int c2 = z->c; + if (in_grouping(z, g_v, 97, 250, 0)) goto lab2; + { int c3 = z->c; + if (out_grouping(z, g_v, 97, 250, 0)) goto lab4; + { int ret = out_grouping(z, g_v, 97, 250, 1); if (ret < 0) goto lab4; z->c += ret; @@ -523,8 +522,8 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab3; lab4: z->c = c3; - if (in_grouping(z, g_v, 97, 250, 0)) goto lab2; /* grouping v, line 51 */ - { /* gopast */ /* non v, line 51 */ + if (in_grouping(z, g_v, 97, 250, 0)) goto lab2; + { int ret = in_grouping(z, g_v, 97, 250, 1); if (ret < 0) goto lab2; z->c += ret; @@ -534,10 +533,10 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab1; lab2: z->c = c2; - if (out_grouping(z, g_v, 97, 250, 0)) goto lab0; /* non v, line 53 */ - { int c4 = z->c; /* or, line 53 */ - if (out_grouping(z, g_v, 97, 250, 0)) goto lab6; /* non v, line 53 */ - { /* gopast */ /* grouping v, line 53 */ + if (out_grouping(z, g_v, 97, 250, 0)) goto lab0; + { int c4 = z->c; + if (out_grouping(z, g_v, 97, 250, 0)) goto lab6; + { int ret = out_grouping(z, g_v, 97, 250, 1); if (ret < 0) goto lab6; z->c += ret; @@ -545,71 +544,70 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab5; lab6: z->c = c4; - if (in_grouping(z, g_v, 97, 250, 0)) goto lab0; /* grouping v, line 53 */ + if (in_grouping(z, g_v, 97, 250, 0)) goto lab0; if (z->c >= z->l) goto lab0; - z->c++; /* next, line 53 */ + z->c++; } lab5: ; } lab1: - z->I[0] = z->c; /* setmark pV, line 54 */ + z->I[2] = z->c; lab0: z->c = c1; } - { int c5 = z->c; /* do, line 56 */ - { /* gopast */ /* grouping v, line 57 */ + { int c5 = z->c; + { int ret = out_grouping(z, g_v, 97, 250, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 57 */ + { int ret = in_grouping(z, g_v, 97, 250, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[1] = z->c; /* setmark p1, line 57 */ - { /* gopast */ /* grouping v, line 58 */ + z->I[1] = z->c; + { int ret = out_grouping(z, g_v, 97, 250, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 58 */ + { int ret = in_grouping(z, g_v, 97, 250, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[2] = z->c; /* setmark p2, line 58 */ + z->I[0] = z->c; lab7: z->c = c5; } return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ +static int r_postlude(struct SN_env * z) { int among_var; -/* repeat, line 62 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 63 */ - if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else /* substring, line 63 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else among_var = find_among(z, a_1, 3); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 63 */ - switch (among_var) { /* among, line 63 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_2); /* <-, line 64 */ + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_3); /* <-, line 65 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } break; case 3: if (z->c >= z->l) goto lab0; - z->c++; /* next, line 66 */ + z->c++; break; } continue; @@ -620,91 +618,91 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_RV(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 72 */ +static int r_RV(struct SN_env * z) { + if (!(z->I[2] <= z->c)) return 0; return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 73 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 74 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ +static int r_standard_suffix(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 77 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((823330 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 77 */ + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((823330 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_5, 45); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 77 */ - switch (among_var) { /* among, line 77 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 93 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 93 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 98 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_4); /* <-, line 98 */ + { int ret = slice_from_s(z, 3, s_4); if (ret < 0) return ret; } break; case 3: - { int ret = r_R2(z); /* call R2, line 102 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 1, s_5); /* <-, line 102 */ + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } break; case 4: - { int ret = r_R2(z); /* call R2, line 106 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 4, s_6); /* <-, line 106 */ + { int ret = slice_from_s(z, 4, s_6); if (ret < 0) return ret; } break; case 5: - { int ret = r_R1(z); /* call R1, line 110 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 110 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m1 = z->l - z->c; (void)m1; /* try, line 111 */ - z->ket = z->c; /* [, line 112 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; } /* substring, line 112 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; } among_var = find_among_b(z, a_2, 4); if (!(among_var)) { z->c = z->l - m1; goto lab0; } - z->bra = z->c; /* ], line 112 */ - { int ret = r_R2(z); /* call R2, line 112 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m1; goto lab0; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 112 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - switch (among_var) { /* among, line 112 */ + switch (among_var) { case 1: - z->ket = z->c; /* [, line 113 */ - if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m1; goto lab0; } /* literal, line 113 */ - z->bra = z->c; /* ], line 113 */ - { int ret = r_R2(z); /* call R2, line 113 */ + z->ket = z->c; + if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m1; goto lab0; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m1; goto lab0; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 113 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -714,22 +712,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 6: - { int ret = r_R2(z); /* call R2, line 122 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 122 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m2 = z->l - z->c; (void)m2; /* try, line 123 */ - z->ket = z->c; /* [, line 124 */ - if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m2; goto lab1; } /* substring, line 124 */ + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m2; goto lab1; } if (!(find_among_b(z, a_3, 3))) { z->c = z->l - m2; goto lab1; } - z->bra = z->c; /* ], line 124 */ - { int ret = r_R2(z); /* call R2, line 127 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m2; goto lab1; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 127 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab1: @@ -737,22 +735,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 7: - { int ret = r_R2(z); /* call R2, line 134 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 134 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m3 = z->l - z->c; (void)m3; /* try, line 135 */ - z->ket = z->c; /* [, line 136 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; } /* substring, line 136 */ + { int m3 = z->l - z->c; (void)m3; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; } if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; } - z->bra = z->c; /* ], line 136 */ - { int ret = r_R2(z); /* call R2, line 139 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m3; goto lab2; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 139 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab2: @@ -760,21 +758,21 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 8: - { int ret = r_R2(z); /* call R2, line 146 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 146 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m4 = z->l - z->c; (void)m4; /* try, line 147 */ - z->ket = z->c; /* [, line 148 */ - if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m4; goto lab3; } /* literal, line 148 */ - z->bra = z->c; /* ], line 148 */ - { int ret = r_R2(z); /* call R2, line 148 */ + { int m4 = z->l - z->c; (void)m4; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m4; goto lab3; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m4; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 148 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab3: @@ -782,12 +780,12 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 9: - { int ret = r_RV(z); /* call RV, line 153 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 153 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; z->c--; - { int ret = slice_from_s(z, 2, s_9); /* <-, line 154 */ + { int ret = slice_from_s(z, 2, s_9); if (ret < 0) return ret; } break; @@ -795,15 +793,15 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ +static int r_verb_suffix(struct SN_env * z) { - { int mlimit1; /* setlimit, line 159 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 160 */ - if (!(find_among_b(z, a_6, 120))) { z->lb = mlimit1; return 0; } /* substring, line 160 */ - z->bra = z->c; /* ], line 160 */ - { int ret = slice_del(z); /* delete, line 179 */ + { int mlimit1; + if (z->c < z->I[2]) return 0; + mlimit1 = z->lb; z->lb = z->I[2]; + z->ket = z->c; + if (!(find_among_b(z, a_6, 120))) { z->lb = mlimit1; return 0; } + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } z->lb = mlimit1; @@ -811,65 +809,65 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 184 */ - if (!(find_among_b(z, a_7, 7))) return 0; /* substring, line 184 */ - z->bra = z->c; /* ], line 184 */ - { int ret = r_RV(z); /* call RV, line 187 */ +static int r_residual_suffix(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_7, 7))) return 0; + z->bra = z->c; + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 187 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_residual_form(struct SN_env * z) { /* backwardmode */ +static int r_residual_form(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 192 */ - among_var = find_among_b(z, a_8, 4); /* substring, line 192 */ + z->ket = z->c; + among_var = find_among_b(z, a_8, 4); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 192 */ - switch (among_var) { /* among, line 192 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_RV(z); /* call RV, line 194 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 194 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 194 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 194 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab1; /* literal, line 194 */ + z->ket = z->c; + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab1; z->c--; - z->bra = z->c; /* ], line 194 */ - { int m_test2 = z->l - z->c; /* test, line 194 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'g') goto lab1; /* literal, line 194 */ + z->bra = z->c; + { int m_test2 = z->l - z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'g') goto lab1; z->c--; z->c = z->l - m_test2; } goto lab0; lab1: z->c = z->l - m1; - if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 195 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; z->c--; - z->bra = z->c; /* ], line 195 */ - { int m_test3 = z->l - z->c; /* test, line 195 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'c') return 0; /* literal, line 195 */ + z->bra = z->c; + { int m_test3 = z->l - z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'c') return 0; z->c--; z->c = z->l - m_test3; } } lab0: - { int ret = r_RV(z); /* call RV, line 195 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 195 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_10); /* <-, line 196 */ + { int ret = slice_from_s(z, 1, s_10); if (ret < 0) return ret; } break; @@ -877,52 +875,52 @@ static int r_residual_form(struct SN_env * z) { /* backwardmode */ return 1; } -extern int portuguese_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 202 */ - { int ret = r_prelude(z); /* call prelude, line 202 */ +extern int portuguese_ISO_8859_1_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_prelude(z); if (ret < 0) return ret; } z->c = c1; } - /* do, line 203 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 203 */ + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 204 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 205 */ - { int m3 = z->l - z->c; (void)m3; /* or, line 209 */ - { int m4 = z->l - z->c; (void)m4; /* and, line 207 */ - { int m5 = z->l - z->c; (void)m5; /* or, line 206 */ - { int ret = r_standard_suffix(z); /* call standard_suffix, line 206 */ + { int m2 = z->l - z->c; (void)m2; + { int m3 = z->l - z->c; (void)m3; + { int m4 = z->l - z->c; (void)m4; + { int m5 = z->l - z->c; (void)m5; + { int ret = r_standard_suffix(z); if (ret == 0) goto lab4; if (ret < 0) return ret; } goto lab3; lab4: z->c = z->l - m5; - { int ret = r_verb_suffix(z); /* call verb_suffix, line 206 */ + { int ret = r_verb_suffix(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } } lab3: z->c = z->l - m4; - { int m6 = z->l - z->c; (void)m6; /* do, line 207 */ - z->ket = z->c; /* [, line 207 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab5; /* literal, line 207 */ + { int m6 = z->l - z->c; (void)m6; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab5; z->c--; - z->bra = z->c; /* ], line 207 */ - { int m_test7 = z->l - z->c; /* test, line 207 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab5; /* literal, line 207 */ + z->bra = z->c; + { int m_test7 = z->l - z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab5; z->c--; z->c = z->l - m_test7; } - { int ret = r_RV(z); /* call RV, line 207 */ + { int ret = r_RV(z); if (ret == 0) goto lab5; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 207 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab5: @@ -932,7 +930,7 @@ extern int portuguese_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ goto lab1; lab2: z->c = z->l - m3; - { int ret = r_residual_suffix(z); /* call residual_suffix, line 209 */ + { int ret = r_residual_suffix(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -941,15 +939,15 @@ extern int portuguese_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ lab0: z->c = z->l - m2; } - { int m8 = z->l - z->c; (void)m8; /* do, line 211 */ - { int ret = r_residual_form(z); /* call residual_form, line 211 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_residual_form(z); if (ret < 0) return ret; } z->c = z->l - m8; } z->c = z->lb; - { int c9 = z->c; /* do, line 213 */ - { int ret = r_postlude(z); /* call postlude, line 213 */ + { int c9 = z->c; + { int ret = r_postlude(z); if (ret < 0) return ret; } z->c = c9; @@ -957,7 +955,7 @@ extern int portuguese_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * portuguese_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); } +extern struct SN_env * portuguese_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); } extern void portuguese_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c index e77aadda6a397..825e68f21edf7 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_spanish.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -39,12 +39,12 @@ static const symbol s_0_5[1] = { 0xFA }; static const struct among a_0[6] = { -/* 0 */ { 0, 0, -1, 6, 0}, -/* 1 */ { 1, s_0_1, 0, 1, 0}, -/* 2 */ { 1, s_0_2, 0, 2, 0}, -/* 3 */ { 1, s_0_3, 0, 3, 0}, -/* 4 */ { 1, s_0_4, 0, 4, 0}, -/* 5 */ { 1, s_0_5, 0, 5, 0} +{ 0, 0, -1, 6, 0}, +{ 1, s_0_1, 0, 1, 0}, +{ 1, s_0_2, 0, 2, 0}, +{ 1, s_0_3, 0, 3, 0}, +{ 1, s_0_4, 0, 4, 0}, +{ 1, s_0_5, 0, 5, 0} }; static const symbol s_1_0[2] = { 'l', 'a' }; @@ -63,19 +63,19 @@ static const symbol s_1_12[3] = { 'n', 'o', 's' }; static const struct among a_1[13] = { -/* 0 */ { 2, s_1_0, -1, -1, 0}, -/* 1 */ { 4, s_1_1, 0, -1, 0}, -/* 2 */ { 2, s_1_2, -1, -1, 0}, -/* 3 */ { 2, s_1_3, -1, -1, 0}, -/* 4 */ { 2, s_1_4, -1, -1, 0}, -/* 5 */ { 2, s_1_5, -1, -1, 0}, -/* 6 */ { 4, s_1_6, 5, -1, 0}, -/* 7 */ { 3, s_1_7, -1, -1, 0}, -/* 8 */ { 5, s_1_8, 7, -1, 0}, -/* 9 */ { 3, s_1_9, -1, -1, 0}, -/* 10 */ { 3, s_1_10, -1, -1, 0}, -/* 11 */ { 5, s_1_11, 10, -1, 0}, -/* 12 */ { 3, s_1_12, -1, -1, 0} +{ 2, s_1_0, -1, -1, 0}, +{ 4, s_1_1, 0, -1, 0}, +{ 2, s_1_2, -1, -1, 0}, +{ 2, s_1_3, -1, -1, 0}, +{ 2, s_1_4, -1, -1, 0}, +{ 2, s_1_5, -1, -1, 0}, +{ 4, s_1_6, 5, -1, 0}, +{ 3, s_1_7, -1, -1, 0}, +{ 5, s_1_8, 7, -1, 0}, +{ 3, s_1_9, -1, -1, 0}, +{ 3, s_1_10, -1, -1, 0}, +{ 5, s_1_11, 10, -1, 0}, +{ 3, s_1_12, -1, -1, 0} }; static const symbol s_2_0[4] = { 'a', 'n', 'd', 'o' }; @@ -92,17 +92,17 @@ static const symbol s_2_10[2] = { 0xED, 'r' }; static const struct among a_2[11] = { -/* 0 */ { 4, s_2_0, -1, 6, 0}, -/* 1 */ { 5, s_2_1, -1, 6, 0}, -/* 2 */ { 5, s_2_2, -1, 7, 0}, -/* 3 */ { 4, s_2_3, -1, 2, 0}, -/* 4 */ { 5, s_2_4, -1, 1, 0}, -/* 5 */ { 2, s_2_5, -1, 6, 0}, -/* 6 */ { 2, s_2_6, -1, 6, 0}, -/* 7 */ { 2, s_2_7, -1, 6, 0}, -/* 8 */ { 2, s_2_8, -1, 3, 0}, -/* 9 */ { 2, s_2_9, -1, 4, 0}, -/* 10 */ { 2, s_2_10, -1, 5, 0} +{ 4, s_2_0, -1, 6, 0}, +{ 5, s_2_1, -1, 6, 0}, +{ 5, s_2_2, -1, 7, 0}, +{ 4, s_2_3, -1, 2, 0}, +{ 5, s_2_4, -1, 1, 0}, +{ 2, s_2_5, -1, 6, 0}, +{ 2, s_2_6, -1, 6, 0}, +{ 2, s_2_7, -1, 6, 0}, +{ 2, s_2_8, -1, 3, 0}, +{ 2, s_2_9, -1, 4, 0}, +{ 2, s_2_10, -1, 5, 0} }; static const symbol s_3_0[2] = { 'i', 'c' }; @@ -112,10 +112,10 @@ static const symbol s_3_3[2] = { 'i', 'v' }; static const struct among a_3[4] = { -/* 0 */ { 2, s_3_0, -1, -1, 0}, -/* 1 */ { 2, s_3_1, -1, -1, 0}, -/* 2 */ { 2, s_3_2, -1, -1, 0}, -/* 3 */ { 2, s_3_3, -1, 1, 0} +{ 2, s_3_0, -1, -1, 0}, +{ 2, s_3_1, -1, -1, 0}, +{ 2, s_3_2, -1, -1, 0}, +{ 2, s_3_3, -1, 1, 0} }; static const symbol s_4_0[4] = { 'a', 'b', 'l', 'e' }; @@ -124,9 +124,9 @@ static const symbol s_4_2[4] = { 'a', 'n', 't', 'e' }; static const struct among a_4[3] = { -/* 0 */ { 4, s_4_0, -1, 1, 0}, -/* 1 */ { 4, s_4_1, -1, 1, 0}, -/* 2 */ { 4, s_4_2, -1, 1, 0} +{ 4, s_4_0, -1, 1, 0}, +{ 4, s_4_1, -1, 1, 0}, +{ 4, s_4_2, -1, 1, 0} }; static const symbol s_5_0[2] = { 'i', 'c' }; @@ -135,9 +135,9 @@ static const symbol s_5_2[2] = { 'i', 'v' }; static const struct among a_5[3] = { -/* 0 */ { 2, s_5_0, -1, 1, 0}, -/* 1 */ { 4, s_5_1, -1, 1, 0}, -/* 2 */ { 2, s_5_2, -1, 1, 0} +{ 2, s_5_0, -1, 1, 0}, +{ 4, s_5_1, -1, 1, 0}, +{ 2, s_5_2, -1, 1, 0} }; static const symbol s_6_0[3] = { 'i', 'c', 'a' }; @@ -189,52 +189,52 @@ static const symbol s_6_45[4] = { 'i', 'v', 'o', 's' }; static const struct among a_6[46] = { -/* 0 */ { 3, s_6_0, -1, 1, 0}, -/* 1 */ { 5, s_6_1, -1, 2, 0}, -/* 2 */ { 5, s_6_2, -1, 5, 0}, -/* 3 */ { 5, s_6_3, -1, 2, 0}, -/* 4 */ { 3, s_6_4, -1, 1, 0}, -/* 5 */ { 4, s_6_5, -1, 1, 0}, -/* 6 */ { 3, s_6_6, -1, 9, 0}, -/* 7 */ { 4, s_6_7, -1, 1, 0}, -/* 8 */ { 5, s_6_8, -1, 3, 0}, -/* 9 */ { 4, s_6_9, -1, 8, 0}, -/* 10 */ { 4, s_6_10, -1, 1, 0}, -/* 11 */ { 4, s_6_11, -1, 1, 0}, -/* 12 */ { 4, s_6_12, -1, 2, 0}, -/* 13 */ { 5, s_6_13, -1, 7, 0}, -/* 14 */ { 6, s_6_14, 13, 6, 0}, -/* 15 */ { 5, s_6_15, -1, 2, 0}, -/* 16 */ { 5, s_6_16, -1, 4, 0}, -/* 17 */ { 3, s_6_17, -1, 1, 0}, -/* 18 */ { 4, s_6_18, -1, 1, 0}, -/* 19 */ { 3, s_6_19, -1, 1, 0}, -/* 20 */ { 7, s_6_20, -1, 1, 0}, -/* 21 */ { 7, s_6_21, -1, 1, 0}, -/* 22 */ { 3, s_6_22, -1, 9, 0}, -/* 23 */ { 4, s_6_23, -1, 2, 0}, -/* 24 */ { 4, s_6_24, -1, 1, 0}, -/* 25 */ { 6, s_6_25, -1, 2, 0}, -/* 26 */ { 6, s_6_26, -1, 5, 0}, -/* 27 */ { 6, s_6_27, -1, 2, 0}, -/* 28 */ { 4, s_6_28, -1, 1, 0}, -/* 29 */ { 5, s_6_29, -1, 1, 0}, -/* 30 */ { 4, s_6_30, -1, 9, 0}, -/* 31 */ { 5, s_6_31, -1, 1, 0}, -/* 32 */ { 6, s_6_32, -1, 3, 0}, -/* 33 */ { 6, s_6_33, -1, 8, 0}, -/* 34 */ { 5, s_6_34, -1, 1, 0}, -/* 35 */ { 5, s_6_35, -1, 1, 0}, -/* 36 */ { 7, s_6_36, -1, 2, 0}, -/* 37 */ { 7, s_6_37, -1, 4, 0}, -/* 38 */ { 6, s_6_38, -1, 2, 0}, -/* 39 */ { 5, s_6_39, -1, 2, 0}, -/* 40 */ { 4, s_6_40, -1, 1, 0}, -/* 41 */ { 5, s_6_41, -1, 1, 0}, -/* 42 */ { 4, s_6_42, -1, 1, 0}, -/* 43 */ { 8, s_6_43, -1, 1, 0}, -/* 44 */ { 8, s_6_44, -1, 1, 0}, -/* 45 */ { 4, s_6_45, -1, 9, 0} +{ 3, s_6_0, -1, 1, 0}, +{ 5, s_6_1, -1, 2, 0}, +{ 5, s_6_2, -1, 5, 0}, +{ 5, s_6_3, -1, 2, 0}, +{ 3, s_6_4, -1, 1, 0}, +{ 4, s_6_5, -1, 1, 0}, +{ 3, s_6_6, -1, 9, 0}, +{ 4, s_6_7, -1, 1, 0}, +{ 5, s_6_8, -1, 3, 0}, +{ 4, s_6_9, -1, 8, 0}, +{ 4, s_6_10, -1, 1, 0}, +{ 4, s_6_11, -1, 1, 0}, +{ 4, s_6_12, -1, 2, 0}, +{ 5, s_6_13, -1, 7, 0}, +{ 6, s_6_14, 13, 6, 0}, +{ 5, s_6_15, -1, 2, 0}, +{ 5, s_6_16, -1, 4, 0}, +{ 3, s_6_17, -1, 1, 0}, +{ 4, s_6_18, -1, 1, 0}, +{ 3, s_6_19, -1, 1, 0}, +{ 7, s_6_20, -1, 1, 0}, +{ 7, s_6_21, -1, 1, 0}, +{ 3, s_6_22, -1, 9, 0}, +{ 4, s_6_23, -1, 2, 0}, +{ 4, s_6_24, -1, 1, 0}, +{ 6, s_6_25, -1, 2, 0}, +{ 6, s_6_26, -1, 5, 0}, +{ 6, s_6_27, -1, 2, 0}, +{ 4, s_6_28, -1, 1, 0}, +{ 5, s_6_29, -1, 1, 0}, +{ 4, s_6_30, -1, 9, 0}, +{ 5, s_6_31, -1, 1, 0}, +{ 6, s_6_32, -1, 3, 0}, +{ 6, s_6_33, -1, 8, 0}, +{ 5, s_6_34, -1, 1, 0}, +{ 5, s_6_35, -1, 1, 0}, +{ 7, s_6_36, -1, 2, 0}, +{ 7, s_6_37, -1, 4, 0}, +{ 6, s_6_38, -1, 2, 0}, +{ 5, s_6_39, -1, 2, 0}, +{ 4, s_6_40, -1, 1, 0}, +{ 5, s_6_41, -1, 1, 0}, +{ 4, s_6_42, -1, 1, 0}, +{ 8, s_6_43, -1, 1, 0}, +{ 8, s_6_44, -1, 1, 0}, +{ 4, s_6_45, -1, 9, 0} }; static const symbol s_7_0[2] = { 'y', 'a' }; @@ -252,18 +252,18 @@ static const symbol s_7_11[2] = { 'y', 0xF3 }; static const struct among a_7[12] = { -/* 0 */ { 2, s_7_0, -1, 1, 0}, -/* 1 */ { 2, s_7_1, -1, 1, 0}, -/* 2 */ { 3, s_7_2, -1, 1, 0}, -/* 3 */ { 3, s_7_3, -1, 1, 0}, -/* 4 */ { 5, s_7_4, -1, 1, 0}, -/* 5 */ { 5, s_7_5, -1, 1, 0}, -/* 6 */ { 2, s_7_6, -1, 1, 0}, -/* 7 */ { 3, s_7_7, -1, 1, 0}, -/* 8 */ { 3, s_7_8, -1, 1, 0}, -/* 9 */ { 4, s_7_9, -1, 1, 0}, -/* 10 */ { 5, s_7_10, -1, 1, 0}, -/* 11 */ { 2, s_7_11, -1, 1, 0} +{ 2, s_7_0, -1, 1, 0}, +{ 2, s_7_1, -1, 1, 0}, +{ 3, s_7_2, -1, 1, 0}, +{ 3, s_7_3, -1, 1, 0}, +{ 5, s_7_4, -1, 1, 0}, +{ 5, s_7_5, -1, 1, 0}, +{ 2, s_7_6, -1, 1, 0}, +{ 3, s_7_7, -1, 1, 0}, +{ 3, s_7_8, -1, 1, 0}, +{ 4, s_7_9, -1, 1, 0}, +{ 5, s_7_10, -1, 1, 0}, +{ 2, s_7_11, -1, 1, 0} }; static const symbol s_8_0[3] = { 'a', 'b', 'a' }; @@ -365,102 +365,102 @@ static const symbol s_8_95[2] = { 'i', 0xF3 }; static const struct among a_8[96] = { -/* 0 */ { 3, s_8_0, -1, 2, 0}, -/* 1 */ { 3, s_8_1, -1, 2, 0}, -/* 2 */ { 3, s_8_2, -1, 2, 0}, -/* 3 */ { 3, s_8_3, -1, 2, 0}, -/* 4 */ { 4, s_8_4, -1, 2, 0}, -/* 5 */ { 2, s_8_5, -1, 2, 0}, -/* 6 */ { 4, s_8_6, 5, 2, 0}, -/* 7 */ { 4, s_8_7, 5, 2, 0}, -/* 8 */ { 4, s_8_8, 5, 2, 0}, -/* 9 */ { 2, s_8_9, -1, 2, 0}, -/* 10 */ { 2, s_8_10, -1, 2, 0}, -/* 11 */ { 2, s_8_11, -1, 2, 0}, -/* 12 */ { 3, s_8_12, -1, 2, 0}, -/* 13 */ { 4, s_8_13, -1, 2, 0}, -/* 14 */ { 4, s_8_14, -1, 2, 0}, -/* 15 */ { 4, s_8_15, -1, 2, 0}, -/* 16 */ { 2, s_8_16, -1, 2, 0}, -/* 17 */ { 4, s_8_17, 16, 2, 0}, -/* 18 */ { 4, s_8_18, 16, 2, 0}, -/* 19 */ { 5, s_8_19, 16, 2, 0}, -/* 20 */ { 3, s_8_20, 16, 2, 0}, -/* 21 */ { 5, s_8_21, 20, 2, 0}, -/* 22 */ { 5, s_8_22, 20, 2, 0}, -/* 23 */ { 5, s_8_23, 20, 2, 0}, -/* 24 */ { 2, s_8_24, -1, 1, 0}, -/* 25 */ { 4, s_8_25, 24, 2, 0}, -/* 26 */ { 5, s_8_26, 24, 2, 0}, -/* 27 */ { 4, s_8_27, -1, 2, 0}, -/* 28 */ { 5, s_8_28, -1, 2, 0}, -/* 29 */ { 4, s_8_29, -1, 2, 0}, -/* 30 */ { 4, s_8_30, -1, 2, 0}, -/* 31 */ { 4, s_8_31, -1, 2, 0}, -/* 32 */ { 3, s_8_32, -1, 2, 0}, -/* 33 */ { 3, s_8_33, -1, 2, 0}, -/* 34 */ { 4, s_8_34, -1, 2, 0}, -/* 35 */ { 5, s_8_35, -1, 2, 0}, -/* 36 */ { 2, s_8_36, -1, 2, 0}, -/* 37 */ { 2, s_8_37, -1, 2, 0}, -/* 38 */ { 2, s_8_38, -1, 2, 0}, -/* 39 */ { 2, s_8_39, -1, 2, 0}, -/* 40 */ { 4, s_8_40, 39, 2, 0}, -/* 41 */ { 4, s_8_41, 39, 2, 0}, -/* 42 */ { 4, s_8_42, 39, 2, 0}, -/* 43 */ { 4, s_8_43, 39, 2, 0}, -/* 44 */ { 5, s_8_44, 39, 2, 0}, -/* 45 */ { 3, s_8_45, 39, 2, 0}, -/* 46 */ { 5, s_8_46, 45, 2, 0}, -/* 47 */ { 5, s_8_47, 45, 2, 0}, -/* 48 */ { 5, s_8_48, 45, 2, 0}, -/* 49 */ { 2, s_8_49, -1, 1, 0}, -/* 50 */ { 4, s_8_50, 49, 2, 0}, -/* 51 */ { 5, s_8_51, 49, 2, 0}, -/* 52 */ { 5, s_8_52, -1, 2, 0}, -/* 53 */ { 5, s_8_53, -1, 2, 0}, -/* 54 */ { 6, s_8_54, -1, 2, 0}, -/* 55 */ { 4, s_8_55, -1, 2, 0}, -/* 56 */ { 6, s_8_56, 55, 2, 0}, -/* 57 */ { 6, s_8_57, 55, 2, 0}, -/* 58 */ { 6, s_8_58, 55, 2, 0}, -/* 59 */ { 5, s_8_59, -1, 2, 0}, -/* 60 */ { 6, s_8_60, -1, 2, 0}, -/* 61 */ { 6, s_8_61, -1, 2, 0}, -/* 62 */ { 6, s_8_62, -1, 2, 0}, -/* 63 */ { 3, s_8_63, -1, 2, 0}, -/* 64 */ { 3, s_8_64, -1, 1, 0}, -/* 65 */ { 5, s_8_65, 64, 2, 0}, -/* 66 */ { 5, s_8_66, 64, 2, 0}, -/* 67 */ { 5, s_8_67, 64, 2, 0}, -/* 68 */ { 4, s_8_68, -1, 2, 0}, -/* 69 */ { 4, s_8_69, -1, 2, 0}, -/* 70 */ { 4, s_8_70, -1, 2, 0}, -/* 71 */ { 6, s_8_71, 70, 2, 0}, -/* 72 */ { 6, s_8_72, 70, 2, 0}, -/* 73 */ { 7, s_8_73, 70, 2, 0}, -/* 74 */ { 5, s_8_74, 70, 2, 0}, -/* 75 */ { 7, s_8_75, 74, 2, 0}, -/* 76 */ { 7, s_8_76, 74, 2, 0}, -/* 77 */ { 7, s_8_77, 74, 2, 0}, -/* 78 */ { 4, s_8_78, -1, 1, 0}, -/* 79 */ { 6, s_8_79, 78, 2, 0}, -/* 80 */ { 6, s_8_80, 78, 2, 0}, -/* 81 */ { 6, s_8_81, 78, 2, 0}, -/* 82 */ { 6, s_8_82, 78, 2, 0}, -/* 83 */ { 7, s_8_83, 78, 2, 0}, -/* 84 */ { 4, s_8_84, -1, 2, 0}, -/* 85 */ { 4, s_8_85, -1, 2, 0}, -/* 86 */ { 4, s_8_86, -1, 2, 0}, -/* 87 */ { 4, s_8_87, -1, 2, 0}, -/* 88 */ { 2, s_8_88, -1, 2, 0}, -/* 89 */ { 3, s_8_89, -1, 2, 0}, -/* 90 */ { 3, s_8_90, -1, 2, 0}, -/* 91 */ { 3, s_8_91, -1, 2, 0}, -/* 92 */ { 3, s_8_92, -1, 2, 0}, -/* 93 */ { 3, s_8_93, -1, 2, 0}, -/* 94 */ { 3, s_8_94, -1, 2, 0}, -/* 95 */ { 2, s_8_95, -1, 2, 0} +{ 3, s_8_0, -1, 2, 0}, +{ 3, s_8_1, -1, 2, 0}, +{ 3, s_8_2, -1, 2, 0}, +{ 3, s_8_3, -1, 2, 0}, +{ 4, s_8_4, -1, 2, 0}, +{ 2, s_8_5, -1, 2, 0}, +{ 4, s_8_6, 5, 2, 0}, +{ 4, s_8_7, 5, 2, 0}, +{ 4, s_8_8, 5, 2, 0}, +{ 2, s_8_9, -1, 2, 0}, +{ 2, s_8_10, -1, 2, 0}, +{ 2, s_8_11, -1, 2, 0}, +{ 3, s_8_12, -1, 2, 0}, +{ 4, s_8_13, -1, 2, 0}, +{ 4, s_8_14, -1, 2, 0}, +{ 4, s_8_15, -1, 2, 0}, +{ 2, s_8_16, -1, 2, 0}, +{ 4, s_8_17, 16, 2, 0}, +{ 4, s_8_18, 16, 2, 0}, +{ 5, s_8_19, 16, 2, 0}, +{ 3, s_8_20, 16, 2, 0}, +{ 5, s_8_21, 20, 2, 0}, +{ 5, s_8_22, 20, 2, 0}, +{ 5, s_8_23, 20, 2, 0}, +{ 2, s_8_24, -1, 1, 0}, +{ 4, s_8_25, 24, 2, 0}, +{ 5, s_8_26, 24, 2, 0}, +{ 4, s_8_27, -1, 2, 0}, +{ 5, s_8_28, -1, 2, 0}, +{ 4, s_8_29, -1, 2, 0}, +{ 4, s_8_30, -1, 2, 0}, +{ 4, s_8_31, -1, 2, 0}, +{ 3, s_8_32, -1, 2, 0}, +{ 3, s_8_33, -1, 2, 0}, +{ 4, s_8_34, -1, 2, 0}, +{ 5, s_8_35, -1, 2, 0}, +{ 2, s_8_36, -1, 2, 0}, +{ 2, s_8_37, -1, 2, 0}, +{ 2, s_8_38, -1, 2, 0}, +{ 2, s_8_39, -1, 2, 0}, +{ 4, s_8_40, 39, 2, 0}, +{ 4, s_8_41, 39, 2, 0}, +{ 4, s_8_42, 39, 2, 0}, +{ 4, s_8_43, 39, 2, 0}, +{ 5, s_8_44, 39, 2, 0}, +{ 3, s_8_45, 39, 2, 0}, +{ 5, s_8_46, 45, 2, 0}, +{ 5, s_8_47, 45, 2, 0}, +{ 5, s_8_48, 45, 2, 0}, +{ 2, s_8_49, -1, 1, 0}, +{ 4, s_8_50, 49, 2, 0}, +{ 5, s_8_51, 49, 2, 0}, +{ 5, s_8_52, -1, 2, 0}, +{ 5, s_8_53, -1, 2, 0}, +{ 6, s_8_54, -1, 2, 0}, +{ 4, s_8_55, -1, 2, 0}, +{ 6, s_8_56, 55, 2, 0}, +{ 6, s_8_57, 55, 2, 0}, +{ 6, s_8_58, 55, 2, 0}, +{ 5, s_8_59, -1, 2, 0}, +{ 6, s_8_60, -1, 2, 0}, +{ 6, s_8_61, -1, 2, 0}, +{ 6, s_8_62, -1, 2, 0}, +{ 3, s_8_63, -1, 2, 0}, +{ 3, s_8_64, -1, 1, 0}, +{ 5, s_8_65, 64, 2, 0}, +{ 5, s_8_66, 64, 2, 0}, +{ 5, s_8_67, 64, 2, 0}, +{ 4, s_8_68, -1, 2, 0}, +{ 4, s_8_69, -1, 2, 0}, +{ 4, s_8_70, -1, 2, 0}, +{ 6, s_8_71, 70, 2, 0}, +{ 6, s_8_72, 70, 2, 0}, +{ 7, s_8_73, 70, 2, 0}, +{ 5, s_8_74, 70, 2, 0}, +{ 7, s_8_75, 74, 2, 0}, +{ 7, s_8_76, 74, 2, 0}, +{ 7, s_8_77, 74, 2, 0}, +{ 4, s_8_78, -1, 1, 0}, +{ 6, s_8_79, 78, 2, 0}, +{ 6, s_8_80, 78, 2, 0}, +{ 6, s_8_81, 78, 2, 0}, +{ 6, s_8_82, 78, 2, 0}, +{ 7, s_8_83, 78, 2, 0}, +{ 4, s_8_84, -1, 2, 0}, +{ 4, s_8_85, -1, 2, 0}, +{ 4, s_8_86, -1, 2, 0}, +{ 4, s_8_87, -1, 2, 0}, +{ 2, s_8_88, -1, 2, 0}, +{ 3, s_8_89, -1, 2, 0}, +{ 3, s_8_90, -1, 2, 0}, +{ 3, s_8_91, -1, 2, 0}, +{ 3, s_8_92, -1, 2, 0}, +{ 3, s_8_93, -1, 2, 0}, +{ 3, s_8_94, -1, 2, 0}, +{ 2, s_8_95, -1, 2, 0} }; static const symbol s_9_0[1] = { 'a' }; @@ -474,14 +474,14 @@ static const symbol s_9_7[1] = { 0xF3 }; static const struct among a_9[8] = { -/* 0 */ { 1, s_9_0, -1, 1, 0}, -/* 1 */ { 1, s_9_1, -1, 2, 0}, -/* 2 */ { 1, s_9_2, -1, 1, 0}, -/* 3 */ { 2, s_9_3, -1, 1, 0}, -/* 4 */ { 1, s_9_4, -1, 1, 0}, -/* 5 */ { 1, s_9_5, -1, 2, 0}, -/* 6 */ { 1, s_9_6, -1, 1, 0}, -/* 7 */ { 1, s_9_7, -1, 1, 0} +{ 1, s_9_0, -1, 1, 0}, +{ 1, s_9_1, -1, 2, 0}, +{ 1, s_9_2, -1, 1, 0}, +{ 2, s_9_3, -1, 1, 0}, +{ 1, s_9_4, -1, 1, 0}, +{ 1, s_9_5, -1, 2, 0}, +{ 1, s_9_6, -1, 1, 0}, +{ 1, s_9_7, -1, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 10 }; @@ -503,16 +503,16 @@ static const symbol s_13[] = { 'e', 'n', 't', 'e' }; static const symbol s_14[] = { 'a', 't' }; static const symbol s_15[] = { 'a', 't' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $pV = , line 33 */ - z->I[1] = z->l; /* $p1 = , line 34 */ - z->I[2] = z->l; /* $p2 = , line 35 */ - { int c1 = z->c; /* do, line 37 */ - { int c2 = z->c; /* or, line 39 */ - if (in_grouping(z, g_v, 97, 252, 0)) goto lab2; /* grouping v, line 38 */ - { int c3 = z->c; /* or, line 38 */ - if (out_grouping(z, g_v, 97, 252, 0)) goto lab4; /* non v, line 38 */ - { /* gopast */ /* grouping v, line 38 */ +static int r_mark_regions(struct SN_env * z) { + z->I[2] = z->l; + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int c2 = z->c; + if (in_grouping(z, g_v, 97, 252, 0)) goto lab2; + { int c3 = z->c; + if (out_grouping(z, g_v, 97, 252, 0)) goto lab4; + { int ret = out_grouping(z, g_v, 97, 252, 1); if (ret < 0) goto lab4; z->c += ret; @@ -520,8 +520,8 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab3; lab4: z->c = c3; - if (in_grouping(z, g_v, 97, 252, 0)) goto lab2; /* grouping v, line 38 */ - { /* gopast */ /* non v, line 38 */ + if (in_grouping(z, g_v, 97, 252, 0)) goto lab2; + { int ret = in_grouping(z, g_v, 97, 252, 1); if (ret < 0) goto lab2; z->c += ret; @@ -531,10 +531,10 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab1; lab2: z->c = c2; - if (out_grouping(z, g_v, 97, 252, 0)) goto lab0; /* non v, line 40 */ - { int c4 = z->c; /* or, line 40 */ - if (out_grouping(z, g_v, 97, 252, 0)) goto lab6; /* non v, line 40 */ - { /* gopast */ /* grouping v, line 40 */ + if (out_grouping(z, g_v, 97, 252, 0)) goto lab0; + { int c4 = z->c; + if (out_grouping(z, g_v, 97, 252, 0)) goto lab6; + { int ret = out_grouping(z, g_v, 97, 252, 1); if (ret < 0) goto lab6; z->c += ret; @@ -542,86 +542,85 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab5; lab6: z->c = c4; - if (in_grouping(z, g_v, 97, 252, 0)) goto lab0; /* grouping v, line 40 */ + if (in_grouping(z, g_v, 97, 252, 0)) goto lab0; if (z->c >= z->l) goto lab0; - z->c++; /* next, line 40 */ + z->c++; } lab5: ; } lab1: - z->I[0] = z->c; /* setmark pV, line 41 */ + z->I[2] = z->c; lab0: z->c = c1; } - { int c5 = z->c; /* do, line 43 */ - { /* gopast */ /* grouping v, line 44 */ + { int c5 = z->c; + { int ret = out_grouping(z, g_v, 97, 252, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 44 */ + { int ret = in_grouping(z, g_v, 97, 252, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[1] = z->c; /* setmark p1, line 44 */ - { /* gopast */ /* grouping v, line 45 */ + z->I[1] = z->c; + { int ret = out_grouping(z, g_v, 97, 252, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 45 */ + { int ret = in_grouping(z, g_v, 97, 252, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[2] = z->c; /* setmark p2, line 45 */ + z->I[0] = z->c; lab7: z->c = c5; } return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ +static int r_postlude(struct SN_env * z) { int among_var; -/* repeat, line 49 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 50 */ - if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((67641858 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else /* substring, line 50 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((67641858 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else among_var = find_among(z, a_0, 6); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 50 */ - switch (among_var) { /* among, line 50 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_0); /* <-, line 51 */ + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_1); /* <-, line 52 */ + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_2); /* <-, line 53 */ + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 1, s_3); /* <-, line 54 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 1, s_4); /* <-, line 55 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } break; case 6: if (z->c >= z->l) goto lab0; - z->c++; /* next, line 57 */ + z->c++; break; } continue; @@ -632,73 +631,73 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_RV(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 63 */ +static int r_RV(struct SN_env * z) { + if (!(z->I[2] <= z->c)) return 0; return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 64 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 65 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */ +static int r_attached_pronoun(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 68 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 68 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_1, 13))) return 0; - z->bra = z->c; /* ], line 68 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0; /* substring, line 72 */ + z->bra = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0; among_var = find_among_b(z, a_2, 11); if (!(among_var)) return 0; - { int ret = r_RV(z); /* call RV, line 72 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 72 */ + switch (among_var) { case 1: - z->bra = z->c; /* ], line 73 */ - { int ret = slice_from_s(z, 5, s_5); /* <-, line 73 */ + z->bra = z->c; + { int ret = slice_from_s(z, 5, s_5); if (ret < 0) return ret; } break; case 2: - z->bra = z->c; /* ], line 74 */ - { int ret = slice_from_s(z, 4, s_6); /* <-, line 74 */ + z->bra = z->c; + { int ret = slice_from_s(z, 4, s_6); if (ret < 0) return ret; } break; case 3: - z->bra = z->c; /* ], line 75 */ - { int ret = slice_from_s(z, 2, s_7); /* <-, line 75 */ + z->bra = z->c; + { int ret = slice_from_s(z, 2, s_7); if (ret < 0) return ret; } break; case 4: - z->bra = z->c; /* ], line 76 */ - { int ret = slice_from_s(z, 2, s_8); /* <-, line 76 */ + z->bra = z->c; + { int ret = slice_from_s(z, 2, s_8); if (ret < 0) return ret; } break; case 5: - z->bra = z->c; /* ], line 77 */ - { int ret = slice_from_s(z, 2, s_9); /* <-, line 77 */ + z->bra = z->c; + { int ret = slice_from_s(z, 2, s_9); if (ret < 0) return ret; } break; case 6: - { int ret = slice_del(z); /* delete, line 81 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 7: - if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0; /* literal, line 82 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0; z->c--; - { int ret = slice_del(z); /* delete, line 82 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -706,38 +705,38 @@ static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ +static int r_standard_suffix(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 87 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 87 */ + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_6, 46); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 87 */ - switch (among_var) { /* among, line 87 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 99 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 99 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 105 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 105 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m1 = z->l - z->c; (void)m1; /* try, line 106 */ - z->ket = z->c; /* [, line 106 */ - if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m1; goto lab0; } /* literal, line 106 */ - z->bra = z->c; /* ], line 106 */ - { int ret = r_R2(z); /* call R2, line 106 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m1; goto lab0; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m1; goto lab0; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 106 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: @@ -745,59 +744,59 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 3: - { int ret = r_R2(z); /* call R2, line 111 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_11); /* <-, line 111 */ + { int ret = slice_from_s(z, 3, s_11); if (ret < 0) return ret; } break; case 4: - { int ret = r_R2(z); /* call R2, line 115 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 1, s_12); /* <-, line 115 */ + { int ret = slice_from_s(z, 1, s_12); if (ret < 0) return ret; } break; case 5: - { int ret = r_R2(z); /* call R2, line 119 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 4, s_13); /* <-, line 119 */ + { int ret = slice_from_s(z, 4, s_13); if (ret < 0) return ret; } break; case 6: - { int ret = r_R1(z); /* call R1, line 123 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 123 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m2 = z->l - z->c; (void)m2; /* try, line 124 */ - z->ket = z->c; /* [, line 125 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; } /* substring, line 125 */ + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; } among_var = find_among_b(z, a_3, 4); if (!(among_var)) { z->c = z->l - m2; goto lab1; } - z->bra = z->c; /* ], line 125 */ - { int ret = r_R2(z); /* call R2, line 125 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m2; goto lab1; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 125 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - switch (among_var) { /* among, line 125 */ + switch (among_var) { case 1: - z->ket = z->c; /* [, line 126 */ - if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m2; goto lab1; } /* literal, line 126 */ - z->bra = z->c; /* ], line 126 */ - { int ret = r_R2(z); /* call R2, line 126 */ + z->ket = z->c; + if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m2; goto lab1; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m2; goto lab1; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 126 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -807,22 +806,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 7: - { int ret = r_R2(z); /* call R2, line 135 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 135 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m3 = z->l - z->c; (void)m3; /* try, line 136 */ - z->ket = z->c; /* [, line 137 */ - if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m3; goto lab2; } /* substring, line 137 */ + { int m3 = z->l - z->c; (void)m3; + z->ket = z->c; + if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m3; goto lab2; } if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; } - z->bra = z->c; /* ], line 137 */ - { int ret = r_R2(z); /* call R2, line 140 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m3; goto lab2; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 140 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab2: @@ -830,22 +829,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 8: - { int ret = r_R2(z); /* call R2, line 147 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 147 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m4 = z->l - z->c; (void)m4; /* try, line 148 */ - z->ket = z->c; /* [, line 149 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m4; goto lab3; } /* substring, line 149 */ + { int m4 = z->l - z->c; (void)m4; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m4; goto lab3; } if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m4; goto lab3; } - z->bra = z->c; /* ], line 149 */ - { int ret = r_R2(z); /* call R2, line 152 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m4; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 152 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab3: @@ -853,21 +852,21 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 9: - { int ret = r_R2(z); /* call R2, line 159 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 159 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m5 = z->l - z->c; (void)m5; /* try, line 160 */ - z->ket = z->c; /* [, line 161 */ - if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m5; goto lab4; } /* literal, line 161 */ - z->bra = z->c; /* ], line 161 */ - { int ret = r_R2(z); /* call R2, line 161 */ + { int m5 = z->l - z->c; (void)m5; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m5; goto lab4; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m5; goto lab4; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 161 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab4: @@ -878,56 +877,56 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_y_verb_suffix(struct SN_env * z) { /* backwardmode */ +static int r_y_verb_suffix(struct SN_env * z) { - { int mlimit1; /* setlimit, line 168 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 168 */ - if (!(find_among_b(z, a_7, 12))) { z->lb = mlimit1; return 0; } /* substring, line 168 */ - z->bra = z->c; /* ], line 168 */ + { int mlimit1; + if (z->c < z->I[2]) return 0; + mlimit1 = z->lb; z->lb = z->I[2]; + z->ket = z->c; + if (!(find_among_b(z, a_7, 12))) { z->lb = mlimit1; return 0; } + z->bra = z->c; z->lb = mlimit1; } - if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0; /* literal, line 171 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0; z->c--; - { int ret = slice_del(z); /* delete, line 171 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ +static int r_verb_suffix(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 176 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 176 */ - among_var = find_among_b(z, a_8, 96); /* substring, line 176 */ + { int mlimit1; + if (z->c < z->I[2]) return 0; + mlimit1 = z->lb; z->lb = z->I[2]; + z->ket = z->c; + among_var = find_among_b(z, a_8, 96); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 176 */ + z->bra = z->c; z->lb = mlimit1; } - switch (among_var) { /* among, line 176 */ + switch (among_var) { case 1: - { int m2 = z->l - z->c; (void)m2; /* try, line 179 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m2; goto lab0; } /* literal, line 179 */ + { int m2 = z->l - z->c; (void)m2; + if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m2; goto lab0; } z->c--; - { int m_test3 = z->l - z->c; /* test, line 179 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m2; goto lab0; } /* literal, line 179 */ + { int m_test3 = z->l - z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m2; goto lab0; } z->c--; z->c = z->l - m_test3; } lab0: ; } - z->bra = z->c; /* ], line 179 */ - { int ret = slice_del(z); /* delete, line 179 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_del(z); /* delete, line 200 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -935,43 +934,43 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ +static int r_residual_suffix(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 205 */ - among_var = find_among_b(z, a_9, 8); /* substring, line 205 */ + z->ket = z->c; + among_var = find_among_b(z, a_9, 8); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 205 */ - switch (among_var) { /* among, line 205 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_RV(z); /* call RV, line 208 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 208 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_RV(z); /* call RV, line 210 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 210 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m1 = z->l - z->c; (void)m1; /* try, line 210 */ - z->ket = z->c; /* [, line 210 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m1; goto lab0; } /* literal, line 210 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m1; goto lab0; } z->c--; - z->bra = z->c; /* ], line 210 */ - { int m_test2 = z->l - z->c; /* test, line 210 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m1; goto lab0; } /* literal, line 210 */ + z->bra = z->c; + { int m_test2 = z->l - z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m1; goto lab0; } z->c--; z->c = z->l - m_test2; } - { int ret = r_RV(z); /* call RV, line 210 */ + { int ret = r_RV(z); if (ret == 0) { z->c = z->l - m1; goto lab0; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 210 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: @@ -982,36 +981,36 @@ static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -extern int spanish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ - /* do, line 216 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 216 */ +extern int spanish_ISO_8859_1_stem(struct SN_env * z) { + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 217 */ + z->lb = z->c; z->c = z->l; - { int m1 = z->l - z->c; (void)m1; /* do, line 218 */ - { int ret = r_attached_pronoun(z); /* call attached_pronoun, line 218 */ + { int m1 = z->l - z->c; (void)m1; + { int ret = r_attached_pronoun(z); if (ret < 0) return ret; } z->c = z->l - m1; } - { int m2 = z->l - z->c; (void)m2; /* do, line 219 */ - { int m3 = z->l - z->c; (void)m3; /* or, line 219 */ - { int ret = r_standard_suffix(z); /* call standard_suffix, line 219 */ + { int m2 = z->l - z->c; (void)m2; + { int m3 = z->l - z->c; (void)m3; + { int ret = r_standard_suffix(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } goto lab1; lab2: z->c = z->l - m3; - { int ret = r_y_verb_suffix(z); /* call y_verb_suffix, line 220 */ + { int ret = r_y_verb_suffix(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } goto lab1; lab3: z->c = z->l - m3; - { int ret = r_verb_suffix(z); /* call verb_suffix, line 221 */ + { int ret = r_verb_suffix(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -1020,15 +1019,15 @@ extern int spanish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ lab0: z->c = z->l - m2; } - { int m4 = z->l - z->c; (void)m4; /* do, line 223 */ - { int ret = r_residual_suffix(z); /* call residual_suffix, line 223 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_residual_suffix(z); if (ret < 0) return ret; } z->c = z->l - m4; } z->c = z->lb; - { int c5 = z->c; /* do, line 225 */ - { int ret = r_postlude(z); /* call postlude, line 225 */ + { int c5 = z->c; + { int ret = r_postlude(z); if (ret < 0) return ret; } z->c = c5; @@ -1036,7 +1035,7 @@ extern int spanish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * spanish_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); } +extern struct SN_env * spanish_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); } extern void spanish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c b/src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c index e53777eb735a8..215298c034653 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_1_swedish.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -65,43 +65,43 @@ static const symbol s_0_36[3] = { 'a', 's', 't' }; static const struct among a_0[37] = { -/* 0 */ { 1, s_0_0, -1, 1, 0}, -/* 1 */ { 4, s_0_1, 0, 1, 0}, -/* 2 */ { 4, s_0_2, 0, 1, 0}, -/* 3 */ { 7, s_0_3, 2, 1, 0}, -/* 4 */ { 4, s_0_4, 0, 1, 0}, -/* 5 */ { 2, s_0_5, -1, 1, 0}, -/* 6 */ { 1, s_0_6, -1, 1, 0}, -/* 7 */ { 3, s_0_7, 6, 1, 0}, -/* 8 */ { 4, s_0_8, 6, 1, 0}, -/* 9 */ { 4, s_0_9, 6, 1, 0}, -/* 10 */ { 3, s_0_10, 6, 1, 0}, -/* 11 */ { 4, s_0_11, 6, 1, 0}, -/* 12 */ { 2, s_0_12, -1, 1, 0}, -/* 13 */ { 5, s_0_13, 12, 1, 0}, -/* 14 */ { 4, s_0_14, 12, 1, 0}, -/* 15 */ { 5, s_0_15, 12, 1, 0}, -/* 16 */ { 3, s_0_16, -1, 1, 0}, -/* 17 */ { 2, s_0_17, -1, 1, 0}, -/* 18 */ { 2, s_0_18, -1, 1, 0}, -/* 19 */ { 5, s_0_19, 18, 1, 0}, -/* 20 */ { 2, s_0_20, -1, 1, 0}, -/* 21 */ { 1, s_0_21, -1, 2, 0}, -/* 22 */ { 2, s_0_22, 21, 1, 0}, -/* 23 */ { 5, s_0_23, 22, 1, 0}, -/* 24 */ { 5, s_0_24, 22, 1, 0}, -/* 25 */ { 5, s_0_25, 22, 1, 0}, -/* 26 */ { 2, s_0_26, 21, 1, 0}, -/* 27 */ { 4, s_0_27, 26, 1, 0}, -/* 28 */ { 5, s_0_28, 26, 1, 0}, -/* 29 */ { 3, s_0_29, 21, 1, 0}, -/* 30 */ { 5, s_0_30, 29, 1, 0}, -/* 31 */ { 6, s_0_31, 29, 1, 0}, -/* 32 */ { 4, s_0_32, 21, 1, 0}, -/* 33 */ { 2, s_0_33, -1, 1, 0}, -/* 34 */ { 5, s_0_34, -1, 1, 0}, -/* 35 */ { 3, s_0_35, -1, 1, 0}, -/* 36 */ { 3, s_0_36, -1, 1, 0} +{ 1, s_0_0, -1, 1, 0}, +{ 4, s_0_1, 0, 1, 0}, +{ 4, s_0_2, 0, 1, 0}, +{ 7, s_0_3, 2, 1, 0}, +{ 4, s_0_4, 0, 1, 0}, +{ 2, s_0_5, -1, 1, 0}, +{ 1, s_0_6, -1, 1, 0}, +{ 3, s_0_7, 6, 1, 0}, +{ 4, s_0_8, 6, 1, 0}, +{ 4, s_0_9, 6, 1, 0}, +{ 3, s_0_10, 6, 1, 0}, +{ 4, s_0_11, 6, 1, 0}, +{ 2, s_0_12, -1, 1, 0}, +{ 5, s_0_13, 12, 1, 0}, +{ 4, s_0_14, 12, 1, 0}, +{ 5, s_0_15, 12, 1, 0}, +{ 3, s_0_16, -1, 1, 0}, +{ 2, s_0_17, -1, 1, 0}, +{ 2, s_0_18, -1, 1, 0}, +{ 5, s_0_19, 18, 1, 0}, +{ 2, s_0_20, -1, 1, 0}, +{ 1, s_0_21, -1, 2, 0}, +{ 2, s_0_22, 21, 1, 0}, +{ 5, s_0_23, 22, 1, 0}, +{ 5, s_0_24, 22, 1, 0}, +{ 5, s_0_25, 22, 1, 0}, +{ 2, s_0_26, 21, 1, 0}, +{ 4, s_0_27, 26, 1, 0}, +{ 5, s_0_28, 26, 1, 0}, +{ 3, s_0_29, 21, 1, 0}, +{ 5, s_0_30, 29, 1, 0}, +{ 6, s_0_31, 29, 1, 0}, +{ 4, s_0_32, 21, 1, 0}, +{ 2, s_0_33, -1, 1, 0}, +{ 5, s_0_34, -1, 1, 0}, +{ 3, s_0_35, -1, 1, 0}, +{ 3, s_0_36, -1, 1, 0} }; static const symbol s_1_0[2] = { 'd', 'd' }; @@ -114,13 +114,13 @@ static const symbol s_1_6[2] = { 't', 't' }; static const struct among a_1[7] = { -/* 0 */ { 2, s_1_0, -1, -1, 0}, -/* 1 */ { 2, s_1_1, -1, -1, 0}, -/* 2 */ { 2, s_1_2, -1, -1, 0}, -/* 3 */ { 2, s_1_3, -1, -1, 0}, -/* 4 */ { 2, s_1_4, -1, -1, 0}, -/* 5 */ { 2, s_1_5, -1, -1, 0}, -/* 6 */ { 2, s_1_6, -1, -1, 0} +{ 2, s_1_0, -1, -1, 0}, +{ 2, s_1_1, -1, -1, 0}, +{ 2, s_1_2, -1, -1, 0}, +{ 2, s_1_3, -1, -1, 0}, +{ 2, s_1_4, -1, -1, 0}, +{ 2, s_1_5, -1, -1, 0}, +{ 2, s_1_6, -1, -1, 0} }; static const symbol s_2_0[2] = { 'i', 'g' }; @@ -131,11 +131,11 @@ static const symbol s_2_4[4] = { 'l', 0xF6, 's', 't' }; static const struct among a_2[5] = { -/* 0 */ { 2, s_2_0, -1, 1, 0}, -/* 1 */ { 3, s_2_1, 0, 1, 0}, -/* 2 */ { 3, s_2_2, -1, 1, 0}, -/* 3 */ { 5, s_2_3, -1, 3, 0}, -/* 4 */ { 4, s_2_4, -1, 2, 0} +{ 2, s_2_0, -1, 1, 0}, +{ 3, s_2_1, 0, 1, 0}, +{ 3, s_2_2, -1, 1, 0}, +{ 5, s_2_3, -1, 3, 0}, +{ 4, s_2_4, -1, 2, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 }; @@ -145,52 +145,50 @@ static const unsigned char g_s_ending[] = { 119, 127, 149 }; static const symbol s_0[] = { 'l', 0xF6, 's' }; static const symbol s_1[] = { 'f', 'u', 'l', 'l' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 28 */ - { int c_test1 = z->c; /* test, line 29 */ - { int ret = z->c + 3; /* hop, line 29 */ - if (0 > ret || ret > z->l) return 0; - z->c = ret; - } - z->I[1] = z->c; /* setmark x, line 29 */ +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + { int c_test1 = z->c; +z->c = z->c + 3; + if (z->c > z->l) return 0; + z->I[0] = z->c; z->c = c_test1; } - if (out_grouping(z, g_v, 97, 246, 1) < 0) return 0; /* goto */ /* grouping v, line 30 */ - { /* gopast */ /* non v, line 30 */ + if (out_grouping(z, g_v, 97, 246, 1) < 0) return 0; + { int ret = in_grouping(z, g_v, 97, 246, 1); if (ret < 0) return 0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 30 */ - /* try, line 31 */ - if (!(z->I[0] < z->I[1])) goto lab0; /* $( < ), line 31 */ - z->I[0] = z->I[1]; /* $p1 = , line 31 */ + z->I[1] = z->c; + + if (!(z->I[1] < z->I[0])) goto lab0; + z->I[1] = z->I[0]; lab0: return 1; } -static int r_main_suffix(struct SN_env * z) { /* backwardmode */ +static int r_main_suffix(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 37 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 37 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 37 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } among_var = find_among_b(z, a_0, 37); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 37 */ + z->bra = z->c; z->lb = mlimit1; } - switch (among_var) { /* among, line 38 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 44 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (in_grouping_b(z, g_s_ending, 98, 121, 0)) return 0; /* grouping s_ending, line 46 */ - { int ret = slice_del(z); /* delete, line 46 */ + if (in_grouping_b(z, g_s_ending, 98, 121, 0)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -198,20 +196,20 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_consonant_pair(struct SN_env * z) { /* backwardmode */ +static int r_consonant_pair(struct SN_env * z) { - { int mlimit1; /* setlimit, line 50 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - { int m2 = z->l - z->c; (void)m2; /* and, line 52 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* among, line 51 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + { int m2 = z->l - z->c; (void)m2; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit1; return 0; } z->c = z->l - m2; - z->ket = z->c; /* [, line 52 */ + z->ket = z->c; if (z->c <= z->lb) { z->lb = mlimit1; return 0; } - z->c--; /* next, line 52 */ - z->bra = z->c; /* ], line 52 */ - { int ret = slice_del(z); /* delete, line 52 */ + z->c--; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } } @@ -220,30 +218,30 @@ static int r_consonant_pair(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_other_suffix(struct SN_env * z) { /* backwardmode */ +static int r_other_suffix(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 55 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 56 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 56 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } among_var = find_among_b(z, a_2, 5); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 56 */ - switch (among_var) { /* among, line 56 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 57 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 3, s_0); /* <-, line 58 */ + { int ret = slice_from_s(z, 3, s_0); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 4, s_1); /* <-, line 59 */ + { int ret = slice_from_s(z, 4, s_1); if (ret < 0) return ret; } break; @@ -253,29 +251,29 @@ static int r_other_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -extern int swedish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 66 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 66 */ +extern int swedish_ISO_8859_1_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_mark_regions(z); if (ret < 0) return ret; } z->c = c1; } - z->lb = z->c; z->c = z->l; /* backwards, line 67 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 68 */ - { int ret = r_main_suffix(z); /* call main_suffix, line 68 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_main_suffix(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 69 */ - { int ret = r_consonant_pair(z); /* call consonant_pair, line 69 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_consonant_pair(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 70 */ - { int ret = r_other_suffix(z); /* call other_suffix, line 70 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_other_suffix(z); if (ret < 0) return ret; } z->c = z->l - m4; @@ -284,7 +282,7 @@ extern int swedish_ISO_8859_1_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * swedish_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); } +extern struct SN_env * swedish_ISO_8859_1_create_env(void) { return SN_create_env(0, 2); } extern void swedish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_2_hungarian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_2_hungarian.c index 44ef3d9253d8d..ce499386faccc 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_2_hungarian.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_2_hungarian.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -46,14 +46,14 @@ static const symbol s_0_7[2] = { 'z', 's' }; static const struct among a_0[8] = { -/* 0 */ { 2, s_0_0, -1, -1, 0}, -/* 1 */ { 3, s_0_1, -1, -1, 0}, -/* 2 */ { 2, s_0_2, -1, -1, 0}, -/* 3 */ { 2, s_0_3, -1, -1, 0}, -/* 4 */ { 2, s_0_4, -1, -1, 0}, -/* 5 */ { 2, s_0_5, -1, -1, 0}, -/* 6 */ { 2, s_0_6, -1, -1, 0}, -/* 7 */ { 2, s_0_7, -1, -1, 0} +{ 2, s_0_0, -1, -1, 0}, +{ 3, s_0_1, -1, -1, 0}, +{ 2, s_0_2, -1, -1, 0}, +{ 2, s_0_3, -1, -1, 0}, +{ 2, s_0_4, -1, -1, 0}, +{ 2, s_0_5, -1, -1, 0}, +{ 2, s_0_6, -1, -1, 0}, +{ 2, s_0_7, -1, -1, 0} }; static const symbol s_1_0[1] = { 0xE1 }; @@ -61,8 +61,8 @@ static const symbol s_1_1[1] = { 0xE9 }; static const struct among a_1[2] = { -/* 0 */ { 1, s_1_0, -1, 1, 0}, -/* 1 */ { 1, s_1_1, -1, 2, 0} +{ 1, s_1_0, -1, 1, 0}, +{ 1, s_1_1, -1, 2, 0} }; static const symbol s_2_0[2] = { 'b', 'b' }; @@ -91,29 +91,29 @@ static const symbol s_2_22[2] = { 'z', 'z' }; static const struct among a_2[23] = { -/* 0 */ { 2, s_2_0, -1, -1, 0}, -/* 1 */ { 2, s_2_1, -1, -1, 0}, -/* 2 */ { 2, s_2_2, -1, -1, 0}, -/* 3 */ { 2, s_2_3, -1, -1, 0}, -/* 4 */ { 2, s_2_4, -1, -1, 0}, -/* 5 */ { 2, s_2_5, -1, -1, 0}, -/* 6 */ { 2, s_2_6, -1, -1, 0}, -/* 7 */ { 2, s_2_7, -1, -1, 0}, -/* 8 */ { 2, s_2_8, -1, -1, 0}, -/* 9 */ { 2, s_2_9, -1, -1, 0}, -/* 10 */ { 2, s_2_10, -1, -1, 0}, -/* 11 */ { 2, s_2_11, -1, -1, 0}, -/* 12 */ { 3, s_2_12, -1, -1, 0}, -/* 13 */ { 2, s_2_13, -1, -1, 0}, -/* 14 */ { 3, s_2_14, -1, -1, 0}, -/* 15 */ { 2, s_2_15, -1, -1, 0}, -/* 16 */ { 2, s_2_16, -1, -1, 0}, -/* 17 */ { 3, s_2_17, -1, -1, 0}, -/* 18 */ { 3, s_2_18, -1, -1, 0}, -/* 19 */ { 3, s_2_19, -1, -1, 0}, -/* 20 */ { 3, s_2_20, -1, -1, 0}, -/* 21 */ { 3, s_2_21, -1, -1, 0}, -/* 22 */ { 2, s_2_22, -1, -1, 0} +{ 2, s_2_0, -1, -1, 0}, +{ 2, s_2_1, -1, -1, 0}, +{ 2, s_2_2, -1, -1, 0}, +{ 2, s_2_3, -1, -1, 0}, +{ 2, s_2_4, -1, -1, 0}, +{ 2, s_2_5, -1, -1, 0}, +{ 2, s_2_6, -1, -1, 0}, +{ 2, s_2_7, -1, -1, 0}, +{ 2, s_2_8, -1, -1, 0}, +{ 2, s_2_9, -1, -1, 0}, +{ 2, s_2_10, -1, -1, 0}, +{ 2, s_2_11, -1, -1, 0}, +{ 3, s_2_12, -1, -1, 0}, +{ 2, s_2_13, -1, -1, 0}, +{ 3, s_2_14, -1, -1, 0}, +{ 2, s_2_15, -1, -1, 0}, +{ 2, s_2_16, -1, -1, 0}, +{ 3, s_2_17, -1, -1, 0}, +{ 3, s_2_18, -1, -1, 0}, +{ 3, s_2_19, -1, -1, 0}, +{ 3, s_2_20, -1, -1, 0}, +{ 3, s_2_21, -1, -1, 0}, +{ 2, s_2_22, -1, -1, 0} }; static const symbol s_3_0[2] = { 'a', 'l' }; @@ -121,8 +121,8 @@ static const symbol s_3_1[2] = { 'e', 'l' }; static const struct among a_3[2] = { -/* 0 */ { 2, s_3_0, -1, 1, 0}, -/* 1 */ { 2, s_3_1, -1, 1, 0} +{ 2, s_3_0, -1, 1, 0}, +{ 2, s_3_1, -1, 1, 0} }; static const symbol s_4_0[2] = { 'b', 'a' }; @@ -172,50 +172,50 @@ static const symbol s_4_43[2] = { 'v', 0xE9 }; static const struct among a_4[44] = { -/* 0 */ { 2, s_4_0, -1, -1, 0}, -/* 1 */ { 2, s_4_1, -1, -1, 0}, -/* 2 */ { 2, s_4_2, -1, -1, 0}, -/* 3 */ { 2, s_4_3, -1, -1, 0}, -/* 4 */ { 2, s_4_4, -1, -1, 0}, -/* 5 */ { 3, s_4_5, -1, -1, 0}, -/* 6 */ { 3, s_4_6, -1, -1, 0}, -/* 7 */ { 3, s_4_7, -1, -1, 0}, -/* 8 */ { 3, s_4_8, -1, -1, 0}, -/* 9 */ { 2, s_4_9, -1, -1, 0}, -/* 10 */ { 3, s_4_10, -1, -1, 0}, -/* 11 */ { 3, s_4_11, -1, -1, 0}, -/* 12 */ { 3, s_4_12, -1, -1, 0}, -/* 13 */ { 3, s_4_13, -1, -1, 0}, -/* 14 */ { 3, s_4_14, -1, -1, 0}, -/* 15 */ { 3, s_4_15, -1, -1, 0}, -/* 16 */ { 3, s_4_16, -1, -1, 0}, -/* 17 */ { 3, s_4_17, -1, -1, 0}, -/* 18 */ { 2, s_4_18, -1, -1, 0}, -/* 19 */ { 1, s_4_19, -1, -1, 0}, -/* 20 */ { 2, s_4_20, 19, -1, 0}, -/* 21 */ { 3, s_4_21, 20, -1, 0}, -/* 22 */ { 2, s_4_22, 19, -1, 0}, -/* 23 */ { 3, s_4_23, 22, -1, 0}, -/* 24 */ { 6, s_4_24, 22, -1, 0}, -/* 25 */ { 2, s_4_25, 19, -1, 0}, -/* 26 */ { 2, s_4_26, 19, -1, 0}, -/* 27 */ { 4, s_4_27, -1, -1, 0}, -/* 28 */ { 3, s_4_28, -1, -1, 0}, -/* 29 */ { 1, s_4_29, -1, -1, 0}, -/* 30 */ { 2, s_4_30, 29, -1, 0}, -/* 31 */ { 2, s_4_31, 29, -1, 0}, -/* 32 */ { 4, s_4_32, 29, -1, 0}, -/* 33 */ { 6, s_4_33, 32, -1, 0}, -/* 34 */ { 6, s_4_34, 32, -1, 0}, -/* 35 */ { 6, s_4_35, 32, -1, 0}, -/* 36 */ { 2, s_4_36, 29, -1, 0}, -/* 37 */ { 3, s_4_37, 29, -1, 0}, -/* 38 */ { 2, s_4_38, 29, -1, 0}, -/* 39 */ { 3, s_4_39, -1, -1, 0}, -/* 40 */ { 3, s_4_40, -1, -1, 0}, -/* 41 */ { 3, s_4_41, -1, -1, 0}, -/* 42 */ { 2, s_4_42, -1, -1, 0}, -/* 43 */ { 2, s_4_43, -1, -1, 0} +{ 2, s_4_0, -1, -1, 0}, +{ 2, s_4_1, -1, -1, 0}, +{ 2, s_4_2, -1, -1, 0}, +{ 2, s_4_3, -1, -1, 0}, +{ 2, s_4_4, -1, -1, 0}, +{ 3, s_4_5, -1, -1, 0}, +{ 3, s_4_6, -1, -1, 0}, +{ 3, s_4_7, -1, -1, 0}, +{ 3, s_4_8, -1, -1, 0}, +{ 2, s_4_9, -1, -1, 0}, +{ 3, s_4_10, -1, -1, 0}, +{ 3, s_4_11, -1, -1, 0}, +{ 3, s_4_12, -1, -1, 0}, +{ 3, s_4_13, -1, -1, 0}, +{ 3, s_4_14, -1, -1, 0}, +{ 3, s_4_15, -1, -1, 0}, +{ 3, s_4_16, -1, -1, 0}, +{ 3, s_4_17, -1, -1, 0}, +{ 2, s_4_18, -1, -1, 0}, +{ 1, s_4_19, -1, -1, 0}, +{ 2, s_4_20, 19, -1, 0}, +{ 3, s_4_21, 20, -1, 0}, +{ 2, s_4_22, 19, -1, 0}, +{ 3, s_4_23, 22, -1, 0}, +{ 6, s_4_24, 22, -1, 0}, +{ 2, s_4_25, 19, -1, 0}, +{ 2, s_4_26, 19, -1, 0}, +{ 4, s_4_27, -1, -1, 0}, +{ 3, s_4_28, -1, -1, 0}, +{ 1, s_4_29, -1, -1, 0}, +{ 2, s_4_30, 29, -1, 0}, +{ 2, s_4_31, 29, -1, 0}, +{ 4, s_4_32, 29, -1, 0}, +{ 6, s_4_33, 32, -1, 0}, +{ 6, s_4_34, 32, -1, 0}, +{ 6, s_4_35, 32, -1, 0}, +{ 2, s_4_36, 29, -1, 0}, +{ 3, s_4_37, 29, -1, 0}, +{ 2, s_4_38, 29, -1, 0}, +{ 3, s_4_39, -1, -1, 0}, +{ 3, s_4_40, -1, -1, 0}, +{ 3, s_4_41, -1, -1, 0}, +{ 2, s_4_42, -1, -1, 0}, +{ 2, s_4_43, -1, -1, 0} }; static const symbol s_5_0[2] = { 0xE1, 'n' }; @@ -224,9 +224,9 @@ static const symbol s_5_2[6] = { 0xE1, 'n', 'k', 0xE9, 'n', 't' }; static const struct among a_5[3] = { -/* 0 */ { 2, s_5_0, -1, 2, 0}, -/* 1 */ { 2, s_5_1, -1, 1, 0}, -/* 2 */ { 6, s_5_2, -1, 2, 0} +{ 2, s_5_0, -1, 2, 0}, +{ 2, s_5_1, -1, 1, 0}, +{ 6, s_5_2, -1, 2, 0} }; static const symbol s_6_0[4] = { 's', 't', 'u', 'l' }; @@ -238,12 +238,12 @@ static const symbol s_6_5[5] = { 0xE9, 's', 't', 0xFC, 'l' }; static const struct among a_6[6] = { -/* 0 */ { 4, s_6_0, -1, 1, 0}, -/* 1 */ { 5, s_6_1, 0, 1, 0}, -/* 2 */ { 5, s_6_2, 0, 2, 0}, -/* 3 */ { 4, s_6_3, -1, 1, 0}, -/* 4 */ { 5, s_6_4, 3, 1, 0}, -/* 5 */ { 5, s_6_5, 3, 3, 0} +{ 4, s_6_0, -1, 1, 0}, +{ 5, s_6_1, 0, 1, 0}, +{ 5, s_6_2, 0, 2, 0}, +{ 4, s_6_3, -1, 1, 0}, +{ 5, s_6_4, 3, 1, 0}, +{ 5, s_6_5, 3, 3, 0} }; static const symbol s_7_0[1] = { 0xE1 }; @@ -251,8 +251,8 @@ static const symbol s_7_1[1] = { 0xE9 }; static const struct among a_7[2] = { -/* 0 */ { 1, s_7_0, -1, 1, 0}, -/* 1 */ { 1, s_7_1, -1, 1, 0} +{ 1, s_7_0, -1, 1, 0}, +{ 1, s_7_1, -1, 1, 0} }; static const symbol s_8_0[1] = { 'k' }; @@ -265,13 +265,13 @@ static const symbol s_8_6[2] = { 0xF6, 'k' }; static const struct among a_8[7] = { -/* 0 */ { 1, s_8_0, -1, 3, 0}, -/* 1 */ { 2, s_8_1, 0, 3, 0}, -/* 2 */ { 2, s_8_2, 0, 3, 0}, -/* 3 */ { 2, s_8_3, 0, 3, 0}, -/* 4 */ { 2, s_8_4, 0, 1, 0}, -/* 5 */ { 2, s_8_5, 0, 2, 0}, -/* 6 */ { 2, s_8_6, 0, 3, 0} +{ 1, s_8_0, -1, 3, 0}, +{ 2, s_8_1, 0, 3, 0}, +{ 2, s_8_2, 0, 3, 0}, +{ 2, s_8_3, 0, 3, 0}, +{ 2, s_8_4, 0, 1, 0}, +{ 2, s_8_5, 0, 2, 0}, +{ 2, s_8_6, 0, 3, 0} }; static const symbol s_9_0[2] = { 0xE9, 'i' }; @@ -289,18 +289,18 @@ static const symbol s_9_11[2] = { 0xE9, 0xE9 }; static const struct among a_9[12] = { -/* 0 */ { 2, s_9_0, -1, 1, 0}, -/* 1 */ { 3, s_9_1, 0, 3, 0}, -/* 2 */ { 3, s_9_2, 0, 2, 0}, -/* 3 */ { 1, s_9_3, -1, 1, 0}, -/* 4 */ { 2, s_9_4, 3, 1, 0}, -/* 5 */ { 3, s_9_5, 4, 1, 0}, -/* 6 */ { 3, s_9_6, 4, 1, 0}, -/* 7 */ { 3, s_9_7, 4, 1, 0}, -/* 8 */ { 3, s_9_8, 4, 3, 0}, -/* 9 */ { 3, s_9_9, 4, 2, 0}, -/* 10 */ { 3, s_9_10, 4, 1, 0}, -/* 11 */ { 2, s_9_11, 3, 2, 0} +{ 2, s_9_0, -1, 1, 0}, +{ 3, s_9_1, 0, 3, 0}, +{ 3, s_9_2, 0, 2, 0}, +{ 1, s_9_3, -1, 1, 0}, +{ 2, s_9_4, 3, 1, 0}, +{ 3, s_9_5, 4, 1, 0}, +{ 3, s_9_6, 4, 1, 0}, +{ 3, s_9_7, 4, 1, 0}, +{ 3, s_9_8, 4, 3, 0}, +{ 3, s_9_9, 4, 2, 0}, +{ 3, s_9_10, 4, 1, 0}, +{ 2, s_9_11, 3, 2, 0} }; static const symbol s_10_0[1] = { 'a' }; @@ -337,37 +337,37 @@ static const symbol s_10_30[1] = { 0xE9 }; static const struct among a_10[31] = { -/* 0 */ { 1, s_10_0, -1, 1, 0}, -/* 1 */ { 2, s_10_1, 0, 1, 0}, -/* 2 */ { 1, s_10_2, -1, 1, 0}, -/* 3 */ { 2, s_10_3, 2, 1, 0}, -/* 4 */ { 2, s_10_4, 2, 1, 0}, -/* 5 */ { 2, s_10_5, 2, 1, 0}, -/* 6 */ { 2, s_10_6, 2, 2, 0}, -/* 7 */ { 2, s_10_7, 2, 3, 0}, -/* 8 */ { 2, s_10_8, 2, 1, 0}, -/* 9 */ { 1, s_10_9, -1, 1, 0}, -/* 10 */ { 2, s_10_10, 9, 1, 0}, -/* 11 */ { 2, s_10_11, -1, 1, 0}, -/* 12 */ { 3, s_10_12, 11, 1, 0}, -/* 13 */ { 3, s_10_13, 11, 2, 0}, -/* 14 */ { 3, s_10_14, 11, 3, 0}, -/* 15 */ { 3, s_10_15, 11, 1, 0}, -/* 16 */ { 2, s_10_16, -1, 1, 0}, -/* 17 */ { 3, s_10_17, 16, 1, 0}, -/* 18 */ { 4, s_10_18, 17, 2, 0}, -/* 19 */ { 2, s_10_19, -1, 1, 0}, -/* 20 */ { 3, s_10_20, 19, 1, 0}, -/* 21 */ { 4, s_10_21, 20, 3, 0}, -/* 22 */ { 1, s_10_22, -1, 1, 0}, -/* 23 */ { 2, s_10_23, 22, 1, 0}, -/* 24 */ { 2, s_10_24, 22, 1, 0}, -/* 25 */ { 2, s_10_25, 22, 1, 0}, -/* 26 */ { 2, s_10_26, 22, 2, 0}, -/* 27 */ { 2, s_10_27, 22, 3, 0}, -/* 28 */ { 1, s_10_28, -1, 1, 0}, -/* 29 */ { 1, s_10_29, -1, 2, 0}, -/* 30 */ { 1, s_10_30, -1, 3, 0} +{ 1, s_10_0, -1, 1, 0}, +{ 2, s_10_1, 0, 1, 0}, +{ 1, s_10_2, -1, 1, 0}, +{ 2, s_10_3, 2, 1, 0}, +{ 2, s_10_4, 2, 1, 0}, +{ 2, s_10_5, 2, 1, 0}, +{ 2, s_10_6, 2, 2, 0}, +{ 2, s_10_7, 2, 3, 0}, +{ 2, s_10_8, 2, 1, 0}, +{ 1, s_10_9, -1, 1, 0}, +{ 2, s_10_10, 9, 1, 0}, +{ 2, s_10_11, -1, 1, 0}, +{ 3, s_10_12, 11, 1, 0}, +{ 3, s_10_13, 11, 2, 0}, +{ 3, s_10_14, 11, 3, 0}, +{ 3, s_10_15, 11, 1, 0}, +{ 2, s_10_16, -1, 1, 0}, +{ 3, s_10_17, 16, 1, 0}, +{ 4, s_10_18, 17, 2, 0}, +{ 2, s_10_19, -1, 1, 0}, +{ 3, s_10_20, 19, 1, 0}, +{ 4, s_10_21, 20, 3, 0}, +{ 1, s_10_22, -1, 1, 0}, +{ 2, s_10_23, 22, 1, 0}, +{ 2, s_10_24, 22, 1, 0}, +{ 2, s_10_25, 22, 1, 0}, +{ 2, s_10_26, 22, 2, 0}, +{ 2, s_10_27, 22, 3, 0}, +{ 1, s_10_28, -1, 1, 0}, +{ 1, s_10_29, -1, 2, 0}, +{ 1, s_10_30, -1, 3, 0} }; static const symbol s_11_0[2] = { 'i', 'd' }; @@ -415,48 +415,48 @@ static const symbol s_11_41[3] = { 0xE9, 'i', 'm' }; static const struct among a_11[42] = { -/* 0 */ { 2, s_11_0, -1, 1, 0}, -/* 1 */ { 3, s_11_1, 0, 1, 0}, -/* 2 */ { 4, s_11_2, 1, 1, 0}, -/* 3 */ { 3, s_11_3, 0, 1, 0}, -/* 4 */ { 4, s_11_4, 3, 1, 0}, -/* 5 */ { 3, s_11_5, 0, 2, 0}, -/* 6 */ { 3, s_11_6, 0, 3, 0}, -/* 7 */ { 1, s_11_7, -1, 1, 0}, -/* 8 */ { 2, s_11_8, 7, 1, 0}, -/* 9 */ { 3, s_11_9, 8, 1, 0}, -/* 10 */ { 2, s_11_10, 7, 1, 0}, -/* 11 */ { 3, s_11_11, 10, 1, 0}, -/* 12 */ { 2, s_11_12, 7, 2, 0}, -/* 13 */ { 2, s_11_13, 7, 3, 0}, -/* 14 */ { 4, s_11_14, -1, 1, 0}, -/* 15 */ { 5, s_11_15, 14, 1, 0}, -/* 16 */ { 6, s_11_16, 15, 1, 0}, -/* 17 */ { 5, s_11_17, 14, 3, 0}, -/* 18 */ { 2, s_11_18, -1, 1, 0}, -/* 19 */ { 3, s_11_19, 18, 1, 0}, -/* 20 */ { 4, s_11_20, 19, 1, 0}, -/* 21 */ { 3, s_11_21, 18, 1, 0}, -/* 22 */ { 4, s_11_22, 21, 1, 0}, -/* 23 */ { 3, s_11_23, 18, 2, 0}, -/* 24 */ { 3, s_11_24, 18, 3, 0}, -/* 25 */ { 3, s_11_25, -1, 1, 0}, -/* 26 */ { 4, s_11_26, 25, 1, 0}, -/* 27 */ { 5, s_11_27, 26, 1, 0}, -/* 28 */ { 4, s_11_28, 25, 1, 0}, -/* 29 */ { 5, s_11_29, 28, 1, 0}, -/* 30 */ { 4, s_11_30, 25, 2, 0}, -/* 31 */ { 4, s_11_31, 25, 3, 0}, -/* 32 */ { 5, s_11_32, -1, 1, 0}, -/* 33 */ { 6, s_11_33, 32, 1, 0}, -/* 34 */ { 5, s_11_34, -1, 2, 0}, -/* 35 */ { 2, s_11_35, -1, 1, 0}, -/* 36 */ { 3, s_11_36, 35, 1, 0}, -/* 37 */ { 4, s_11_37, 36, 1, 0}, -/* 38 */ { 3, s_11_38, 35, 1, 0}, -/* 39 */ { 4, s_11_39, 38, 1, 0}, -/* 40 */ { 3, s_11_40, 35, 2, 0}, -/* 41 */ { 3, s_11_41, 35, 3, 0} +{ 2, s_11_0, -1, 1, 0}, +{ 3, s_11_1, 0, 1, 0}, +{ 4, s_11_2, 1, 1, 0}, +{ 3, s_11_3, 0, 1, 0}, +{ 4, s_11_4, 3, 1, 0}, +{ 3, s_11_5, 0, 2, 0}, +{ 3, s_11_6, 0, 3, 0}, +{ 1, s_11_7, -1, 1, 0}, +{ 2, s_11_8, 7, 1, 0}, +{ 3, s_11_9, 8, 1, 0}, +{ 2, s_11_10, 7, 1, 0}, +{ 3, s_11_11, 10, 1, 0}, +{ 2, s_11_12, 7, 2, 0}, +{ 2, s_11_13, 7, 3, 0}, +{ 4, s_11_14, -1, 1, 0}, +{ 5, s_11_15, 14, 1, 0}, +{ 6, s_11_16, 15, 1, 0}, +{ 5, s_11_17, 14, 3, 0}, +{ 2, s_11_18, -1, 1, 0}, +{ 3, s_11_19, 18, 1, 0}, +{ 4, s_11_20, 19, 1, 0}, +{ 3, s_11_21, 18, 1, 0}, +{ 4, s_11_22, 21, 1, 0}, +{ 3, s_11_23, 18, 2, 0}, +{ 3, s_11_24, 18, 3, 0}, +{ 3, s_11_25, -1, 1, 0}, +{ 4, s_11_26, 25, 1, 0}, +{ 5, s_11_27, 26, 1, 0}, +{ 4, s_11_28, 25, 1, 0}, +{ 5, s_11_29, 28, 1, 0}, +{ 4, s_11_30, 25, 2, 0}, +{ 4, s_11_31, 25, 3, 0}, +{ 5, s_11_32, -1, 1, 0}, +{ 6, s_11_33, 32, 1, 0}, +{ 5, s_11_34, -1, 2, 0}, +{ 2, s_11_35, -1, 1, 0}, +{ 3, s_11_36, 35, 1, 0}, +{ 4, s_11_37, 36, 1, 0}, +{ 3, s_11_38, 35, 1, 0}, +{ 4, s_11_39, 38, 1, 0}, +{ 3, s_11_40, 35, 2, 0}, +{ 3, s_11_41, 35, 3, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 52, 14 }; @@ -476,60 +476,60 @@ static const symbol s_11[] = { 'e' }; static const symbol s_12[] = { 'a' }; static const symbol s_13[] = { 'e' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 46 */ - { int c1 = z->c; /* or, line 51 */ - if (in_grouping(z, g_v, 97, 252, 0)) goto lab1; /* grouping v, line 48 */ - if (in_grouping(z, g_v, 97, 252, 1) < 0) goto lab1; /* goto */ /* non v, line 48 */ - { int c2 = z->c; /* or, line 49 */ - if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3; /* among, line 49 */ +static int r_mark_regions(struct SN_env * z) { + z->I[0] = z->l; + { int c1 = z->c; + if (in_grouping(z, g_v, 97, 252, 0)) goto lab1; + if (in_grouping(z, g_v, 97, 252, 1) < 0) goto lab1; + { int c2 = z->c; + if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3; if (!(find_among(z, a_0, 8))) goto lab3; goto lab2; lab3: z->c = c2; if (z->c >= z->l) goto lab1; - z->c++; /* next, line 49 */ + z->c++; } lab2: - z->I[0] = z->c; /* setmark p1, line 50 */ + z->I[0] = z->c; goto lab0; lab1: z->c = c1; - if (out_grouping(z, g_v, 97, 252, 0)) return 0; /* non v, line 53 */ - { /* gopast */ /* grouping v, line 53 */ + if (out_grouping(z, g_v, 97, 252, 0)) return 0; + { int ret = out_grouping(z, g_v, 97, 252, 1); if (ret < 0) return 0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 53 */ + z->I[0] = z->c; } lab0: return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 58 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_v_ending(struct SN_env * z) { /* backwardmode */ +static int r_v_ending(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 61 */ - if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0; /* substring, line 61 */ + z->ket = z->c; + if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0; among_var = find_among_b(z, a_1, 2); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 61 */ - { int ret = r_R1(z); /* call R1, line 61 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 61 */ + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_0); /* <-, line 62 */ + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_1); /* <-, line 63 */ + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } break; @@ -537,84 +537,82 @@ static int r_v_ending(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_double(struct SN_env * z) { /* backwardmode */ - { int m_test1 = z->l - z->c; /* test, line 68 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 68 */ +static int r_double(struct SN_env * z) { + { int m_test1 = z->l - z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_2, 23))) return 0; z->c = z->l - m_test1; } return 1; } -static int r_undouble(struct SN_env * z) { /* backwardmode */ +static int r_undouble(struct SN_env * z) { if (z->c <= z->lb) return 0; - z->c--; /* next, line 73 */ - z->ket = z->c; /* [, line 73 */ - { int ret = z->c - 1; /* hop, line 73 */ - if (z->lb > ret || ret > z->l) return 0; - z->c = ret; - } - z->bra = z->c; /* ], line 73 */ - { int ret = slice_del(z); /* delete, line 73 */ + z->c--; + z->ket = z->c; +z->c = z->c - 1; + if (z->c < z->lb) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_instrum(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 77 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0; /* substring, line 77 */ +static int r_instrum(struct SN_env * z) { + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0; if (!(find_among_b(z, a_3, 2))) return 0; - z->bra = z->c; /* ], line 77 */ - { int ret = r_R1(z); /* call R1, line 77 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = r_double(z); /* call double, line 78 */ + { int ret = r_double(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 81 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_undouble(z); /* call undouble, line 82 */ + { int ret = r_undouble(z); if (ret <= 0) return ret; } return 1; } -static int r_case(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 87 */ - if (!(find_among_b(z, a_4, 44))) return 0; /* substring, line 87 */ - z->bra = z->c; /* ], line 87 */ - { int ret = r_R1(z); /* call R1, line 87 */ +static int r_case(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_4, 44))) return 0; + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 111 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_v_ending(z); /* call v_ending, line 112 */ + { int ret = r_v_ending(z); if (ret <= 0) return ret; } return 1; } -static int r_case_special(struct SN_env * z) { /* backwardmode */ +static int r_case_special(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 116 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0; /* substring, line 116 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0; among_var = find_among_b(z, a_5, 3); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 116 */ - { int ret = r_R1(z); /* call R1, line 116 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 116 */ + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_2); /* <-, line 117 */ + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_3); /* <-, line 118 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } break; @@ -622,29 +620,29 @@ static int r_case_special(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_case_other(struct SN_env * z) { /* backwardmode */ +static int r_case_other(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 124 */ - if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0; /* substring, line 124 */ + z->ket = z->c; + if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0; among_var = find_among_b(z, a_6, 6); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 124 */ - { int ret = r_R1(z); /* call R1, line 124 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 124 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 125 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_4); /* <-, line 127 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_5); /* <-, line 128 */ + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } break; @@ -652,49 +650,49 @@ static int r_case_other(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_factive(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 133 */ - if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0; /* substring, line 133 */ +static int r_factive(struct SN_env * z) { + z->ket = z->c; + if (z->c <= z->lb || (z->p[z->c - 1] != 225 && z->p[z->c - 1] != 233)) return 0; if (!(find_among_b(z, a_7, 2))) return 0; - z->bra = z->c; /* ], line 133 */ - { int ret = r_R1(z); /* call R1, line 133 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = r_double(z); /* call double, line 134 */ + { int ret = r_double(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 137 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_undouble(z); /* call undouble, line 138 */ + { int ret = r_undouble(z); if (ret <= 0) return ret; } return 1; } -static int r_plural(struct SN_env * z) { /* backwardmode */ +static int r_plural(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 142 */ - if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0; /* substring, line 142 */ + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0; among_var = find_among_b(z, a_8, 7); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 142 */ - { int ret = r_R1(z); /* call R1, line 142 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 142 */ + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_6); /* <-, line 143 */ + { int ret = slice_from_s(z, 1, s_6); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_7); /* <-, line 144 */ + { int ret = slice_from_s(z, 1, s_7); if (ret < 0) return ret; } break; case 3: - { int ret = slice_del(z); /* delete, line 145 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -702,29 +700,29 @@ static int r_plural(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_owned(struct SN_env * z) { /* backwardmode */ +static int r_owned(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 154 */ - if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 233)) return 0; /* substring, line 154 */ + z->ket = z->c; + if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 233)) return 0; among_var = find_among_b(z, a_9, 12); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 154 */ - { int ret = r_R1(z); /* call R1, line 154 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 154 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 155 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_8); /* <-, line 156 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_9); /* <-, line 157 */ + { int ret = slice_from_s(z, 1, s_9); if (ret < 0) return ret; } break; @@ -732,28 +730,28 @@ static int r_owned(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_sing_owner(struct SN_env * z) { /* backwardmode */ +static int r_sing_owner(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 168 */ - among_var = find_among_b(z, a_10, 31); /* substring, line 168 */ + z->ket = z->c; + among_var = find_among_b(z, a_10, 31); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 168 */ - { int ret = r_R1(z); /* call R1, line 168 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 168 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 169 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_10); /* <-, line 170 */ + { int ret = slice_from_s(z, 1, s_10); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_11); /* <-, line 171 */ + { int ret = slice_from_s(z, 1, s_11); if (ret < 0) return ret; } break; @@ -761,29 +759,29 @@ static int r_sing_owner(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_plur_owner(struct SN_env * z) { /* backwardmode */ +static int r_plur_owner(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 193 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 193 */ + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_11, 42); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 193 */ - { int ret = r_R1(z); /* call R1, line 193 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 193 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 194 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_12); /* <-, line 195 */ + { int ret = slice_from_s(z, 1, s_12); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_13); /* <-, line 196 */ + { int ret = slice_from_s(z, 1, s_13); if (ret < 0) return ret; } break; @@ -791,65 +789,65 @@ static int r_plur_owner(struct SN_env * z) { /* backwardmode */ return 1; } -extern int hungarian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 229 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 229 */ +extern int hungarian_ISO_8859_2_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_mark_regions(z); if (ret < 0) return ret; } z->c = c1; } - z->lb = z->c; z->c = z->l; /* backwards, line 230 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 231 */ - { int ret = r_instrum(z); /* call instrum, line 231 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_instrum(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 232 */ - { int ret = r_case(z); /* call case, line 232 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_case(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 233 */ - { int ret = r_case_special(z); /* call case_special, line 233 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_case_special(z); if (ret < 0) return ret; } z->c = z->l - m4; } - { int m5 = z->l - z->c; (void)m5; /* do, line 234 */ - { int ret = r_case_other(z); /* call case_other, line 234 */ + { int m5 = z->l - z->c; (void)m5; + { int ret = r_case_other(z); if (ret < 0) return ret; } z->c = z->l - m5; } - { int m6 = z->l - z->c; (void)m6; /* do, line 235 */ - { int ret = r_factive(z); /* call factive, line 235 */ + { int m6 = z->l - z->c; (void)m6; + { int ret = r_factive(z); if (ret < 0) return ret; } z->c = z->l - m6; } - { int m7 = z->l - z->c; (void)m7; /* do, line 236 */ - { int ret = r_owned(z); /* call owned, line 236 */ + { int m7 = z->l - z->c; (void)m7; + { int ret = r_owned(z); if (ret < 0) return ret; } z->c = z->l - m7; } - { int m8 = z->l - z->c; (void)m8; /* do, line 237 */ - { int ret = r_sing_owner(z); /* call sing_owner, line 237 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_sing_owner(z); if (ret < 0) return ret; } z->c = z->l - m8; } - { int m9 = z->l - z->c; (void)m9; /* do, line 238 */ - { int ret = r_plur_owner(z); /* call plur_owner, line 238 */ + { int m9 = z->l - z->c; (void)m9; + { int ret = r_plur_owner(z); if (ret < 0) return ret; } z->c = z->l - m9; } - { int m10 = z->l - z->c; (void)m10; /* do, line 239 */ - { int ret = r_plural(z); /* call plural, line 239 */ + { int m10 = z->l - z->c; (void)m10; + { int ret = r_plural(z); if (ret < 0) return ret; } z->c = z->l - m10; @@ -858,7 +856,7 @@ extern int hungarian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * hungarian_ISO_8859_2_create_env(void) { return SN_create_env(0, 1, 0); } +extern struct SN_env * hungarian_ISO_8859_2_create_env(void) { return SN_create_env(0, 1); } extern void hungarian_ISO_8859_2_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c b/src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c index 14c6fb3c1463e..c1dd11909ae19 100644 --- a/src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c +++ b/src/backend/snowball/libstemmer/stem_ISO_8859_2_romanian.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -37,9 +37,9 @@ static const symbol s_0_2[1] = { 'U' }; static const struct among a_0[3] = { -/* 0 */ { 0, 0, -1, 3, 0}, -/* 1 */ { 1, s_0_1, 0, 1, 0}, -/* 2 */ { 1, s_0_2, 0, 2, 0} +{ 0, 0, -1, 3, 0}, +{ 1, s_0_1, 0, 1, 0}, +{ 1, s_0_2, 0, 2, 0} }; static const symbol s_1_0[2] = { 'e', 'a' }; @@ -61,22 +61,22 @@ static const symbol s_1_15[5] = { 'i', 'i', 'l', 'o', 'r' }; static const struct among a_1[16] = { -/* 0 */ { 2, s_1_0, -1, 3, 0}, -/* 1 */ { 4, s_1_1, -1, 7, 0}, -/* 2 */ { 3, s_1_2, -1, 2, 0}, -/* 3 */ { 3, s_1_3, -1, 4, 0}, -/* 4 */ { 4, s_1_4, -1, 7, 0}, -/* 5 */ { 3, s_1_5, -1, 3, 0}, -/* 6 */ { 3, s_1_6, -1, 5, 0}, -/* 7 */ { 4, s_1_7, 6, 4, 0}, -/* 8 */ { 3, s_1_8, -1, 4, 0}, -/* 9 */ { 4, s_1_9, -1, 6, 0}, -/* 10 */ { 2, s_1_10, -1, 4, 0}, -/* 11 */ { 4, s_1_11, -1, 1, 0}, -/* 12 */ { 2, s_1_12, -1, 1, 0}, -/* 13 */ { 4, s_1_13, -1, 3, 0}, -/* 14 */ { 4, s_1_14, -1, 4, 0}, -/* 15 */ { 5, s_1_15, 14, 4, 0} +{ 2, s_1_0, -1, 3, 0}, +{ 4, s_1_1, -1, 7, 0}, +{ 3, s_1_2, -1, 2, 0}, +{ 3, s_1_3, -1, 4, 0}, +{ 4, s_1_4, -1, 7, 0}, +{ 3, s_1_5, -1, 3, 0}, +{ 3, s_1_6, -1, 5, 0}, +{ 4, s_1_7, 6, 4, 0}, +{ 3, s_1_8, -1, 4, 0}, +{ 4, s_1_9, -1, 6, 0}, +{ 2, s_1_10, -1, 4, 0}, +{ 4, s_1_11, -1, 1, 0}, +{ 2, s_1_12, -1, 1, 0}, +{ 4, s_1_13, -1, 3, 0}, +{ 4, s_1_14, -1, 4, 0}, +{ 5, s_1_15, 14, 4, 0} }; static const symbol s_2_0[5] = { 'i', 'c', 'a', 'l', 'a' }; @@ -128,52 +128,52 @@ static const symbol s_2_45[5] = { 'i', 't', 'i', 'v', 0xE3 }; static const struct among a_2[46] = { -/* 0 */ { 5, s_2_0, -1, 4, 0}, -/* 1 */ { 5, s_2_1, -1, 4, 0}, -/* 2 */ { 5, s_2_2, -1, 5, 0}, -/* 3 */ { 5, s_2_3, -1, 6, 0}, -/* 4 */ { 5, s_2_4, -1, 4, 0}, -/* 5 */ { 6, s_2_5, -1, 5, 0}, -/* 6 */ { 6, s_2_6, -1, 6, 0}, -/* 7 */ { 6, s_2_7, -1, 5, 0}, -/* 8 */ { 6, s_2_8, -1, 6, 0}, -/* 9 */ { 6, s_2_9, -1, 5, 0}, -/* 10 */ { 7, s_2_10, -1, 4, 0}, -/* 11 */ { 9, s_2_11, -1, 1, 0}, -/* 12 */ { 9, s_2_12, -1, 2, 0}, -/* 13 */ { 7, s_2_13, -1, 3, 0}, -/* 14 */ { 5, s_2_14, -1, 4, 0}, -/* 15 */ { 5, s_2_15, -1, 5, 0}, -/* 16 */ { 5, s_2_16, -1, 6, 0}, -/* 17 */ { 5, s_2_17, -1, 4, 0}, -/* 18 */ { 5, s_2_18, -1, 5, 0}, -/* 19 */ { 7, s_2_19, 18, 4, 0}, -/* 20 */ { 5, s_2_20, -1, 6, 0}, -/* 21 */ { 5, s_2_21, -1, 5, 0}, -/* 22 */ { 7, s_2_22, -1, 4, 0}, -/* 23 */ { 9, s_2_23, -1, 1, 0}, -/* 24 */ { 7, s_2_24, -1, 3, 0}, -/* 25 */ { 5, s_2_25, -1, 4, 0}, -/* 26 */ { 5, s_2_26, -1, 5, 0}, -/* 27 */ { 5, s_2_27, -1, 6, 0}, -/* 28 */ { 6, s_2_28, -1, 4, 0}, -/* 29 */ { 8, s_2_29, -1, 1, 0}, -/* 30 */ { 6, s_2_30, -1, 3, 0}, -/* 31 */ { 7, s_2_31, -1, 4, 0}, -/* 32 */ { 9, s_2_32, -1, 1, 0}, -/* 33 */ { 7, s_2_33, -1, 3, 0}, -/* 34 */ { 4, s_2_34, -1, 4, 0}, -/* 35 */ { 4, s_2_35, -1, 5, 0}, -/* 36 */ { 6, s_2_36, 35, 4, 0}, -/* 37 */ { 4, s_2_37, -1, 6, 0}, -/* 38 */ { 4, s_2_38, -1, 5, 0}, -/* 39 */ { 4, s_2_39, -1, 4, 0}, -/* 40 */ { 4, s_2_40, -1, 5, 0}, -/* 41 */ { 4, s_2_41, -1, 6, 0}, -/* 42 */ { 5, s_2_42, -1, 4, 0}, -/* 43 */ { 5, s_2_43, -1, 4, 0}, -/* 44 */ { 5, s_2_44, -1, 5, 0}, -/* 45 */ { 5, s_2_45, -1, 6, 0} +{ 5, s_2_0, -1, 4, 0}, +{ 5, s_2_1, -1, 4, 0}, +{ 5, s_2_2, -1, 5, 0}, +{ 5, s_2_3, -1, 6, 0}, +{ 5, s_2_4, -1, 4, 0}, +{ 6, s_2_5, -1, 5, 0}, +{ 6, s_2_6, -1, 6, 0}, +{ 6, s_2_7, -1, 5, 0}, +{ 6, s_2_8, -1, 6, 0}, +{ 6, s_2_9, -1, 5, 0}, +{ 7, s_2_10, -1, 4, 0}, +{ 9, s_2_11, -1, 1, 0}, +{ 9, s_2_12, -1, 2, 0}, +{ 7, s_2_13, -1, 3, 0}, +{ 5, s_2_14, -1, 4, 0}, +{ 5, s_2_15, -1, 5, 0}, +{ 5, s_2_16, -1, 6, 0}, +{ 5, s_2_17, -1, 4, 0}, +{ 5, s_2_18, -1, 5, 0}, +{ 7, s_2_19, 18, 4, 0}, +{ 5, s_2_20, -1, 6, 0}, +{ 5, s_2_21, -1, 5, 0}, +{ 7, s_2_22, -1, 4, 0}, +{ 9, s_2_23, -1, 1, 0}, +{ 7, s_2_24, -1, 3, 0}, +{ 5, s_2_25, -1, 4, 0}, +{ 5, s_2_26, -1, 5, 0}, +{ 5, s_2_27, -1, 6, 0}, +{ 6, s_2_28, -1, 4, 0}, +{ 8, s_2_29, -1, 1, 0}, +{ 6, s_2_30, -1, 3, 0}, +{ 7, s_2_31, -1, 4, 0}, +{ 9, s_2_32, -1, 1, 0}, +{ 7, s_2_33, -1, 3, 0}, +{ 4, s_2_34, -1, 4, 0}, +{ 4, s_2_35, -1, 5, 0}, +{ 6, s_2_36, 35, 4, 0}, +{ 4, s_2_37, -1, 6, 0}, +{ 4, s_2_38, -1, 5, 0}, +{ 4, s_2_39, -1, 4, 0}, +{ 4, s_2_40, -1, 5, 0}, +{ 4, s_2_41, -1, 6, 0}, +{ 5, s_2_42, -1, 4, 0}, +{ 5, s_2_43, -1, 4, 0}, +{ 5, s_2_44, -1, 5, 0}, +{ 5, s_2_45, -1, 6, 0} }; static const symbol s_3_0[3] = { 'i', 'c', 'a' }; @@ -241,68 +241,68 @@ static const symbol s_3_61[3] = { 'i', 'v', 0xE3 }; static const struct among a_3[62] = { -/* 0 */ { 3, s_3_0, -1, 1, 0}, -/* 1 */ { 5, s_3_1, -1, 1, 0}, -/* 2 */ { 5, s_3_2, -1, 1, 0}, -/* 3 */ { 4, s_3_3, -1, 1, 0}, -/* 4 */ { 3, s_3_4, -1, 1, 0}, -/* 5 */ { 3, s_3_5, -1, 1, 0}, -/* 6 */ { 4, s_3_6, -1, 1, 0}, -/* 7 */ { 4, s_3_7, -1, 3, 0}, -/* 8 */ { 3, s_3_8, -1, 1, 0}, -/* 9 */ { 3, s_3_9, -1, 1, 0}, -/* 10 */ { 2, s_3_10, -1, 1, 0}, -/* 11 */ { 3, s_3_11, -1, 1, 0}, -/* 12 */ { 5, s_3_12, -1, 1, 0}, -/* 13 */ { 5, s_3_13, -1, 1, 0}, -/* 14 */ { 4, s_3_14, -1, 3, 0}, -/* 15 */ { 4, s_3_15, -1, 2, 0}, -/* 16 */ { 4, s_3_16, -1, 1, 0}, -/* 17 */ { 3, s_3_17, -1, 1, 0}, -/* 18 */ { 5, s_3_18, 17, 1, 0}, -/* 19 */ { 3, s_3_19, -1, 1, 0}, -/* 20 */ { 4, s_3_20, -1, 1, 0}, -/* 21 */ { 4, s_3_21, -1, 3, 0}, -/* 22 */ { 3, s_3_22, -1, 1, 0}, -/* 23 */ { 3, s_3_23, -1, 1, 0}, -/* 24 */ { 3, s_3_24, -1, 1, 0}, -/* 25 */ { 5, s_3_25, -1, 1, 0}, -/* 26 */ { 5, s_3_26, -1, 1, 0}, -/* 27 */ { 4, s_3_27, -1, 2, 0}, -/* 28 */ { 5, s_3_28, -1, 1, 0}, -/* 29 */ { 3, s_3_29, -1, 1, 0}, -/* 30 */ { 3, s_3_30, -1, 1, 0}, -/* 31 */ { 5, s_3_31, 30, 1, 0}, -/* 32 */ { 3, s_3_32, -1, 1, 0}, -/* 33 */ { 4, s_3_33, -1, 1, 0}, -/* 34 */ { 4, s_3_34, -1, 3, 0}, -/* 35 */ { 3, s_3_35, -1, 1, 0}, -/* 36 */ { 4, s_3_36, -1, 3, 0}, -/* 37 */ { 3, s_3_37, -1, 1, 0}, -/* 38 */ { 3, s_3_38, -1, 1, 0}, -/* 39 */ { 4, s_3_39, -1, 1, 0}, -/* 40 */ { 5, s_3_40, -1, 1, 0}, -/* 41 */ { 4, s_3_41, -1, 1, 0}, -/* 42 */ { 4, s_3_42, -1, 1, 0}, -/* 43 */ { 3, s_3_43, -1, 3, 0}, -/* 44 */ { 4, s_3_44, -1, 1, 0}, -/* 45 */ { 2, s_3_45, -1, 1, 0}, -/* 46 */ { 2, s_3_46, -1, 1, 0}, -/* 47 */ { 2, s_3_47, -1, 1, 0}, -/* 48 */ { 3, s_3_48, -1, 1, 0}, -/* 49 */ { 3, s_3_49, -1, 3, 0}, -/* 50 */ { 2, s_3_50, -1, 1, 0}, -/* 51 */ { 2, s_3_51, -1, 1, 0}, -/* 52 */ { 3, s_3_52, -1, 1, 0}, -/* 53 */ { 5, s_3_53, -1, 1, 0}, -/* 54 */ { 5, s_3_54, -1, 1, 0}, -/* 55 */ { 4, s_3_55, -1, 1, 0}, -/* 56 */ { 3, s_3_56, -1, 1, 0}, -/* 57 */ { 3, s_3_57, -1, 1, 0}, -/* 58 */ { 4, s_3_58, -1, 1, 0}, -/* 59 */ { 4, s_3_59, -1, 3, 0}, -/* 60 */ { 3, s_3_60, -1, 1, 0}, -/* 61 */ { 3, s_3_61, -1, 1, 0} +{ 3, s_3_0, -1, 1, 0}, +{ 5, s_3_1, -1, 1, 0}, +{ 5, s_3_2, -1, 1, 0}, +{ 4, s_3_3, -1, 1, 0}, +{ 3, s_3_4, -1, 1, 0}, +{ 3, s_3_5, -1, 1, 0}, +{ 4, s_3_6, -1, 1, 0}, +{ 4, s_3_7, -1, 3, 0}, +{ 3, s_3_8, -1, 1, 0}, +{ 3, s_3_9, -1, 1, 0}, +{ 2, s_3_10, -1, 1, 0}, +{ 3, s_3_11, -1, 1, 0}, +{ 5, s_3_12, -1, 1, 0}, +{ 5, s_3_13, -1, 1, 0}, +{ 4, s_3_14, -1, 3, 0}, +{ 4, s_3_15, -1, 2, 0}, +{ 4, s_3_16, -1, 1, 0}, +{ 3, s_3_17, -1, 1, 0}, +{ 5, s_3_18, 17, 1, 0}, +{ 3, s_3_19, -1, 1, 0}, +{ 4, s_3_20, -1, 1, 0}, +{ 4, s_3_21, -1, 3, 0}, +{ 3, s_3_22, -1, 1, 0}, +{ 3, s_3_23, -1, 1, 0}, +{ 3, s_3_24, -1, 1, 0}, +{ 5, s_3_25, -1, 1, 0}, +{ 5, s_3_26, -1, 1, 0}, +{ 4, s_3_27, -1, 2, 0}, +{ 5, s_3_28, -1, 1, 0}, +{ 3, s_3_29, -1, 1, 0}, +{ 3, s_3_30, -1, 1, 0}, +{ 5, s_3_31, 30, 1, 0}, +{ 3, s_3_32, -1, 1, 0}, +{ 4, s_3_33, -1, 1, 0}, +{ 4, s_3_34, -1, 3, 0}, +{ 3, s_3_35, -1, 1, 0}, +{ 4, s_3_36, -1, 3, 0}, +{ 3, s_3_37, -1, 1, 0}, +{ 3, s_3_38, -1, 1, 0}, +{ 4, s_3_39, -1, 1, 0}, +{ 5, s_3_40, -1, 1, 0}, +{ 4, s_3_41, -1, 1, 0}, +{ 4, s_3_42, -1, 1, 0}, +{ 3, s_3_43, -1, 3, 0}, +{ 4, s_3_44, -1, 1, 0}, +{ 2, s_3_45, -1, 1, 0}, +{ 2, s_3_46, -1, 1, 0}, +{ 2, s_3_47, -1, 1, 0}, +{ 3, s_3_48, -1, 1, 0}, +{ 3, s_3_49, -1, 3, 0}, +{ 2, s_3_50, -1, 1, 0}, +{ 2, s_3_51, -1, 1, 0}, +{ 3, s_3_52, -1, 1, 0}, +{ 5, s_3_53, -1, 1, 0}, +{ 5, s_3_54, -1, 1, 0}, +{ 4, s_3_55, -1, 1, 0}, +{ 3, s_3_56, -1, 1, 0}, +{ 3, s_3_57, -1, 1, 0}, +{ 4, s_3_58, -1, 1, 0}, +{ 4, s_3_59, -1, 3, 0}, +{ 3, s_3_60, -1, 1, 0}, +{ 3, s_3_61, -1, 1, 0} }; static const symbol s_4_0[2] = { 'e', 'a' }; @@ -402,100 +402,100 @@ static const symbol s_4_93[4] = { 'e', 'a', 'z', 0xE3 }; static const struct among a_4[94] = { -/* 0 */ { 2, s_4_0, -1, 1, 0}, -/* 1 */ { 2, s_4_1, -1, 1, 0}, -/* 2 */ { 3, s_4_2, -1, 1, 0}, -/* 3 */ { 3, s_4_3, -1, 1, 0}, -/* 4 */ { 3, s_4_4, -1, 1, 0}, -/* 5 */ { 3, s_4_5, -1, 1, 0}, -/* 6 */ { 3, s_4_6, -1, 1, 0}, -/* 7 */ { 3, s_4_7, -1, 1, 0}, -/* 8 */ { 3, s_4_8, -1, 1, 0}, -/* 9 */ { 3, s_4_9, -1, 1, 0}, -/* 10 */ { 2, s_4_10, -1, 2, 0}, -/* 11 */ { 3, s_4_11, 10, 1, 0}, -/* 12 */ { 4, s_4_12, 10, 2, 0}, -/* 13 */ { 3, s_4_13, 10, 1, 0}, -/* 14 */ { 3, s_4_14, 10, 1, 0}, -/* 15 */ { 3, s_4_15, 10, 1, 0}, -/* 16 */ { 4, s_4_16, -1, 1, 0}, -/* 17 */ { 4, s_4_17, -1, 1, 0}, -/* 18 */ { 3, s_4_18, -1, 1, 0}, -/* 19 */ { 2, s_4_19, -1, 1, 0}, -/* 20 */ { 3, s_4_20, 19, 1, 0}, -/* 21 */ { 3, s_4_21, 19, 1, 0}, -/* 22 */ { 3, s_4_22, -1, 2, 0}, -/* 23 */ { 4, s_4_23, -1, 1, 0}, -/* 24 */ { 4, s_4_24, -1, 1, 0}, -/* 25 */ { 2, s_4_25, -1, 1, 0}, -/* 26 */ { 3, s_4_26, -1, 1, 0}, -/* 27 */ { 3, s_4_27, -1, 1, 0}, -/* 28 */ { 4, s_4_28, -1, 2, 0}, -/* 29 */ { 5, s_4_29, 28, 1, 0}, -/* 30 */ { 6, s_4_30, 28, 2, 0}, -/* 31 */ { 5, s_4_31, 28, 1, 0}, -/* 32 */ { 5, s_4_32, 28, 1, 0}, -/* 33 */ { 5, s_4_33, 28, 1, 0}, -/* 34 */ { 3, s_4_34, -1, 1, 0}, -/* 35 */ { 3, s_4_35, -1, 1, 0}, -/* 36 */ { 3, s_4_36, -1, 1, 0}, -/* 37 */ { 2, s_4_37, -1, 1, 0}, -/* 38 */ { 3, s_4_38, -1, 2, 0}, -/* 39 */ { 4, s_4_39, 38, 1, 0}, -/* 40 */ { 4, s_4_40, 38, 1, 0}, -/* 41 */ { 3, s_4_41, -1, 2, 0}, -/* 42 */ { 3, s_4_42, -1, 2, 0}, -/* 43 */ { 3, s_4_43, -1, 2, 0}, -/* 44 */ { 5, s_4_44, -1, 1, 0}, -/* 45 */ { 6, s_4_45, -1, 2, 0}, -/* 46 */ { 7, s_4_46, 45, 1, 0}, -/* 47 */ { 8, s_4_47, 45, 2, 0}, -/* 48 */ { 7, s_4_48, 45, 1, 0}, -/* 49 */ { 7, s_4_49, 45, 1, 0}, -/* 50 */ { 7, s_4_50, 45, 1, 0}, -/* 51 */ { 5, s_4_51, -1, 1, 0}, -/* 52 */ { 5, s_4_52, -1, 1, 0}, -/* 53 */ { 5, s_4_53, -1, 1, 0}, -/* 54 */ { 2, s_4_54, -1, 1, 0}, -/* 55 */ { 3, s_4_55, 54, 1, 0}, -/* 56 */ { 3, s_4_56, 54, 1, 0}, -/* 57 */ { 2, s_4_57, -1, 2, 0}, -/* 58 */ { 4, s_4_58, 57, 1, 0}, -/* 59 */ { 5, s_4_59, 57, 2, 0}, -/* 60 */ { 4, s_4_60, 57, 1, 0}, -/* 61 */ { 4, s_4_61, 57, 1, 0}, -/* 62 */ { 4, s_4_62, 57, 1, 0}, -/* 63 */ { 2, s_4_63, -1, 2, 0}, -/* 64 */ { 2, s_4_64, -1, 2, 0}, -/* 65 */ { 2, s_4_65, -1, 2, 0}, -/* 66 */ { 4, s_4_66, 65, 1, 0}, -/* 67 */ { 5, s_4_67, 65, 2, 0}, -/* 68 */ { 6, s_4_68, 67, 1, 0}, -/* 69 */ { 7, s_4_69, 67, 2, 0}, -/* 70 */ { 6, s_4_70, 67, 1, 0}, -/* 71 */ { 6, s_4_71, 67, 1, 0}, -/* 72 */ { 6, s_4_72, 67, 1, 0}, -/* 73 */ { 4, s_4_73, 65, 1, 0}, -/* 74 */ { 4, s_4_74, 65, 1, 0}, -/* 75 */ { 4, s_4_75, 65, 1, 0}, -/* 76 */ { 2, s_4_76, -1, 1, 0}, -/* 77 */ { 3, s_4_77, 76, 1, 0}, -/* 78 */ { 3, s_4_78, 76, 1, 0}, -/* 79 */ { 4, s_4_79, -1, 1, 0}, -/* 80 */ { 4, s_4_80, -1, 1, 0}, -/* 81 */ { 2, s_4_81, -1, 1, 0}, -/* 82 */ { 5, s_4_82, -1, 1, 0}, -/* 83 */ { 3, s_4_83, -1, 1, 0}, -/* 84 */ { 4, s_4_84, -1, 2, 0}, -/* 85 */ { 5, s_4_85, 84, 1, 0}, -/* 86 */ { 6, s_4_86, 84, 2, 0}, -/* 87 */ { 5, s_4_87, 84, 1, 0}, -/* 88 */ { 5, s_4_88, 84, 1, 0}, -/* 89 */ { 5, s_4_89, 84, 1, 0}, -/* 90 */ { 3, s_4_90, -1, 1, 0}, -/* 91 */ { 3, s_4_91, -1, 1, 0}, -/* 92 */ { 3, s_4_92, -1, 1, 0}, -/* 93 */ { 4, s_4_93, -1, 1, 0} +{ 2, s_4_0, -1, 1, 0}, +{ 2, s_4_1, -1, 1, 0}, +{ 3, s_4_2, -1, 1, 0}, +{ 3, s_4_3, -1, 1, 0}, +{ 3, s_4_4, -1, 1, 0}, +{ 3, s_4_5, -1, 1, 0}, +{ 3, s_4_6, -1, 1, 0}, +{ 3, s_4_7, -1, 1, 0}, +{ 3, s_4_8, -1, 1, 0}, +{ 3, s_4_9, -1, 1, 0}, +{ 2, s_4_10, -1, 2, 0}, +{ 3, s_4_11, 10, 1, 0}, +{ 4, s_4_12, 10, 2, 0}, +{ 3, s_4_13, 10, 1, 0}, +{ 3, s_4_14, 10, 1, 0}, +{ 3, s_4_15, 10, 1, 0}, +{ 4, s_4_16, -1, 1, 0}, +{ 4, s_4_17, -1, 1, 0}, +{ 3, s_4_18, -1, 1, 0}, +{ 2, s_4_19, -1, 1, 0}, +{ 3, s_4_20, 19, 1, 0}, +{ 3, s_4_21, 19, 1, 0}, +{ 3, s_4_22, -1, 2, 0}, +{ 4, s_4_23, -1, 1, 0}, +{ 4, s_4_24, -1, 1, 0}, +{ 2, s_4_25, -1, 1, 0}, +{ 3, s_4_26, -1, 1, 0}, +{ 3, s_4_27, -1, 1, 0}, +{ 4, s_4_28, -1, 2, 0}, +{ 5, s_4_29, 28, 1, 0}, +{ 6, s_4_30, 28, 2, 0}, +{ 5, s_4_31, 28, 1, 0}, +{ 5, s_4_32, 28, 1, 0}, +{ 5, s_4_33, 28, 1, 0}, +{ 3, s_4_34, -1, 1, 0}, +{ 3, s_4_35, -1, 1, 0}, +{ 3, s_4_36, -1, 1, 0}, +{ 2, s_4_37, -1, 1, 0}, +{ 3, s_4_38, -1, 2, 0}, +{ 4, s_4_39, 38, 1, 0}, +{ 4, s_4_40, 38, 1, 0}, +{ 3, s_4_41, -1, 2, 0}, +{ 3, s_4_42, -1, 2, 0}, +{ 3, s_4_43, -1, 2, 0}, +{ 5, s_4_44, -1, 1, 0}, +{ 6, s_4_45, -1, 2, 0}, +{ 7, s_4_46, 45, 1, 0}, +{ 8, s_4_47, 45, 2, 0}, +{ 7, s_4_48, 45, 1, 0}, +{ 7, s_4_49, 45, 1, 0}, +{ 7, s_4_50, 45, 1, 0}, +{ 5, s_4_51, -1, 1, 0}, +{ 5, s_4_52, -1, 1, 0}, +{ 5, s_4_53, -1, 1, 0}, +{ 2, s_4_54, -1, 1, 0}, +{ 3, s_4_55, 54, 1, 0}, +{ 3, s_4_56, 54, 1, 0}, +{ 2, s_4_57, -1, 2, 0}, +{ 4, s_4_58, 57, 1, 0}, +{ 5, s_4_59, 57, 2, 0}, +{ 4, s_4_60, 57, 1, 0}, +{ 4, s_4_61, 57, 1, 0}, +{ 4, s_4_62, 57, 1, 0}, +{ 2, s_4_63, -1, 2, 0}, +{ 2, s_4_64, -1, 2, 0}, +{ 2, s_4_65, -1, 2, 0}, +{ 4, s_4_66, 65, 1, 0}, +{ 5, s_4_67, 65, 2, 0}, +{ 6, s_4_68, 67, 1, 0}, +{ 7, s_4_69, 67, 2, 0}, +{ 6, s_4_70, 67, 1, 0}, +{ 6, s_4_71, 67, 1, 0}, +{ 6, s_4_72, 67, 1, 0}, +{ 4, s_4_73, 65, 1, 0}, +{ 4, s_4_74, 65, 1, 0}, +{ 4, s_4_75, 65, 1, 0}, +{ 2, s_4_76, -1, 1, 0}, +{ 3, s_4_77, 76, 1, 0}, +{ 3, s_4_78, 76, 1, 0}, +{ 4, s_4_79, -1, 1, 0}, +{ 4, s_4_80, -1, 1, 0}, +{ 2, s_4_81, -1, 1, 0}, +{ 5, s_4_82, -1, 1, 0}, +{ 3, s_4_83, -1, 1, 0}, +{ 4, s_4_84, -1, 2, 0}, +{ 5, s_4_85, 84, 1, 0}, +{ 6, s_4_86, 84, 2, 0}, +{ 5, s_4_87, 84, 1, 0}, +{ 5, s_4_88, 84, 1, 0}, +{ 5, s_4_89, 84, 1, 0}, +{ 3, s_4_90, -1, 1, 0}, +{ 3, s_4_91, -1, 1, 0}, +{ 3, s_4_92, -1, 1, 0}, +{ 4, s_4_93, -1, 1, 0} }; static const symbol s_5_0[1] = { 'a' }; @@ -506,11 +506,11 @@ static const symbol s_5_4[1] = { 0xE3 }; static const struct among a_5[5] = { -/* 0 */ { 1, s_5_0, -1, 1, 0}, -/* 1 */ { 1, s_5_1, -1, 1, 0}, -/* 2 */ { 2, s_5_2, 1, 1, 0}, -/* 3 */ { 1, s_5_3, -1, 1, 0}, -/* 4 */ { 1, s_5_4, -1, 1, 0} +{ 1, s_5_0, -1, 1, 0}, +{ 1, s_5_1, -1, 1, 0}, +{ 2, s_5_2, 1, 1, 0}, +{ 1, s_5_3, -1, 1, 0}, +{ 1, s_5_4, -1, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 32 }; @@ -535,30 +535,29 @@ static const symbol s_16[] = { 'i', 't' }; static const symbol s_17[] = { 't' }; static const symbol s_18[] = { 'i', 's', 't' }; -static int r_prelude(struct SN_env * z) { /* forwardmode */ -/* repeat, line 32 */ - - while(1) { int c1 = z->c; - while(1) { /* goto, line 32 */ +static int r_prelude(struct SN_env * z) { + while(1) { + int c1 = z->c; + while(1) { int c2 = z->c; - if (in_grouping(z, g_v, 97, 238, 0)) goto lab1; /* grouping v, line 33 */ - z->bra = z->c; /* [, line 33 */ - { int c3 = z->c; /* or, line 33 */ - if (z->c == z->l || z->p[z->c] != 'u') goto lab3; /* literal, line 33 */ + if (in_grouping(z, g_v, 97, 238, 0)) goto lab1; + z->bra = z->c; + { int c3 = z->c; + if (z->c == z->l || z->p[z->c] != 'u') goto lab3; z->c++; - z->ket = z->c; /* ], line 33 */ - if (in_grouping(z, g_v, 97, 238, 0)) goto lab3; /* grouping v, line 33 */ - { int ret = slice_from_s(z, 1, s_0); /* <-, line 33 */ + z->ket = z->c; + if (in_grouping(z, g_v, 97, 238, 0)) goto lab3; + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } goto lab2; lab3: z->c = c3; - if (z->c == z->l || z->p[z->c] != 'i') goto lab1; /* literal, line 34 */ + if (z->c == z->l || z->p[z->c] != 'i') goto lab1; z->c++; - z->ket = z->c; /* ], line 34 */ - if (in_grouping(z, g_v, 97, 238, 0)) goto lab1; /* grouping v, line 34 */ - { int ret = slice_from_s(z, 1, s_1); /* <-, line 34 */ + z->ket = z->c; + if (in_grouping(z, g_v, 97, 238, 0)) goto lab1; + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } } @@ -568,7 +567,7 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ lab1: z->c = c2; if (z->c >= z->l) goto lab0; - z->c++; /* goto, line 32 */ + z->c++; } continue; lab0: @@ -578,16 +577,16 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $pV = , line 40 */ - z->I[1] = z->l; /* $p1 = , line 41 */ - z->I[2] = z->l; /* $p2 = , line 42 */ - { int c1 = z->c; /* do, line 44 */ - { int c2 = z->c; /* or, line 46 */ - if (in_grouping(z, g_v, 97, 238, 0)) goto lab2; /* grouping v, line 45 */ - { int c3 = z->c; /* or, line 45 */ - if (out_grouping(z, g_v, 97, 238, 0)) goto lab4; /* non v, line 45 */ - { /* gopast */ /* grouping v, line 45 */ +static int r_mark_regions(struct SN_env * z) { + z->I[2] = z->l; + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int c2 = z->c; + if (in_grouping(z, g_v, 97, 238, 0)) goto lab2; + { int c3 = z->c; + if (out_grouping(z, g_v, 97, 238, 0)) goto lab4; + { int ret = out_grouping(z, g_v, 97, 238, 1); if (ret < 0) goto lab4; z->c += ret; @@ -595,8 +594,8 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab3; lab4: z->c = c3; - if (in_grouping(z, g_v, 97, 238, 0)) goto lab2; /* grouping v, line 45 */ - { /* gopast */ /* non v, line 45 */ + if (in_grouping(z, g_v, 97, 238, 0)) goto lab2; + { int ret = in_grouping(z, g_v, 97, 238, 1); if (ret < 0) goto lab2; z->c += ret; @@ -606,10 +605,10 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab1; lab2: z->c = c2; - if (out_grouping(z, g_v, 97, 238, 0)) goto lab0; /* non v, line 47 */ - { int c4 = z->c; /* or, line 47 */ - if (out_grouping(z, g_v, 97, 238, 0)) goto lab6; /* non v, line 47 */ - { /* gopast */ /* grouping v, line 47 */ + if (out_grouping(z, g_v, 97, 238, 0)) goto lab0; + { int c4 = z->c; + if (out_grouping(z, g_v, 97, 238, 0)) goto lab6; + { int ret = out_grouping(z, g_v, 97, 238, 1); if (ret < 0) goto lab6; z->c += ret; @@ -617,71 +616,70 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab5; lab6: z->c = c4; - if (in_grouping(z, g_v, 97, 238, 0)) goto lab0; /* grouping v, line 47 */ + if (in_grouping(z, g_v, 97, 238, 0)) goto lab0; if (z->c >= z->l) goto lab0; - z->c++; /* next, line 47 */ + z->c++; } lab5: ; } lab1: - z->I[0] = z->c; /* setmark pV, line 48 */ + z->I[2] = z->c; lab0: z->c = c1; } - { int c5 = z->c; /* do, line 50 */ - { /* gopast */ /* grouping v, line 51 */ + { int c5 = z->c; + { int ret = out_grouping(z, g_v, 97, 238, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 51 */ + { int ret = in_grouping(z, g_v, 97, 238, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[1] = z->c; /* setmark p1, line 51 */ - { /* gopast */ /* grouping v, line 52 */ + z->I[1] = z->c; + { int ret = out_grouping(z, g_v, 97, 238, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 52 */ + { int ret = in_grouping(z, g_v, 97, 238, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[2] = z->c; /* setmark p2, line 52 */ + z->I[0] = z->c; lab7: z->c = c5; } return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ +static int r_postlude(struct SN_env * z) { int among_var; -/* repeat, line 56 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 58 */ - if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else /* substring, line 58 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else among_var = find_among(z, a_0, 3); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 58 */ - switch (among_var) { /* among, line 58 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_2); /* <-, line 59 */ + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_3); /* <-, line 60 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } break; case 3: if (z->c >= z->l) goto lab0; - z->c++; /* next, line 61 */ + z->c++; break; } continue; @@ -692,70 +690,70 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_RV(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 68 */ +static int r_RV(struct SN_env * z) { + if (!(z->I[2] <= z->c)) return 0; return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 69 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 70 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_step_0(struct SN_env * z) { /* backwardmode */ +static int r_step_0(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 73 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((266786 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 73 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((266786 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_1, 16); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 73 */ - { int ret = r_R1(z); /* call R1, line 73 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 73 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 75 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_4); /* <-, line 77 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_5); /* <-, line 79 */ + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 1, s_6); /* <-, line 81 */ + { int ret = slice_from_s(z, 1, s_6); if (ret < 0) return ret; } break; case 5: - { int m1 = z->l - z->c; (void)m1; /* not, line 83 */ - if (!(eq_s_b(z, 2, s_7))) goto lab0; /* literal, line 83 */ + { int m1 = z->l - z->c; (void)m1; + if (!(eq_s_b(z, 2, s_7))) goto lab0; return 0; lab0: z->c = z->l - m1; } - { int ret = slice_from_s(z, 1, s_8); /* <-, line 83 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 2, s_9); /* <-, line 85 */ + { int ret = slice_from_s(z, 2, s_9); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 3, s_10); /* <-, line 87 */ + { int ret = slice_from_s(z, 3, s_10); if (ret < 0) return ret; } break; @@ -763,61 +761,60 @@ static int r_step_0(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_combo_suffix(struct SN_env * z) { /* backwardmode */ +static int r_combo_suffix(struct SN_env * z) { int among_var; - { int m_test1 = z->l - z->c; /* test, line 91 */ - z->ket = z->c; /* [, line 92 */ - among_var = find_among_b(z, a_2, 46); /* substring, line 92 */ + { int m_test1 = z->l - z->c; + z->ket = z->c; + among_var = find_among_b(z, a_2, 46); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 92 */ - { int ret = r_R1(z); /* call R1, line 92 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 93 */ + switch (among_var) { case 1: - { int ret = slice_from_s(z, 4, s_11); /* <-, line 101 */ + { int ret = slice_from_s(z, 4, s_11); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 4, s_12); /* <-, line 104 */ + { int ret = slice_from_s(z, 4, s_12); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 2, s_13); /* <-, line 107 */ + { int ret = slice_from_s(z, 2, s_13); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 2, s_14); /* <-, line 113 */ + { int ret = slice_from_s(z, 2, s_14); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 2, s_15); /* <-, line 118 */ + { int ret = slice_from_s(z, 2, s_15); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 2, s_16); /* <-, line 122 */ + { int ret = slice_from_s(z, 2, s_16); if (ret < 0) return ret; } break; } - z->B[0] = 1; /* set standard_suffix_removed, line 125 */ + z->I[3] = 1; z->c = z->l - m_test1; } return 1; } -static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ +static int r_standard_suffix(struct SN_env * z) { int among_var; - z->B[0] = 0; /* unset standard_suffix_removed, line 130 */ -/* repeat, line 131 */ - - while(1) { int m1 = z->l - z->c; (void)m1; - { int ret = r_combo_suffix(z); /* call combo_suffix, line 131 */ + z->I[3] = 0; + while(1) { + int m1 = z->l - z->c; (void)m1; + { int ret = r_combo_suffix(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -826,64 +823,64 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ z->c = z->l - m1; break; } - z->ket = z->c; /* [, line 132 */ - among_var = find_among_b(z, a_3, 62); /* substring, line 132 */ + z->ket = z->c; + among_var = find_among_b(z, a_3, 62); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 132 */ - { int ret = r_R2(z); /* call R2, line 132 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 133 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 149 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (z->c <= z->lb || z->p[z->c - 1] != 0xFE) return 0; /* literal, line 152 */ + if (z->c <= z->lb || z->p[z->c - 1] != 0xFE) return 0; z->c--; - z->bra = z->c; /* ], line 152 */ - { int ret = slice_from_s(z, 1, s_17); /* <-, line 152 */ + z->bra = z->c; + { int ret = slice_from_s(z, 1, s_17); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 3, s_18); /* <-, line 156 */ + { int ret = slice_from_s(z, 3, s_18); if (ret < 0) return ret; } break; } - z->B[0] = 1; /* set standard_suffix_removed, line 160 */ + z->I[3] = 1; return 1; } -static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ +static int r_verb_suffix(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 164 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 165 */ - among_var = find_among_b(z, a_4, 94); /* substring, line 165 */ + { int mlimit1; + if (z->c < z->I[2]) return 0; + mlimit1 = z->lb; z->lb = z->I[2]; + z->ket = z->c; + among_var = find_among_b(z, a_4, 94); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 165 */ - switch (among_var) { /* among, line 165 */ + z->bra = z->c; + switch (among_var) { case 1: - { int m2 = z->l - z->c; (void)m2; /* or, line 200 */ - if (out_grouping_b(z, g_v, 97, 238, 0)) goto lab1; /* non v, line 200 */ + { int m2 = z->l - z->c; (void)m2; + if (out_grouping_b(z, g_v, 97, 238, 0)) goto lab1; goto lab0; lab1: z->c = z->l - m2; - if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->lb = mlimit1; return 0; } /* literal, line 200 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->lb = mlimit1; return 0; } z->c--; } lab0: - { int ret = slice_del(z); /* delete, line 200 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_del(z); /* delete, line 214 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -893,51 +890,51 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 219 */ - if (!(find_among_b(z, a_5, 5))) return 0; /* substring, line 219 */ - z->bra = z->c; /* ], line 219 */ - { int ret = r_RV(z); /* call RV, line 219 */ +static int r_vowel_suffix(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_5, 5))) return 0; + z->bra = z->c; + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 220 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -extern int romanian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 226 */ - { int ret = r_prelude(z); /* call prelude, line 226 */ +extern int romanian_ISO_8859_2_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_prelude(z); if (ret < 0) return ret; } z->c = c1; } - /* do, line 227 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 227 */ + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 228 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 229 */ - { int ret = r_step_0(z); /* call step_0, line 229 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_step_0(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 230 */ - { int ret = r_standard_suffix(z); /* call standard_suffix, line 230 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_standard_suffix(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 231 */ - { int m5 = z->l - z->c; (void)m5; /* or, line 231 */ - if (!(z->B[0])) goto lab2; /* Boolean test standard_suffix_removed, line 231 */ + { int m4 = z->l - z->c; (void)m4; + { int m5 = z->l - z->c; (void)m5; + if (!(z->I[3])) goto lab2; goto lab1; lab2: z->c = z->l - m5; - { int ret = r_verb_suffix(z); /* call verb_suffix, line 231 */ + { int ret = r_verb_suffix(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -946,15 +943,15 @@ extern int romanian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */ lab0: z->c = z->l - m4; } - { int m6 = z->l - z->c; (void)m6; /* do, line 232 */ - { int ret = r_vowel_suffix(z); /* call vowel_suffix, line 232 */ + { int m6 = z->l - z->c; (void)m6; + { int ret = r_vowel_suffix(z); if (ret < 0) return ret; } z->c = z->l - m6; } z->c = z->lb; - { int c7 = z->c; /* do, line 234 */ - { int ret = r_postlude(z); /* call postlude, line 234 */ + { int c7 = z->c; + { int ret = r_postlude(z); if (ret < 0) return ret; } z->c = c7; @@ -962,7 +959,7 @@ extern int romanian_ISO_8859_2_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * romanian_ISO_8859_2_create_env(void) { return SN_create_env(0, 3, 1); } +extern struct SN_env * romanian_ISO_8859_2_create_env(void) { return SN_create_env(0, 4); } extern void romanian_ISO_8859_2_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_KOI8_R_russian.c b/src/backend/snowball/libstemmer/stem_KOI8_R_russian.c index eef4b208e8f49..03c13b83f3535 100644 --- a/src/backend/snowball/libstemmer/stem_KOI8_R_russian.c +++ b/src/backend/snowball/libstemmer/stem_KOI8_R_russian.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -43,15 +43,15 @@ static const symbol s_0_8[6] = { 0xD9, 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 }; static const struct among a_0[9] = { -/* 0 */ { 3, s_0_0, -1, 1, 0}, -/* 1 */ { 4, s_0_1, 0, 2, 0}, -/* 2 */ { 4, s_0_2, 0, 2, 0}, -/* 3 */ { 1, s_0_3, -1, 1, 0}, -/* 4 */ { 2, s_0_4, 3, 2, 0}, -/* 5 */ { 2, s_0_5, 3, 2, 0}, -/* 6 */ { 5, s_0_6, -1, 1, 0}, -/* 7 */ { 6, s_0_7, 6, 2, 0}, -/* 8 */ { 6, s_0_8, 6, 2, 0} +{ 3, s_0_0, -1, 1, 0}, +{ 4, s_0_1, 0, 2, 0}, +{ 4, s_0_2, 0, 2, 0}, +{ 1, s_0_3, -1, 1, 0}, +{ 2, s_0_4, 3, 2, 0}, +{ 2, s_0_5, 3, 2, 0}, +{ 5, s_0_6, -1, 1, 0}, +{ 6, s_0_7, 6, 2, 0}, +{ 6, s_0_8, 6, 2, 0} }; static const symbol s_1_0[2] = { 0xC0, 0xC0 }; @@ -83,32 +83,32 @@ static const symbol s_1_25[3] = { 0xCF, 0xCD, 0xD5 }; static const struct among a_1[26] = { -/* 0 */ { 2, s_1_0, -1, 1, 0}, -/* 1 */ { 2, s_1_1, -1, 1, 0}, -/* 2 */ { 2, s_1_2, -1, 1, 0}, -/* 3 */ { 2, s_1_3, -1, 1, 0}, -/* 4 */ { 2, s_1_4, -1, 1, 0}, -/* 5 */ { 2, s_1_5, -1, 1, 0}, -/* 6 */ { 2, s_1_6, -1, 1, 0}, -/* 7 */ { 2, s_1_7, -1, 1, 0}, -/* 8 */ { 2, s_1_8, -1, 1, 0}, -/* 9 */ { 2, s_1_9, -1, 1, 0}, -/* 10 */ { 3, s_1_10, -1, 1, 0}, -/* 11 */ { 3, s_1_11, -1, 1, 0}, -/* 12 */ { 2, s_1_12, -1, 1, 0}, -/* 13 */ { 2, s_1_13, -1, 1, 0}, -/* 14 */ { 2, s_1_14, -1, 1, 0}, -/* 15 */ { 2, s_1_15, -1, 1, 0}, -/* 16 */ { 2, s_1_16, -1, 1, 0}, -/* 17 */ { 2, s_1_17, -1, 1, 0}, -/* 18 */ { 2, s_1_18, -1, 1, 0}, -/* 19 */ { 2, s_1_19, -1, 1, 0}, -/* 20 */ { 3, s_1_20, -1, 1, 0}, -/* 21 */ { 3, s_1_21, -1, 1, 0}, -/* 22 */ { 2, s_1_22, -1, 1, 0}, -/* 23 */ { 2, s_1_23, -1, 1, 0}, -/* 24 */ { 3, s_1_24, -1, 1, 0}, -/* 25 */ { 3, s_1_25, -1, 1, 0} +{ 2, s_1_0, -1, 1, 0}, +{ 2, s_1_1, -1, 1, 0}, +{ 2, s_1_2, -1, 1, 0}, +{ 2, s_1_3, -1, 1, 0}, +{ 2, s_1_4, -1, 1, 0}, +{ 2, s_1_5, -1, 1, 0}, +{ 2, s_1_6, -1, 1, 0}, +{ 2, s_1_7, -1, 1, 0}, +{ 2, s_1_8, -1, 1, 0}, +{ 2, s_1_9, -1, 1, 0}, +{ 3, s_1_10, -1, 1, 0}, +{ 3, s_1_11, -1, 1, 0}, +{ 2, s_1_12, -1, 1, 0}, +{ 2, s_1_13, -1, 1, 0}, +{ 2, s_1_14, -1, 1, 0}, +{ 2, s_1_15, -1, 1, 0}, +{ 2, s_1_16, -1, 1, 0}, +{ 2, s_1_17, -1, 1, 0}, +{ 2, s_1_18, -1, 1, 0}, +{ 2, s_1_19, -1, 1, 0}, +{ 3, s_1_20, -1, 1, 0}, +{ 3, s_1_21, -1, 1, 0}, +{ 2, s_1_22, -1, 1, 0}, +{ 2, s_1_23, -1, 1, 0}, +{ 3, s_1_24, -1, 1, 0}, +{ 3, s_1_25, -1, 1, 0} }; static const symbol s_2_0[2] = { 0xC5, 0xCD }; @@ -122,14 +122,14 @@ static const symbol s_2_7[3] = { 0xD5, 0xC0, 0xDD }; static const struct among a_2[8] = { -/* 0 */ { 2, s_2_0, -1, 1, 0}, -/* 1 */ { 2, s_2_1, -1, 1, 0}, -/* 2 */ { 2, s_2_2, -1, 1, 0}, -/* 3 */ { 3, s_2_3, 2, 2, 0}, -/* 4 */ { 3, s_2_4, 2, 2, 0}, -/* 5 */ { 1, s_2_5, -1, 1, 0}, -/* 6 */ { 2, s_2_6, 5, 1, 0}, -/* 7 */ { 3, s_2_7, 6, 2, 0} +{ 2, s_2_0, -1, 1, 0}, +{ 2, s_2_1, -1, 1, 0}, +{ 2, s_2_2, -1, 1, 0}, +{ 3, s_2_3, 2, 2, 0}, +{ 3, s_2_4, 2, 2, 0}, +{ 1, s_2_5, -1, 1, 0}, +{ 2, s_2_6, 5, 1, 0}, +{ 3, s_2_7, 6, 2, 0} }; static const symbol s_3_0[2] = { 0xD3, 0xD1 }; @@ -137,8 +137,8 @@ static const symbol s_3_1[2] = { 0xD3, 0xD8 }; static const struct among a_3[2] = { -/* 0 */ { 2, s_3_0, -1, 1, 0}, -/* 1 */ { 2, s_3_1, -1, 1, 0} +{ 2, s_3_0, -1, 1, 0}, +{ 2, s_3_1, -1, 1, 0} }; static const symbol s_4_0[1] = { 0xC0 }; @@ -190,52 +190,52 @@ static const symbol s_4_45[3] = { 0xC5, 0xCE, 0xD9 }; static const struct among a_4[46] = { -/* 0 */ { 1, s_4_0, -1, 2, 0}, -/* 1 */ { 2, s_4_1, 0, 2, 0}, -/* 2 */ { 2, s_4_2, -1, 1, 0}, -/* 3 */ { 3, s_4_3, 2, 2, 0}, -/* 4 */ { 3, s_4_4, 2, 2, 0}, -/* 5 */ { 2, s_4_5, -1, 1, 0}, -/* 6 */ { 3, s_4_6, 5, 2, 0}, -/* 7 */ { 3, s_4_7, -1, 1, 0}, -/* 8 */ { 3, s_4_8, -1, 2, 0}, -/* 9 */ { 3, s_4_9, -1, 1, 0}, -/* 10 */ { 4, s_4_10, 9, 2, 0}, -/* 11 */ { 4, s_4_11, 9, 2, 0}, -/* 12 */ { 2, s_4_12, -1, 1, 0}, -/* 13 */ { 3, s_4_13, 12, 2, 0}, -/* 14 */ { 3, s_4_14, 12, 2, 0}, -/* 15 */ { 1, s_4_15, -1, 1, 0}, -/* 16 */ { 2, s_4_16, 15, 2, 0}, -/* 17 */ { 2, s_4_17, 15, 2, 0}, -/* 18 */ { 1, s_4_18, -1, 1, 0}, -/* 19 */ { 2, s_4_19, 18, 2, 0}, -/* 20 */ { 2, s_4_20, 18, 2, 0}, -/* 21 */ { 2, s_4_21, -1, 1, 0}, -/* 22 */ { 2, s_4_22, -1, 2, 0}, -/* 23 */ { 2, s_4_23, -1, 2, 0}, -/* 24 */ { 1, s_4_24, -1, 1, 0}, -/* 25 */ { 2, s_4_25, 24, 2, 0}, -/* 26 */ { 2, s_4_26, -1, 1, 0}, -/* 27 */ { 3, s_4_27, 26, 2, 0}, -/* 28 */ { 3, s_4_28, 26, 2, 0}, -/* 29 */ { 2, s_4_29, -1, 1, 0}, -/* 30 */ { 3, s_4_30, 29, 2, 0}, -/* 31 */ { 3, s_4_31, 29, 1, 0}, -/* 32 */ { 2, s_4_32, -1, 1, 0}, -/* 33 */ { 3, s_4_33, 32, 2, 0}, -/* 34 */ { 2, s_4_34, -1, 1, 0}, -/* 35 */ { 3, s_4_35, 34, 2, 0}, -/* 36 */ { 2, s_4_36, -1, 2, 0}, -/* 37 */ { 2, s_4_37, -1, 2, 0}, -/* 38 */ { 2, s_4_38, -1, 2, 0}, -/* 39 */ { 2, s_4_39, -1, 1, 0}, -/* 40 */ { 3, s_4_40, 39, 2, 0}, -/* 41 */ { 3, s_4_41, 39, 2, 0}, -/* 42 */ { 3, s_4_42, -1, 1, 0}, -/* 43 */ { 3, s_4_43, -1, 2, 0}, -/* 44 */ { 2, s_4_44, -1, 1, 0}, -/* 45 */ { 3, s_4_45, 44, 2, 0} +{ 1, s_4_0, -1, 2, 0}, +{ 2, s_4_1, 0, 2, 0}, +{ 2, s_4_2, -1, 1, 0}, +{ 3, s_4_3, 2, 2, 0}, +{ 3, s_4_4, 2, 2, 0}, +{ 2, s_4_5, -1, 1, 0}, +{ 3, s_4_6, 5, 2, 0}, +{ 3, s_4_7, -1, 1, 0}, +{ 3, s_4_8, -1, 2, 0}, +{ 3, s_4_9, -1, 1, 0}, +{ 4, s_4_10, 9, 2, 0}, +{ 4, s_4_11, 9, 2, 0}, +{ 2, s_4_12, -1, 1, 0}, +{ 3, s_4_13, 12, 2, 0}, +{ 3, s_4_14, 12, 2, 0}, +{ 1, s_4_15, -1, 1, 0}, +{ 2, s_4_16, 15, 2, 0}, +{ 2, s_4_17, 15, 2, 0}, +{ 1, s_4_18, -1, 1, 0}, +{ 2, s_4_19, 18, 2, 0}, +{ 2, s_4_20, 18, 2, 0}, +{ 2, s_4_21, -1, 1, 0}, +{ 2, s_4_22, -1, 2, 0}, +{ 2, s_4_23, -1, 2, 0}, +{ 1, s_4_24, -1, 1, 0}, +{ 2, s_4_25, 24, 2, 0}, +{ 2, s_4_26, -1, 1, 0}, +{ 3, s_4_27, 26, 2, 0}, +{ 3, s_4_28, 26, 2, 0}, +{ 2, s_4_29, -1, 1, 0}, +{ 3, s_4_30, 29, 2, 0}, +{ 3, s_4_31, 29, 1, 0}, +{ 2, s_4_32, -1, 1, 0}, +{ 3, s_4_33, 32, 2, 0}, +{ 2, s_4_34, -1, 1, 0}, +{ 3, s_4_35, 34, 2, 0}, +{ 2, s_4_36, -1, 2, 0}, +{ 2, s_4_37, -1, 2, 0}, +{ 2, s_4_38, -1, 2, 0}, +{ 2, s_4_39, -1, 1, 0}, +{ 3, s_4_40, 39, 2, 0}, +{ 3, s_4_41, 39, 2, 0}, +{ 3, s_4_42, -1, 1, 0}, +{ 3, s_4_43, -1, 2, 0}, +{ 2, s_4_44, -1, 1, 0}, +{ 3, s_4_45, 44, 2, 0} }; static const symbol s_5_0[1] = { 0xC0 }; @@ -277,42 +277,42 @@ static const symbol s_5_35[1] = { 0xD9 }; static const struct among a_5[36] = { -/* 0 */ { 1, s_5_0, -1, 1, 0}, -/* 1 */ { 2, s_5_1, 0, 1, 0}, -/* 2 */ { 2, s_5_2, 0, 1, 0}, -/* 3 */ { 1, s_5_3, -1, 1, 0}, -/* 4 */ { 1, s_5_4, -1, 1, 0}, -/* 5 */ { 2, s_5_5, 4, 1, 0}, -/* 6 */ { 2, s_5_6, 4, 1, 0}, -/* 7 */ { 2, s_5_7, -1, 1, 0}, -/* 8 */ { 2, s_5_8, -1, 1, 0}, -/* 9 */ { 3, s_5_9, 8, 1, 0}, -/* 10 */ { 1, s_5_10, -1, 1, 0}, -/* 11 */ { 2, s_5_11, 10, 1, 0}, -/* 12 */ { 2, s_5_12, 10, 1, 0}, -/* 13 */ { 3, s_5_13, 10, 1, 0}, -/* 14 */ { 3, s_5_14, 10, 1, 0}, -/* 15 */ { 4, s_5_15, 14, 1, 0}, -/* 16 */ { 1, s_5_16, -1, 1, 0}, -/* 17 */ { 2, s_5_17, 16, 1, 0}, -/* 18 */ { 3, s_5_18, 17, 1, 0}, -/* 19 */ { 2, s_5_19, 16, 1, 0}, -/* 20 */ { 2, s_5_20, 16, 1, 0}, -/* 21 */ { 2, s_5_21, -1, 1, 0}, -/* 22 */ { 2, s_5_22, -1, 1, 0}, -/* 23 */ { 3, s_5_23, 22, 1, 0}, -/* 24 */ { 2, s_5_24, -1, 1, 0}, -/* 25 */ { 2, s_5_25, -1, 1, 0}, -/* 26 */ { 3, s_5_26, 25, 1, 0}, -/* 27 */ { 1, s_5_27, -1, 1, 0}, -/* 28 */ { 1, s_5_28, -1, 1, 0}, -/* 29 */ { 2, s_5_29, 28, 1, 0}, -/* 30 */ { 2, s_5_30, 28, 1, 0}, -/* 31 */ { 1, s_5_31, -1, 1, 0}, -/* 32 */ { 2, s_5_32, -1, 1, 0}, -/* 33 */ { 2, s_5_33, -1, 1, 0}, -/* 34 */ { 1, s_5_34, -1, 1, 0}, -/* 35 */ { 1, s_5_35, -1, 1, 0} +{ 1, s_5_0, -1, 1, 0}, +{ 2, s_5_1, 0, 1, 0}, +{ 2, s_5_2, 0, 1, 0}, +{ 1, s_5_3, -1, 1, 0}, +{ 1, s_5_4, -1, 1, 0}, +{ 2, s_5_5, 4, 1, 0}, +{ 2, s_5_6, 4, 1, 0}, +{ 2, s_5_7, -1, 1, 0}, +{ 2, s_5_8, -1, 1, 0}, +{ 3, s_5_9, 8, 1, 0}, +{ 1, s_5_10, -1, 1, 0}, +{ 2, s_5_11, 10, 1, 0}, +{ 2, s_5_12, 10, 1, 0}, +{ 3, s_5_13, 10, 1, 0}, +{ 3, s_5_14, 10, 1, 0}, +{ 4, s_5_15, 14, 1, 0}, +{ 1, s_5_16, -1, 1, 0}, +{ 2, s_5_17, 16, 1, 0}, +{ 3, s_5_18, 17, 1, 0}, +{ 2, s_5_19, 16, 1, 0}, +{ 2, s_5_20, 16, 1, 0}, +{ 2, s_5_21, -1, 1, 0}, +{ 2, s_5_22, -1, 1, 0}, +{ 3, s_5_23, 22, 1, 0}, +{ 2, s_5_24, -1, 1, 0}, +{ 2, s_5_25, -1, 1, 0}, +{ 3, s_5_26, 25, 1, 0}, +{ 1, s_5_27, -1, 1, 0}, +{ 1, s_5_28, -1, 1, 0}, +{ 2, s_5_29, 28, 1, 0}, +{ 2, s_5_30, 28, 1, 0}, +{ 1, s_5_31, -1, 1, 0}, +{ 2, s_5_32, -1, 1, 0}, +{ 2, s_5_33, -1, 1, 0}, +{ 1, s_5_34, -1, 1, 0}, +{ 1, s_5_35, -1, 1, 0} }; static const symbol s_6_0[3] = { 0xCF, 0xD3, 0xD4 }; @@ -320,8 +320,8 @@ static const symbol s_6_1[4] = { 0xCF, 0xD3, 0xD4, 0xD8 }; static const struct among a_6[2] = { -/* 0 */ { 3, s_6_0, -1, 1, 0}, -/* 1 */ { 4, s_6_1, -1, 1, 0} +{ 3, s_6_0, -1, 1, 0}, +{ 4, s_6_1, -1, 1, 0} }; static const symbol s_7_0[4] = { 0xC5, 0xCA, 0xDB, 0xC5 }; @@ -331,78 +331,78 @@ static const symbol s_7_3[3] = { 0xC5, 0xCA, 0xDB }; static const struct among a_7[4] = { -/* 0 */ { 4, s_7_0, -1, 1, 0}, -/* 1 */ { 1, s_7_1, -1, 2, 0}, -/* 2 */ { 1, s_7_2, -1, 3, 0}, -/* 3 */ { 3, s_7_3, -1, 1, 0} +{ 4, s_7_0, -1, 1, 0}, +{ 1, s_7_1, -1, 2, 0}, +{ 1, s_7_2, -1, 3, 0}, +{ 3, s_7_3, -1, 1, 0} }; static const unsigned char g_v[] = { 35, 130, 34, 18 }; static const symbol s_0[] = { 0xC5 }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $pV = , line 61 */ - z->I[1] = z->l; /* $p2 = , line 62 */ - { int c1 = z->c; /* do, line 63 */ - { /* gopast */ /* grouping v, line 64 */ +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int ret = out_grouping(z, g_v, 192, 220, 1); if (ret < 0) goto lab0; z->c += ret; } - z->I[0] = z->c; /* setmark pV, line 64 */ - { /* gopast */ /* non v, line 64 */ + z->I[1] = z->c; + { int ret = in_grouping(z, g_v, 192, 220, 1); if (ret < 0) goto lab0; z->c += ret; } - { /* gopast */ /* grouping v, line 65 */ + { int ret = out_grouping(z, g_v, 192, 220, 1); if (ret < 0) goto lab0; z->c += ret; } - { /* gopast */ /* non v, line 65 */ + { int ret = in_grouping(z, g_v, 192, 220, 1); if (ret < 0) goto lab0; z->c += ret; } - z->I[1] = z->c; /* setmark p2, line 65 */ + z->I[0] = z->c; lab0: z->c = c1; } return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 71 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_perfective_gerund(struct SN_env * z) { /* backwardmode */ +static int r_perfective_gerund(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 74 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((25166336 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 74 */ + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((25166336 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_0, 9); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 74 */ - switch (among_var) { /* among, line 74 */ + z->bra = z->c; + switch (among_var) { case 1: - { int m1 = z->l - z->c; (void)m1; /* or, line 78 */ - if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1; /* literal, line 78 */ + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1; z->c--; goto lab0; lab1: z->c = z->l - m1; - if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0; /* literal, line 78 */ + if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0; z->c--; } lab0: - { int ret = slice_del(z); /* delete, line 78 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_del(z); /* delete, line 85 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -410,46 +410,46 @@ static int r_perfective_gerund(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_adjective(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 90 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((2271009 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 90 */ +static int r_adjective(struct SN_env * z) { + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((2271009 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_1, 26))) return 0; - z->bra = z->c; /* ], line 90 */ - { int ret = slice_del(z); /* delete, line 99 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_adjectival(struct SN_env * z) { /* backwardmode */ +static int r_adjectival(struct SN_env * z) { int among_var; - { int ret = r_adjective(z); /* call adjective, line 104 */ + { int ret = r_adjective(z); if (ret <= 0) return ret; } - { int m1 = z->l - z->c; (void)m1; /* try, line 111 */ - z->ket = z->c; /* [, line 112 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((671113216 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; } /* substring, line 112 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((671113216 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; } among_var = find_among_b(z, a_2, 8); if (!(among_var)) { z->c = z->l - m1; goto lab0; } - z->bra = z->c; /* ], line 112 */ - switch (among_var) { /* among, line 112 */ + z->bra = z->c; + switch (among_var) { case 1: - { int m2 = z->l - z->c; (void)m2; /* or, line 117 */ - if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab2; /* literal, line 117 */ + { int m2 = z->l - z->c; (void)m2; + if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab2; z->c--; goto lab1; lab2: z->c = z->l - m2; - if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) { z->c = z->l - m1; goto lab0; } /* literal, line 117 */ + if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) { z->c = z->l - m1; goto lab0; } z->c--; } lab1: - { int ret = slice_del(z); /* delete, line 117 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_del(z); /* delete, line 124 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -460,42 +460,42 @@ static int r_adjectival(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_reflexive(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 131 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 209 && z->p[z->c - 1] != 216)) return 0; /* substring, line 131 */ +static int r_reflexive(struct SN_env * z) { + z->ket = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 209 && z->p[z->c - 1] != 216)) return 0; if (!(find_among_b(z, a_3, 2))) return 0; - z->bra = z->c; /* ], line 131 */ - { int ret = slice_del(z); /* delete, line 134 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_verb(struct SN_env * z) { /* backwardmode */ +static int r_verb(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 139 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((51443235 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 139 */ + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((51443235 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_4, 46); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 139 */ - switch (among_var) { /* among, line 139 */ + z->bra = z->c; + switch (among_var) { case 1: - { int m1 = z->l - z->c; (void)m1; /* or, line 145 */ - if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1; /* literal, line 145 */ + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1; z->c--; goto lab0; lab1: z->c = z->l - m1; - if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0; /* literal, line 145 */ + if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0; z->c--; } lab0: - { int ret = slice_del(z); /* delete, line 145 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_del(z); /* delete, line 153 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -503,62 +503,62 @@ static int r_verb(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_noun(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 162 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((60991267 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 162 */ +static int r_noun(struct SN_env * z) { + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((60991267 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_5, 36))) return 0; - z->bra = z->c; /* ], line 162 */ - { int ret = slice_del(z); /* delete, line 169 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_derivational(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 178 */ - if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 212 && z->p[z->c - 1] != 216)) return 0; /* substring, line 178 */ +static int r_derivational(struct SN_env * z) { + z->ket = z->c; + if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 212 && z->p[z->c - 1] != 216)) return 0; if (!(find_among_b(z, a_6, 2))) return 0; - z->bra = z->c; /* ], line 178 */ - { int ret = r_R2(z); /* call R2, line 178 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 181 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_tidy_up(struct SN_env * z) { /* backwardmode */ +static int r_tidy_up(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 186 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((151011360 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 186 */ + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((151011360 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_7, 4); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 186 */ - switch (among_var) { /* among, line 186 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 190 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 191 */ - if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 191 */ + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; z->c--; - z->bra = z->c; /* ], line 191 */ - if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 191 */ + z->bra = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; z->c--; - { int ret = slice_del(z); /* delete, line 191 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; /* literal, line 194 */ + if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0; z->c--; - { int ret = slice_del(z); /* delete, line 194 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - { int ret = slice_del(z); /* delete, line 196 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -566,25 +566,24 @@ static int r_tidy_up(struct SN_env * z) { /* backwardmode */ return 1; } -extern int russian_KOI8_R_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 205 */ -/* repeat, line 205 */ - - while(1) { int c2 = z->c; - while(1) { /* goto, line 205 */ +extern int russian_KOI8_R_stem(struct SN_env * z) { + { int c1 = z->c; + while(1) { + int c2 = z->c; + while(1) { int c3 = z->c; - z->bra = z->c; /* [, line 205 */ - if (z->c == z->l || z->p[z->c] != 0xA3) goto lab2; /* literal, line 205 */ + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 0xA3) goto lab2; z->c++; - z->ket = z->c; /* ], line 205 */ + z->ket = z->c; z->c = c3; break; lab2: z->c = c3; if (z->c >= z->l) goto lab1; - z->c++; /* goto, line 205 */ + z->c++; } - { int ret = slice_from_s(z, 1, s_0); /* <-, line 205 */ + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } continue; @@ -594,49 +593,49 @@ extern int russian_KOI8_R_stem(struct SN_env * z) { /* forwardmode */ } z->c = c1; } - /* do, line 207 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 207 */ + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 208 */ + z->lb = z->c; z->c = z->l; - { int mlimit4; /* setlimit, line 208 */ - if (z->c < z->I[0]) return 0; - mlimit4 = z->lb; z->lb = z->I[0]; - { int m5 = z->l - z->c; (void)m5; /* do, line 209 */ - { int m6 = z->l - z->c; (void)m6; /* or, line 210 */ - { int ret = r_perfective_gerund(z); /* call perfective_gerund, line 210 */ + { int mlimit4; + if (z->c < z->I[1]) return 0; + mlimit4 = z->lb; z->lb = z->I[1]; + { int m5 = z->l - z->c; (void)m5; + { int m6 = z->l - z->c; (void)m6; + { int ret = r_perfective_gerund(z); if (ret == 0) goto lab5; if (ret < 0) return ret; } goto lab4; lab5: z->c = z->l - m6; - { int m7 = z->l - z->c; (void)m7; /* try, line 211 */ - { int ret = r_reflexive(z); /* call reflexive, line 211 */ + { int m7 = z->l - z->c; (void)m7; + { int ret = r_reflexive(z); if (ret == 0) { z->c = z->l - m7; goto lab6; } if (ret < 0) return ret; } lab6: ; } - { int m8 = z->l - z->c; (void)m8; /* or, line 212 */ - { int ret = r_adjectival(z); /* call adjectival, line 212 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_adjectival(z); if (ret == 0) goto lab8; if (ret < 0) return ret; } goto lab7; lab8: z->c = z->l - m8; - { int ret = r_verb(z); /* call verb, line 212 */ + { int ret = r_verb(z); if (ret == 0) goto lab9; if (ret < 0) return ret; } goto lab7; lab9: z->c = z->l - m8; - { int ret = r_noun(z); /* call noun, line 212 */ + { int ret = r_noun(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } @@ -648,25 +647,25 @@ extern int russian_KOI8_R_stem(struct SN_env * z) { /* forwardmode */ lab3: z->c = z->l - m5; } - { int m9 = z->l - z->c; (void)m9; /* try, line 215 */ - z->ket = z->c; /* [, line 215 */ - if (z->c <= z->lb || z->p[z->c - 1] != 0xC9) { z->c = z->l - m9; goto lab10; } /* literal, line 215 */ + { int m9 = z->l - z->c; (void)m9; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 0xC9) { z->c = z->l - m9; goto lab10; } z->c--; - z->bra = z->c; /* ], line 215 */ - { int ret = slice_del(z); /* delete, line 215 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } lab10: ; } - { int m10 = z->l - z->c; (void)m10; /* do, line 218 */ - { int ret = r_derivational(z); /* call derivational, line 218 */ + { int m10 = z->l - z->c; (void)m10; + { int ret = r_derivational(z); if (ret < 0) return ret; } z->c = z->l - m10; } - { int m11 = z->l - z->c; (void)m11; /* do, line 219 */ - { int ret = r_tidy_up(z); /* call tidy_up, line 219 */ + { int m11 = z->l - z->c; (void)m11; + { int ret = r_tidy_up(z); if (ret < 0) return ret; } z->c = z->l - m11; @@ -677,7 +676,7 @@ extern int russian_KOI8_R_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * russian_KOI8_R_create_env(void) { return SN_create_env(0, 2, 0); } +extern struct SN_env * russian_KOI8_R_create_env(void) { return SN_create_env(0, 2); } extern void russian_KOI8_R_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_arabic.c b/src/backend/snowball/libstemmer/stem_UTF_8_arabic.c index 701ae2e810e41..52045628714cb 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_arabic.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_arabic.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -189,150 +189,150 @@ static const symbol s_0_143[3] = { 0xEF, 0xBB, 0xBC }; static const struct among a_0[144] = { -/* 0 */ { 2, s_0_0, -1, 1, 0}, -/* 1 */ { 2, s_0_1, -1, 1, 0}, -/* 2 */ { 2, s_0_2, -1, 1, 0}, -/* 3 */ { 2, s_0_3, -1, 1, 0}, -/* 4 */ { 2, s_0_4, -1, 1, 0}, -/* 5 */ { 2, s_0_5, -1, 1, 0}, -/* 6 */ { 2, s_0_6, -1, 1, 0}, -/* 7 */ { 2, s_0_7, -1, 1, 0}, -/* 8 */ { 2, s_0_8, -1, 1, 0}, -/* 9 */ { 2, s_0_9, -1, 2, 0}, -/* 10 */ { 2, s_0_10, -1, 3, 0}, -/* 11 */ { 2, s_0_11, -1, 4, 0}, -/* 12 */ { 2, s_0_12, -1, 5, 0}, -/* 13 */ { 2, s_0_13, -1, 6, 0}, -/* 14 */ { 2, s_0_14, -1, 7, 0}, -/* 15 */ { 2, s_0_15, -1, 8, 0}, -/* 16 */ { 2, s_0_16, -1, 9, 0}, -/* 17 */ { 2, s_0_17, -1, 10, 0}, -/* 18 */ { 2, s_0_18, -1, 11, 0}, -/* 19 */ { 3, s_0_19, -1, 12, 0}, -/* 20 */ { 3, s_0_20, -1, 16, 0}, -/* 21 */ { 3, s_0_21, -1, 16, 0}, -/* 22 */ { 3, s_0_22, -1, 13, 0}, -/* 23 */ { 3, s_0_23, -1, 13, 0}, -/* 24 */ { 3, s_0_24, -1, 17, 0}, -/* 25 */ { 3, s_0_25, -1, 17, 0}, -/* 26 */ { 3, s_0_26, -1, 14, 0}, -/* 27 */ { 3, s_0_27, -1, 14, 0}, -/* 28 */ { 3, s_0_28, -1, 15, 0}, -/* 29 */ { 3, s_0_29, -1, 15, 0}, -/* 30 */ { 3, s_0_30, -1, 15, 0}, -/* 31 */ { 3, s_0_31, -1, 15, 0}, -/* 32 */ { 3, s_0_32, -1, 18, 0}, -/* 33 */ { 3, s_0_33, -1, 18, 0}, -/* 34 */ { 3, s_0_34, -1, 19, 0}, -/* 35 */ { 3, s_0_35, -1, 19, 0}, -/* 36 */ { 3, s_0_36, -1, 19, 0}, -/* 37 */ { 3, s_0_37, -1, 19, 0}, -/* 38 */ { 3, s_0_38, -1, 20, 0}, -/* 39 */ { 3, s_0_39, -1, 20, 0}, -/* 40 */ { 3, s_0_40, -1, 21, 0}, -/* 41 */ { 3, s_0_41, -1, 21, 0}, -/* 42 */ { 3, s_0_42, -1, 21, 0}, -/* 43 */ { 3, s_0_43, -1, 21, 0}, -/* 44 */ { 3, s_0_44, -1, 22, 0}, -/* 45 */ { 3, s_0_45, -1, 22, 0}, -/* 46 */ { 3, s_0_46, -1, 22, 0}, -/* 47 */ { 3, s_0_47, -1, 22, 0}, -/* 48 */ { 3, s_0_48, -1, 23, 0}, -/* 49 */ { 3, s_0_49, -1, 23, 0}, -/* 50 */ { 3, s_0_50, -1, 23, 0}, -/* 51 */ { 3, s_0_51, -1, 23, 0}, -/* 52 */ { 3, s_0_52, -1, 24, 0}, -/* 53 */ { 3, s_0_53, -1, 24, 0}, -/* 54 */ { 3, s_0_54, -1, 24, 0}, -/* 55 */ { 3, s_0_55, -1, 24, 0}, -/* 56 */ { 3, s_0_56, -1, 25, 0}, -/* 57 */ { 3, s_0_57, -1, 25, 0}, -/* 58 */ { 3, s_0_58, -1, 25, 0}, -/* 59 */ { 3, s_0_59, -1, 25, 0}, -/* 60 */ { 3, s_0_60, -1, 26, 0}, -/* 61 */ { 3, s_0_61, -1, 26, 0}, -/* 62 */ { 3, s_0_62, -1, 27, 0}, -/* 63 */ { 3, s_0_63, -1, 27, 0}, -/* 64 */ { 3, s_0_64, -1, 28, 0}, -/* 65 */ { 3, s_0_65, -1, 28, 0}, -/* 66 */ { 3, s_0_66, -1, 29, 0}, -/* 67 */ { 3, s_0_67, -1, 29, 0}, -/* 68 */ { 3, s_0_68, -1, 30, 0}, -/* 69 */ { 3, s_0_69, -1, 30, 0}, -/* 70 */ { 3, s_0_70, -1, 30, 0}, -/* 71 */ { 3, s_0_71, -1, 30, 0}, -/* 72 */ { 3, s_0_72, -1, 31, 0}, -/* 73 */ { 3, s_0_73, -1, 31, 0}, -/* 74 */ { 3, s_0_74, -1, 31, 0}, -/* 75 */ { 3, s_0_75, -1, 31, 0}, -/* 76 */ { 3, s_0_76, -1, 32, 0}, -/* 77 */ { 3, s_0_77, -1, 32, 0}, -/* 78 */ { 3, s_0_78, -1, 32, 0}, -/* 79 */ { 3, s_0_79, -1, 32, 0}, -/* 80 */ { 3, s_0_80, -1, 33, 0}, -/* 81 */ { 3, s_0_81, -1, 33, 0}, -/* 82 */ { 3, s_0_82, -1, 33, 0}, -/* 83 */ { 3, s_0_83, -1, 33, 0}, -/* 84 */ { 3, s_0_84, -1, 34, 0}, -/* 85 */ { 3, s_0_85, -1, 34, 0}, -/* 86 */ { 3, s_0_86, -1, 34, 0}, -/* 87 */ { 3, s_0_87, -1, 34, 0}, -/* 88 */ { 3, s_0_88, -1, 35, 0}, -/* 89 */ { 3, s_0_89, -1, 35, 0}, -/* 90 */ { 3, s_0_90, -1, 35, 0}, -/* 91 */ { 3, s_0_91, -1, 35, 0}, -/* 92 */ { 3, s_0_92, -1, 36, 0}, -/* 93 */ { 3, s_0_93, -1, 36, 0}, -/* 94 */ { 3, s_0_94, -1, 36, 0}, -/* 95 */ { 3, s_0_95, -1, 36, 0}, -/* 96 */ { 3, s_0_96, -1, 37, 0}, -/* 97 */ { 3, s_0_97, -1, 37, 0}, -/* 98 */ { 3, s_0_98, -1, 37, 0}, -/* 99 */ { 3, s_0_99, -1, 37, 0}, -/*100 */ { 3, s_0_100, -1, 38, 0}, -/*101 */ { 3, s_0_101, -1, 38, 0}, -/*102 */ { 3, s_0_102, -1, 38, 0}, -/*103 */ { 3, s_0_103, -1, 38, 0}, -/*104 */ { 3, s_0_104, -1, 39, 0}, -/*105 */ { 3, s_0_105, -1, 39, 0}, -/*106 */ { 3, s_0_106, -1, 39, 0}, -/*107 */ { 3, s_0_107, -1, 39, 0}, -/*108 */ { 3, s_0_108, -1, 40, 0}, -/*109 */ { 3, s_0_109, -1, 40, 0}, -/*110 */ { 3, s_0_110, -1, 40, 0}, -/*111 */ { 3, s_0_111, -1, 40, 0}, -/*112 */ { 3, s_0_112, -1, 41, 0}, -/*113 */ { 3, s_0_113, -1, 41, 0}, -/*114 */ { 3, s_0_114, -1, 41, 0}, -/*115 */ { 3, s_0_115, -1, 41, 0}, -/*116 */ { 3, s_0_116, -1, 42, 0}, -/*117 */ { 3, s_0_117, -1, 42, 0}, -/*118 */ { 3, s_0_118, -1, 42, 0}, -/*119 */ { 3, s_0_119, -1, 42, 0}, -/*120 */ { 3, s_0_120, -1, 43, 0}, -/*121 */ { 3, s_0_121, -1, 43, 0}, -/*122 */ { 3, s_0_122, -1, 43, 0}, -/*123 */ { 3, s_0_123, -1, 43, 0}, -/*124 */ { 3, s_0_124, -1, 44, 0}, -/*125 */ { 3, s_0_125, -1, 44, 0}, -/*126 */ { 3, s_0_126, -1, 44, 0}, -/*127 */ { 3, s_0_127, -1, 44, 0}, -/*128 */ { 3, s_0_128, -1, 45, 0}, -/*129 */ { 3, s_0_129, -1, 45, 0}, -/*130 */ { 3, s_0_130, -1, 46, 0}, -/*131 */ { 3, s_0_131, -1, 46, 0}, -/*132 */ { 3, s_0_132, -1, 47, 0}, -/*133 */ { 3, s_0_133, -1, 47, 0}, -/*134 */ { 3, s_0_134, -1, 47, 0}, -/*135 */ { 3, s_0_135, -1, 47, 0}, -/*136 */ { 3, s_0_136, -1, 51, 0}, -/*137 */ { 3, s_0_137, -1, 51, 0}, -/*138 */ { 3, s_0_138, -1, 49, 0}, -/*139 */ { 3, s_0_139, -1, 49, 0}, -/*140 */ { 3, s_0_140, -1, 50, 0}, -/*141 */ { 3, s_0_141, -1, 50, 0}, -/*142 */ { 3, s_0_142, -1, 48, 0}, -/*143 */ { 3, s_0_143, -1, 48, 0} +{ 2, s_0_0, -1, 1, 0}, +{ 2, s_0_1, -1, 1, 0}, +{ 2, s_0_2, -1, 1, 0}, +{ 2, s_0_3, -1, 1, 0}, +{ 2, s_0_4, -1, 1, 0}, +{ 2, s_0_5, -1, 1, 0}, +{ 2, s_0_6, -1, 1, 0}, +{ 2, s_0_7, -1, 1, 0}, +{ 2, s_0_8, -1, 1, 0}, +{ 2, s_0_9, -1, 2, 0}, +{ 2, s_0_10, -1, 3, 0}, +{ 2, s_0_11, -1, 4, 0}, +{ 2, s_0_12, -1, 5, 0}, +{ 2, s_0_13, -1, 6, 0}, +{ 2, s_0_14, -1, 7, 0}, +{ 2, s_0_15, -1, 8, 0}, +{ 2, s_0_16, -1, 9, 0}, +{ 2, s_0_17, -1, 10, 0}, +{ 2, s_0_18, -1, 11, 0}, +{ 3, s_0_19, -1, 12, 0}, +{ 3, s_0_20, -1, 16, 0}, +{ 3, s_0_21, -1, 16, 0}, +{ 3, s_0_22, -1, 13, 0}, +{ 3, s_0_23, -1, 13, 0}, +{ 3, s_0_24, -1, 17, 0}, +{ 3, s_0_25, -1, 17, 0}, +{ 3, s_0_26, -1, 14, 0}, +{ 3, s_0_27, -1, 14, 0}, +{ 3, s_0_28, -1, 15, 0}, +{ 3, s_0_29, -1, 15, 0}, +{ 3, s_0_30, -1, 15, 0}, +{ 3, s_0_31, -1, 15, 0}, +{ 3, s_0_32, -1, 18, 0}, +{ 3, s_0_33, -1, 18, 0}, +{ 3, s_0_34, -1, 19, 0}, +{ 3, s_0_35, -1, 19, 0}, +{ 3, s_0_36, -1, 19, 0}, +{ 3, s_0_37, -1, 19, 0}, +{ 3, s_0_38, -1, 20, 0}, +{ 3, s_0_39, -1, 20, 0}, +{ 3, s_0_40, -1, 21, 0}, +{ 3, s_0_41, -1, 21, 0}, +{ 3, s_0_42, -1, 21, 0}, +{ 3, s_0_43, -1, 21, 0}, +{ 3, s_0_44, -1, 22, 0}, +{ 3, s_0_45, -1, 22, 0}, +{ 3, s_0_46, -1, 22, 0}, +{ 3, s_0_47, -1, 22, 0}, +{ 3, s_0_48, -1, 23, 0}, +{ 3, s_0_49, -1, 23, 0}, +{ 3, s_0_50, -1, 23, 0}, +{ 3, s_0_51, -1, 23, 0}, +{ 3, s_0_52, -1, 24, 0}, +{ 3, s_0_53, -1, 24, 0}, +{ 3, s_0_54, -1, 24, 0}, +{ 3, s_0_55, -1, 24, 0}, +{ 3, s_0_56, -1, 25, 0}, +{ 3, s_0_57, -1, 25, 0}, +{ 3, s_0_58, -1, 25, 0}, +{ 3, s_0_59, -1, 25, 0}, +{ 3, s_0_60, -1, 26, 0}, +{ 3, s_0_61, -1, 26, 0}, +{ 3, s_0_62, -1, 27, 0}, +{ 3, s_0_63, -1, 27, 0}, +{ 3, s_0_64, -1, 28, 0}, +{ 3, s_0_65, -1, 28, 0}, +{ 3, s_0_66, -1, 29, 0}, +{ 3, s_0_67, -1, 29, 0}, +{ 3, s_0_68, -1, 30, 0}, +{ 3, s_0_69, -1, 30, 0}, +{ 3, s_0_70, -1, 30, 0}, +{ 3, s_0_71, -1, 30, 0}, +{ 3, s_0_72, -1, 31, 0}, +{ 3, s_0_73, -1, 31, 0}, +{ 3, s_0_74, -1, 31, 0}, +{ 3, s_0_75, -1, 31, 0}, +{ 3, s_0_76, -1, 32, 0}, +{ 3, s_0_77, -1, 32, 0}, +{ 3, s_0_78, -1, 32, 0}, +{ 3, s_0_79, -1, 32, 0}, +{ 3, s_0_80, -1, 33, 0}, +{ 3, s_0_81, -1, 33, 0}, +{ 3, s_0_82, -1, 33, 0}, +{ 3, s_0_83, -1, 33, 0}, +{ 3, s_0_84, -1, 34, 0}, +{ 3, s_0_85, -1, 34, 0}, +{ 3, s_0_86, -1, 34, 0}, +{ 3, s_0_87, -1, 34, 0}, +{ 3, s_0_88, -1, 35, 0}, +{ 3, s_0_89, -1, 35, 0}, +{ 3, s_0_90, -1, 35, 0}, +{ 3, s_0_91, -1, 35, 0}, +{ 3, s_0_92, -1, 36, 0}, +{ 3, s_0_93, -1, 36, 0}, +{ 3, s_0_94, -1, 36, 0}, +{ 3, s_0_95, -1, 36, 0}, +{ 3, s_0_96, -1, 37, 0}, +{ 3, s_0_97, -1, 37, 0}, +{ 3, s_0_98, -1, 37, 0}, +{ 3, s_0_99, -1, 37, 0}, +{ 3, s_0_100, -1, 38, 0}, +{ 3, s_0_101, -1, 38, 0}, +{ 3, s_0_102, -1, 38, 0}, +{ 3, s_0_103, -1, 38, 0}, +{ 3, s_0_104, -1, 39, 0}, +{ 3, s_0_105, -1, 39, 0}, +{ 3, s_0_106, -1, 39, 0}, +{ 3, s_0_107, -1, 39, 0}, +{ 3, s_0_108, -1, 40, 0}, +{ 3, s_0_109, -1, 40, 0}, +{ 3, s_0_110, -1, 40, 0}, +{ 3, s_0_111, -1, 40, 0}, +{ 3, s_0_112, -1, 41, 0}, +{ 3, s_0_113, -1, 41, 0}, +{ 3, s_0_114, -1, 41, 0}, +{ 3, s_0_115, -1, 41, 0}, +{ 3, s_0_116, -1, 42, 0}, +{ 3, s_0_117, -1, 42, 0}, +{ 3, s_0_118, -1, 42, 0}, +{ 3, s_0_119, -1, 42, 0}, +{ 3, s_0_120, -1, 43, 0}, +{ 3, s_0_121, -1, 43, 0}, +{ 3, s_0_122, -1, 43, 0}, +{ 3, s_0_123, -1, 43, 0}, +{ 3, s_0_124, -1, 44, 0}, +{ 3, s_0_125, -1, 44, 0}, +{ 3, s_0_126, -1, 44, 0}, +{ 3, s_0_127, -1, 44, 0}, +{ 3, s_0_128, -1, 45, 0}, +{ 3, s_0_129, -1, 45, 0}, +{ 3, s_0_130, -1, 46, 0}, +{ 3, s_0_131, -1, 46, 0}, +{ 3, s_0_132, -1, 47, 0}, +{ 3, s_0_133, -1, 47, 0}, +{ 3, s_0_134, -1, 47, 0}, +{ 3, s_0_135, -1, 47, 0}, +{ 3, s_0_136, -1, 51, 0}, +{ 3, s_0_137, -1, 51, 0}, +{ 3, s_0_138, -1, 49, 0}, +{ 3, s_0_139, -1, 49, 0}, +{ 3, s_0_140, -1, 50, 0}, +{ 3, s_0_141, -1, 50, 0}, +{ 3, s_0_142, -1, 48, 0}, +{ 3, s_0_143, -1, 48, 0} }; static const symbol s_1_0[2] = { 0xD8, 0xA2 }; @@ -343,11 +343,11 @@ static const symbol s_1_4[2] = { 0xD8, 0xA6 }; static const struct among a_1[5] = { -/* 0 */ { 2, s_1_0, -1, 1, 0}, -/* 1 */ { 2, s_1_1, -1, 1, 0}, -/* 2 */ { 2, s_1_2, -1, 1, 0}, -/* 3 */ { 2, s_1_3, -1, 1, 0}, -/* 4 */ { 2, s_1_4, -1, 1, 0} +{ 2, s_1_0, -1, 1, 0}, +{ 2, s_1_1, -1, 1, 0}, +{ 2, s_1_2, -1, 1, 0}, +{ 2, s_1_3, -1, 1, 0}, +{ 2, s_1_4, -1, 1, 0} }; static const symbol s_2_0[2] = { 0xD8, 0xA2 }; @@ -358,11 +358,11 @@ static const symbol s_2_4[2] = { 0xD8, 0xA6 }; static const struct among a_2[5] = { -/* 0 */ { 2, s_2_0, -1, 1, 0}, -/* 1 */ { 2, s_2_1, -1, 1, 0}, -/* 2 */ { 2, s_2_2, -1, 2, 0}, -/* 3 */ { 2, s_2_3, -1, 1, 0}, -/* 4 */ { 2, s_2_4, -1, 3, 0} +{ 2, s_2_0, -1, 1, 0}, +{ 2, s_2_1, -1, 1, 0}, +{ 2, s_2_2, -1, 2, 0}, +{ 2, s_2_3, -1, 1, 0}, +{ 2, s_2_4, -1, 3, 0} }; static const symbol s_3_0[4] = { 0xD8, 0xA7, 0xD9, 0x84 }; @@ -372,10 +372,10 @@ static const symbol s_3_3[4] = { 0xD9, 0x84, 0xD9, 0x84 }; static const struct among a_3[4] = { -/* 0 */ { 4, s_3_0, -1, 2, 0}, -/* 1 */ { 6, s_3_1, -1, 1, 0}, -/* 2 */ { 6, s_3_2, -1, 1, 0}, -/* 3 */ { 4, s_3_3, -1, 2, 0} +{ 4, s_3_0, -1, 2, 0}, +{ 6, s_3_1, -1, 1, 0}, +{ 6, s_3_2, -1, 1, 0}, +{ 4, s_3_3, -1, 2, 0} }; static const symbol s_4_0[4] = { 0xD8, 0xA3, 0xD8, 0xA2 }; @@ -386,11 +386,11 @@ static const symbol s_4_4[4] = { 0xD8, 0xA3, 0xD8, 0xA7 }; static const struct among a_4[5] = { -/* 0 */ { 4, s_4_0, -1, 2, 0}, -/* 1 */ { 4, s_4_1, -1, 1, 0}, -/* 2 */ { 4, s_4_2, -1, 1, 0}, -/* 3 */ { 4, s_4_3, -1, 4, 0}, -/* 4 */ { 4, s_4_4, -1, 3, 0} +{ 4, s_4_0, -1, 2, 0}, +{ 4, s_4_1, -1, 1, 0}, +{ 4, s_4_2, -1, 1, 0}, +{ 4, s_4_3, -1, 4, 0}, +{ 4, s_4_4, -1, 3, 0} }; static const symbol s_5_0[2] = { 0xD9, 0x81 }; @@ -398,8 +398,8 @@ static const symbol s_5_1[2] = { 0xD9, 0x88 }; static const struct among a_5[2] = { -/* 0 */ { 2, s_5_0, -1, 1, 0}, -/* 1 */ { 2, s_5_1, -1, 1, 0} +{ 2, s_5_0, -1, 1, 0}, +{ 2, s_5_1, -1, 1, 0} }; static const symbol s_6_0[4] = { 0xD8, 0xA7, 0xD9, 0x84 }; @@ -409,10 +409,10 @@ static const symbol s_6_3[4] = { 0xD9, 0x84, 0xD9, 0x84 }; static const struct among a_6[4] = { -/* 0 */ { 4, s_6_0, -1, 2, 0}, -/* 1 */ { 6, s_6_1, -1, 1, 0}, -/* 2 */ { 6, s_6_2, -1, 1, 0}, -/* 3 */ { 4, s_6_3, -1, 2, 0} +{ 4, s_6_0, -1, 2, 0}, +{ 6, s_6_1, -1, 1, 0}, +{ 6, s_6_2, -1, 1, 0}, +{ 4, s_6_3, -1, 2, 0} }; static const symbol s_7_0[2] = { 0xD8, 0xA8 }; @@ -421,9 +421,9 @@ static const symbol s_7_2[4] = { 0xD9, 0x83, 0xD9, 0x83 }; static const struct among a_7[3] = { -/* 0 */ { 2, s_7_0, -1, 1, 0}, -/* 1 */ { 4, s_7_1, 0, 2, 0}, -/* 2 */ { 4, s_7_2, -1, 3, 0} +{ 2, s_7_0, -1, 1, 0}, +{ 4, s_7_1, 0, 2, 0}, +{ 4, s_7_2, -1, 3, 0} }; static const symbol s_8_0[4] = { 0xD8, 0xB3, 0xD8, 0xA3 }; @@ -433,10 +433,10 @@ static const symbol s_8_3[4] = { 0xD8, 0xB3, 0xD9, 0x8A }; static const struct among a_8[4] = { -/* 0 */ { 4, s_8_0, -1, 4, 0}, -/* 1 */ { 4, s_8_1, -1, 2, 0}, -/* 2 */ { 4, s_8_2, -1, 3, 0}, -/* 3 */ { 4, s_8_3, -1, 1, 0} +{ 4, s_8_0, -1, 4, 0}, +{ 4, s_8_1, -1, 2, 0}, +{ 4, s_8_2, -1, 3, 0}, +{ 4, s_8_3, -1, 1, 0} }; static const symbol s_9_0[6] = { 0xD8, 0xAA, 0xD8, 0xB3, 0xD8, 0xAA }; @@ -445,9 +445,9 @@ static const symbol s_9_2[6] = { 0xD9, 0x8A, 0xD8, 0xB3, 0xD8, 0xAA }; static const struct among a_9[3] = { -/* 0 */ { 6, s_9_0, -1, 1, 0}, -/* 1 */ { 6, s_9_1, -1, 1, 0}, -/* 2 */ { 6, s_9_2, -1, 1, 0} +{ 6, s_9_0, -1, 1, 0}, +{ 6, s_9_1, -1, 1, 0}, +{ 6, s_9_2, -1, 1, 0} }; static const symbol s_10_0[2] = { 0xD9, 0x83 }; @@ -463,23 +463,23 @@ static const symbol s_10_9[4] = { 0xD9, 0x87, 0xD8, 0xA7 }; static const struct among a_10[10] = { -/* 0 */ { 2, s_10_0, -1, 1, 0}, -/* 1 */ { 4, s_10_1, -1, 2, 0}, -/* 2 */ { 4, s_10_2, -1, 2, 0}, -/* 3 */ { 4, s_10_3, -1, 2, 0}, -/* 4 */ { 2, s_10_4, -1, 1, 0}, -/* 5 */ { 2, s_10_5, -1, 1, 0}, -/* 6 */ { 6, s_10_6, -1, 3, 0}, -/* 7 */ { 6, s_10_7, -1, 3, 0}, -/* 8 */ { 4, s_10_8, -1, 2, 0}, -/* 9 */ { 4, s_10_9, -1, 2, 0} +{ 2, s_10_0, -1, 1, 0}, +{ 4, s_10_1, -1, 2, 0}, +{ 4, s_10_2, -1, 2, 0}, +{ 4, s_10_3, -1, 2, 0}, +{ 2, s_10_4, -1, 1, 0}, +{ 2, s_10_5, -1, 1, 0}, +{ 6, s_10_6, -1, 3, 0}, +{ 6, s_10_7, -1, 3, 0}, +{ 4, s_10_8, -1, 2, 0}, +{ 4, s_10_9, -1, 2, 0} }; static const symbol s_11_0[2] = { 0xD9, 0x86 }; static const struct among a_11[1] = { -/* 0 */ { 2, s_11_0, -1, 1, 0} +{ 2, s_11_0, -1, 1, 0} }; static const symbol s_12_0[2] = { 0xD9, 0x88 }; @@ -488,37 +488,37 @@ static const symbol s_12_2[2] = { 0xD8, 0xA7 }; static const struct among a_12[3] = { -/* 0 */ { 2, s_12_0, -1, 1, 0}, -/* 1 */ { 2, s_12_1, -1, 1, 0}, -/* 2 */ { 2, s_12_2, -1, 1, 0} +{ 2, s_12_0, -1, 1, 0}, +{ 2, s_12_1, -1, 1, 0}, +{ 2, s_12_2, -1, 1, 0} }; static const symbol s_13_0[4] = { 0xD8, 0xA7, 0xD8, 0xAA }; static const struct among a_13[1] = { -/* 0 */ { 4, s_13_0, -1, 1, 0} +{ 4, s_13_0, -1, 1, 0} }; static const symbol s_14_0[2] = { 0xD8, 0xAA }; static const struct among a_14[1] = { -/* 0 */ { 2, s_14_0, -1, 1, 0} +{ 2, s_14_0, -1, 1, 0} }; static const symbol s_15_0[2] = { 0xD8, 0xA9 }; static const struct among a_15[1] = { -/* 0 */ { 2, s_15_0, -1, 1, 0} +{ 2, s_15_0, -1, 1, 0} }; static const symbol s_16_0[2] = { 0xD9, 0x8A }; static const struct among a_16[1] = { -/* 0 */ { 2, s_16_0, -1, 1, 0} +{ 2, s_16_0, -1, 1, 0} }; static const symbol s_17_0[2] = { 0xD9, 0x83 }; @@ -536,18 +536,18 @@ static const symbol s_17_11[4] = { 0xD9, 0x87, 0xD8, 0xA7 }; static const struct among a_17[12] = { -/* 0 */ { 2, s_17_0, -1, 1, 0}, -/* 1 */ { 4, s_17_1, -1, 2, 0}, -/* 2 */ { 4, s_17_2, -1, 2, 0}, -/* 3 */ { 4, s_17_3, -1, 2, 0}, -/* 4 */ { 4, s_17_4, -1, 2, 0}, -/* 5 */ { 2, s_17_5, -1, 1, 0}, -/* 6 */ { 6, s_17_6, -1, 3, 0}, -/* 7 */ { 4, s_17_7, -1, 2, 0}, -/* 8 */ { 6, s_17_8, -1, 3, 0}, -/* 9 */ { 6, s_17_9, -1, 3, 0}, -/* 10 */ { 4, s_17_10, -1, 2, 0}, -/* 11 */ { 4, s_17_11, -1, 2, 0} +{ 2, s_17_0, -1, 1, 0}, +{ 4, s_17_1, -1, 2, 0}, +{ 4, s_17_2, -1, 2, 0}, +{ 4, s_17_3, -1, 2, 0}, +{ 4, s_17_4, -1, 2, 0}, +{ 2, s_17_5, -1, 1, 0}, +{ 6, s_17_6, -1, 3, 0}, +{ 4, s_17_7, -1, 2, 0}, +{ 6, s_17_8, -1, 3, 0}, +{ 6, s_17_9, -1, 3, 0}, +{ 4, s_17_10, -1, 2, 0}, +{ 4, s_17_11, -1, 2, 0} }; static const symbol s_18_0[2] = { 0xD9, 0x86 }; @@ -564,17 +564,17 @@ static const symbol s_18_10[2] = { 0xD8, 0xAA }; static const struct among a_18[11] = { -/* 0 */ { 2, s_18_0, -1, 1, 0}, -/* 1 */ { 4, s_18_1, 0, 3, 0}, -/* 2 */ { 4, s_18_2, 0, 3, 0}, -/* 3 */ { 4, s_18_3, 0, 3, 0}, -/* 4 */ { 4, s_18_4, 0, 2, 0}, -/* 5 */ { 2, s_18_5, -1, 1, 0}, -/* 6 */ { 2, s_18_6, -1, 1, 0}, -/* 7 */ { 6, s_18_7, 6, 4, 0}, -/* 8 */ { 4, s_18_8, 6, 2, 0}, -/* 9 */ { 4, s_18_9, 6, 2, 0}, -/* 10 */ { 2, s_18_10, -1, 1, 0} +{ 2, s_18_0, -1, 1, 0}, +{ 4, s_18_1, 0, 3, 0}, +{ 4, s_18_2, 0, 3, 0}, +{ 4, s_18_3, 0, 3, 0}, +{ 4, s_18_4, 0, 2, 0}, +{ 2, s_18_5, -1, 1, 0}, +{ 2, s_18_6, -1, 1, 0}, +{ 6, s_18_7, 6, 4, 0}, +{ 4, s_18_8, 6, 2, 0}, +{ 4, s_18_9, 6, 2, 0}, +{ 2, s_18_10, -1, 1, 0} }; static const symbol s_19_0[4] = { 0xD8, 0xAA, 0xD9, 0x85 }; @@ -582,8 +582,8 @@ static const symbol s_19_1[4] = { 0xD9, 0x88, 0xD8, 0xA7 }; static const struct among a_19[2] = { -/* 0 */ { 4, s_19_0, -1, 1, 0}, -/* 1 */ { 4, s_19_1, -1, 1, 0} +{ 4, s_19_0, -1, 1, 0}, +{ 4, s_19_1, -1, 1, 0} }; static const symbol s_20_0[2] = { 0xD9, 0x88 }; @@ -591,15 +591,15 @@ static const symbol s_20_1[6] = { 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x88 }; static const struct among a_20[2] = { -/* 0 */ { 2, s_20_0, -1, 1, 0}, -/* 1 */ { 6, s_20_1, 0, 2, 0} +{ 2, s_20_0, -1, 1, 0}, +{ 6, s_20_1, 0, 2, 0} }; static const symbol s_21_0[2] = { 0xD9, 0x89 }; static const struct among a_21[1] = { -/* 0 */ { 2, s_21_0, -1, 1, 0} +{ 2, s_21_0, -1, 1, 0} }; static const symbol s_0[] = { '0' }; @@ -672,270 +672,269 @@ static const symbol s_66[] = { 0xD8, 0xA3 }; static const symbol s_67[] = { 0xD8, 0xA7, 0xD8, 0xB3, 0xD8, 0xAA }; static const symbol s_68[] = { 0xD9, 0x8A }; -static int r_Normalize_pre(struct SN_env * z) { /* forwardmode */ +static int r_Normalize_pre(struct SN_env * z) { int among_var; - { int c1 = z->c; /* do, line 247 */ -/* repeat, line 247 */ - - while(1) { int c2 = z->c; - { int c3 = z->c; /* or, line 311 */ - z->bra = z->c; /* [, line 249 */ - among_var = find_among(z, a_0, 144); /* substring, line 249 */ + { int c1 = z->c; + while(1) { + int c2 = z->c; + { int c3 = z->c; + z->bra = z->c; + among_var = find_among(z, a_0, 144); if (!(among_var)) goto lab3; - z->ket = z->c; /* ], line 249 */ - switch (among_var) { /* among, line 249 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 250 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_0); /* <-, line 254 */ + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_1); /* <-, line 255 */ + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 1, s_2); /* <-, line 256 */ + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 1, s_3); /* <-, line 257 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 1, s_4); /* <-, line 258 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 1, s_5); /* <-, line 259 */ + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } break; case 8: - { int ret = slice_from_s(z, 1, s_6); /* <-, line 260 */ + { int ret = slice_from_s(z, 1, s_6); if (ret < 0) return ret; } break; case 9: - { int ret = slice_from_s(z, 1, s_7); /* <-, line 261 */ + { int ret = slice_from_s(z, 1, s_7); if (ret < 0) return ret; } break; case 10: - { int ret = slice_from_s(z, 1, s_8); /* <-, line 262 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } break; case 11: - { int ret = slice_from_s(z, 1, s_9); /* <-, line 263 */ + { int ret = slice_from_s(z, 1, s_9); if (ret < 0) return ret; } break; case 12: - { int ret = slice_from_s(z, 2, s_10); /* <-, line 266 */ + { int ret = slice_from_s(z, 2, s_10); if (ret < 0) return ret; } break; case 13: - { int ret = slice_from_s(z, 2, s_11); /* <-, line 267 */ + { int ret = slice_from_s(z, 2, s_11); if (ret < 0) return ret; } break; case 14: - { int ret = slice_from_s(z, 2, s_12); /* <-, line 268 */ + { int ret = slice_from_s(z, 2, s_12); if (ret < 0) return ret; } break; case 15: - { int ret = slice_from_s(z, 2, s_13); /* <-, line 269 */ + { int ret = slice_from_s(z, 2, s_13); if (ret < 0) return ret; } break; case 16: - { int ret = slice_from_s(z, 2, s_14); /* <-, line 270 */ + { int ret = slice_from_s(z, 2, s_14); if (ret < 0) return ret; } break; case 17: - { int ret = slice_from_s(z, 2, s_15); /* <-, line 271 */ + { int ret = slice_from_s(z, 2, s_15); if (ret < 0) return ret; } break; case 18: - { int ret = slice_from_s(z, 2, s_16); /* <-, line 272 */ + { int ret = slice_from_s(z, 2, s_16); if (ret < 0) return ret; } break; case 19: - { int ret = slice_from_s(z, 2, s_17); /* <-, line 273 */ + { int ret = slice_from_s(z, 2, s_17); if (ret < 0) return ret; } break; case 20: - { int ret = slice_from_s(z, 2, s_18); /* <-, line 274 */ + { int ret = slice_from_s(z, 2, s_18); if (ret < 0) return ret; } break; case 21: - { int ret = slice_from_s(z, 2, s_19); /* <-, line 275 */ + { int ret = slice_from_s(z, 2, s_19); if (ret < 0) return ret; } break; case 22: - { int ret = slice_from_s(z, 2, s_20); /* <-, line 276 */ + { int ret = slice_from_s(z, 2, s_20); if (ret < 0) return ret; } break; case 23: - { int ret = slice_from_s(z, 2, s_21); /* <-, line 277 */ + { int ret = slice_from_s(z, 2, s_21); if (ret < 0) return ret; } break; case 24: - { int ret = slice_from_s(z, 2, s_22); /* <-, line 278 */ + { int ret = slice_from_s(z, 2, s_22); if (ret < 0) return ret; } break; case 25: - { int ret = slice_from_s(z, 2, s_23); /* <-, line 279 */ + { int ret = slice_from_s(z, 2, s_23); if (ret < 0) return ret; } break; case 26: - { int ret = slice_from_s(z, 2, s_24); /* <-, line 280 */ + { int ret = slice_from_s(z, 2, s_24); if (ret < 0) return ret; } break; case 27: - { int ret = slice_from_s(z, 2, s_25); /* <-, line 281 */ + { int ret = slice_from_s(z, 2, s_25); if (ret < 0) return ret; } break; case 28: - { int ret = slice_from_s(z, 2, s_26); /* <-, line 282 */ + { int ret = slice_from_s(z, 2, s_26); if (ret < 0) return ret; } break; case 29: - { int ret = slice_from_s(z, 2, s_27); /* <-, line 283 */ + { int ret = slice_from_s(z, 2, s_27); if (ret < 0) return ret; } break; case 30: - { int ret = slice_from_s(z, 2, s_28); /* <-, line 284 */ + { int ret = slice_from_s(z, 2, s_28); if (ret < 0) return ret; } break; case 31: - { int ret = slice_from_s(z, 2, s_29); /* <-, line 285 */ + { int ret = slice_from_s(z, 2, s_29); if (ret < 0) return ret; } break; case 32: - { int ret = slice_from_s(z, 2, s_30); /* <-, line 286 */ + { int ret = slice_from_s(z, 2, s_30); if (ret < 0) return ret; } break; case 33: - { int ret = slice_from_s(z, 2, s_31); /* <-, line 287 */ + { int ret = slice_from_s(z, 2, s_31); if (ret < 0) return ret; } break; case 34: - { int ret = slice_from_s(z, 2, s_32); /* <-, line 288 */ + { int ret = slice_from_s(z, 2, s_32); if (ret < 0) return ret; } break; case 35: - { int ret = slice_from_s(z, 2, s_33); /* <-, line 289 */ + { int ret = slice_from_s(z, 2, s_33); if (ret < 0) return ret; } break; case 36: - { int ret = slice_from_s(z, 2, s_34); /* <-, line 290 */ + { int ret = slice_from_s(z, 2, s_34); if (ret < 0) return ret; } break; case 37: - { int ret = slice_from_s(z, 2, s_35); /* <-, line 291 */ + { int ret = slice_from_s(z, 2, s_35); if (ret < 0) return ret; } break; case 38: - { int ret = slice_from_s(z, 2, s_36); /* <-, line 292 */ + { int ret = slice_from_s(z, 2, s_36); if (ret < 0) return ret; } break; case 39: - { int ret = slice_from_s(z, 2, s_37); /* <-, line 293 */ + { int ret = slice_from_s(z, 2, s_37); if (ret < 0) return ret; } break; case 40: - { int ret = slice_from_s(z, 2, s_38); /* <-, line 294 */ + { int ret = slice_from_s(z, 2, s_38); if (ret < 0) return ret; } break; case 41: - { int ret = slice_from_s(z, 2, s_39); /* <-, line 295 */ + { int ret = slice_from_s(z, 2, s_39); if (ret < 0) return ret; } break; case 42: - { int ret = slice_from_s(z, 2, s_40); /* <-, line 296 */ + { int ret = slice_from_s(z, 2, s_40); if (ret < 0) return ret; } break; case 43: - { int ret = slice_from_s(z, 2, s_41); /* <-, line 297 */ + { int ret = slice_from_s(z, 2, s_41); if (ret < 0) return ret; } break; case 44: - { int ret = slice_from_s(z, 2, s_42); /* <-, line 298 */ + { int ret = slice_from_s(z, 2, s_42); if (ret < 0) return ret; } break; case 45: - { int ret = slice_from_s(z, 2, s_43); /* <-, line 299 */ + { int ret = slice_from_s(z, 2, s_43); if (ret < 0) return ret; } break; case 46: - { int ret = slice_from_s(z, 2, s_44); /* <-, line 300 */ + { int ret = slice_from_s(z, 2, s_44); if (ret < 0) return ret; } break; case 47: - { int ret = slice_from_s(z, 2, s_45); /* <-, line 301 */ + { int ret = slice_from_s(z, 2, s_45); if (ret < 0) return ret; } break; case 48: - { int ret = slice_from_s(z, 4, s_46); /* <-, line 304 */ + { int ret = slice_from_s(z, 4, s_46); if (ret < 0) return ret; } break; case 49: - { int ret = slice_from_s(z, 4, s_47); /* <-, line 305 */ + { int ret = slice_from_s(z, 4, s_47); if (ret < 0) return ret; } break; case 50: - { int ret = slice_from_s(z, 4, s_48); /* <-, line 306 */ + { int ret = slice_from_s(z, 4, s_48); if (ret < 0) return ret; } break; case 51: - { int ret = slice_from_s(z, 4, s_49); /* <-, line 307 */ + { int ret = slice_from_s(z, 4, s_49); if (ret < 0) return ret; } break; @@ -943,9 +942,9 @@ static int r_Normalize_pre(struct SN_env * z) { /* forwardmode */ goto lab2; lab3: z->c = c3; - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab1; - z->c = ret; /* next, line 312 */ + z->c = ret; } } lab2: @@ -959,45 +958,44 @@ static int r_Normalize_pre(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_Normalize_post(struct SN_env * z) { /* forwardmode */ +static int r_Normalize_post(struct SN_env * z) { int among_var; - { int c1 = z->c; /* do, line 318 */ - z->lb = z->c; z->c = z->l; /* backwards, line 320 */ + { int c1 = z->c; + z->lb = z->c; z->c = z->l; - z->ket = z->c; /* [, line 321 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((124 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 321 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((124 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; if (!(find_among_b(z, a_1, 5))) goto lab0; - z->bra = z->c; /* ], line 321 */ - { int ret = slice_from_s(z, 2, s_50); /* <-, line 322 */ + z->bra = z->c; + { int ret = slice_from_s(z, 2, s_50); if (ret < 0) return ret; } z->c = z->lb; lab0: z->c = c1; } - { int c2 = z->c; /* do, line 329 */ -/* repeat, line 329 */ - - while(1) { int c3 = z->c; - { int c4 = z->c; /* or, line 338 */ - z->bra = z->c; /* [, line 332 */ - if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((124 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab4; /* substring, line 332 */ + { int c2 = z->c; + while(1) { + int c3 = z->c; + { int c4 = z->c; + z->bra = z->c; + if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((124 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab4; among_var = find_among(z, a_2, 5); if (!(among_var)) goto lab4; - z->ket = z->c; /* ], line 332 */ - switch (among_var) { /* among, line 332 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 2, s_51); /* <-, line 333 */ + { int ret = slice_from_s(z, 2, s_51); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 2, s_52); /* <-, line 334 */ + { int ret = slice_from_s(z, 2, s_52); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 2, s_53); /* <-, line 335 */ + { int ret = slice_from_s(z, 2, s_53); if (ret < 0) return ret; } break; @@ -1005,9 +1003,9 @@ static int r_Normalize_post(struct SN_env * z) { /* forwardmode */ goto lab3; lab4: z->c = c4; - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab2; - z->c = ret; /* next, line 339 */ + z->c = ret; } } lab3: @@ -1021,59 +1019,59 @@ static int r_Normalize_post(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_Checks1(struct SN_env * z) { /* forwardmode */ +static int r_Checks1(struct SN_env * z) { int among_var; - z->bra = z->c; /* [, line 345 */ - if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0; /* substring, line 345 */ + z->bra = z->c; + if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0; among_var = find_among(z, a_3, 4); if (!(among_var)) return 0; - z->ket = z->c; /* ], line 345 */ - switch (among_var) { /* among, line 345 */ + z->ket = z->c; + switch (among_var) { case 1: - if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 346 */ - z->B[0] = 1; /* set is_noun, line 346 */ - z->B[1] = 0; /* unset is_verb, line 346 */ - z->B[2] = 1; /* set is_defined, line 346 */ + if (!(len_utf8(z->p) > 4)) return 0; + z->I[2] = 1; + z->I[1] = 0; + z->I[0] = 1; break; case 2: - if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 347 */ - z->B[0] = 1; /* set is_noun, line 347 */ - z->B[1] = 0; /* unset is_verb, line 347 */ - z->B[2] = 1; /* set is_defined, line 347 */ + if (!(len_utf8(z->p) > 3)) return 0; + z->I[2] = 1; + z->I[1] = 0; + z->I[0] = 1; break; } return 1; } -static int r_Prefix_Step1(struct SN_env * z) { /* forwardmode */ +static int r_Prefix_Step1(struct SN_env * z) { int among_var; - z->bra = z->c; /* [, line 354 */ - if (z->c + 3 >= z->l || z->p[z->c + 3] >> 5 != 5 || !((188 >> (z->p[z->c + 3] & 0x1f)) & 1)) return 0; /* substring, line 354 */ + z->bra = z->c; + if (z->c + 3 >= z->l || z->p[z->c + 3] >> 5 != 5 || !((188 >> (z->p[z->c + 3] & 0x1f)) & 1)) return 0; among_var = find_among(z, a_4, 5); if (!(among_var)) return 0; - z->ket = z->c; /* ], line 354 */ - switch (among_var) { /* among, line 354 */ + z->ket = z->c; + switch (among_var) { case 1: - if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 355 */ - { int ret = slice_from_s(z, 2, s_54); /* <-, line 355 */ + if (!(len_utf8(z->p) > 3)) return 0; + { int ret = slice_from_s(z, 2, s_54); if (ret < 0) return ret; } break; case 2: - if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 356 */ - { int ret = slice_from_s(z, 2, s_55); /* <-, line 356 */ + if (!(len_utf8(z->p) > 3)) return 0; + { int ret = slice_from_s(z, 2, s_55); if (ret < 0) return ret; } break; case 3: - if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 358 */ - { int ret = slice_from_s(z, 2, s_56); /* <-, line 358 */ + if (!(len_utf8(z->p) > 3)) return 0; + { int ret = slice_from_s(z, 2, s_56); if (ret < 0) return ret; } break; case 4: - if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 359 */ - { int ret = slice_from_s(z, 2, s_57); /* <-, line 359 */ + if (!(len_utf8(z->p) > 3)) return 0; + { int ret = slice_from_s(z, 2, s_57); if (ret < 0) return ret; } break; @@ -1081,47 +1079,47 @@ static int r_Prefix_Step1(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_Prefix_Step2(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* not, line 365 */ - if (!(eq_s(z, 4, s_58))) goto lab0; /* literal, line 365 */ +static int r_Prefix_Step2(struct SN_env * z) { + { int c1 = z->c; + if (!(eq_s(z, 4, s_58))) goto lab0; return 0; lab0: z->c = c1; } - { int c2 = z->c; /* not, line 366 */ - if (!(eq_s(z, 4, s_59))) goto lab1; /* literal, line 366 */ + { int c2 = z->c; + if (!(eq_s(z, 4, s_59))) goto lab1; return 0; lab1: z->c = c2; } - z->bra = z->c; /* [, line 367 */ - if (z->c + 1 >= z->l || (z->p[z->c + 1] != 129 && z->p[z->c + 1] != 136)) return 0; /* substring, line 367 */ + z->bra = z->c; + if (z->c + 1 >= z->l || (z->p[z->c + 1] != 129 && z->p[z->c + 1] != 136)) return 0; if (!(find_among(z, a_5, 2))) return 0; - z->ket = z->c; /* ], line 367 */ - if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 368 */ - { int ret = slice_del(z); /* delete, line 368 */ + z->ket = z->c; + if (!(len_utf8(z->p) > 3)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_Prefix_Step3a_Noun(struct SN_env * z) { /* forwardmode */ +static int r_Prefix_Step3a_Noun(struct SN_env * z) { int among_var; - z->bra = z->c; /* [, line 374 */ - if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0; /* substring, line 374 */ + z->bra = z->c; + if (z->c + 3 >= z->l || (z->p[z->c + 3] != 132 && z->p[z->c + 3] != 167)) return 0; among_var = find_among(z, a_6, 4); if (!(among_var)) return 0; - z->ket = z->c; /* ], line 374 */ - switch (among_var) { /* among, line 374 */ + z->ket = z->c; + switch (among_var) { case 1: - if (!(len_utf8(z->p) > 5)) return 0; /* $( > ), line 375 */ - { int ret = slice_del(z); /* delete, line 375 */ + if (!(len_utf8(z->p) > 5)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 376 */ - { int ret = slice_del(z); /* delete, line 376 */ + if (!(len_utf8(z->p) > 4)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -1129,35 +1127,35 @@ static int r_Prefix_Step3a_Noun(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_Prefix_Step3b_Noun(struct SN_env * z) { /* forwardmode */ +static int r_Prefix_Step3b_Noun(struct SN_env * z) { int among_var; - { int c1 = z->c; /* not, line 381 */ - if (!(eq_s(z, 4, s_60))) goto lab0; /* literal, line 381 */ + { int c1 = z->c; + if (!(eq_s(z, 4, s_60))) goto lab0; return 0; lab0: z->c = c1; } - z->bra = z->c; /* [, line 382 */ - if (z->c + 1 >= z->l || (z->p[z->c + 1] != 168 && z->p[z->c + 1] != 131)) return 0; /* substring, line 382 */ + z->bra = z->c; + if (z->c + 1 >= z->l || (z->p[z->c + 1] != 168 && z->p[z->c + 1] != 131)) return 0; among_var = find_among(z, a_7, 3); if (!(among_var)) return 0; - z->ket = z->c; /* ], line 382 */ - switch (among_var) { /* among, line 382 */ + z->ket = z->c; + switch (among_var) { case 1: - if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 383 */ - { int ret = slice_del(z); /* delete, line 383 */ + if (!(len_utf8(z->p) > 3)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 385 */ - { int ret = slice_from_s(z, 2, s_61); /* <-, line 385 */ + if (!(len_utf8(z->p) > 3)) return 0; + { int ret = slice_from_s(z, 2, s_61); if (ret < 0) return ret; } break; case 3: - if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 386 */ - { int ret = slice_from_s(z, 2, s_62); /* <-, line 386 */ + if (!(len_utf8(z->p) > 3)) return 0; + { int ret = slice_from_s(z, 2, s_62); if (ret < 0) return ret; } break; @@ -1165,34 +1163,34 @@ static int r_Prefix_Step3b_Noun(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_Prefix_Step3_Verb(struct SN_env * z) { /* forwardmode */ +static int r_Prefix_Step3_Verb(struct SN_env * z) { int among_var; - z->bra = z->c; /* [, line 392 */ - among_var = find_among(z, a_8, 4); /* substring, line 392 */ + z->bra = z->c; + among_var = find_among(z, a_8, 4); if (!(among_var)) return 0; - z->ket = z->c; /* ], line 392 */ - switch (among_var) { /* among, line 392 */ + z->ket = z->c; + switch (among_var) { case 1: - if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 394 */ - { int ret = slice_from_s(z, 2, s_63); /* <-, line 394 */ + if (!(len_utf8(z->p) > 4)) return 0; + { int ret = slice_from_s(z, 2, s_63); if (ret < 0) return ret; } break; case 2: - if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 395 */ - { int ret = slice_from_s(z, 2, s_64); /* <-, line 395 */ + if (!(len_utf8(z->p) > 4)) return 0; + { int ret = slice_from_s(z, 2, s_64); if (ret < 0) return ret; } break; case 3: - if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 396 */ - { int ret = slice_from_s(z, 2, s_65); /* <-, line 396 */ + if (!(len_utf8(z->p) > 4)) return 0; + { int ret = slice_from_s(z, 2, s_65); if (ret < 0) return ret; } break; case 4: - if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 397 */ - { int ret = slice_from_s(z, 2, s_66); /* <-, line 397 */ + if (!(len_utf8(z->p) > 4)) return 0; + { int ret = slice_from_s(z, 2, s_66); if (ret < 0) return ret; } break; @@ -1200,42 +1198,42 @@ static int r_Prefix_Step3_Verb(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_Prefix_Step4_Verb(struct SN_env * z) { /* forwardmode */ - z->bra = z->c; /* [, line 402 */ - if (z->c + 5 >= z->l || z->p[z->c + 5] != 170) return 0; /* substring, line 402 */ +static int r_Prefix_Step4_Verb(struct SN_env * z) { + z->bra = z->c; + if (z->c + 5 >= z->l || z->p[z->c + 5] != 170) return 0; if (!(find_among(z, a_9, 3))) return 0; - z->ket = z->c; /* ], line 402 */ - if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 403 */ - z->B[1] = 1; /* set is_verb, line 403 */ - z->B[0] = 0; /* unset is_noun, line 403 */ - { int ret = slice_from_s(z, 6, s_67); /* <-, line 403 */ + z->ket = z->c; + if (!(len_utf8(z->p) > 4)) return 0; + z->I[1] = 1; + z->I[2] = 0; + { int ret = slice_from_s(z, 6, s_67); if (ret < 0) return ret; } return 1; } -static int r_Suffix_Noun_Step1a(struct SN_env * z) { /* backwardmode */ +static int r_Suffix_Noun_Step1a(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 411 */ - among_var = find_among_b(z, a_10, 10); /* substring, line 411 */ + z->ket = z->c; + among_var = find_among_b(z, a_10, 10); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 411 */ - switch (among_var) { /* among, line 411 */ + z->bra = z->c; + switch (among_var) { case 1: - if (!(len_utf8(z->p) >= 4)) return 0; /* $( >= ), line 412 */ - { int ret = slice_del(z); /* delete, line 412 */ + if (!(len_utf8(z->p) >= 4)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (!(len_utf8(z->p) >= 5)) return 0; /* $( >= ), line 413 */ - { int ret = slice_del(z); /* delete, line 413 */ + if (!(len_utf8(z->p) >= 5)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - if (!(len_utf8(z->p) >= 6)) return 0; /* $( >= ), line 414 */ - { int ret = slice_del(z); /* delete, line 414 */ + if (!(len_utf8(z->p) >= 6)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -1243,99 +1241,99 @@ static int r_Suffix_Noun_Step1a(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Suffix_Noun_Step1b(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 418 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 134) return 0; /* substring, line 418 */ +static int r_Suffix_Noun_Step1b(struct SN_env * z) { + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 134) return 0; if (!(find_among_b(z, a_11, 1))) return 0; - z->bra = z->c; /* ], line 418 */ - if (!(len_utf8(z->p) > 5)) return 0; /* $( > ), line 419 */ - { int ret = slice_del(z); /* delete, line 419 */ + z->bra = z->c; + if (!(len_utf8(z->p) > 5)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_Suffix_Noun_Step2a(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 424 */ - if (!(find_among_b(z, a_12, 3))) return 0; /* substring, line 424 */ - z->bra = z->c; /* ], line 424 */ - if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 425 */ - { int ret = slice_del(z); /* delete, line 425 */ +static int r_Suffix_Noun_Step2a(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_12, 3))) return 0; + z->bra = z->c; + if (!(len_utf8(z->p) > 4)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_Suffix_Noun_Step2b(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 430 */ - if (z->c - 3 <= z->lb || z->p[z->c - 1] != 170) return 0; /* substring, line 430 */ +static int r_Suffix_Noun_Step2b(struct SN_env * z) { + z->ket = z->c; + if (z->c - 3 <= z->lb || z->p[z->c - 1] != 170) return 0; if (!(find_among_b(z, a_13, 1))) return 0; - z->bra = z->c; /* ], line 430 */ - if (!(len_utf8(z->p) >= 5)) return 0; /* $( >= ), line 431 */ - { int ret = slice_del(z); /* delete, line 431 */ + z->bra = z->c; + if (!(len_utf8(z->p) >= 5)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_Suffix_Noun_Step2c1(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 436 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 170) return 0; /* substring, line 436 */ +static int r_Suffix_Noun_Step2c1(struct SN_env * z) { + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 170) return 0; if (!(find_among_b(z, a_14, 1))) return 0; - z->bra = z->c; /* ], line 436 */ - if (!(len_utf8(z->p) >= 4)) return 0; /* $( >= ), line 437 */ - { int ret = slice_del(z); /* delete, line 437 */ + z->bra = z->c; + if (!(len_utf8(z->p) >= 4)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_Suffix_Noun_Step2c2(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 441 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 169) return 0; /* substring, line 441 */ +static int r_Suffix_Noun_Step2c2(struct SN_env * z) { + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 169) return 0; if (!(find_among_b(z, a_15, 1))) return 0; - z->bra = z->c; /* ], line 441 */ - if (!(len_utf8(z->p) >= 4)) return 0; /* $( >= ), line 442 */ - { int ret = slice_del(z); /* delete, line 442 */ + z->bra = z->c; + if (!(len_utf8(z->p) >= 4)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_Suffix_Noun_Step3(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 446 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 138) return 0; /* substring, line 446 */ +static int r_Suffix_Noun_Step3(struct SN_env * z) { + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 138) return 0; if (!(find_among_b(z, a_16, 1))) return 0; - z->bra = z->c; /* ], line 446 */ - if (!(len_utf8(z->p) >= 3)) return 0; /* $( >= ), line 447 */ - { int ret = slice_del(z); /* delete, line 447 */ + z->bra = z->c; + if (!(len_utf8(z->p) >= 3)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_Suffix_Verb_Step1(struct SN_env * z) { /* backwardmode */ +static int r_Suffix_Verb_Step1(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 452 */ - among_var = find_among_b(z, a_17, 12); /* substring, line 452 */ + z->ket = z->c; + among_var = find_among_b(z, a_17, 12); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 452 */ - switch (among_var) { /* among, line 452 */ + z->bra = z->c; + switch (among_var) { case 1: - if (!(len_utf8(z->p) >= 4)) return 0; /* $( >= ), line 453 */ - { int ret = slice_del(z); /* delete, line 453 */ + if (!(len_utf8(z->p) >= 4)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (!(len_utf8(z->p) >= 5)) return 0; /* $( >= ), line 454 */ - { int ret = slice_del(z); /* delete, line 454 */ + if (!(len_utf8(z->p) >= 5)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - if (!(len_utf8(z->p) >= 6)) return 0; /* $( >= ), line 455 */ - { int ret = slice_del(z); /* delete, line 455 */ + if (!(len_utf8(z->p) >= 6)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -1343,34 +1341,34 @@ static int r_Suffix_Verb_Step1(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Suffix_Verb_Step2a(struct SN_env * z) { /* backwardmode */ +static int r_Suffix_Verb_Step2a(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 459 */ - among_var = find_among_b(z, a_18, 11); /* substring, line 459 */ + z->ket = z->c; + among_var = find_among_b(z, a_18, 11); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 459 */ - switch (among_var) { /* among, line 459 */ + z->bra = z->c; + switch (among_var) { case 1: - if (!(len_utf8(z->p) >= 4)) return 0; /* $( >= ), line 460 */ - { int ret = slice_del(z); /* delete, line 460 */ + if (!(len_utf8(z->p) >= 4)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (!(len_utf8(z->p) >= 5)) return 0; /* $( >= ), line 462 */ - { int ret = slice_del(z); /* delete, line 462 */ + if (!(len_utf8(z->p) >= 5)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - if (!(len_utf8(z->p) > 5)) return 0; /* $( > ), line 463 */ - { int ret = slice_del(z); /* delete, line 463 */ + if (!(len_utf8(z->p) > 5)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 4: - if (!(len_utf8(z->p) >= 6)) return 0; /* $( >= ), line 464 */ - { int ret = slice_del(z); /* delete, line 464 */ + if (!(len_utf8(z->p) >= 6)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -1378,35 +1376,35 @@ static int r_Suffix_Verb_Step2a(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Suffix_Verb_Step2b(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 469 */ - if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 133 && z->p[z->c - 1] != 167)) return 0; /* substring, line 469 */ +static int r_Suffix_Verb_Step2b(struct SN_env * z) { + z->ket = z->c; + if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 133 && z->p[z->c - 1] != 167)) return 0; if (!(find_among_b(z, a_19, 2))) return 0; - z->bra = z->c; /* ], line 469 */ - if (!(len_utf8(z->p) >= 5)) return 0; /* $( >= ), line 470 */ - { int ret = slice_del(z); /* delete, line 470 */ + z->bra = z->c; + if (!(len_utf8(z->p) >= 5)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_Suffix_Verb_Step2c(struct SN_env * z) { /* backwardmode */ +static int r_Suffix_Verb_Step2c(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 476 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 136) return 0; /* substring, line 476 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 136) return 0; among_var = find_among_b(z, a_20, 2); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 476 */ - switch (among_var) { /* among, line 476 */ + z->bra = z->c; + switch (among_var) { case 1: - if (!(len_utf8(z->p) >= 4)) return 0; /* $( >= ), line 477 */ - { int ret = slice_del(z); /* delete, line 477 */ + if (!(len_utf8(z->p) >= 4)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (!(len_utf8(z->p) >= 6)) return 0; /* $( >= ), line 478 */ - { int ret = slice_del(z); /* delete, line 478 */ + if (!(len_utf8(z->p) >= 6)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -1414,40 +1412,41 @@ static int r_Suffix_Verb_Step2c(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Suffix_All_alef_maqsura(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 483 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 137) return 0; /* substring, line 483 */ +static int r_Suffix_All_alef_maqsura(struct SN_env * z) { + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 137) return 0; if (!(find_among_b(z, a_21, 1))) return 0; - z->bra = z->c; /* ], line 483 */ - { int ret = slice_from_s(z, 2, s_68); /* <-, line 484 */ + z->bra = z->c; + { int ret = slice_from_s(z, 2, s_68); if (ret < 0) return ret; } return 1; } -extern int arabic_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - z->B[0] = 1; /* set is_noun, line 493 */ - z->B[1] = 1; /* set is_verb, line 494 */ - z->B[2] = 0; /* unset is_defined, line 495 */ - { int c1 = z->c; /* do, line 498 */ - { int ret = r_Checks1(z); /* call Checks1, line 498 */ +extern int arabic_UTF_8_stem(struct SN_env * z) { + z->I[2] = 1; + z->I[1] = 1; + z->I[0] = 0; + { int c1 = z->c; + { int ret = r_Checks1(z); if (ret < 0) return ret; } z->c = c1; } - /* do, line 501 */ - { int ret = r_Normalize_pre(z); /* call Normalize_pre, line 501 */ + + { int ret = r_Normalize_pre(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 504 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 506 */ - { int m3 = z->l - z->c; (void)m3; /* or, line 520 */ - if (!(z->B[1])) goto lab2; /* Boolean test is_verb, line 509 */ - { int m4 = z->l - z->c; (void)m4; /* or, line 515 */ + { int m2 = z->l - z->c; (void)m2; + { int m3 = z->l - z->c; (void)m3; + if (!(z->I[1])) goto lab2; + { int m4 = z->l - z->c; (void)m4; { int i = 1; - while(1) { int m5 = z->l - z->c; (void)m5; - { int ret = r_Suffix_Verb_Step1(z); /* call Suffix_Verb_Step1, line 512 */ + while(1) { + int m5 = z->l - z->c; (void)m5; + { int ret = r_Suffix_Verb_Step1(z); if (ret == 0) goto lab5; if (ret < 0) return ret; } @@ -1459,38 +1458,38 @@ extern int arabic_UTF_8_stem(struct SN_env * z) { /* forwardmode */ } if (i > 0) goto lab4; } - { int m6 = z->l - z->c; (void)m6; /* or, line 513 */ - { int ret = r_Suffix_Verb_Step2a(z); /* call Suffix_Verb_Step2a, line 513 */ + { int m6 = z->l - z->c; (void)m6; + { int ret = r_Suffix_Verb_Step2a(z); if (ret == 0) goto lab7; if (ret < 0) return ret; } goto lab6; lab7: z->c = z->l - m6; - { int ret = r_Suffix_Verb_Step2c(z); /* call Suffix_Verb_Step2c, line 513 */ + { int ret = r_Suffix_Verb_Step2c(z); if (ret == 0) goto lab8; if (ret < 0) return ret; } goto lab6; lab8: z->c = z->l - m6; - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) goto lab4; - z->c = ret; /* next, line 513 */ + z->c = ret; } } lab6: goto lab3; lab4: z->c = z->l - m4; - { int ret = r_Suffix_Verb_Step2b(z); /* call Suffix_Verb_Step2b, line 515 */ + { int ret = r_Suffix_Verb_Step2b(z); if (ret == 0) goto lab9; if (ret < 0) return ret; } goto lab3; lab9: z->c = z->l - m4; - { int ret = r_Suffix_Verb_Step2a(z); /* call Suffix_Verb_Step2a, line 516 */ + { int ret = r_Suffix_Verb_Step2a(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } @@ -1499,75 +1498,75 @@ extern int arabic_UTF_8_stem(struct SN_env * z) { /* forwardmode */ goto lab1; lab2: z->c = z->l - m3; - if (!(z->B[0])) goto lab10; /* Boolean test is_noun, line 521 */ - { int m7 = z->l - z->c; (void)m7; /* try, line 524 */ - { int m8 = z->l - z->c; (void)m8; /* or, line 526 */ - { int ret = r_Suffix_Noun_Step2c2(z); /* call Suffix_Noun_Step2c2, line 525 */ + if (!(z->I[2])) goto lab10; + { int m7 = z->l - z->c; (void)m7; + { int m8 = z->l - z->c; (void)m8; + { int ret = r_Suffix_Noun_Step2c2(z); if (ret == 0) goto lab13; if (ret < 0) return ret; } goto lab12; lab13: z->c = z->l - m8; - /* not, line 526 */ - if (!(z->B[2])) goto lab15; /* Boolean test is_defined, line 526 */ + + if (!(z->I[0])) goto lab15; goto lab14; lab15: - { int ret = r_Suffix_Noun_Step1a(z); /* call Suffix_Noun_Step1a, line 526 */ + { int ret = r_Suffix_Noun_Step1a(z); if (ret == 0) goto lab14; if (ret < 0) return ret; } - { int m9 = z->l - z->c; (void)m9; /* or, line 528 */ - { int ret = r_Suffix_Noun_Step2a(z); /* call Suffix_Noun_Step2a, line 527 */ + { int m9 = z->l - z->c; (void)m9; + { int ret = r_Suffix_Noun_Step2a(z); if (ret == 0) goto lab17; if (ret < 0) return ret; } goto lab16; lab17: z->c = z->l - m9; - { int ret = r_Suffix_Noun_Step2b(z); /* call Suffix_Noun_Step2b, line 528 */ + { int ret = r_Suffix_Noun_Step2b(z); if (ret == 0) goto lab18; if (ret < 0) return ret; } goto lab16; lab18: z->c = z->l - m9; - { int ret = r_Suffix_Noun_Step2c1(z); /* call Suffix_Noun_Step2c1, line 529 */ + { int ret = r_Suffix_Noun_Step2c1(z); if (ret == 0) goto lab19; if (ret < 0) return ret; } goto lab16; lab19: z->c = z->l - m9; - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) goto lab14; - z->c = ret; /* next, line 530 */ + z->c = ret; } } lab16: goto lab12; lab14: z->c = z->l - m8; - { int ret = r_Suffix_Noun_Step1b(z); /* call Suffix_Noun_Step1b, line 531 */ + { int ret = r_Suffix_Noun_Step1b(z); if (ret == 0) goto lab20; if (ret < 0) return ret; } - { int m10 = z->l - z->c; (void)m10; /* or, line 533 */ - { int ret = r_Suffix_Noun_Step2a(z); /* call Suffix_Noun_Step2a, line 532 */ + { int m10 = z->l - z->c; (void)m10; + { int ret = r_Suffix_Noun_Step2a(z); if (ret == 0) goto lab22; if (ret < 0) return ret; } goto lab21; lab22: z->c = z->l - m10; - { int ret = r_Suffix_Noun_Step2b(z); /* call Suffix_Noun_Step2b, line 533 */ + { int ret = r_Suffix_Noun_Step2b(z); if (ret == 0) goto lab23; if (ret < 0) return ret; } goto lab21; lab23: z->c = z->l - m10; - { int ret = r_Suffix_Noun_Step2c1(z); /* call Suffix_Noun_Step2c1, line 534 */ + { int ret = r_Suffix_Noun_Step2c1(z); if (ret == 0) goto lab20; if (ret < 0) return ret; } @@ -1576,18 +1575,18 @@ extern int arabic_UTF_8_stem(struct SN_env * z) { /* forwardmode */ goto lab12; lab20: z->c = z->l - m8; - /* not, line 535 */ - if (!(z->B[2])) goto lab25; /* Boolean test is_defined, line 535 */ + + if (!(z->I[0])) goto lab25; goto lab24; lab25: - { int ret = r_Suffix_Noun_Step2a(z); /* call Suffix_Noun_Step2a, line 535 */ + { int ret = r_Suffix_Noun_Step2a(z); if (ret == 0) goto lab24; if (ret < 0) return ret; } goto lab12; lab24: z->c = z->l - m8; - { int ret = r_Suffix_Noun_Step2b(z); /* call Suffix_Noun_Step2b, line 536 */ + { int ret = r_Suffix_Noun_Step2b(z); if (ret == 0) { z->c = z->l - m7; goto lab11; } if (ret < 0) return ret; } @@ -1596,14 +1595,14 @@ extern int arabic_UTF_8_stem(struct SN_env * z) { /* forwardmode */ lab11: ; } - { int ret = r_Suffix_Noun_Step3(z); /* call Suffix_Noun_Step3, line 538 */ + { int ret = r_Suffix_Noun_Step3(z); if (ret == 0) goto lab10; if (ret < 0) return ret; } goto lab1; lab10: z->c = z->l - m3; - { int ret = r_Suffix_All_alef_maqsura(z); /* call Suffix_All_alef_maqsura, line 544 */ + { int ret = r_Suffix_All_alef_maqsura(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -1613,49 +1612,49 @@ extern int arabic_UTF_8_stem(struct SN_env * z) { /* forwardmode */ z->c = z->l - m2; } z->c = z->lb; - { int c11 = z->c; /* do, line 549 */ - { int c12 = z->c; /* try, line 550 */ - { int ret = r_Prefix_Step1(z); /* call Prefix_Step1, line 550 */ + { int c11 = z->c; + { int c12 = z->c; + { int ret = r_Prefix_Step1(z); if (ret == 0) { z->c = c12; goto lab27; } if (ret < 0) return ret; } lab27: ; } - { int c13 = z->c; /* try, line 551 */ - { int ret = r_Prefix_Step2(z); /* call Prefix_Step2, line 551 */ + { int c13 = z->c; + { int ret = r_Prefix_Step2(z); if (ret == 0) { z->c = c13; goto lab28; } if (ret < 0) return ret; } lab28: ; } - { int c14 = z->c; /* or, line 553 */ - { int ret = r_Prefix_Step3a_Noun(z); /* call Prefix_Step3a_Noun, line 552 */ + { int c14 = z->c; + { int ret = r_Prefix_Step3a_Noun(z); if (ret == 0) goto lab30; if (ret < 0) return ret; } goto lab29; lab30: z->c = c14; - if (!(z->B[0])) goto lab31; /* Boolean test is_noun, line 553 */ - { int ret = r_Prefix_Step3b_Noun(z); /* call Prefix_Step3b_Noun, line 553 */ + if (!(z->I[2])) goto lab31; + { int ret = r_Prefix_Step3b_Noun(z); if (ret == 0) goto lab31; if (ret < 0) return ret; } goto lab29; lab31: z->c = c14; - if (!(z->B[1])) goto lab26; /* Boolean test is_verb, line 554 */ - { int c15 = z->c; /* try, line 554 */ - { int ret = r_Prefix_Step3_Verb(z); /* call Prefix_Step3_Verb, line 554 */ + if (!(z->I[1])) goto lab26; + { int c15 = z->c; + { int ret = r_Prefix_Step3_Verb(z); if (ret == 0) { z->c = c15; goto lab32; } if (ret < 0) return ret; } lab32: ; } - { int ret = r_Prefix_Step4_Verb(z); /* call Prefix_Step4_Verb, line 554 */ + { int ret = r_Prefix_Step4_Verb(z); if (ret == 0) goto lab26; if (ret < 0) return ret; } @@ -1664,14 +1663,14 @@ extern int arabic_UTF_8_stem(struct SN_env * z) { /* forwardmode */ lab26: z->c = c11; } - /* do, line 559 */ - { int ret = r_Normalize_post(z); /* call Normalize_post, line 559 */ + + { int ret = r_Normalize_post(z); if (ret < 0) return ret; } return 1; } -extern struct SN_env * arabic_UTF_8_create_env(void) { return SN_create_env(0, 0, 3); } +extern struct SN_env * arabic_UTF_8_create_env(void) { return SN_create_env(0, 3); } extern void arabic_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_armenian.c b/src/backend/snowball/libstemmer/stem_UTF_8_armenian.c new file mode 100644 index 0000000000000..009ddb51d1d18 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_armenian.c @@ -0,0 +1,559 @@ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ + +#include "header.h" + +#ifdef __cplusplus +extern "C" { +#endif +extern int armenian_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_ending(struct SN_env * z); +static int r_noun(struct SN_env * z); +static int r_verb(struct SN_env * z); +static int r_adjective(struct SN_env * z); +static int r_R2(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * armenian_UTF_8_create_env(void); +extern void armenian_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[6] = { 0xD5, 0xA2, 0xD5, 0xA1, 0xD6, 0x80 }; +static const symbol s_0_1[8] = { 0xD6, 0x80, 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA4 }; +static const symbol s_0_2[10] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA4 }; +static const symbol s_0_3[6] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xAB }; +static const symbol s_0_4[6] = { 0xD5, 0xA1, 0xD5, 0xAF, 0xD5, 0xAB }; +static const symbol s_0_5[8] = { 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA1, 0xD5, 0xAF }; +static const symbol s_0_6[4] = { 0xD5, 0xA5, 0xD5, 0xB2 }; +static const symbol s_0_7[8] = { 0xD5, 0xBE, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6 }; +static const symbol s_0_8[8] = { 0xD5, 0xA1, 0xD6, 0x80, 0xD5, 0xA1, 0xD5, 0xB6 }; +static const symbol s_0_9[8] = { 0xD5, 0xA1, 0xD5, 0xAF, 0xD5, 0xA1, 0xD5, 0xB6 }; +static const symbol s_0_10[4] = { 0xD5, 0xA5, 0xD5, 0xB6 }; +static const symbol s_0_11[8] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA5, 0xD5, 0xB6 }; +static const symbol s_0_12[8] = { 0xD5, 0xA5, 0xD5, 0xAF, 0xD5, 0xA5, 0xD5, 0xB6 }; +static const symbol s_0_13[8] = { 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA7, 0xD5, 0xB6 }; +static const symbol s_0_14[4] = { 0xD5, 0xAB, 0xD5, 0xB6 }; +static const symbol s_0_15[6] = { 0xD5, 0xA3, 0xD5, 0xAB, 0xD5, 0xB6 }; +static const symbol s_0_16[8] = { 0xD5, 0xB8, 0xD5, 0xBE, 0xD5, 0xAB, 0xD5, 0xB6 }; +static const symbol s_0_17[8] = { 0xD5, 0xAC, 0xD5, 0xA1, 0xD5, 0xB5, 0xD5, 0xB6 }; +static const symbol s_0_18[6] = { 0xD5, 0xBA, 0xD5, 0xA5, 0xD5, 0xBD }; +static const symbol s_0_19[4] = { 0xD5, 0xAB, 0xD5, 0xBE }; +static const symbol s_0_20[4] = { 0xD5, 0xA1, 0xD5, 0xBF }; +static const symbol s_0_21[8] = { 0xD5, 0xA1, 0xD5, 0xBE, 0xD5, 0xA5, 0xD5, 0xBF }; +static const symbol s_0_22[6] = { 0xD5, 0xAF, 0xD5, 0xB8, 0xD5, 0xBF }; + +static const struct among a_0[23] = +{ +{ 6, s_0_0, -1, 1, 0}, +{ 8, s_0_1, -1, 1, 0}, +{ 10, s_0_2, 1, 1, 0}, +{ 6, s_0_3, -1, 1, 0}, +{ 6, s_0_4, -1, 1, 0}, +{ 8, s_0_5, -1, 1, 0}, +{ 4, s_0_6, -1, 1, 0}, +{ 8, s_0_7, -1, 1, 0}, +{ 8, s_0_8, -1, 1, 0}, +{ 8, s_0_9, -1, 1, 0}, +{ 4, s_0_10, -1, 1, 0}, +{ 8, s_0_11, 10, 1, 0}, +{ 8, s_0_12, 10, 1, 0}, +{ 8, s_0_13, -1, 1, 0}, +{ 4, s_0_14, -1, 1, 0}, +{ 6, s_0_15, 14, 1, 0}, +{ 8, s_0_16, 14, 1, 0}, +{ 8, s_0_17, -1, 1, 0}, +{ 6, s_0_18, -1, 1, 0}, +{ 4, s_0_19, -1, 1, 0}, +{ 4, s_0_20, -1, 1, 0}, +{ 8, s_0_21, -1, 1, 0}, +{ 6, s_0_22, -1, 1, 0} +}; + +static const symbol s_1_0[4] = { 0xD5, 0xA1, 0xD6, 0x80 }; +static const symbol s_1_1[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD6, 0x80 }; +static const symbol s_1_2[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xA1, 0xD6, 0x80 }; +static const symbol s_1_3[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB, 0xD6, 0x80 }; +static const symbol s_1_4[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x80 }; +static const symbol s_1_5[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x80 }; +static const symbol s_1_6[10] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x80 }; +static const symbol s_1_7[10] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xB8, 0xD6, 0x82, 0xD6, 0x81 }; +static const symbol s_1_8[10] = { 0xD5, 0xA5, 0xD5, 0xAC, 0xD5, 0xB8, 0xD6, 0x82, 0xD6, 0x81 }; +static const symbol s_1_9[4] = { 0xD5, 0xA1, 0xD6, 0x81 }; +static const symbol s_1_10[4] = { 0xD5, 0xA5, 0xD6, 0x81 }; +static const symbol s_1_11[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xA5, 0xD6, 0x81 }; +static const symbol s_1_12[8] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xB8, 0xD6, 0x82 }; +static const symbol s_1_13[8] = { 0xD5, 0xA5, 0xD5, 0xAC, 0xD5, 0xB8, 0xD6, 0x82 }; +static const symbol s_1_14[4] = { 0xD5, 0xA1, 0xD6, 0x84 }; +static const symbol s_1_15[6] = { 0xD6, 0x81, 0xD5, 0xA1, 0xD6, 0x84 }; +static const symbol s_1_16[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD6, 0x84 }; +static const symbol s_1_17[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB, 0xD6, 0x84 }; +static const symbol s_1_18[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x84 }; +static const symbol s_1_19[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x84 }; +static const symbol s_1_20[10] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x84 }; +static const symbol s_1_21[6] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD6, 0x84 }; +static const symbol s_1_22[8] = { 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xB6, 0xD6, 0x84 }; +static const symbol s_1_23[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xB6, 0xD6, 0x84 }; +static const symbol s_1_24[12] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB, 0xD5, 0xB6, 0xD6, 0x84 }; +static const symbol s_1_25[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6, 0xD6, 0x84 }; +static const symbol s_1_26[10] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6, 0xD6, 0x84 }; +static const symbol s_1_27[12] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6, 0xD6, 0x84 }; +static const symbol s_1_28[2] = { 0xD5, 0xA1 }; +static const symbol s_1_29[6] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1 }; +static const symbol s_1_30[6] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xA1 }; +static const symbol s_1_31[4] = { 0xD5, 0xBE, 0xD5, 0xA5 }; +static const symbol s_1_32[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB }; +static const symbol s_1_33[6] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB }; +static const symbol s_1_34[6] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB }; +static const symbol s_1_35[8] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB }; +static const symbol s_1_36[4] = { 0xD5, 0xA1, 0xD5, 0xAC }; +static const symbol s_1_37[6] = { 0xD5, 0xA8, 0xD5, 0xA1, 0xD5, 0xAC }; +static const symbol s_1_38[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xB6, 0xD5, 0xA1, 0xD5, 0xAC }; +static const symbol s_1_39[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA1, 0xD5, 0xAC }; +static const symbol s_1_40[8] = { 0xD5, 0xA5, 0xD5, 0xB6, 0xD5, 0xA1, 0xD5, 0xAC }; +static const symbol s_1_41[4] = { 0xD5, 0xA5, 0xD5, 0xAC }; +static const symbol s_1_42[6] = { 0xD5, 0xA8, 0xD5, 0xA5, 0xD5, 0xAC }; +static const symbol s_1_43[6] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD5, 0xAC }; +static const symbol s_1_44[8] = { 0xD6, 0x81, 0xD5, 0xB6, 0xD5, 0xA5, 0xD5, 0xAC }; +static const symbol s_1_45[10] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xB6, 0xD5, 0xA5, 0xD5, 0xAC }; +static const symbol s_1_46[6] = { 0xD5, 0xB9, 0xD5, 0xA5, 0xD5, 0xAC }; +static const symbol s_1_47[6] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD5, 0xAC }; +static const symbol s_1_48[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xBE, 0xD5, 0xA5, 0xD5, 0xAC }; +static const symbol s_1_49[10] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xBE, 0xD5, 0xA5, 0xD5, 0xAC }; +static const symbol s_1_50[6] = { 0xD5, 0xBF, 0xD5, 0xA5, 0xD5, 0xAC }; +static const symbol s_1_51[8] = { 0xD5, 0xA1, 0xD5, 0xBF, 0xD5, 0xA5, 0xD5, 0xAC }; +static const symbol s_1_52[8] = { 0xD5, 0xB8, 0xD5, 0xBF, 0xD5, 0xA5, 0xD5, 0xAC }; +static const symbol s_1_53[10] = { 0xD5, 0xAF, 0xD5, 0xB8, 0xD5, 0xBF, 0xD5, 0xA5, 0xD5, 0xAC }; +static const symbol s_1_54[6] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xAE }; +static const symbol s_1_55[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 }; +static const symbol s_1_56[8] = { 0xD5, 0xBE, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 }; +static const symbol s_1_57[4] = { 0xD5, 0xA1, 0xD5, 0xB6 }; +static const symbol s_1_58[6] = { 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xB6 }; +static const symbol s_1_59[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xB6 }; +static const symbol s_1_60[10] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD6, 0x80, 0xD5, 0xAB, 0xD5, 0xB6 }; +static const symbol s_1_61[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6 }; +static const symbol s_1_62[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6 }; +static const symbol s_1_63[10] = { 0xD5, 0xBE, 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xAB, 0xD5, 0xB6 }; +static const symbol s_1_64[8] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xAB, 0xD5, 0xBD }; +static const symbol s_1_65[8] = { 0xD5, 0xA5, 0xD5, 0xAC, 0xD5, 0xAB, 0xD5, 0xBD }; +static const symbol s_1_66[4] = { 0xD5, 0xA1, 0xD5, 0xBE }; +static const symbol s_1_67[8] = { 0xD5, 0xA1, 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xBE }; +static const symbol s_1_68[8] = { 0xD5, 0xA5, 0xD6, 0x81, 0xD5, 0xA1, 0xD5, 0xBE }; +static const symbol s_1_69[8] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xB8, 0xD5, 0xBE }; +static const symbol s_1_70[8] = { 0xD5, 0xA5, 0xD5, 0xAC, 0xD5, 0xB8, 0xD5, 0xBE }; + +static const struct among a_1[71] = +{ +{ 4, s_1_0, -1, 1, 0}, +{ 8, s_1_1, 0, 1, 0}, +{ 8, s_1_2, 0, 1, 0}, +{ 10, s_1_3, -1, 1, 0}, +{ 8, s_1_4, -1, 1, 0}, +{ 8, s_1_5, -1, 1, 0}, +{ 10, s_1_6, 5, 1, 0}, +{ 10, s_1_7, -1, 1, 0}, +{ 10, s_1_8, -1, 1, 0}, +{ 4, s_1_9, -1, 1, 0}, +{ 4, s_1_10, -1, 1, 0}, +{ 10, s_1_11, 10, 1, 0}, +{ 8, s_1_12, -1, 1, 0}, +{ 8, s_1_13, -1, 1, 0}, +{ 4, s_1_14, -1, 1, 0}, +{ 6, s_1_15, 14, 1, 0}, +{ 8, s_1_16, 15, 1, 0}, +{ 10, s_1_17, -1, 1, 0}, +{ 8, s_1_18, -1, 1, 0}, +{ 8, s_1_19, -1, 1, 0}, +{ 10, s_1_20, 19, 1, 0}, +{ 6, s_1_21, -1, 1, 0}, +{ 8, s_1_22, 21, 1, 0}, +{ 10, s_1_23, 22, 1, 0}, +{ 12, s_1_24, -1, 1, 0}, +{ 10, s_1_25, -1, 1, 0}, +{ 10, s_1_26, -1, 1, 0}, +{ 12, s_1_27, 26, 1, 0}, +{ 2, s_1_28, -1, 1, 0}, +{ 6, s_1_29, 28, 1, 0}, +{ 6, s_1_30, 28, 1, 0}, +{ 4, s_1_31, -1, 1, 0}, +{ 8, s_1_32, -1, 1, 0}, +{ 6, s_1_33, -1, 1, 0}, +{ 6, s_1_34, -1, 1, 0}, +{ 8, s_1_35, 34, 1, 0}, +{ 4, s_1_36, -1, 1, 0}, +{ 6, s_1_37, 36, 1, 0}, +{ 10, s_1_38, 36, 1, 0}, +{ 8, s_1_39, 36, 1, 0}, +{ 8, s_1_40, 36, 1, 0}, +{ 4, s_1_41, -1, 1, 0}, +{ 6, s_1_42, 41, 1, 0}, +{ 6, s_1_43, 41, 1, 0}, +{ 8, s_1_44, 43, 1, 0}, +{ 10, s_1_45, 44, 1, 0}, +{ 6, s_1_46, 41, 1, 0}, +{ 6, s_1_47, 41, 1, 0}, +{ 10, s_1_48, 47, 1, 0}, +{ 10, s_1_49, 47, 1, 0}, +{ 6, s_1_50, 41, 1, 0}, +{ 8, s_1_51, 50, 1, 0}, +{ 8, s_1_52, 50, 1, 0}, +{ 10, s_1_53, 52, 1, 0}, +{ 6, s_1_54, -1, 1, 0}, +{ 6, s_1_55, -1, 1, 0}, +{ 8, s_1_56, 55, 1, 0}, +{ 4, s_1_57, -1, 1, 0}, +{ 6, s_1_58, 57, 1, 0}, +{ 8, s_1_59, 58, 1, 0}, +{ 10, s_1_60, -1, 1, 0}, +{ 8, s_1_61, -1, 1, 0}, +{ 8, s_1_62, -1, 1, 0}, +{ 10, s_1_63, 62, 1, 0}, +{ 8, s_1_64, -1, 1, 0}, +{ 8, s_1_65, -1, 1, 0}, +{ 4, s_1_66, -1, 1, 0}, +{ 8, s_1_67, 66, 1, 0}, +{ 8, s_1_68, 66, 1, 0}, +{ 8, s_1_69, -1, 1, 0}, +{ 8, s_1_70, -1, 1, 0} +}; + +static const symbol s_2_0[6] = { 0xD5, 0xA3, 0xD5, 0xA1, 0xD6, 0x80 }; +static const symbol s_2_1[6] = { 0xD5, 0xBE, 0xD5, 0xB8, 0xD6, 0x80 }; +static const symbol s_2_2[8] = { 0xD5, 0xA1, 0xD5, 0xBE, 0xD5, 0xB8, 0xD6, 0x80 }; +static const symbol s_2_3[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD6, 0x85, 0xD6, 0x81 }; +static const symbol s_2_4[4] = { 0xD5, 0xB8, 0xD6, 0x81 }; +static const symbol s_2_5[4] = { 0xD5, 0xB8, 0xD6, 0x82 }; +static const symbol s_2_6[2] = { 0xD6, 0x84 }; +static const symbol s_2_7[6] = { 0xD5, 0xA1, 0xD6, 0x80, 0xD6, 0x84 }; +static const symbol s_2_8[6] = { 0xD5, 0xB9, 0xD5, 0xA5, 0xD6, 0x84 }; +static const symbol s_2_9[4] = { 0xD5, 0xAB, 0xD6, 0x84 }; +static const symbol s_2_10[8] = { 0xD5, 0xA1, 0xD5, 0xAC, 0xD5, 0xAB, 0xD6, 0x84 }; +static const symbol s_2_11[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xAB, 0xD6, 0x84 }; +static const symbol s_2_12[8] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xAE, 0xD6, 0x84 }; +static const symbol s_2_13[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB5, 0xD6, 0x84 }; +static const symbol s_2_14[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6, 0xD6, 0x84 }; +static const symbol s_2_15[10] = { 0xD5, 0xB4, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6, 0xD6, 0x84 }; +static const symbol s_2_16[6] = { 0xD5, 0xA5, 0xD5, 0xB6, 0xD6, 0x84 }; +static const symbol s_2_17[6] = { 0xD5, 0xB8, 0xD5, 0xB6, 0xD6, 0x84 }; +static const symbol s_2_18[6] = { 0xD5, 0xAB, 0xD5, 0xB9, 0xD6, 0x84 }; +static const symbol s_2_19[6] = { 0xD5, 0xB8, 0xD6, 0x80, 0xD5, 0xA4 }; +static const symbol s_2_20[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB5, 0xD5, 0xA9 }; +static const symbol s_2_21[4] = { 0xD6, 0x81, 0xD5, 0xAB }; +static const symbol s_2_22[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB0, 0xD5, 0xAB }; +static const symbol s_2_23[4] = { 0xD5, 0xAB, 0xD5, 0xAC }; +static const symbol s_2_24[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xAF }; +static const symbol s_2_25[4] = { 0xD5, 0xA1, 0xD5, 0xAF }; +static const symbol s_2_26[6] = { 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xAF }; +static const symbol s_2_27[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA1, 0xD5, 0xAF }; +static const symbol s_2_28[4] = { 0xD5, 0xAB, 0xD5, 0xAF }; +static const symbol s_2_29[8] = { 0xD5, 0xB5, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6 }; +static const symbol s_2_30[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6 }; +static const symbol s_2_31[4] = { 0xD5, 0xA1, 0xD5, 0xB6 }; +static const symbol s_2_32[8] = { 0xD5, 0xA1, 0xD6, 0x80, 0xD5, 0xA1, 0xD5, 0xB6 }; +static const symbol s_2_33[6] = { 0xD5, 0xBA, 0xD5, 0xA1, 0xD5, 0xB6 }; +static const symbol s_2_34[8] = { 0xD5, 0xBD, 0xD5, 0xBF, 0xD5, 0xA1, 0xD5, 0xB6 }; +static const symbol s_2_35[8] = { 0xD5, 0xA5, 0xD5, 0xB2, 0xD5, 0xA7, 0xD5, 0xB6 }; +static const symbol s_2_36[6] = { 0xD5, 0xA1, 0xD5, 0xAE, 0xD5, 0xB8 }; +static const symbol s_2_37[4] = { 0xD5, 0xAB, 0xD5, 0xB9 }; +static const symbol s_2_38[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xBD }; +static const symbol s_2_39[8] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xBD, 0xD5, 0xBF }; + +static const struct among a_2[40] = +{ +{ 6, s_2_0, -1, 1, 0}, +{ 6, s_2_1, -1, 1, 0}, +{ 8, s_2_2, 1, 1, 0}, +{ 8, s_2_3, -1, 1, 0}, +{ 4, s_2_4, -1, 1, 0}, +{ 4, s_2_5, -1, 1, 0}, +{ 2, s_2_6, -1, 1, 0}, +{ 6, s_2_7, 6, 1, 0}, +{ 6, s_2_8, 6, 1, 0}, +{ 4, s_2_9, 6, 1, 0}, +{ 8, s_2_10, 9, 1, 0}, +{ 8, s_2_11, 9, 1, 0}, +{ 8, s_2_12, 6, 1, 0}, +{ 8, s_2_13, 6, 1, 0}, +{ 8, s_2_14, 6, 1, 0}, +{ 10, s_2_15, 14, 1, 0}, +{ 6, s_2_16, 6, 1, 0}, +{ 6, s_2_17, 6, 1, 0}, +{ 6, s_2_18, 6, 1, 0}, +{ 6, s_2_19, -1, 1, 0}, +{ 8, s_2_20, -1, 1, 0}, +{ 4, s_2_21, -1, 1, 0}, +{ 8, s_2_22, -1, 1, 0}, +{ 4, s_2_23, -1, 1, 0}, +{ 6, s_2_24, -1, 1, 0}, +{ 4, s_2_25, -1, 1, 0}, +{ 6, s_2_26, 25, 1, 0}, +{ 8, s_2_27, 25, 1, 0}, +{ 4, s_2_28, -1, 1, 0}, +{ 8, s_2_29, -1, 1, 0}, +{ 14, s_2_30, 29, 1, 0}, +{ 4, s_2_31, -1, 1, 0}, +{ 8, s_2_32, 31, 1, 0}, +{ 6, s_2_33, 31, 1, 0}, +{ 8, s_2_34, 31, 1, 0}, +{ 8, s_2_35, -1, 1, 0}, +{ 6, s_2_36, -1, 1, 0}, +{ 4, s_2_37, -1, 1, 0}, +{ 6, s_2_38, -1, 1, 0}, +{ 8, s_2_39, -1, 1, 0} +}; + +static const symbol s_3_0[4] = { 0xD5, 0xA5, 0xD6, 0x80 }; +static const symbol s_3_1[6] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80 }; +static const symbol s_3_2[2] = { 0xD6, 0x81 }; +static const symbol s_3_3[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD6, 0x81 }; +static const symbol s_3_4[4] = { 0xD5, 0xAB, 0xD6, 0x81 }; +static const symbol s_3_5[8] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB, 0xD6, 0x81 }; +static const symbol s_3_6[10] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB, 0xD6, 0x81 }; +static const symbol s_3_7[6] = { 0xD6, 0x81, 0xD5, 0xAB, 0xD6, 0x81 }; +static const symbol s_3_8[10] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xAB, 0xD6, 0x81 }; +static const symbol s_3_9[8] = { 0xD5, 0xB8, 0xD5, 0xBB, 0xD5, 0xAB, 0xD6, 0x81 }; +static const symbol s_3_10[6] = { 0xD5, 0xBE, 0xD5, 0xAB, 0xD6, 0x81 }; +static const symbol s_3_11[4] = { 0xD5, 0xB8, 0xD6, 0x81 }; +static const symbol s_3_12[4] = { 0xD5, 0xBD, 0xD5, 0xA1 }; +static const symbol s_3_13[4] = { 0xD5, 0xBE, 0xD5, 0xA1 }; +static const symbol s_3_14[6] = { 0xD5, 0xA1, 0xD5, 0xB4, 0xD5, 0xA2 }; +static const symbol s_3_15[2] = { 0xD5, 0xA4 }; +static const symbol s_3_16[6] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA4 }; +static const symbol s_3_17[8] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA4 }; +static const symbol s_3_18[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA4 }; +static const symbol s_3_19[6] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA4 }; +static const symbol s_3_20[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA4 }; +static const symbol s_3_21[8] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA4 }; +static const symbol s_3_22[6] = { 0xD5, 0xB8, 0xD5, 0xBB, 0xD5, 0xA4 }; +static const symbol s_3_23[2] = { 0xD5, 0xA8 }; +static const symbol s_3_24[6] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA8 }; +static const symbol s_3_25[8] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xA8 }; +static const symbol s_3_26[6] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA8 }; +static const symbol s_3_27[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA8 }; +static const symbol s_3_28[8] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xA8 }; +static const symbol s_3_29[6] = { 0xD5, 0xB8, 0xD5, 0xBB, 0xD5, 0xA8 }; +static const symbol s_3_30[2] = { 0xD5, 0xAB }; +static const symbol s_3_31[6] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB }; +static const symbol s_3_32[8] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB }; +static const symbol s_3_33[4] = { 0xD5, 0xBE, 0xD5, 0xAB }; +static const symbol s_3_34[10] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 }; +static const symbol s_3_35[12] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 }; +static const symbol s_3_36[10] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB4 }; +static const symbol s_3_37[2] = { 0xD5, 0xB6 }; +static const symbol s_3_38[6] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB6 }; +static const symbol s_3_39[8] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB6 }; +static const symbol s_3_40[6] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xB6 }; +static const symbol s_3_41[4] = { 0xD5, 0xA1, 0xD5, 0xB6 }; +static const symbol s_3_42[12] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6 }; +static const symbol s_3_43[6] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6 }; +static const symbol s_3_44[4] = { 0xD5, 0xAB, 0xD5, 0xB6 }; +static const symbol s_3_45[8] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB, 0xD5, 0xB6 }; +static const symbol s_3_46[10] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xAB, 0xD5, 0xB6 }; +static const symbol s_3_47[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xB6 }; +static const symbol s_3_48[4] = { 0xD5, 0xB8, 0xD5, 0xBB }; +static const symbol s_3_49[14] = { 0xD5, 0xB8, 0xD6, 0x82, 0xD5, 0xA9, 0xD5, 0xB5, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xBD }; +static const symbol s_3_50[8] = { 0xD5, 0xBE, 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xBD }; +static const symbol s_3_51[6] = { 0xD5, 0xB8, 0xD5, 0xBB, 0xD5, 0xBD }; +static const symbol s_3_52[4] = { 0xD5, 0xB8, 0xD5, 0xBE }; +static const symbol s_3_53[8] = { 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD5, 0xBE }; +static const symbol s_3_54[10] = { 0xD5, 0xB6, 0xD5, 0xA5, 0xD6, 0x80, 0xD5, 0xB8, 0xD5, 0xBE }; +static const symbol s_3_55[8] = { 0xD5, 0xA1, 0xD5, 0xB6, 0xD5, 0xB8, 0xD5, 0xBE }; +static const symbol s_3_56[6] = { 0xD5, 0xBE, 0xD5, 0xB8, 0xD5, 0xBE }; + +static const struct among a_3[57] = +{ +{ 4, s_3_0, -1, 1, 0}, +{ 6, s_3_1, 0, 1, 0}, +{ 2, s_3_2, -1, 1, 0}, +{ 6, s_3_3, 2, 1, 0}, +{ 4, s_3_4, 2, 1, 0}, +{ 8, s_3_5, 4, 1, 0}, +{ 10, s_3_6, 5, 1, 0}, +{ 6, s_3_7, 4, 1, 0}, +{ 10, s_3_8, 4, 1, 0}, +{ 8, s_3_9, 4, 1, 0}, +{ 6, s_3_10, 4, 1, 0}, +{ 4, s_3_11, 2, 1, 0}, +{ 4, s_3_12, -1, 1, 0}, +{ 4, s_3_13, -1, 1, 0}, +{ 6, s_3_14, -1, 1, 0}, +{ 2, s_3_15, -1, 1, 0}, +{ 6, s_3_16, 15, 1, 0}, +{ 8, s_3_17, 16, 1, 0}, +{ 6, s_3_18, 15, 1, 0}, +{ 6, s_3_19, 15, 1, 0}, +{ 14, s_3_20, 19, 1, 0}, +{ 8, s_3_21, 19, 1, 0}, +{ 6, s_3_22, 15, 1, 0}, +{ 2, s_3_23, -1, 1, 0}, +{ 6, s_3_24, 23, 1, 0}, +{ 8, s_3_25, 24, 1, 0}, +{ 6, s_3_26, 23, 1, 0}, +{ 14, s_3_27, 26, 1, 0}, +{ 8, s_3_28, 26, 1, 0}, +{ 6, s_3_29, 23, 1, 0}, +{ 2, s_3_30, -1, 1, 0}, +{ 6, s_3_31, 30, 1, 0}, +{ 8, s_3_32, 31, 1, 0}, +{ 4, s_3_33, 30, 1, 0}, +{ 10, s_3_34, -1, 1, 0}, +{ 12, s_3_35, 34, 1, 0}, +{ 10, s_3_36, -1, 1, 0}, +{ 2, s_3_37, -1, 1, 0}, +{ 6, s_3_38, 37, 1, 0}, +{ 8, s_3_39, 38, 1, 0}, +{ 6, s_3_40, 37, 1, 0}, +{ 4, s_3_41, 37, 1, 0}, +{ 12, s_3_42, 41, 1, 0}, +{ 6, s_3_43, 41, 1, 0}, +{ 4, s_3_44, 37, 1, 0}, +{ 8, s_3_45, 44, 1, 0}, +{ 10, s_3_46, 45, 1, 0}, +{ 14, s_3_47, 37, 1, 0}, +{ 4, s_3_48, -1, 1, 0}, +{ 14, s_3_49, -1, 1, 0}, +{ 8, s_3_50, -1, 1, 0}, +{ 6, s_3_51, -1, 1, 0}, +{ 4, s_3_52, -1, 1, 0}, +{ 8, s_3_53, 52, 1, 0}, +{ 10, s_3_54, 53, 1, 0}, +{ 8, s_3_55, 52, 1, 0}, +{ 6, s_3_56, 52, 1, 0} +}; + +static const unsigned char g_v[] = { 209, 4, 128, 0, 18 }; + + +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { + int ret = out_grouping_U(z, g_v, 1377, 1413, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + z->I[1] = z->c; + { + int ret = in_grouping_U(z, g_v, 1377, 1413, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + { + int ret = out_grouping_U(z, g_v, 1377, 1413, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + { + int ret = in_grouping_U(z, g_v, 1377, 1413, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + z->I[0] = z->c; + lab0: + z->c = c1; + } + return 1; +} + +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; + return 1; +} + +static int r_adjective(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_0, 23))) return 0; + z->bra = z->c; + { int ret = slice_del(z); + if (ret < 0) return ret; + } + return 1; +} + +static int r_verb(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_1, 71))) return 0; + z->bra = z->c; + { int ret = slice_del(z); + if (ret < 0) return ret; + } + return 1; +} + +static int r_noun(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_2, 40))) return 0; + z->bra = z->c; + { int ret = slice_del(z); + if (ret < 0) return ret; + } + return 1; +} + +static int r_ending(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_3, 57))) return 0; + z->bra = z->c; + { int ret = r_R2(z); + if (ret <= 0) return ret; + } + { int ret = slice_del(z); + if (ret < 0) return ret; + } + return 1; +} + +extern int armenian_UTF_8_stem(struct SN_env * z) { + + { int ret = r_mark_regions(z); + if (ret < 0) return ret; + } + z->lb = z->c; z->c = z->l; + + + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + { int m2 = z->l - z->c; (void)m2; + { int ret = r_ending(z); + if (ret < 0) return ret; + } + z->c = z->l - m2; + } + { int m3 = z->l - z->c; (void)m3; + { int ret = r_verb(z); + if (ret < 0) return ret; + } + z->c = z->l - m3; + } + { int m4 = z->l - z->c; (void)m4; + { int ret = r_adjective(z); + if (ret < 0) return ret; + } + z->c = z->l - m4; + } + { int m5 = z->l - z->c; (void)m5; + { int ret = r_noun(z); + if (ret < 0) return ret; + } + z->c = z->l - m5; + } + z->lb = mlimit1; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * armenian_UTF_8_create_env(void) { return SN_create_env(0, 2); } + +extern void armenian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_basque.c b/src/backend/snowball/libstemmer/stem_UTF_8_basque.c index f21f53165b8a1..d6beab6df92d0 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_basque.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_basque.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -140,115 +140,115 @@ static const symbol s_0_108[5] = { 'k', 'a', 'i', 't', 'z' }; static const struct among a_0[109] = { -/* 0 */ { 4, s_0_0, -1, 1, 0}, -/* 1 */ { 5, s_0_1, 0, 1, 0}, -/* 2 */ { 5, s_0_2, 0, 1, 0}, -/* 3 */ { 5, s_0_3, 0, 1, 0}, -/* 4 */ { 6, s_0_4, -1, 1, 0}, -/* 5 */ { 5, s_0_5, -1, 1, 0}, -/* 6 */ { 6, s_0_6, -1, 1, 0}, -/* 7 */ { 7, s_0_7, -1, 1, 0}, -/* 8 */ { 5, s_0_8, -1, 1, 0}, -/* 9 */ { 5, s_0_9, -1, 1, 0}, -/* 10 */ { 5, s_0_10, -1, 1, 0}, -/* 11 */ { 4, s_0_11, -1, 1, 0}, -/* 12 */ { 5, s_0_12, -1, 1, 0}, -/* 13 */ { 6, s_0_13, 12, 1, 0}, -/* 14 */ { 5, s_0_14, -1, 1, 0}, -/* 15 */ { 6, s_0_15, -1, 2, 0}, -/* 16 */ { 6, s_0_16, -1, 1, 0}, -/* 17 */ { 2, s_0_17, -1, 1, 0}, -/* 18 */ { 5, s_0_18, 17, 1, 0}, -/* 19 */ { 2, s_0_19, -1, 1, 0}, -/* 20 */ { 4, s_0_20, -1, 1, 0}, -/* 21 */ { 4, s_0_21, -1, 1, 0}, -/* 22 */ { 4, s_0_22, -1, 1, 0}, -/* 23 */ { 5, s_0_23, -1, 1, 0}, -/* 24 */ { 6, s_0_24, 23, 1, 0}, -/* 25 */ { 4, s_0_25, -1, 1, 0}, -/* 26 */ { 4, s_0_26, -1, 1, 0}, -/* 27 */ { 6, s_0_27, -1, 1, 0}, -/* 28 */ { 3, s_0_28, -1, 1, 0}, -/* 29 */ { 4, s_0_29, 28, 1, 0}, -/* 30 */ { 7, s_0_30, 29, 4, 0}, -/* 31 */ { 4, s_0_31, 28, 1, 0}, -/* 32 */ { 4, s_0_32, 28, 1, 0}, -/* 33 */ { 4, s_0_33, -1, 1, 0}, -/* 34 */ { 5, s_0_34, 33, 1, 0}, -/* 35 */ { 4, s_0_35, -1, 1, 0}, -/* 36 */ { 4, s_0_36, -1, 1, 0}, -/* 37 */ { 4, s_0_37, -1, 1, 0}, -/* 38 */ { 4, s_0_38, -1, 1, 0}, -/* 39 */ { 3, s_0_39, -1, 1, 0}, -/* 40 */ { 4, s_0_40, 39, 1, 0}, -/* 41 */ { 6, s_0_41, -1, 1, 0}, -/* 42 */ { 3, s_0_42, -1, 1, 0}, -/* 43 */ { 6, s_0_43, 42, 1, 0}, -/* 44 */ { 3, s_0_44, -1, 2, 0}, -/* 45 */ { 6, s_0_45, 44, 1, 0}, -/* 46 */ { 6, s_0_46, 44, 1, 0}, -/* 47 */ { 6, s_0_47, 44, 1, 0}, -/* 48 */ { 3, s_0_48, -1, 1, 0}, -/* 49 */ { 4, s_0_49, 48, 1, 0}, -/* 50 */ { 4, s_0_50, 48, 1, 0}, -/* 51 */ { 4, s_0_51, 48, 1, 0}, -/* 52 */ { 5, s_0_52, -1, 1, 0}, -/* 53 */ { 5, s_0_53, -1, 1, 0}, -/* 54 */ { 5, s_0_54, -1, 1, 0}, -/* 55 */ { 2, s_0_55, -1, 1, 0}, -/* 56 */ { 4, s_0_56, 55, 1, 0}, -/* 57 */ { 5, s_0_57, 55, 1, 0}, -/* 58 */ { 6, s_0_58, 55, 1, 0}, -/* 59 */ { 4, s_0_59, -1, 1, 0}, -/* 60 */ { 4, s_0_60, -1, 1, 0}, -/* 61 */ { 3, s_0_61, -1, 1, 0}, -/* 62 */ { 4, s_0_62, 61, 1, 0}, -/* 63 */ { 3, s_0_63, -1, 1, 0}, -/* 64 */ { 4, s_0_64, -1, 1, 0}, -/* 65 */ { 5, s_0_65, 64, 1, 0}, -/* 66 */ { 2, s_0_66, -1, 1, 0}, -/* 67 */ { 3, s_0_67, -1, 1, 0}, -/* 68 */ { 4, s_0_68, 67, 1, 0}, -/* 69 */ { 4, s_0_69, 67, 1, 0}, -/* 70 */ { 4, s_0_70, 67, 1, 0}, -/* 71 */ { 5, s_0_71, 70, 1, 0}, -/* 72 */ { 5, s_0_72, -1, 2, 0}, -/* 73 */ { 5, s_0_73, -1, 1, 0}, -/* 74 */ { 5, s_0_74, -1, 1, 0}, -/* 75 */ { 6, s_0_75, 74, 1, 0}, -/* 76 */ { 2, s_0_76, -1, 1, 0}, -/* 77 */ { 3, s_0_77, 76, 1, 0}, -/* 78 */ { 4, s_0_78, 77, 1, 0}, -/* 79 */ { 3, s_0_79, 76, 1, 0}, -/* 80 */ { 4, s_0_80, 76, 1, 0}, -/* 81 */ { 7, s_0_81, -1, 3, 0}, -/* 82 */ { 3, s_0_82, -1, 1, 0}, -/* 83 */ { 3, s_0_83, -1, 1, 0}, -/* 84 */ { 3, s_0_84, -1, 1, 0}, -/* 85 */ { 5, s_0_85, 84, 1, 0}, -/* 86 */ { 4, s_0_86, -1, 1, 0}, -/* 87 */ { 5, s_0_87, 86, 1, 0}, -/* 88 */ { 3, s_0_88, -1, 1, 0}, -/* 89 */ { 5, s_0_89, -1, 1, 0}, -/* 90 */ { 2, s_0_90, -1, 1, 0}, -/* 91 */ { 3, s_0_91, 90, 1, 0}, -/* 92 */ { 3, s_0_92, -1, 1, 0}, -/* 93 */ { 4, s_0_93, -1, 1, 0}, -/* 94 */ { 2, s_0_94, -1, 1, 0}, -/* 95 */ { 3, s_0_95, 94, 1, 0}, -/* 96 */ { 4, s_0_96, -1, 1, 0}, -/* 97 */ { 2, s_0_97, -1, 1, 0}, -/* 98 */ { 5, s_0_98, -1, 1, 0}, -/* 99 */ { 2, s_0_99, -1, 1, 0}, -/*100 */ { 3, s_0_100, 99, 1, 0}, -/*101 */ { 6, s_0_101, 100, 1, 0}, -/*102 */ { 4, s_0_102, 100, 1, 0}, -/*103 */ { 6, s_0_103, 99, 5, 0}, -/*104 */ { 2, s_0_104, -1, 1, 0}, -/*105 */ { 5, s_0_105, 104, 1, 0}, -/*106 */ { 4, s_0_106, 104, 1, 0}, -/*107 */ { 5, s_0_107, -1, 1, 0}, -/*108 */ { 5, s_0_108, -1, 1, 0} +{ 4, s_0_0, -1, 1, 0}, +{ 5, s_0_1, 0, 1, 0}, +{ 5, s_0_2, 0, 1, 0}, +{ 5, s_0_3, 0, 1, 0}, +{ 6, s_0_4, -1, 1, 0}, +{ 5, s_0_5, -1, 1, 0}, +{ 6, s_0_6, -1, 1, 0}, +{ 7, s_0_7, -1, 1, 0}, +{ 5, s_0_8, -1, 1, 0}, +{ 5, s_0_9, -1, 1, 0}, +{ 5, s_0_10, -1, 1, 0}, +{ 4, s_0_11, -1, 1, 0}, +{ 5, s_0_12, -1, 1, 0}, +{ 6, s_0_13, 12, 1, 0}, +{ 5, s_0_14, -1, 1, 0}, +{ 6, s_0_15, -1, 2, 0}, +{ 6, s_0_16, -1, 1, 0}, +{ 2, s_0_17, -1, 1, 0}, +{ 5, s_0_18, 17, 1, 0}, +{ 2, s_0_19, -1, 1, 0}, +{ 4, s_0_20, -1, 1, 0}, +{ 4, s_0_21, -1, 1, 0}, +{ 4, s_0_22, -1, 1, 0}, +{ 5, s_0_23, -1, 1, 0}, +{ 6, s_0_24, 23, 1, 0}, +{ 4, s_0_25, -1, 1, 0}, +{ 4, s_0_26, -1, 1, 0}, +{ 6, s_0_27, -1, 1, 0}, +{ 3, s_0_28, -1, 1, 0}, +{ 4, s_0_29, 28, 1, 0}, +{ 7, s_0_30, 29, 4, 0}, +{ 4, s_0_31, 28, 1, 0}, +{ 4, s_0_32, 28, 1, 0}, +{ 4, s_0_33, -1, 1, 0}, +{ 5, s_0_34, 33, 1, 0}, +{ 4, s_0_35, -1, 1, 0}, +{ 4, s_0_36, -1, 1, 0}, +{ 4, s_0_37, -1, 1, 0}, +{ 4, s_0_38, -1, 1, 0}, +{ 3, s_0_39, -1, 1, 0}, +{ 4, s_0_40, 39, 1, 0}, +{ 6, s_0_41, -1, 1, 0}, +{ 3, s_0_42, -1, 1, 0}, +{ 6, s_0_43, 42, 1, 0}, +{ 3, s_0_44, -1, 2, 0}, +{ 6, s_0_45, 44, 1, 0}, +{ 6, s_0_46, 44, 1, 0}, +{ 6, s_0_47, 44, 1, 0}, +{ 3, s_0_48, -1, 1, 0}, +{ 4, s_0_49, 48, 1, 0}, +{ 4, s_0_50, 48, 1, 0}, +{ 4, s_0_51, 48, 1, 0}, +{ 5, s_0_52, -1, 1, 0}, +{ 5, s_0_53, -1, 1, 0}, +{ 5, s_0_54, -1, 1, 0}, +{ 2, s_0_55, -1, 1, 0}, +{ 4, s_0_56, 55, 1, 0}, +{ 5, s_0_57, 55, 1, 0}, +{ 6, s_0_58, 55, 1, 0}, +{ 4, s_0_59, -1, 1, 0}, +{ 4, s_0_60, -1, 1, 0}, +{ 3, s_0_61, -1, 1, 0}, +{ 4, s_0_62, 61, 1, 0}, +{ 3, s_0_63, -1, 1, 0}, +{ 4, s_0_64, -1, 1, 0}, +{ 5, s_0_65, 64, 1, 0}, +{ 2, s_0_66, -1, 1, 0}, +{ 3, s_0_67, -1, 1, 0}, +{ 4, s_0_68, 67, 1, 0}, +{ 4, s_0_69, 67, 1, 0}, +{ 4, s_0_70, 67, 1, 0}, +{ 5, s_0_71, 70, 1, 0}, +{ 5, s_0_72, -1, 2, 0}, +{ 5, s_0_73, -1, 1, 0}, +{ 5, s_0_74, -1, 1, 0}, +{ 6, s_0_75, 74, 1, 0}, +{ 2, s_0_76, -1, 1, 0}, +{ 3, s_0_77, 76, 1, 0}, +{ 4, s_0_78, 77, 1, 0}, +{ 3, s_0_79, 76, 1, 0}, +{ 4, s_0_80, 76, 1, 0}, +{ 7, s_0_81, -1, 3, 0}, +{ 3, s_0_82, -1, 1, 0}, +{ 3, s_0_83, -1, 1, 0}, +{ 3, s_0_84, -1, 1, 0}, +{ 5, s_0_85, 84, 1, 0}, +{ 4, s_0_86, -1, 1, 0}, +{ 5, s_0_87, 86, 1, 0}, +{ 3, s_0_88, -1, 1, 0}, +{ 5, s_0_89, -1, 1, 0}, +{ 2, s_0_90, -1, 1, 0}, +{ 3, s_0_91, 90, 1, 0}, +{ 3, s_0_92, -1, 1, 0}, +{ 4, s_0_93, -1, 1, 0}, +{ 2, s_0_94, -1, 1, 0}, +{ 3, s_0_95, 94, 1, 0}, +{ 4, s_0_96, -1, 1, 0}, +{ 2, s_0_97, -1, 1, 0}, +{ 5, s_0_98, -1, 1, 0}, +{ 2, s_0_99, -1, 1, 0}, +{ 3, s_0_100, 99, 1, 0}, +{ 6, s_0_101, 100, 1, 0}, +{ 4, s_0_102, 100, 1, 0}, +{ 6, s_0_103, 99, 5, 0}, +{ 2, s_0_104, -1, 1, 0}, +{ 5, s_0_105, 104, 1, 0}, +{ 4, s_0_106, 104, 1, 0}, +{ 5, s_0_107, -1, 1, 0}, +{ 5, s_0_108, -1, 1, 0} }; static const symbol s_1_0[3] = { 'a', 'd', 'a' }; @@ -549,301 +549,301 @@ static const symbol s_1_294[5] = { 'k', 'o', 'i', 't', 'z' }; static const struct among a_1[295] = { -/* 0 */ { 3, s_1_0, -1, 1, 0}, -/* 1 */ { 4, s_1_1, 0, 1, 0}, -/* 2 */ { 4, s_1_2, -1, 1, 0}, -/* 3 */ { 5, s_1_3, -1, 1, 0}, -/* 4 */ { 5, s_1_4, -1, 1, 0}, -/* 5 */ { 5, s_1_5, -1, 1, 0}, -/* 6 */ { 5, s_1_6, -1, 1, 0}, -/* 7 */ { 6, s_1_7, 6, 1, 0}, -/* 8 */ { 6, s_1_8, 6, 1, 0}, -/* 9 */ { 5, s_1_9, -1, 1, 0}, -/* 10 */ { 5, s_1_10, -1, 1, 0}, -/* 11 */ { 6, s_1_11, 10, 1, 0}, -/* 12 */ { 5, s_1_12, -1, 1, 0}, -/* 13 */ { 4, s_1_13, -1, 1, 0}, -/* 14 */ { 5, s_1_14, -1, 1, 0}, -/* 15 */ { 3, s_1_15, -1, 1, 0}, -/* 16 */ { 4, s_1_16, 15, 1, 0}, -/* 17 */ { 6, s_1_17, 15, 1, 0}, -/* 18 */ { 4, s_1_18, 15, 1, 0}, -/* 19 */ { 5, s_1_19, 18, 1, 0}, -/* 20 */ { 3, s_1_20, -1, 1, 0}, -/* 21 */ { 6, s_1_21, -1, 1, 0}, -/* 22 */ { 3, s_1_22, -1, 1, 0}, -/* 23 */ { 5, s_1_23, 22, 1, 0}, -/* 24 */ { 5, s_1_24, 22, 1, 0}, -/* 25 */ { 5, s_1_25, 22, 1, 0}, -/* 26 */ { 5, s_1_26, -1, 1, 0}, -/* 27 */ { 2, s_1_27, -1, 1, 0}, -/* 28 */ { 4, s_1_28, 27, 1, 0}, -/* 29 */ { 4, s_1_29, -1, 1, 0}, -/* 30 */ { 5, s_1_30, -1, 1, 0}, -/* 31 */ { 6, s_1_31, 30, 1, 0}, -/* 32 */ { 6, s_1_32, -1, 1, 0}, -/* 33 */ { 6, s_1_33, -1, 1, 0}, -/* 34 */ { 4, s_1_34, -1, 1, 0}, -/* 35 */ { 4, s_1_35, -1, 1, 0}, -/* 36 */ { 5, s_1_36, 35, 1, 0}, -/* 37 */ { 5, s_1_37, 35, 1, 0}, -/* 38 */ { 5, s_1_38, -1, 1, 0}, -/* 39 */ { 4, s_1_39, -1, 1, 0}, -/* 40 */ { 3, s_1_40, -1, 1, 0}, -/* 41 */ { 5, s_1_41, 40, 1, 0}, -/* 42 */ { 3, s_1_42, -1, 1, 0}, -/* 43 */ { 4, s_1_43, 42, 1, 0}, -/* 44 */ { 4, s_1_44, -1, 1, 0}, -/* 45 */ { 5, s_1_45, 44, 1, 0}, -/* 46 */ { 5, s_1_46, 44, 1, 0}, -/* 47 */ { 5, s_1_47, 44, 1, 0}, -/* 48 */ { 4, s_1_48, -1, 1, 0}, -/* 49 */ { 5, s_1_49, 48, 1, 0}, -/* 50 */ { 5, s_1_50, 48, 1, 0}, -/* 51 */ { 6, s_1_51, -1, 2, 0}, -/* 52 */ { 6, s_1_52, -1, 1, 0}, -/* 53 */ { 6, s_1_53, -1, 1, 0}, -/* 54 */ { 5, s_1_54, -1, 1, 0}, -/* 55 */ { 4, s_1_55, -1, 1, 0}, -/* 56 */ { 3, s_1_56, -1, 1, 0}, -/* 57 */ { 4, s_1_57, -1, 1, 0}, -/* 58 */ { 5, s_1_58, -1, 1, 0}, -/* 59 */ { 6, s_1_59, -1, 1, 0}, -/* 60 */ { 2, s_1_60, -1, 1, 0}, -/* 61 */ { 4, s_1_61, 60, 3, 0}, -/* 62 */ { 5, s_1_62, 60, 10, 0}, -/* 63 */ { 3, s_1_63, 60, 1, 0}, -/* 64 */ { 3, s_1_64, 60, 1, 0}, -/* 65 */ { 3, s_1_65, 60, 1, 0}, -/* 66 */ { 6, s_1_66, -1, 1, 0}, -/* 67 */ { 4, s_1_67, -1, 1, 0}, -/* 68 */ { 5, s_1_68, -1, 1, 0}, -/* 69 */ { 5, s_1_69, -1, 1, 0}, -/* 70 */ { 4, s_1_70, -1, 1, 0}, -/* 71 */ { 3, s_1_71, -1, 1, 0}, -/* 72 */ { 2, s_1_72, -1, 1, 0}, -/* 73 */ { 4, s_1_73, 72, 1, 0}, -/* 74 */ { 3, s_1_74, 72, 1, 0}, -/* 75 */ { 7, s_1_75, 74, 1, 0}, -/* 76 */ { 7, s_1_76, 74, 1, 0}, -/* 77 */ { 6, s_1_77, 74, 1, 0}, -/* 78 */ { 5, s_1_78, 72, 1, 0}, -/* 79 */ { 6, s_1_79, 78, 1, 0}, -/* 80 */ { 4, s_1_80, 72, 1, 0}, -/* 81 */ { 4, s_1_81, 72, 1, 0}, -/* 82 */ { 5, s_1_82, 72, 1, 0}, -/* 83 */ { 3, s_1_83, 72, 1, 0}, -/* 84 */ { 4, s_1_84, 83, 1, 0}, -/* 85 */ { 5, s_1_85, 83, 1, 0}, -/* 86 */ { 6, s_1_86, 85, 1, 0}, -/* 87 */ { 5, s_1_87, -1, 1, 0}, -/* 88 */ { 6, s_1_88, 87, 1, 0}, -/* 89 */ { 4, s_1_89, -1, 1, 0}, -/* 90 */ { 4, s_1_90, -1, 1, 0}, -/* 91 */ { 3, s_1_91, -1, 1, 0}, -/* 92 */ { 5, s_1_92, 91, 1, 0}, -/* 93 */ { 4, s_1_93, 91, 1, 0}, -/* 94 */ { 3, s_1_94, -1, 1, 0}, -/* 95 */ { 5, s_1_95, 94, 1, 0}, -/* 96 */ { 4, s_1_96, -1, 1, 0}, -/* 97 */ { 5, s_1_97, 96, 1, 0}, -/* 98 */ { 5, s_1_98, 96, 1, 0}, -/* 99 */ { 4, s_1_99, -1, 1, 0}, -/*100 */ { 4, s_1_100, -1, 1, 0}, -/*101 */ { 4, s_1_101, -1, 1, 0}, -/*102 */ { 3, s_1_102, -1, 1, 0}, -/*103 */ { 4, s_1_103, 102, 1, 0}, -/*104 */ { 4, s_1_104, 102, 1, 0}, -/*105 */ { 4, s_1_105, -1, 1, 0}, -/*106 */ { 4, s_1_106, -1, 1, 0}, -/*107 */ { 4, s_1_107, -1, 1, 0}, -/*108 */ { 2, s_1_108, -1, 1, 0}, -/*109 */ { 3, s_1_109, 108, 1, 0}, -/*110 */ { 4, s_1_110, 109, 1, 0}, -/*111 */ { 5, s_1_111, 109, 1, 0}, -/*112 */ { 5, s_1_112, 109, 1, 0}, -/*113 */ { 4, s_1_113, 109, 1, 0}, -/*114 */ { 5, s_1_114, 113, 1, 0}, -/*115 */ { 5, s_1_115, 109, 1, 0}, -/*116 */ { 4, s_1_116, 108, 1, 0}, -/*117 */ { 4, s_1_117, 108, 1, 0}, -/*118 */ { 4, s_1_118, 108, 1, 0}, -/*119 */ { 3, s_1_119, 108, 2, 0}, -/*120 */ { 6, s_1_120, 108, 1, 0}, -/*121 */ { 5, s_1_121, 108, 1, 0}, -/*122 */ { 3, s_1_122, 108, 1, 0}, -/*123 */ { 2, s_1_123, -1, 1, 0}, -/*124 */ { 3, s_1_124, 123, 1, 0}, -/*125 */ { 2, s_1_125, -1, 1, 0}, -/*126 */ { 3, s_1_126, 125, 1, 0}, -/*127 */ { 4, s_1_127, 126, 1, 0}, -/*128 */ { 3, s_1_128, 125, 1, 0}, -/*129 */ { 3, s_1_129, -1, 1, 0}, -/*130 */ { 6, s_1_130, 129, 1, 0}, -/*131 */ { 5, s_1_131, 129, 1, 0}, -/*132 */ { 5, s_1_132, -1, 1, 0}, -/*133 */ { 5, s_1_133, -1, 1, 0}, -/*134 */ { 5, s_1_134, -1, 1, 0}, -/*135 */ { 4, s_1_135, -1, 1, 0}, -/*136 */ { 3, s_1_136, -1, 1, 0}, -/*137 */ { 6, s_1_137, 136, 1, 0}, -/*138 */ { 5, s_1_138, 136, 1, 0}, -/*139 */ { 4, s_1_139, -1, 1, 0}, -/*140 */ { 3, s_1_140, -1, 1, 0}, -/*141 */ { 4, s_1_141, 140, 1, 0}, -/*142 */ { 2, s_1_142, -1, 1, 0}, -/*143 */ { 3, s_1_143, 142, 1, 0}, -/*144 */ { 5, s_1_144, 142, 1, 0}, -/*145 */ { 3, s_1_145, 142, 2, 0}, -/*146 */ { 6, s_1_146, 145, 1, 0}, -/*147 */ { 5, s_1_147, 145, 1, 0}, -/*148 */ { 6, s_1_148, 145, 1, 0}, -/*149 */ { 6, s_1_149, 145, 1, 0}, -/*150 */ { 6, s_1_150, 145, 1, 0}, -/*151 */ { 4, s_1_151, -1, 1, 0}, -/*152 */ { 4, s_1_152, -1, 1, 0}, -/*153 */ { 4, s_1_153, -1, 1, 0}, -/*154 */ { 4, s_1_154, -1, 1, 0}, -/*155 */ { 5, s_1_155, 154, 1, 0}, -/*156 */ { 5, s_1_156, 154, 1, 0}, -/*157 */ { 4, s_1_157, -1, 1, 0}, -/*158 */ { 2, s_1_158, -1, 1, 0}, -/*159 */ { 4, s_1_159, -1, 1, 0}, -/*160 */ { 5, s_1_160, 159, 1, 0}, -/*161 */ { 4, s_1_161, -1, 1, 0}, -/*162 */ { 3, s_1_162, -1, 1, 0}, -/*163 */ { 4, s_1_163, -1, 1, 0}, -/*164 */ { 2, s_1_164, -1, 1, 0}, -/*165 */ { 5, s_1_165, 164, 1, 0}, -/*166 */ { 3, s_1_166, 164, 1, 0}, -/*167 */ { 4, s_1_167, 166, 1, 0}, -/*168 */ { 2, s_1_168, -1, 1, 0}, -/*169 */ { 5, s_1_169, -1, 1, 0}, -/*170 */ { 2, s_1_170, -1, 1, 0}, -/*171 */ { 4, s_1_171, 170, 1, 0}, -/*172 */ { 4, s_1_172, 170, 1, 0}, -/*173 */ { 4, s_1_173, 170, 1, 0}, -/*174 */ { 4, s_1_174, -1, 1, 0}, -/*175 */ { 3, s_1_175, -1, 1, 0}, -/*176 */ { 2, s_1_176, -1, 1, 0}, -/*177 */ { 4, s_1_177, 176, 1, 0}, -/*178 */ { 5, s_1_178, 177, 1, 0}, -/*179 */ { 5, s_1_179, 176, 8, 0}, -/*180 */ { 5, s_1_180, 176, 1, 0}, -/*181 */ { 5, s_1_181, 176, 1, 0}, -/*182 */ { 3, s_1_182, -1, 1, 0}, -/*183 */ { 3, s_1_183, -1, 1, 0}, -/*184 */ { 4, s_1_184, 183, 1, 0}, -/*185 */ { 4, s_1_185, 183, 1, 0}, -/*186 */ { 4, s_1_186, -1, 1, 0}, -/*187 */ { 3, s_1_187, -1, 1, 0}, -/*188 */ { 2, s_1_188, -1, 1, 0}, -/*189 */ { 4, s_1_189, 188, 1, 0}, -/*190 */ { 2, s_1_190, -1, 1, 0}, -/*191 */ { 3, s_1_191, 190, 1, 0}, -/*192 */ { 3, s_1_192, 190, 1, 0}, -/*193 */ { 3, s_1_193, -1, 1, 0}, -/*194 */ { 4, s_1_194, 193, 1, 0}, -/*195 */ { 4, s_1_195, 193, 1, 0}, -/*196 */ { 4, s_1_196, 193, 1, 0}, -/*197 */ { 5, s_1_197, -1, 2, 0}, -/*198 */ { 5, s_1_198, -1, 1, 0}, -/*199 */ { 5, s_1_199, -1, 1, 0}, -/*200 */ { 4, s_1_200, -1, 1, 0}, -/*201 */ { 3, s_1_201, -1, 1, 0}, -/*202 */ { 2, s_1_202, -1, 1, 0}, -/*203 */ { 5, s_1_203, -1, 1, 0}, -/*204 */ { 3, s_1_204, -1, 1, 0}, -/*205 */ { 2, s_1_205, -1, 1, 0}, -/*206 */ { 2, s_1_206, -1, 1, 0}, -/*207 */ { 5, s_1_207, -1, 1, 0}, -/*208 */ { 5, s_1_208, -1, 1, 0}, -/*209 */ { 3, s_1_209, -1, 1, 0}, -/*210 */ { 4, s_1_210, 209, 1, 0}, -/*211 */ { 3, s_1_211, -1, 1, 0}, -/*212 */ { 3, s_1_212, -1, 1, 0}, -/*213 */ { 4, s_1_213, 212, 1, 0}, -/*214 */ { 2, s_1_214, -1, 4, 0}, -/*215 */ { 3, s_1_215, 214, 2, 0}, -/*216 */ { 6, s_1_216, 215, 1, 0}, -/*217 */ { 6, s_1_217, 215, 1, 0}, -/*218 */ { 5, s_1_218, 215, 1, 0}, -/*219 */ { 3, s_1_219, 214, 4, 0}, -/*220 */ { 4, s_1_220, 214, 4, 0}, -/*221 */ { 4, s_1_221, -1, 1, 0}, -/*222 */ { 5, s_1_222, 221, 1, 0}, -/*223 */ { 3, s_1_223, -1, 1, 0}, -/*224 */ { 3, s_1_224, -1, 1, 0}, -/*225 */ { 3, s_1_225, -1, 1, 0}, -/*226 */ { 4, s_1_226, -1, 1, 0}, -/*227 */ { 5, s_1_227, 226, 1, 0}, -/*228 */ { 5, s_1_228, -1, 1, 0}, -/*229 */ { 4, s_1_229, -1, 1, 0}, -/*230 */ { 5, s_1_230, 229, 1, 0}, -/*231 */ { 2, s_1_231, -1, 1, 0}, -/*232 */ { 3, s_1_232, 231, 1, 0}, -/*233 */ { 3, s_1_233, -1, 1, 0}, -/*234 */ { 2, s_1_234, -1, 1, 0}, -/*235 */ { 5, s_1_235, 234, 5, 0}, -/*236 */ { 4, s_1_236, 234, 1, 0}, -/*237 */ { 5, s_1_237, 236, 1, 0}, -/*238 */ { 3, s_1_238, 234, 1, 0}, -/*239 */ { 6, s_1_239, 234, 1, 0}, -/*240 */ { 3, s_1_240, 234, 1, 0}, -/*241 */ { 4, s_1_241, 234, 1, 0}, -/*242 */ { 8, s_1_242, 241, 6, 0}, -/*243 */ { 3, s_1_243, 234, 1, 0}, -/*244 */ { 2, s_1_244, -1, 1, 0}, -/*245 */ { 4, s_1_245, 244, 1, 0}, -/*246 */ { 2, s_1_246, -1, 1, 0}, -/*247 */ { 3, s_1_247, 246, 1, 0}, -/*248 */ { 5, s_1_248, 247, 9, 0}, -/*249 */ { 4, s_1_249, 247, 1, 0}, -/*250 */ { 4, s_1_250, 247, 1, 0}, -/*251 */ { 3, s_1_251, 246, 1, 0}, -/*252 */ { 4, s_1_252, 246, 1, 0}, -/*253 */ { 3, s_1_253, 246, 1, 0}, -/*254 */ { 3, s_1_254, -1, 1, 0}, -/*255 */ { 2, s_1_255, -1, 1, 0}, -/*256 */ { 3, s_1_256, 255, 1, 0}, -/*257 */ { 3, s_1_257, 255, 1, 0}, -/*258 */ { 3, s_1_258, -1, 1, 0}, -/*259 */ { 3, s_1_259, -1, 1, 0}, -/*260 */ { 6, s_1_260, 259, 1, 0}, -/*261 */ { 3, s_1_261, -1, 1, 0}, -/*262 */ { 2, s_1_262, -1, 1, 0}, -/*263 */ { 2, s_1_263, -1, 1, 0}, -/*264 */ { 3, s_1_264, 263, 1, 0}, -/*265 */ { 5, s_1_265, 263, 1, 0}, -/*266 */ { 5, s_1_266, 263, 7, 0}, -/*267 */ { 4, s_1_267, 263, 1, 0}, -/*268 */ { 4, s_1_268, 263, 1, 0}, -/*269 */ { 3, s_1_269, 263, 1, 0}, -/*270 */ { 4, s_1_270, 263, 1, 0}, -/*271 */ { 2, s_1_271, -1, 2, 0}, -/*272 */ { 3, s_1_272, 271, 1, 0}, -/*273 */ { 2, s_1_273, -1, 1, 0}, -/*274 */ { 3, s_1_274, -1, 1, 0}, -/*275 */ { 2, s_1_275, -1, 1, 0}, -/*276 */ { 5, s_1_276, 275, 1, 0}, -/*277 */ { 4, s_1_277, 275, 1, 0}, -/*278 */ { 4, s_1_278, -1, 1, 0}, -/*279 */ { 4, s_1_279, -1, 2, 0}, -/*280 */ { 4, s_1_280, -1, 1, 0}, -/*281 */ { 3, s_1_281, -1, 1, 0}, -/*282 */ { 2, s_1_282, -1, 1, 0}, -/*283 */ { 4, s_1_283, 282, 4, 0}, -/*284 */ { 5, s_1_284, 282, 1, 0}, -/*285 */ { 4, s_1_285, 282, 1, 0}, -/*286 */ { 3, s_1_286, -1, 1, 0}, -/*287 */ { 2, s_1_287, -1, 1, 0}, -/*288 */ { 3, s_1_288, 287, 1, 0}, -/*289 */ { 6, s_1_289, 288, 1, 0}, -/*290 */ { 1, s_1_290, -1, 1, 0}, -/*291 */ { 2, s_1_291, 290, 1, 0}, -/*292 */ { 4, s_1_292, 290, 1, 0}, -/*293 */ { 2, s_1_293, 290, 1, 0}, -/*294 */ { 5, s_1_294, 293, 1, 0} +{ 3, s_1_0, -1, 1, 0}, +{ 4, s_1_1, 0, 1, 0}, +{ 4, s_1_2, -1, 1, 0}, +{ 5, s_1_3, -1, 1, 0}, +{ 5, s_1_4, -1, 1, 0}, +{ 5, s_1_5, -1, 1, 0}, +{ 5, s_1_6, -1, 1, 0}, +{ 6, s_1_7, 6, 1, 0}, +{ 6, s_1_8, 6, 1, 0}, +{ 5, s_1_9, -1, 1, 0}, +{ 5, s_1_10, -1, 1, 0}, +{ 6, s_1_11, 10, 1, 0}, +{ 5, s_1_12, -1, 1, 0}, +{ 4, s_1_13, -1, 1, 0}, +{ 5, s_1_14, -1, 1, 0}, +{ 3, s_1_15, -1, 1, 0}, +{ 4, s_1_16, 15, 1, 0}, +{ 6, s_1_17, 15, 1, 0}, +{ 4, s_1_18, 15, 1, 0}, +{ 5, s_1_19, 18, 1, 0}, +{ 3, s_1_20, -1, 1, 0}, +{ 6, s_1_21, -1, 1, 0}, +{ 3, s_1_22, -1, 1, 0}, +{ 5, s_1_23, 22, 1, 0}, +{ 5, s_1_24, 22, 1, 0}, +{ 5, s_1_25, 22, 1, 0}, +{ 5, s_1_26, -1, 1, 0}, +{ 2, s_1_27, -1, 1, 0}, +{ 4, s_1_28, 27, 1, 0}, +{ 4, s_1_29, -1, 1, 0}, +{ 5, s_1_30, -1, 1, 0}, +{ 6, s_1_31, 30, 1, 0}, +{ 6, s_1_32, -1, 1, 0}, +{ 6, s_1_33, -1, 1, 0}, +{ 4, s_1_34, -1, 1, 0}, +{ 4, s_1_35, -1, 1, 0}, +{ 5, s_1_36, 35, 1, 0}, +{ 5, s_1_37, 35, 1, 0}, +{ 5, s_1_38, -1, 1, 0}, +{ 4, s_1_39, -1, 1, 0}, +{ 3, s_1_40, -1, 1, 0}, +{ 5, s_1_41, 40, 1, 0}, +{ 3, s_1_42, -1, 1, 0}, +{ 4, s_1_43, 42, 1, 0}, +{ 4, s_1_44, -1, 1, 0}, +{ 5, s_1_45, 44, 1, 0}, +{ 5, s_1_46, 44, 1, 0}, +{ 5, s_1_47, 44, 1, 0}, +{ 4, s_1_48, -1, 1, 0}, +{ 5, s_1_49, 48, 1, 0}, +{ 5, s_1_50, 48, 1, 0}, +{ 6, s_1_51, -1, 2, 0}, +{ 6, s_1_52, -1, 1, 0}, +{ 6, s_1_53, -1, 1, 0}, +{ 5, s_1_54, -1, 1, 0}, +{ 4, s_1_55, -1, 1, 0}, +{ 3, s_1_56, -1, 1, 0}, +{ 4, s_1_57, -1, 1, 0}, +{ 5, s_1_58, -1, 1, 0}, +{ 6, s_1_59, -1, 1, 0}, +{ 2, s_1_60, -1, 1, 0}, +{ 4, s_1_61, 60, 3, 0}, +{ 5, s_1_62, 60, 10, 0}, +{ 3, s_1_63, 60, 1, 0}, +{ 3, s_1_64, 60, 1, 0}, +{ 3, s_1_65, 60, 1, 0}, +{ 6, s_1_66, -1, 1, 0}, +{ 4, s_1_67, -1, 1, 0}, +{ 5, s_1_68, -1, 1, 0}, +{ 5, s_1_69, -1, 1, 0}, +{ 4, s_1_70, -1, 1, 0}, +{ 3, s_1_71, -1, 1, 0}, +{ 2, s_1_72, -1, 1, 0}, +{ 4, s_1_73, 72, 1, 0}, +{ 3, s_1_74, 72, 1, 0}, +{ 7, s_1_75, 74, 1, 0}, +{ 7, s_1_76, 74, 1, 0}, +{ 6, s_1_77, 74, 1, 0}, +{ 5, s_1_78, 72, 1, 0}, +{ 6, s_1_79, 78, 1, 0}, +{ 4, s_1_80, 72, 1, 0}, +{ 4, s_1_81, 72, 1, 0}, +{ 5, s_1_82, 72, 1, 0}, +{ 3, s_1_83, 72, 1, 0}, +{ 4, s_1_84, 83, 1, 0}, +{ 5, s_1_85, 83, 1, 0}, +{ 6, s_1_86, 85, 1, 0}, +{ 5, s_1_87, -1, 1, 0}, +{ 6, s_1_88, 87, 1, 0}, +{ 4, s_1_89, -1, 1, 0}, +{ 4, s_1_90, -1, 1, 0}, +{ 3, s_1_91, -1, 1, 0}, +{ 5, s_1_92, 91, 1, 0}, +{ 4, s_1_93, 91, 1, 0}, +{ 3, s_1_94, -1, 1, 0}, +{ 5, s_1_95, 94, 1, 0}, +{ 4, s_1_96, -1, 1, 0}, +{ 5, s_1_97, 96, 1, 0}, +{ 5, s_1_98, 96, 1, 0}, +{ 4, s_1_99, -1, 1, 0}, +{ 4, s_1_100, -1, 1, 0}, +{ 4, s_1_101, -1, 1, 0}, +{ 3, s_1_102, -1, 1, 0}, +{ 4, s_1_103, 102, 1, 0}, +{ 4, s_1_104, 102, 1, 0}, +{ 4, s_1_105, -1, 1, 0}, +{ 4, s_1_106, -1, 1, 0}, +{ 4, s_1_107, -1, 1, 0}, +{ 2, s_1_108, -1, 1, 0}, +{ 3, s_1_109, 108, 1, 0}, +{ 4, s_1_110, 109, 1, 0}, +{ 5, s_1_111, 109, 1, 0}, +{ 5, s_1_112, 109, 1, 0}, +{ 4, s_1_113, 109, 1, 0}, +{ 5, s_1_114, 113, 1, 0}, +{ 5, s_1_115, 109, 1, 0}, +{ 4, s_1_116, 108, 1, 0}, +{ 4, s_1_117, 108, 1, 0}, +{ 4, s_1_118, 108, 1, 0}, +{ 3, s_1_119, 108, 2, 0}, +{ 6, s_1_120, 108, 1, 0}, +{ 5, s_1_121, 108, 1, 0}, +{ 3, s_1_122, 108, 1, 0}, +{ 2, s_1_123, -1, 1, 0}, +{ 3, s_1_124, 123, 1, 0}, +{ 2, s_1_125, -1, 1, 0}, +{ 3, s_1_126, 125, 1, 0}, +{ 4, s_1_127, 126, 1, 0}, +{ 3, s_1_128, 125, 1, 0}, +{ 3, s_1_129, -1, 1, 0}, +{ 6, s_1_130, 129, 1, 0}, +{ 5, s_1_131, 129, 1, 0}, +{ 5, s_1_132, -1, 1, 0}, +{ 5, s_1_133, -1, 1, 0}, +{ 5, s_1_134, -1, 1, 0}, +{ 4, s_1_135, -1, 1, 0}, +{ 3, s_1_136, -1, 1, 0}, +{ 6, s_1_137, 136, 1, 0}, +{ 5, s_1_138, 136, 1, 0}, +{ 4, s_1_139, -1, 1, 0}, +{ 3, s_1_140, -1, 1, 0}, +{ 4, s_1_141, 140, 1, 0}, +{ 2, s_1_142, -1, 1, 0}, +{ 3, s_1_143, 142, 1, 0}, +{ 5, s_1_144, 142, 1, 0}, +{ 3, s_1_145, 142, 2, 0}, +{ 6, s_1_146, 145, 1, 0}, +{ 5, s_1_147, 145, 1, 0}, +{ 6, s_1_148, 145, 1, 0}, +{ 6, s_1_149, 145, 1, 0}, +{ 6, s_1_150, 145, 1, 0}, +{ 4, s_1_151, -1, 1, 0}, +{ 4, s_1_152, -1, 1, 0}, +{ 4, s_1_153, -1, 1, 0}, +{ 4, s_1_154, -1, 1, 0}, +{ 5, s_1_155, 154, 1, 0}, +{ 5, s_1_156, 154, 1, 0}, +{ 4, s_1_157, -1, 1, 0}, +{ 2, s_1_158, -1, 1, 0}, +{ 4, s_1_159, -1, 1, 0}, +{ 5, s_1_160, 159, 1, 0}, +{ 4, s_1_161, -1, 1, 0}, +{ 3, s_1_162, -1, 1, 0}, +{ 4, s_1_163, -1, 1, 0}, +{ 2, s_1_164, -1, 1, 0}, +{ 5, s_1_165, 164, 1, 0}, +{ 3, s_1_166, 164, 1, 0}, +{ 4, s_1_167, 166, 1, 0}, +{ 2, s_1_168, -1, 1, 0}, +{ 5, s_1_169, -1, 1, 0}, +{ 2, s_1_170, -1, 1, 0}, +{ 4, s_1_171, 170, 1, 0}, +{ 4, s_1_172, 170, 1, 0}, +{ 4, s_1_173, 170, 1, 0}, +{ 4, s_1_174, -1, 1, 0}, +{ 3, s_1_175, -1, 1, 0}, +{ 2, s_1_176, -1, 1, 0}, +{ 4, s_1_177, 176, 1, 0}, +{ 5, s_1_178, 177, 1, 0}, +{ 5, s_1_179, 176, 8, 0}, +{ 5, s_1_180, 176, 1, 0}, +{ 5, s_1_181, 176, 1, 0}, +{ 3, s_1_182, -1, 1, 0}, +{ 3, s_1_183, -1, 1, 0}, +{ 4, s_1_184, 183, 1, 0}, +{ 4, s_1_185, 183, 1, 0}, +{ 4, s_1_186, -1, 1, 0}, +{ 3, s_1_187, -1, 1, 0}, +{ 2, s_1_188, -1, 1, 0}, +{ 4, s_1_189, 188, 1, 0}, +{ 2, s_1_190, -1, 1, 0}, +{ 3, s_1_191, 190, 1, 0}, +{ 3, s_1_192, 190, 1, 0}, +{ 3, s_1_193, -1, 1, 0}, +{ 4, s_1_194, 193, 1, 0}, +{ 4, s_1_195, 193, 1, 0}, +{ 4, s_1_196, 193, 1, 0}, +{ 5, s_1_197, -1, 2, 0}, +{ 5, s_1_198, -1, 1, 0}, +{ 5, s_1_199, -1, 1, 0}, +{ 4, s_1_200, -1, 1, 0}, +{ 3, s_1_201, -1, 1, 0}, +{ 2, s_1_202, -1, 1, 0}, +{ 5, s_1_203, -1, 1, 0}, +{ 3, s_1_204, -1, 1, 0}, +{ 2, s_1_205, -1, 1, 0}, +{ 2, s_1_206, -1, 1, 0}, +{ 5, s_1_207, -1, 1, 0}, +{ 5, s_1_208, -1, 1, 0}, +{ 3, s_1_209, -1, 1, 0}, +{ 4, s_1_210, 209, 1, 0}, +{ 3, s_1_211, -1, 1, 0}, +{ 3, s_1_212, -1, 1, 0}, +{ 4, s_1_213, 212, 1, 0}, +{ 2, s_1_214, -1, 4, 0}, +{ 3, s_1_215, 214, 2, 0}, +{ 6, s_1_216, 215, 1, 0}, +{ 6, s_1_217, 215, 1, 0}, +{ 5, s_1_218, 215, 1, 0}, +{ 3, s_1_219, 214, 4, 0}, +{ 4, s_1_220, 214, 4, 0}, +{ 4, s_1_221, -1, 1, 0}, +{ 5, s_1_222, 221, 1, 0}, +{ 3, s_1_223, -1, 1, 0}, +{ 3, s_1_224, -1, 1, 0}, +{ 3, s_1_225, -1, 1, 0}, +{ 4, s_1_226, -1, 1, 0}, +{ 5, s_1_227, 226, 1, 0}, +{ 5, s_1_228, -1, 1, 0}, +{ 4, s_1_229, -1, 1, 0}, +{ 5, s_1_230, 229, 1, 0}, +{ 2, s_1_231, -1, 1, 0}, +{ 3, s_1_232, 231, 1, 0}, +{ 3, s_1_233, -1, 1, 0}, +{ 2, s_1_234, -1, 1, 0}, +{ 5, s_1_235, 234, 5, 0}, +{ 4, s_1_236, 234, 1, 0}, +{ 5, s_1_237, 236, 1, 0}, +{ 3, s_1_238, 234, 1, 0}, +{ 6, s_1_239, 234, 1, 0}, +{ 3, s_1_240, 234, 1, 0}, +{ 4, s_1_241, 234, 1, 0}, +{ 8, s_1_242, 241, 6, 0}, +{ 3, s_1_243, 234, 1, 0}, +{ 2, s_1_244, -1, 1, 0}, +{ 4, s_1_245, 244, 1, 0}, +{ 2, s_1_246, -1, 1, 0}, +{ 3, s_1_247, 246, 1, 0}, +{ 5, s_1_248, 247, 9, 0}, +{ 4, s_1_249, 247, 1, 0}, +{ 4, s_1_250, 247, 1, 0}, +{ 3, s_1_251, 246, 1, 0}, +{ 4, s_1_252, 246, 1, 0}, +{ 3, s_1_253, 246, 1, 0}, +{ 3, s_1_254, -1, 1, 0}, +{ 2, s_1_255, -1, 1, 0}, +{ 3, s_1_256, 255, 1, 0}, +{ 3, s_1_257, 255, 1, 0}, +{ 3, s_1_258, -1, 1, 0}, +{ 3, s_1_259, -1, 1, 0}, +{ 6, s_1_260, 259, 1, 0}, +{ 3, s_1_261, -1, 1, 0}, +{ 2, s_1_262, -1, 1, 0}, +{ 2, s_1_263, -1, 1, 0}, +{ 3, s_1_264, 263, 1, 0}, +{ 5, s_1_265, 263, 1, 0}, +{ 5, s_1_266, 263, 7, 0}, +{ 4, s_1_267, 263, 1, 0}, +{ 4, s_1_268, 263, 1, 0}, +{ 3, s_1_269, 263, 1, 0}, +{ 4, s_1_270, 263, 1, 0}, +{ 2, s_1_271, -1, 2, 0}, +{ 3, s_1_272, 271, 1, 0}, +{ 2, s_1_273, -1, 1, 0}, +{ 3, s_1_274, -1, 1, 0}, +{ 2, s_1_275, -1, 1, 0}, +{ 5, s_1_276, 275, 1, 0}, +{ 4, s_1_277, 275, 1, 0}, +{ 4, s_1_278, -1, 1, 0}, +{ 4, s_1_279, -1, 2, 0}, +{ 4, s_1_280, -1, 1, 0}, +{ 3, s_1_281, -1, 1, 0}, +{ 2, s_1_282, -1, 1, 0}, +{ 4, s_1_283, 282, 4, 0}, +{ 5, s_1_284, 282, 1, 0}, +{ 4, s_1_285, 282, 1, 0}, +{ 3, s_1_286, -1, 1, 0}, +{ 2, s_1_287, -1, 1, 0}, +{ 3, s_1_288, 287, 1, 0}, +{ 6, s_1_289, 288, 1, 0}, +{ 1, s_1_290, -1, 1, 0}, +{ 2, s_1_291, 290, 1, 0}, +{ 4, s_1_292, 290, 1, 0}, +{ 2, s_1_293, 290, 1, 0}, +{ 5, s_1_294, 293, 1, 0} }; static const symbol s_2_0[4] = { 'z', 'l', 'e', 'a' }; @@ -868,25 +868,25 @@ static const symbol s_2_18[2] = { 't', 'o' }; static const struct among a_2[19] = { -/* 0 */ { 4, s_2_0, -1, 2, 0}, -/* 1 */ { 5, s_2_1, -1, 1, 0}, -/* 2 */ { 2, s_2_2, -1, 1, 0}, -/* 3 */ { 3, s_2_3, -1, 1, 0}, -/* 4 */ { 4, s_2_4, -1, 1, 0}, -/* 5 */ { 4, s_2_5, -1, 1, 0}, -/* 6 */ { 4, s_2_6, -1, 1, 0}, -/* 7 */ { 4, s_2_7, -1, 1, 0}, -/* 8 */ { 2, s_2_8, -1, 1, 0}, -/* 9 */ { 2, s_2_9, -1, 1, 0}, -/* 10 */ { 2, s_2_10, -1, 1, 0}, -/* 11 */ { 5, s_2_11, 10, 1, 0}, -/* 12 */ { 3, s_2_12, 10, 1, 0}, -/* 13 */ { 5, s_2_13, 12, 1, 0}, -/* 14 */ { 4, s_2_14, 10, 1, 0}, -/* 15 */ { 2, s_2_15, -1, 1, 0}, -/* 16 */ { 2, s_2_16, -1, 1, 0}, -/* 17 */ { 3, s_2_17, 16, 1, 0}, -/* 18 */ { 2, s_2_18, -1, 1, 0} +{ 4, s_2_0, -1, 2, 0}, +{ 5, s_2_1, -1, 1, 0}, +{ 2, s_2_2, -1, 1, 0}, +{ 3, s_2_3, -1, 1, 0}, +{ 4, s_2_4, -1, 1, 0}, +{ 4, s_2_5, -1, 1, 0}, +{ 4, s_2_6, -1, 1, 0}, +{ 4, s_2_7, -1, 1, 0}, +{ 2, s_2_8, -1, 1, 0}, +{ 2, s_2_9, -1, 1, 0}, +{ 2, s_2_10, -1, 1, 0}, +{ 5, s_2_11, 10, 1, 0}, +{ 3, s_2_12, 10, 1, 0}, +{ 5, s_2_13, 12, 1, 0}, +{ 4, s_2_14, 10, 1, 0}, +{ 2, s_2_15, -1, 1, 0}, +{ 2, s_2_16, -1, 1, 0}, +{ 3, s_2_17, 16, 1, 0}, +{ 2, s_2_18, -1, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16 }; @@ -903,16 +903,16 @@ static const symbol s_8[] = { 'i', 'g', 'a', 'r', 'o' }; static const symbol s_9[] = { 'a', 'u', 'r', 'k', 'a' }; static const symbol s_10[] = { 'z' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $pV = , line 25 */ - z->I[1] = z->l; /* $p1 = , line 26 */ - z->I[2] = z->l; /* $p2 = , line 27 */ - { int c1 = z->c; /* do, line 29 */ - { int c2 = z->c; /* or, line 31 */ - if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab2; /* grouping v, line 30 */ - { int c3 = z->c; /* or, line 30 */ - if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab4; /* non v, line 30 */ - { /* gopast */ /* grouping v, line 30 */ +static int r_mark_regions(struct SN_env * z) { + z->I[2] = z->l; + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int c2 = z->c; + if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab2; + { int c3 = z->c; + if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab4; + { int ret = out_grouping_U(z, g_v, 97, 117, 1); if (ret < 0) goto lab4; z->c += ret; @@ -920,8 +920,8 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab3; lab4: z->c = c3; - if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab2; /* grouping v, line 30 */ - { /* gopast */ /* non v, line 30 */ + if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab2; + { int ret = in_grouping_U(z, g_v, 97, 117, 1); if (ret < 0) goto lab2; z->c += ret; @@ -931,10 +931,10 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab1; lab2: z->c = c2; - if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab0; /* non v, line 32 */ - { int c4 = z->c; /* or, line 32 */ - if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab6; /* non v, line 32 */ - { /* gopast */ /* grouping v, line 32 */ + if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab0; + { int c4 = z->c; + if (out_grouping_U(z, g_v, 97, 117, 0)) goto lab6; + { int ret = out_grouping_U(z, g_v, 97, 117, 1); if (ret < 0) goto lab6; z->c += ret; @@ -942,100 +942,100 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab5; lab6: z->c = c4; - if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab0; /* grouping v, line 32 */ - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (in_grouping_U(z, g_v, 97, 117, 0)) goto lab0; + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 32 */ + z->c = ret; } } lab5: ; } lab1: - z->I[0] = z->c; /* setmark pV, line 33 */ + z->I[2] = z->c; lab0: z->c = c1; } - { int c5 = z->c; /* do, line 35 */ - { /* gopast */ /* grouping v, line 36 */ + { int c5 = z->c; + { int ret = out_grouping_U(z, g_v, 97, 117, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 36 */ + { int ret = in_grouping_U(z, g_v, 97, 117, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[1] = z->c; /* setmark p1, line 36 */ - { /* gopast */ /* grouping v, line 37 */ + z->I[1] = z->c; + { int ret = out_grouping_U(z, g_v, 97, 117, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 37 */ + { int ret = in_grouping_U(z, g_v, 97, 117, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[2] = z->c; /* setmark p2, line 37 */ + z->I[0] = z->c; lab7: z->c = c5; } return 1; } -static int r_RV(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 43 */ +static int r_RV(struct SN_env * z) { + if (!(z->I[2] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 44 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 45 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_aditzak(struct SN_env * z) { /* backwardmode */ +static int r_aditzak(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 48 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((70566434 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 48 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((70566434 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_0, 109); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 48 */ - switch (among_var) { /* among, line 48 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_RV(z); /* call RV, line 59 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 59 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 61 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 61 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 7, s_0); /* <-, line 63 */ + { int ret = slice_from_s(z, 7, s_0); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 7, s_1); /* <-, line 65 */ + { int ret = slice_from_s(z, 7, s_1); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 6, s_2); /* <-, line 67 */ + { int ret = slice_from_s(z, 6, s_2); if (ret < 0) return ret; } break; @@ -1043,70 +1043,70 @@ static int r_aditzak(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_izenak(struct SN_env * z) { /* backwardmode */ +static int r_izenak(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 73 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((71162402 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 73 */ + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((71162402 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_1, 295); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 73 */ - switch (among_var) { /* among, line 73 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_RV(z); /* call RV, line 103 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 103 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 105 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 105 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 3, s_3); /* <-, line 107 */ + { int ret = slice_from_s(z, 3, s_3); if (ret < 0) return ret; } break; case 4: - { int ret = r_R1(z); /* call R1, line 109 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 109 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 3, s_4); /* <-, line 111 */ + { int ret = slice_from_s(z, 3, s_4); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 6, s_5); /* <-, line 113 */ + { int ret = slice_from_s(z, 6, s_5); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 5, s_6); /* <-, line 115 */ + { int ret = slice_from_s(z, 5, s_6); if (ret < 0) return ret; } break; case 8: - { int ret = slice_from_s(z, 5, s_7); /* <-, line 117 */ + { int ret = slice_from_s(z, 5, s_7); if (ret < 0) return ret; } break; case 9: - { int ret = slice_from_s(z, 5, s_8); /* <-, line 119 */ + { int ret = slice_from_s(z, 5, s_8); if (ret < 0) return ret; } break; case 10: - { int ret = slice_from_s(z, 5, s_9); /* <-, line 121 */ + { int ret = slice_from_s(z, 5, s_9); if (ret < 0) return ret; } break; @@ -1114,24 +1114,24 @@ static int r_izenak(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_adjetiboak(struct SN_env * z) { /* backwardmode */ +static int r_adjetiboak(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 126 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((35362 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 126 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((35362 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_2, 19); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 126 */ - switch (among_var) { /* among, line 126 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_RV(z); /* call RV, line 129 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 129 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_10); /* <-, line 131 */ + { int ret = slice_from_s(z, 1, s_10); if (ret < 0) return ret; } break; @@ -1139,17 +1139,16 @@ static int r_adjetiboak(struct SN_env * z) { /* backwardmode */ return 1; } -extern int basque_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - /* do, line 138 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 138 */ +extern int basque_UTF_8_stem(struct SN_env * z) { + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 139 */ + z->lb = z->c; z->c = z->l; -/* repeat, line 140 */ - - while(1) { int m1 = z->l - z->c; (void)m1; - { int ret = r_aditzak(z); /* call aditzak, line 140 */ + while(1) { + int m1 = z->l - z->c; (void)m1; + { int ret = r_aditzak(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -1158,10 +1157,9 @@ extern int basque_UTF_8_stem(struct SN_env * z) { /* forwardmode */ z->c = z->l - m1; break; } -/* repeat, line 141 */ - - while(1) { int m2 = z->l - z->c; (void)m2; - { int ret = r_izenak(z); /* call izenak, line 141 */ + while(1) { + int m2 = z->l - z->c; (void)m2; + { int ret = r_izenak(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } @@ -1170,8 +1168,8 @@ extern int basque_UTF_8_stem(struct SN_env * z) { /* forwardmode */ z->c = z->l - m2; break; } - { int m3 = z->l - z->c; (void)m3; /* do, line 142 */ - { int ret = r_adjetiboak(z); /* call adjetiboak, line 142 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_adjetiboak(z); if (ret < 0) return ret; } z->c = z->l - m3; @@ -1180,7 +1178,7 @@ extern int basque_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * basque_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); } +extern struct SN_env * basque_UTF_8_create_env(void) { return SN_create_env(0, 3); } extern void basque_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_catalan.c b/src/backend/snowball/libstemmer/stem_UTF_8_catalan.c index 23cf4e534bd1c..f92579f37b9a9 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_catalan.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_catalan.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -44,19 +44,19 @@ static const symbol s_0_12[2] = { 0xC3, 0xBC }; static const struct among a_0[13] = { -/* 0 */ { 0, 0, -1, 7, 0}, -/* 1 */ { 2, s_0_1, 0, 6, 0}, -/* 2 */ { 2, s_0_2, 0, 1, 0}, -/* 3 */ { 2, s_0_3, 0, 1, 0}, -/* 4 */ { 2, s_0_4, 0, 2, 0}, -/* 5 */ { 2, s_0_5, 0, 2, 0}, -/* 6 */ { 2, s_0_6, 0, 3, 0}, -/* 7 */ { 2, s_0_7, 0, 3, 0}, -/* 8 */ { 2, s_0_8, 0, 3, 0}, -/* 9 */ { 2, s_0_9, 0, 4, 0}, -/* 10 */ { 2, s_0_10, 0, 4, 0}, -/* 11 */ { 2, s_0_11, 0, 5, 0}, -/* 12 */ { 2, s_0_12, 0, 5, 0} +{ 0, 0, -1, 7, 0}, +{ 2, s_0_1, 0, 6, 0}, +{ 2, s_0_2, 0, 1, 0}, +{ 2, s_0_3, 0, 1, 0}, +{ 2, s_0_4, 0, 2, 0}, +{ 2, s_0_5, 0, 2, 0}, +{ 2, s_0_6, 0, 3, 0}, +{ 2, s_0_7, 0, 3, 0}, +{ 2, s_0_8, 0, 3, 0}, +{ 2, s_0_9, 0, 4, 0}, +{ 2, s_0_10, 0, 4, 0}, +{ 2, s_0_11, 0, 5, 0}, +{ 2, s_0_12, 0, 5, 0} }; static const symbol s_1_0[2] = { 'l', 'a' }; @@ -101,45 +101,45 @@ static const symbol s_1_38[2] = { '\'', 't' }; static const struct among a_1[39] = { -/* 0 */ { 2, s_1_0, -1, 1, 0}, -/* 1 */ { 3, s_1_1, 0, 1, 0}, -/* 2 */ { 4, s_1_2, 0, 1, 0}, -/* 3 */ { 2, s_1_3, -1, 1, 0}, -/* 4 */ { 2, s_1_4, -1, 1, 0}, -/* 5 */ { 3, s_1_5, 4, 1, 0}, -/* 6 */ { 2, s_1_6, -1, 1, 0}, -/* 7 */ { 3, s_1_7, -1, 1, 0}, -/* 8 */ { 2, s_1_8, -1, 1, 0}, -/* 9 */ { 3, s_1_9, 8, 1, 0}, -/* 10 */ { 2, s_1_10, -1, 1, 0}, -/* 11 */ { 3, s_1_11, 10, 1, 0}, -/* 12 */ { 2, s_1_12, -1, 1, 0}, -/* 13 */ { 2, s_1_13, -1, 1, 0}, -/* 14 */ { 2, s_1_14, -1, 1, 0}, -/* 15 */ { 2, s_1_15, -1, 1, 0}, -/* 16 */ { 2, s_1_16, -1, 1, 0}, -/* 17 */ { 2, s_1_17, -1, 1, 0}, -/* 18 */ { 3, s_1_18, 17, 1, 0}, -/* 19 */ { 2, s_1_19, -1, 1, 0}, -/* 20 */ { 4, s_1_20, 19, 1, 0}, -/* 21 */ { 2, s_1_21, -1, 1, 0}, -/* 22 */ { 3, s_1_22, -1, 1, 0}, -/* 23 */ { 5, s_1_23, 22, 1, 0}, -/* 24 */ { 3, s_1_24, -1, 1, 0}, -/* 25 */ { 4, s_1_25, 24, 1, 0}, -/* 26 */ { 3, s_1_26, -1, 1, 0}, -/* 27 */ { 3, s_1_27, -1, 1, 0}, -/* 28 */ { 3, s_1_28, -1, 1, 0}, -/* 29 */ { 3, s_1_29, -1, 1, 0}, -/* 30 */ { 3, s_1_30, -1, 1, 0}, -/* 31 */ { 3, s_1_31, -1, 1, 0}, -/* 32 */ { 5, s_1_32, 31, 1, 0}, -/* 33 */ { 3, s_1_33, -1, 1, 0}, -/* 34 */ { 4, s_1_34, 33, 1, 0}, -/* 35 */ { 3, s_1_35, -1, 1, 0}, -/* 36 */ { 2, s_1_36, -1, 1, 0}, -/* 37 */ { 3, s_1_37, 36, 1, 0}, -/* 38 */ { 2, s_1_38, -1, 1, 0} +{ 2, s_1_0, -1, 1, 0}, +{ 3, s_1_1, 0, 1, 0}, +{ 4, s_1_2, 0, 1, 0}, +{ 2, s_1_3, -1, 1, 0}, +{ 2, s_1_4, -1, 1, 0}, +{ 3, s_1_5, 4, 1, 0}, +{ 2, s_1_6, -1, 1, 0}, +{ 3, s_1_7, -1, 1, 0}, +{ 2, s_1_8, -1, 1, 0}, +{ 3, s_1_9, 8, 1, 0}, +{ 2, s_1_10, -1, 1, 0}, +{ 3, s_1_11, 10, 1, 0}, +{ 2, s_1_12, -1, 1, 0}, +{ 2, s_1_13, -1, 1, 0}, +{ 2, s_1_14, -1, 1, 0}, +{ 2, s_1_15, -1, 1, 0}, +{ 2, s_1_16, -1, 1, 0}, +{ 2, s_1_17, -1, 1, 0}, +{ 3, s_1_18, 17, 1, 0}, +{ 2, s_1_19, -1, 1, 0}, +{ 4, s_1_20, 19, 1, 0}, +{ 2, s_1_21, -1, 1, 0}, +{ 3, s_1_22, -1, 1, 0}, +{ 5, s_1_23, 22, 1, 0}, +{ 3, s_1_24, -1, 1, 0}, +{ 4, s_1_25, 24, 1, 0}, +{ 3, s_1_26, -1, 1, 0}, +{ 3, s_1_27, -1, 1, 0}, +{ 3, s_1_28, -1, 1, 0}, +{ 3, s_1_29, -1, 1, 0}, +{ 3, s_1_30, -1, 1, 0}, +{ 3, s_1_31, -1, 1, 0}, +{ 5, s_1_32, 31, 1, 0}, +{ 3, s_1_33, -1, 1, 0}, +{ 4, s_1_34, 33, 1, 0}, +{ 3, s_1_35, -1, 1, 0}, +{ 2, s_1_36, -1, 1, 0}, +{ 3, s_1_37, 36, 1, 0}, +{ 2, s_1_38, -1, 1, 0} }; static const symbol s_2_0[3] = { 'i', 'c', 'a' }; @@ -345,206 +345,206 @@ static const symbol s_2_199[5] = { 'a', 'c', 'i', 0xC3, 0xB3 }; static const struct among a_2[200] = { -/* 0 */ { 3, s_2_0, -1, 4, 0}, -/* 1 */ { 7, s_2_1, 0, 3, 0}, -/* 2 */ { 4, s_2_2, -1, 1, 0}, -/* 3 */ { 3, s_2_3, -1, 2, 0}, -/* 4 */ { 5, s_2_4, -1, 1, 0}, -/* 5 */ { 5, s_2_5, -1, 1, 0}, -/* 6 */ { 6, s_2_6, -1, 1, 0}, -/* 7 */ { 5, s_2_7, -1, 1, 0}, -/* 8 */ { 5, s_2_8, -1, 3, 0}, -/* 9 */ { 4, s_2_9, -1, 1, 0}, -/* 10 */ { 6, s_2_10, 9, 1, 0}, -/* 11 */ { 4, s_2_11, -1, 1, 0}, -/* 12 */ { 5, s_2_12, -1, 1, 0}, -/* 13 */ { 7, s_2_13, -1, 1, 0}, -/* 14 */ { 4, s_2_14, -1, 1, 0}, -/* 15 */ { 4, s_2_15, -1, 1, 0}, -/* 16 */ { 6, s_2_16, -1, 1, 0}, -/* 17 */ { 3, s_2_17, -1, 1, 0}, -/* 18 */ { 7, s_2_18, 17, 1, 0}, -/* 19 */ { 9, s_2_19, 18, 5, 0}, -/* 20 */ { 3, s_2_20, -1, 1, 0}, -/* 21 */ { 3, s_2_21, -1, 1, 0}, -/* 22 */ { 3, s_2_22, -1, 1, 0}, -/* 23 */ { 5, s_2_23, 22, 1, 0}, -/* 24 */ { 3, s_2_24, -1, 1, 0}, -/* 25 */ { 4, s_2_25, 24, 1, 0}, -/* 26 */ { 5, s_2_26, 25, 1, 0}, -/* 27 */ { 5, s_2_27, -1, 1, 0}, -/* 28 */ { 3, s_2_28, -1, 1, 0}, -/* 29 */ { 3, s_2_29, -1, 1, 0}, -/* 30 */ { 4, s_2_30, -1, 1, 0}, -/* 31 */ { 4, s_2_31, -1, 1, 0}, -/* 32 */ { 4, s_2_32, -1, 1, 0}, -/* 33 */ { 3, s_2_33, -1, 1, 0}, -/* 34 */ { 3, s_2_34, -1, 1, 0}, -/* 35 */ { 3, s_2_35, -1, 1, 0}, -/* 36 */ { 4, s_2_36, -1, 1, 0}, -/* 37 */ { 7, s_2_37, 36, 1, 0}, -/* 38 */ { 7, s_2_38, 36, 1, 0}, -/* 39 */ { 3, s_2_39, -1, 1, 0}, -/* 40 */ { 5, s_2_40, 39, 1, 0}, -/* 41 */ { 4, s_2_41, -1, 1, 0}, -/* 42 */ { 6, s_2_42, -1, 3, 0}, -/* 43 */ { 2, s_2_43, -1, 4, 0}, -/* 44 */ { 6, s_2_44, 43, 1, 0}, -/* 45 */ { 3, s_2_45, -1, 1, 0}, -/* 46 */ { 3, s_2_46, -1, 1, 0}, -/* 47 */ { 2, s_2_47, -1, 1, 0}, -/* 48 */ { 4, s_2_48, -1, 1, 0}, -/* 49 */ { 3, s_2_49, -1, 1, 0}, -/* 50 */ { 4, s_2_50, 49, 1, 0}, -/* 51 */ { 4, s_2_51, 49, 1, 0}, -/* 52 */ { 4, s_2_52, -1, 1, 0}, -/* 53 */ { 7, s_2_53, 52, 1, 0}, -/* 54 */ { 7, s_2_54, 52, 1, 0}, -/* 55 */ { 6, s_2_55, 52, 1, 0}, -/* 56 */ { 4, s_2_56, -1, 1, 0}, -/* 57 */ { 4, s_2_57, -1, 1, 0}, -/* 58 */ { 4, s_2_58, -1, 1, 0}, -/* 59 */ { 3, s_2_59, -1, 1, 0}, -/* 60 */ { 4, s_2_60, -1, 1, 0}, -/* 61 */ { 4, s_2_61, -1, 3, 0}, -/* 62 */ { 3, s_2_62, -1, 1, 0}, -/* 63 */ { 4, s_2_63, -1, 1, 0}, -/* 64 */ { 2, s_2_64, -1, 1, 0}, -/* 65 */ { 2, s_2_65, -1, 1, 0}, -/* 66 */ { 3, s_2_66, -1, 1, 0}, -/* 67 */ { 3, s_2_67, -1, 1, 0}, -/* 68 */ { 5, s_2_68, -1, 1, 0}, -/* 69 */ { 4, s_2_69, -1, 1, 0}, -/* 70 */ { 5, s_2_70, -1, 1, 0}, -/* 71 */ { 6, s_2_71, -1, 1, 0}, -/* 72 */ { 6, s_2_72, -1, 1, 0}, -/* 73 */ { 6, s_2_73, -1, 1, 0}, -/* 74 */ { 8, s_2_74, 73, 5, 0}, -/* 75 */ { 4, s_2_75, -1, 1, 0}, -/* 76 */ { 6, s_2_76, -1, 1, 0}, -/* 77 */ { 2, s_2_77, -1, 1, 0}, -/* 78 */ { 6, s_2_78, 77, 1, 0}, -/* 79 */ { 4, s_2_79, 77, 1, 0}, -/* 80 */ { 4, s_2_80, 77, 1, 0}, -/* 81 */ { 4, s_2_81, 77, 1, 0}, -/* 82 */ { 5, s_2_82, 77, 1, 0}, -/* 83 */ { 3, s_2_83, -1, 1, 0}, -/* 84 */ { 2, s_2_84, -1, 1, 0}, -/* 85 */ { 3, s_2_85, 84, 1, 0}, -/* 86 */ { 3, s_2_86, -1, 1, 0}, -/* 87 */ { 5, s_2_87, -1, 1, 0}, -/* 88 */ { 3, s_2_88, -1, 4, 0}, -/* 89 */ { 7, s_2_89, 88, 3, 0}, -/* 90 */ { 3, s_2_90, -1, 1, 0}, -/* 91 */ { 4, s_2_91, -1, 1, 0}, -/* 92 */ { 4, s_2_92, -1, 2, 0}, -/* 93 */ { 6, s_2_93, -1, 1, 0}, -/* 94 */ { 6, s_2_94, -1, 1, 0}, -/* 95 */ { 7, s_2_95, -1, 1, 0}, -/* 96 */ { 6, s_2_96, -1, 1, 0}, -/* 97 */ { 6, s_2_97, -1, 3, 0}, -/* 98 */ { 5, s_2_98, -1, 1, 0}, -/* 99 */ { 6, s_2_99, -1, 1, 0}, -/*100 */ { 5, s_2_100, -1, 1, 0}, -/*101 */ { 6, s_2_101, -1, 1, 0}, -/*102 */ { 8, s_2_102, -1, 1, 0}, -/*103 */ { 4, s_2_103, -1, 1, 0}, -/*104 */ { 5, s_2_104, 103, 1, 0}, -/*105 */ { 5, s_2_105, 103, 1, 0}, -/*106 */ { 4, s_2_106, -1, 1, 0}, -/*107 */ { 8, s_2_107, 106, 1, 0}, -/*108 */ { 10, s_2_108, 107, 5, 0}, -/*109 */ { 6, s_2_109, -1, 1, 0}, -/*110 */ { 5, s_2_110, -1, 1, 0}, -/*111 */ { 8, s_2_111, 110, 1, 0}, -/*112 */ { 4, s_2_112, -1, 1, 0}, -/*113 */ { 4, s_2_113, -1, 1, 0}, -/*114 */ { 4, s_2_114, -1, 1, 0}, -/*115 */ { 5, s_2_115, 114, 1, 0}, -/*116 */ { 6, s_2_116, 115, 1, 0}, -/*117 */ { 5, s_2_117, -1, 1, 0}, -/*118 */ { 4, s_2_118, -1, 1, 0}, -/*119 */ { 4, s_2_119, -1, 1, 0}, -/*120 */ { 5, s_2_120, -1, 1, 0}, -/*121 */ { 5, s_2_121, -1, 1, 0}, -/*122 */ { 4, s_2_122, -1, 1, 0}, -/*123 */ { 4, s_2_123, -1, 1, 0}, -/*124 */ { 5, s_2_124, -1, 1, 0}, -/*125 */ { 8, s_2_125, 124, 1, 0}, -/*126 */ { 8, s_2_126, 124, 1, 0}, -/*127 */ { 5, s_2_127, -1, 4, 0}, -/*128 */ { 9, s_2_128, 127, 3, 0}, -/*129 */ { 4, s_2_129, -1, 1, 0}, -/*130 */ { 6, s_2_130, 129, 1, 0}, -/*131 */ { 7, s_2_131, -1, 3, 0}, -/*132 */ { 10, s_2_132, -1, 1, 0}, -/*133 */ { 4, s_2_133, -1, 1, 0}, -/*134 */ { 5, s_2_134, -1, 1, 0}, -/*135 */ { 5, s_2_135, -1, 3, 0}, -/*136 */ { 4, s_2_136, -1, 1, 0}, -/*137 */ { 5, s_2_137, -1, 1, 0}, -/*138 */ { 2, s_2_138, -1, 1, 0}, -/*139 */ { 3, s_2_139, 138, 1, 0}, -/*140 */ { 4, s_2_140, 138, 1, 0}, -/*141 */ { 3, s_2_141, -1, 1, 0}, -/*142 */ { 7, s_2_142, 141, 1, 0}, -/*143 */ { 9, s_2_143, 142, 5, 0}, -/*144 */ { 4, s_2_144, -1, 1, 0}, -/*145 */ { 5, s_2_145, 144, 1, 0}, -/*146 */ { 6, s_2_146, 145, 2, 0}, -/*147 */ { 4, s_2_147, -1, 1, 0}, -/*148 */ { 4, s_2_148, -1, 1, 0}, -/*149 */ { 5, s_2_149, -1, 1, 0}, -/*150 */ { 5, s_2_150, -1, 1, 0}, -/*151 */ { 3, s_2_151, -1, 1, 0}, -/*152 */ { 3, s_2_152, -1, 1, 0}, -/*153 */ { 4, s_2_153, 152, 1, 0}, -/*154 */ { 5, s_2_154, 153, 1, 0}, -/*155 */ { 5, s_2_155, 153, 1, 0}, -/*156 */ { 3, s_2_156, -1, 1, 0}, -/*157 */ { 5, s_2_157, 156, 1, 0}, -/*158 */ { 8, s_2_158, 157, 1, 0}, -/*159 */ { 7, s_2_159, 157, 1, 0}, -/*160 */ { 9, s_2_160, 159, 1, 0}, -/*161 */ { 6, s_2_161, 156, 1, 0}, -/*162 */ { 3, s_2_162, -1, 1, 0}, -/*163 */ { 4, s_2_163, -1, 1, 0}, -/*164 */ { 4, s_2_164, -1, 1, 0}, -/*165 */ { 5, s_2_165, 164, 1, 0}, -/*166 */ { 6, s_2_166, 165, 1, 0}, -/*167 */ { 3, s_2_167, -1, 1, 0}, -/*168 */ { 3, s_2_168, -1, 1, 0}, -/*169 */ { 3, s_2_169, -1, 1, 0}, -/*170 */ { 5, s_2_170, 169, 1, 0}, -/*171 */ { 5, s_2_171, 169, 1, 0}, -/*172 */ { 3, s_2_172, -1, 1, 0}, -/*173 */ { 3, s_2_173, -1, 1, 0}, -/*174 */ { 3, s_2_174, -1, 1, 0}, -/*175 */ { 4, s_2_175, 174, 1, 0}, -/*176 */ { 3, s_2_176, -1, 1, 0}, -/*177 */ { 4, s_2_177, -1, 1, 0}, -/*178 */ { 7, s_2_178, 177, 1, 0}, -/*179 */ { 6, s_2_179, 177, 1, 0}, -/*180 */ { 8, s_2_180, 179, 1, 0}, -/*181 */ { 5, s_2_181, -1, 1, 0}, -/*182 */ { 2, s_2_182, -1, 1, 0}, -/*183 */ { 3, s_2_183, -1, 1, 0}, -/*184 */ { 3, s_2_184, -1, 1, 0}, -/*185 */ { 4, s_2_185, 184, 1, 0}, -/*186 */ { 4, s_2_186, 184, 1, 0}, -/*187 */ { 5, s_2_187, 186, 1, 0}, -/*188 */ { 7, s_2_188, 187, 1, 0}, -/*189 */ { 2, s_2_189, -1, 1, 0}, -/*190 */ { 5, s_2_190, -1, 1, 0}, -/*191 */ { 6, s_2_191, -1, 1, 0}, -/*192 */ { 6, s_2_192, -1, 1, 0}, -/*193 */ { 4, s_2_193, -1, 1, 0}, -/*194 */ { 6, s_2_194, -1, 1, 0}, -/*195 */ { 4, s_2_195, -1, 1, 0}, -/*196 */ { 2, s_2_196, -1, 1, 0}, -/*197 */ { 3, s_2_197, 196, 1, 0}, -/*198 */ { 4, s_2_198, 197, 1, 0}, -/*199 */ { 5, s_2_199, 198, 1, 0} +{ 3, s_2_0, -1, 4, 0}, +{ 7, s_2_1, 0, 3, 0}, +{ 4, s_2_2, -1, 1, 0}, +{ 3, s_2_3, -1, 2, 0}, +{ 5, s_2_4, -1, 1, 0}, +{ 5, s_2_5, -1, 1, 0}, +{ 6, s_2_6, -1, 1, 0}, +{ 5, s_2_7, -1, 1, 0}, +{ 5, s_2_8, -1, 3, 0}, +{ 4, s_2_9, -1, 1, 0}, +{ 6, s_2_10, 9, 1, 0}, +{ 4, s_2_11, -1, 1, 0}, +{ 5, s_2_12, -1, 1, 0}, +{ 7, s_2_13, -1, 1, 0}, +{ 4, s_2_14, -1, 1, 0}, +{ 4, s_2_15, -1, 1, 0}, +{ 6, s_2_16, -1, 1, 0}, +{ 3, s_2_17, -1, 1, 0}, +{ 7, s_2_18, 17, 1, 0}, +{ 9, s_2_19, 18, 5, 0}, +{ 3, s_2_20, -1, 1, 0}, +{ 3, s_2_21, -1, 1, 0}, +{ 3, s_2_22, -1, 1, 0}, +{ 5, s_2_23, 22, 1, 0}, +{ 3, s_2_24, -1, 1, 0}, +{ 4, s_2_25, 24, 1, 0}, +{ 5, s_2_26, 25, 1, 0}, +{ 5, s_2_27, -1, 1, 0}, +{ 3, s_2_28, -1, 1, 0}, +{ 3, s_2_29, -1, 1, 0}, +{ 4, s_2_30, -1, 1, 0}, +{ 4, s_2_31, -1, 1, 0}, +{ 4, s_2_32, -1, 1, 0}, +{ 3, s_2_33, -1, 1, 0}, +{ 3, s_2_34, -1, 1, 0}, +{ 3, s_2_35, -1, 1, 0}, +{ 4, s_2_36, -1, 1, 0}, +{ 7, s_2_37, 36, 1, 0}, +{ 7, s_2_38, 36, 1, 0}, +{ 3, s_2_39, -1, 1, 0}, +{ 5, s_2_40, 39, 1, 0}, +{ 4, s_2_41, -1, 1, 0}, +{ 6, s_2_42, -1, 3, 0}, +{ 2, s_2_43, -1, 4, 0}, +{ 6, s_2_44, 43, 1, 0}, +{ 3, s_2_45, -1, 1, 0}, +{ 3, s_2_46, -1, 1, 0}, +{ 2, s_2_47, -1, 1, 0}, +{ 4, s_2_48, -1, 1, 0}, +{ 3, s_2_49, -1, 1, 0}, +{ 4, s_2_50, 49, 1, 0}, +{ 4, s_2_51, 49, 1, 0}, +{ 4, s_2_52, -1, 1, 0}, +{ 7, s_2_53, 52, 1, 0}, +{ 7, s_2_54, 52, 1, 0}, +{ 6, s_2_55, 52, 1, 0}, +{ 4, s_2_56, -1, 1, 0}, +{ 4, s_2_57, -1, 1, 0}, +{ 4, s_2_58, -1, 1, 0}, +{ 3, s_2_59, -1, 1, 0}, +{ 4, s_2_60, -1, 1, 0}, +{ 4, s_2_61, -1, 3, 0}, +{ 3, s_2_62, -1, 1, 0}, +{ 4, s_2_63, -1, 1, 0}, +{ 2, s_2_64, -1, 1, 0}, +{ 2, s_2_65, -1, 1, 0}, +{ 3, s_2_66, -1, 1, 0}, +{ 3, s_2_67, -1, 1, 0}, +{ 5, s_2_68, -1, 1, 0}, +{ 4, s_2_69, -1, 1, 0}, +{ 5, s_2_70, -1, 1, 0}, +{ 6, s_2_71, -1, 1, 0}, +{ 6, s_2_72, -1, 1, 0}, +{ 6, s_2_73, -1, 1, 0}, +{ 8, s_2_74, 73, 5, 0}, +{ 4, s_2_75, -1, 1, 0}, +{ 6, s_2_76, -1, 1, 0}, +{ 2, s_2_77, -1, 1, 0}, +{ 6, s_2_78, 77, 1, 0}, +{ 4, s_2_79, 77, 1, 0}, +{ 4, s_2_80, 77, 1, 0}, +{ 4, s_2_81, 77, 1, 0}, +{ 5, s_2_82, 77, 1, 0}, +{ 3, s_2_83, -1, 1, 0}, +{ 2, s_2_84, -1, 1, 0}, +{ 3, s_2_85, 84, 1, 0}, +{ 3, s_2_86, -1, 1, 0}, +{ 5, s_2_87, -1, 1, 0}, +{ 3, s_2_88, -1, 4, 0}, +{ 7, s_2_89, 88, 3, 0}, +{ 3, s_2_90, -1, 1, 0}, +{ 4, s_2_91, -1, 1, 0}, +{ 4, s_2_92, -1, 2, 0}, +{ 6, s_2_93, -1, 1, 0}, +{ 6, s_2_94, -1, 1, 0}, +{ 7, s_2_95, -1, 1, 0}, +{ 6, s_2_96, -1, 1, 0}, +{ 6, s_2_97, -1, 3, 0}, +{ 5, s_2_98, -1, 1, 0}, +{ 6, s_2_99, -1, 1, 0}, +{ 5, s_2_100, -1, 1, 0}, +{ 6, s_2_101, -1, 1, 0}, +{ 8, s_2_102, -1, 1, 0}, +{ 4, s_2_103, -1, 1, 0}, +{ 5, s_2_104, 103, 1, 0}, +{ 5, s_2_105, 103, 1, 0}, +{ 4, s_2_106, -1, 1, 0}, +{ 8, s_2_107, 106, 1, 0}, +{ 10, s_2_108, 107, 5, 0}, +{ 6, s_2_109, -1, 1, 0}, +{ 5, s_2_110, -1, 1, 0}, +{ 8, s_2_111, 110, 1, 0}, +{ 4, s_2_112, -1, 1, 0}, +{ 4, s_2_113, -1, 1, 0}, +{ 4, s_2_114, -1, 1, 0}, +{ 5, s_2_115, 114, 1, 0}, +{ 6, s_2_116, 115, 1, 0}, +{ 5, s_2_117, -1, 1, 0}, +{ 4, s_2_118, -1, 1, 0}, +{ 4, s_2_119, -1, 1, 0}, +{ 5, s_2_120, -1, 1, 0}, +{ 5, s_2_121, -1, 1, 0}, +{ 4, s_2_122, -1, 1, 0}, +{ 4, s_2_123, -1, 1, 0}, +{ 5, s_2_124, -1, 1, 0}, +{ 8, s_2_125, 124, 1, 0}, +{ 8, s_2_126, 124, 1, 0}, +{ 5, s_2_127, -1, 4, 0}, +{ 9, s_2_128, 127, 3, 0}, +{ 4, s_2_129, -1, 1, 0}, +{ 6, s_2_130, 129, 1, 0}, +{ 7, s_2_131, -1, 3, 0}, +{ 10, s_2_132, -1, 1, 0}, +{ 4, s_2_133, -1, 1, 0}, +{ 5, s_2_134, -1, 1, 0}, +{ 5, s_2_135, -1, 3, 0}, +{ 4, s_2_136, -1, 1, 0}, +{ 5, s_2_137, -1, 1, 0}, +{ 2, s_2_138, -1, 1, 0}, +{ 3, s_2_139, 138, 1, 0}, +{ 4, s_2_140, 138, 1, 0}, +{ 3, s_2_141, -1, 1, 0}, +{ 7, s_2_142, 141, 1, 0}, +{ 9, s_2_143, 142, 5, 0}, +{ 4, s_2_144, -1, 1, 0}, +{ 5, s_2_145, 144, 1, 0}, +{ 6, s_2_146, 145, 2, 0}, +{ 4, s_2_147, -1, 1, 0}, +{ 4, s_2_148, -1, 1, 0}, +{ 5, s_2_149, -1, 1, 0}, +{ 5, s_2_150, -1, 1, 0}, +{ 3, s_2_151, -1, 1, 0}, +{ 3, s_2_152, -1, 1, 0}, +{ 4, s_2_153, 152, 1, 0}, +{ 5, s_2_154, 153, 1, 0}, +{ 5, s_2_155, 153, 1, 0}, +{ 3, s_2_156, -1, 1, 0}, +{ 5, s_2_157, 156, 1, 0}, +{ 8, s_2_158, 157, 1, 0}, +{ 7, s_2_159, 157, 1, 0}, +{ 9, s_2_160, 159, 1, 0}, +{ 6, s_2_161, 156, 1, 0}, +{ 3, s_2_162, -1, 1, 0}, +{ 4, s_2_163, -1, 1, 0}, +{ 4, s_2_164, -1, 1, 0}, +{ 5, s_2_165, 164, 1, 0}, +{ 6, s_2_166, 165, 1, 0}, +{ 3, s_2_167, -1, 1, 0}, +{ 3, s_2_168, -1, 1, 0}, +{ 3, s_2_169, -1, 1, 0}, +{ 5, s_2_170, 169, 1, 0}, +{ 5, s_2_171, 169, 1, 0}, +{ 3, s_2_172, -1, 1, 0}, +{ 3, s_2_173, -1, 1, 0}, +{ 3, s_2_174, -1, 1, 0}, +{ 4, s_2_175, 174, 1, 0}, +{ 3, s_2_176, -1, 1, 0}, +{ 4, s_2_177, -1, 1, 0}, +{ 7, s_2_178, 177, 1, 0}, +{ 6, s_2_179, 177, 1, 0}, +{ 8, s_2_180, 179, 1, 0}, +{ 5, s_2_181, -1, 1, 0}, +{ 2, s_2_182, -1, 1, 0}, +{ 3, s_2_183, -1, 1, 0}, +{ 3, s_2_184, -1, 1, 0}, +{ 4, s_2_185, 184, 1, 0}, +{ 4, s_2_186, 184, 1, 0}, +{ 5, s_2_187, 186, 1, 0}, +{ 7, s_2_188, 187, 1, 0}, +{ 2, s_2_189, -1, 1, 0}, +{ 5, s_2_190, -1, 1, 0}, +{ 6, s_2_191, -1, 1, 0}, +{ 6, s_2_192, -1, 1, 0}, +{ 4, s_2_193, -1, 1, 0}, +{ 6, s_2_194, -1, 1, 0}, +{ 4, s_2_195, -1, 1, 0}, +{ 2, s_2_196, -1, 1, 0}, +{ 3, s_2_197, 196, 1, 0}, +{ 4, s_2_198, 197, 1, 0}, +{ 5, s_2_199, 198, 1, 0} }; static const symbol s_3_0[3] = { 'a', 'b', 'a' }; @@ -833,289 +833,289 @@ static const symbol s_3_282[3] = { 'i', 0xC3, 0xB3 }; static const struct among a_3[283] = { -/* 0 */ { 3, s_3_0, -1, 1, 0}, -/* 1 */ { 4, s_3_1, -1, 1, 0}, -/* 2 */ { 4, s_3_2, -1, 1, 0}, -/* 3 */ { 5, s_3_3, -1, 1, 0}, -/* 4 */ { 3, s_3_4, -1, 1, 0}, -/* 5 */ { 3, s_3_5, -1, 1, 0}, -/* 6 */ { 3, s_3_6, -1, 1, 0}, -/* 7 */ { 4, s_3_7, -1, 1, 0}, -/* 8 */ { 2, s_3_8, -1, 1, 0}, -/* 9 */ { 4, s_3_9, 8, 1, 0}, -/* 10 */ { 4, s_3_10, 8, 1, 0}, -/* 11 */ { 3, s_3_11, -1, 1, 0}, -/* 12 */ { 4, s_3_12, -1, 1, 0}, -/* 13 */ { 3, s_3_13, -1, 1, 0}, -/* 14 */ { 5, s_3_14, -1, 1, 0}, -/* 15 */ { 4, s_3_15, -1, 1, 0}, -/* 16 */ { 3, s_3_16, -1, 1, 0}, -/* 17 */ { 3, s_3_17, -1, 1, 0}, -/* 18 */ { 4, s_3_18, -1, 1, 0}, -/* 19 */ { 3, s_3_19, -1, 1, 0}, -/* 20 */ { 5, s_3_20, 19, 1, 0}, -/* 21 */ { 5, s_3_21, 19, 1, 0}, -/* 22 */ { 5, s_3_22, 19, 1, 0}, -/* 23 */ { 3, s_3_23, -1, 1, 0}, -/* 24 */ { 3, s_3_24, -1, 1, 0}, -/* 25 */ { 4, s_3_25, -1, 1, 0}, -/* 26 */ { 2, s_3_26, -1, 1, 0}, -/* 27 */ { 2, s_3_27, -1, 1, 0}, -/* 28 */ { 2, s_3_28, -1, 1, 0}, -/* 29 */ { 2, s_3_29, -1, 1, 0}, -/* 30 */ { 2, s_3_30, -1, 1, 0}, -/* 31 */ { 3, s_3_31, 30, 1, 0}, -/* 32 */ { 3, s_3_32, -1, 1, 0}, -/* 33 */ { 4, s_3_33, -1, 1, 0}, -/* 34 */ { 4, s_3_34, -1, 1, 0}, -/* 35 */ { 4, s_3_35, -1, 1, 0}, -/* 36 */ { 2, s_3_36, -1, 1, 0}, -/* 37 */ { 3, s_3_37, -1, 1, 0}, -/* 38 */ { 5, s_3_38, -1, 1, 0}, -/* 39 */ { 4, s_3_39, -1, 1, 0}, -/* 40 */ { 4, s_3_40, -1, 1, 0}, -/* 41 */ { 2, s_3_41, -1, 1, 0}, -/* 42 */ { 2, s_3_42, -1, 1, 0}, -/* 43 */ { 4, s_3_43, 42, 1, 0}, -/* 44 */ { 4, s_3_44, 42, 1, 0}, -/* 45 */ { 5, s_3_45, 42, 1, 0}, -/* 46 */ { 5, s_3_46, 42, 1, 0}, -/* 47 */ { 6, s_3_47, 42, 1, 0}, -/* 48 */ { 6, s_3_48, 42, 1, 0}, -/* 49 */ { 5, s_3_49, 42, 1, 0}, -/* 50 */ { 6, s_3_50, 42, 1, 0}, -/* 51 */ { 4, s_3_51, 42, 1, 0}, -/* 52 */ { 5, s_3_52, 42, 1, 0}, -/* 53 */ { 5, s_3_53, 42, 1, 0}, -/* 54 */ { 6, s_3_54, 42, 1, 0}, -/* 55 */ { 4, s_3_55, 42, 1, 0}, -/* 56 */ { 6, s_3_56, 55, 1, 0}, -/* 57 */ { 6, s_3_57, 55, 1, 0}, -/* 58 */ { 5, s_3_58, -1, 1, 0}, -/* 59 */ { 5, s_3_59, -1, 1, 0}, -/* 60 */ { 5, s_3_60, -1, 1, 0}, -/* 61 */ { 6, s_3_61, -1, 1, 0}, -/* 62 */ { 6, s_3_62, -1, 1, 0}, -/* 63 */ { 6, s_3_63, -1, 1, 0}, -/* 64 */ { 6, s_3_64, -1, 1, 0}, -/* 65 */ { 3, s_3_65, -1, 1, 0}, -/* 66 */ { 2, s_3_66, -1, 1, 0}, -/* 67 */ { 4, s_3_67, 66, 1, 0}, -/* 68 */ { 5, s_3_68, 66, 1, 0}, -/* 69 */ { 4, s_3_69, 66, 1, 0}, -/* 70 */ { 5, s_3_70, 66, 1, 0}, -/* 71 */ { 4, s_3_71, 66, 1, 0}, -/* 72 */ { 4, s_3_72, 66, 1, 0}, -/* 73 */ { 6, s_3_73, 72, 1, 0}, -/* 74 */ { 6, s_3_74, 72, 1, 0}, -/* 75 */ { 6, s_3_75, 72, 1, 0}, -/* 76 */ { 2, s_3_76, -1, 1, 0}, -/* 77 */ { 3, s_3_77, 76, 1, 0}, -/* 78 */ { 5, s_3_78, 77, 1, 0}, -/* 79 */ { 5, s_3_79, 77, 1, 0}, -/* 80 */ { 4, s_3_80, 76, 1, 0}, -/* 81 */ { 4, s_3_81, 76, 1, 0}, -/* 82 */ { 4, s_3_82, 76, 1, 0}, -/* 83 */ { 5, s_3_83, 76, 1, 0}, -/* 84 */ { 5, s_3_84, 76, 1, 0}, -/* 85 */ { 4, s_3_85, 76, 1, 0}, -/* 86 */ { 5, s_3_86, 76, 1, 0}, -/* 87 */ { 5, s_3_87, 76, 1, 0}, -/* 88 */ { 5, s_3_88, 76, 1, 0}, -/* 89 */ { 5, s_3_89, 76, 1, 0}, -/* 90 */ { 6, s_3_90, 76, 1, 0}, -/* 91 */ { 6, s_3_91, 76, 1, 0}, -/* 92 */ { 6, s_3_92, 76, 1, 0}, -/* 93 */ { 6, s_3_93, 76, 1, 0}, -/* 94 */ { 7, s_3_94, 76, 1, 0}, -/* 95 */ { 4, s_3_95, 76, 1, 0}, -/* 96 */ { 4, s_3_96, 76, 1, 0}, -/* 97 */ { 5, s_3_97, 96, 1, 0}, -/* 98 */ { 5, s_3_98, 76, 1, 0}, -/* 99 */ { 4, s_3_99, 76, 1, 0}, -/*100 */ { 2, s_3_100, -1, 1, 0}, -/*101 */ { 4, s_3_101, 100, 1, 0}, -/*102 */ { 3, s_3_102, 100, 1, 0}, -/*103 */ { 4, s_3_103, 102, 1, 0}, -/*104 */ { 5, s_3_104, 102, 1, 0}, -/*105 */ { 5, s_3_105, 102, 1, 0}, -/*106 */ { 5, s_3_106, 102, 1, 0}, -/*107 */ { 6, s_3_107, 102, 1, 0}, -/*108 */ { 6, s_3_108, 100, 1, 0}, -/*109 */ { 5, s_3_109, 100, 1, 0}, -/*110 */ { 4, s_3_110, -1, 1, 0}, -/*111 */ { 5, s_3_111, -1, 1, 0}, -/*112 */ { 5, s_3_112, -1, 1, 0}, -/*113 */ { 5, s_3_113, -1, 1, 0}, -/*114 */ { 5, s_3_114, -1, 1, 0}, -/*115 */ { 4, s_3_115, -1, 1, 0}, -/*116 */ { 3, s_3_116, -1, 1, 0}, -/*117 */ { 3, s_3_117, -1, 1, 0}, -/*118 */ { 4, s_3_118, -1, 2, 0}, -/*119 */ { 5, s_3_119, -1, 1, 0}, -/*120 */ { 2, s_3_120, -1, 1, 0}, -/*121 */ { 3, s_3_121, -1, 1, 0}, -/*122 */ { 4, s_3_122, 121, 1, 0}, -/*123 */ { 4, s_3_123, -1, 1, 0}, -/*124 */ { 4, s_3_124, -1, 1, 0}, -/*125 */ { 2, s_3_125, -1, 1, 0}, -/*126 */ { 4, s_3_126, 125, 1, 0}, -/*127 */ { 2, s_3_127, -1, 1, 0}, -/*128 */ { 5, s_3_128, 127, 1, 0}, -/*129 */ { 2, s_3_129, -1, 1, 0}, -/*130 */ { 4, s_3_130, -1, 1, 0}, -/*131 */ { 2, s_3_131, -1, 1, 0}, -/*132 */ { 4, s_3_132, 131, 1, 0}, -/*133 */ { 4, s_3_133, 131, 1, 0}, -/*134 */ { 4, s_3_134, 131, 1, 0}, -/*135 */ { 4, s_3_135, 131, 1, 0}, -/*136 */ { 5, s_3_136, 131, 1, 0}, -/*137 */ { 4, s_3_137, 131, 1, 0}, -/*138 */ { 6, s_3_138, 137, 1, 0}, -/*139 */ { 6, s_3_139, 137, 1, 0}, -/*140 */ { 6, s_3_140, 137, 1, 0}, -/*141 */ { 3, s_3_141, -1, 1, 0}, -/*142 */ { 2, s_3_142, -1, 1, 0}, -/*143 */ { 4, s_3_143, 142, 1, 0}, -/*144 */ { 4, s_3_144, 142, 1, 0}, -/*145 */ { 4, s_3_145, 142, 1, 0}, -/*146 */ { 5, s_3_146, 142, 1, 0}, -/*147 */ { 5, s_3_147, 142, 1, 0}, -/*148 */ { 3, s_3_148, 142, 1, 0}, -/*149 */ { 5, s_3_149, 148, 1, 0}, -/*150 */ { 5, s_3_150, 148, 1, 0}, -/*151 */ { 4, s_3_151, 142, 1, 0}, -/*152 */ { 4, s_3_152, 142, 1, 0}, -/*153 */ { 6, s_3_153, 142, 1, 0}, -/*154 */ { 5, s_3_154, 142, 1, 0}, -/*155 */ { 4, s_3_155, 142, 1, 0}, -/*156 */ { 5, s_3_156, 142, 1, 0}, -/*157 */ { 5, s_3_157, 142, 1, 0}, -/*158 */ { 5, s_3_158, 142, 1, 0}, -/*159 */ { 5, s_3_159, 142, 1, 0}, -/*160 */ { 6, s_3_160, 142, 1, 0}, -/*161 */ { 4, s_3_161, 142, 1, 0}, -/*162 */ { 6, s_3_162, 161, 1, 0}, -/*163 */ { 7, s_3_163, 161, 1, 0}, -/*164 */ { 4, s_3_164, 142, 1, 0}, -/*165 */ { 4, s_3_165, 142, 1, 0}, -/*166 */ { 5, s_3_166, 165, 1, 0}, -/*167 */ { 5, s_3_167, 142, 1, 0}, -/*168 */ { 4, s_3_168, 142, 1, 0}, -/*169 */ { 5, s_3_169, -1, 1, 0}, -/*170 */ { 5, s_3_170, -1, 1, 0}, -/*171 */ { 6, s_3_171, -1, 1, 0}, -/*172 */ { 5, s_3_172, -1, 1, 0}, -/*173 */ { 7, s_3_173, 172, 1, 0}, -/*174 */ { 7, s_3_174, 172, 1, 0}, -/*175 */ { 7, s_3_175, 172, 1, 0}, -/*176 */ { 5, s_3_176, -1, 1, 0}, -/*177 */ { 6, s_3_177, -1, 1, 0}, -/*178 */ { 6, s_3_178, -1, 1, 0}, -/*179 */ { 6, s_3_179, -1, 1, 0}, -/*180 */ { 4, s_3_180, -1, 1, 0}, -/*181 */ { 3, s_3_181, -1, 1, 0}, -/*182 */ { 4, s_3_182, 181, 1, 0}, -/*183 */ { 5, s_3_183, 181, 1, 0}, -/*184 */ { 5, s_3_184, 181, 1, 0}, -/*185 */ { 5, s_3_185, 181, 1, 0}, -/*186 */ { 6, s_3_186, 181, 1, 0}, -/*187 */ { 6, s_3_187, -1, 1, 0}, -/*188 */ { 5, s_3_188, -1, 1, 0}, -/*189 */ { 5, s_3_189, -1, 1, 0}, -/*190 */ { 4, s_3_190, -1, 1, 0}, -/*191 */ { 6, s_3_191, -1, 1, 0}, -/*192 */ { 6, s_3_192, -1, 1, 0}, -/*193 */ { 6, s_3_193, -1, 1, 0}, -/*194 */ { 3, s_3_194, -1, 1, 0}, -/*195 */ { 4, s_3_195, -1, 1, 0}, -/*196 */ { 4, s_3_196, -1, 1, 0}, -/*197 */ { 4, s_3_197, -1, 1, 0}, -/*198 */ { 7, s_3_198, 197, 1, 0}, -/*199 */ { 7, s_3_199, 197, 1, 0}, -/*200 */ { 8, s_3_200, 197, 1, 0}, -/*201 */ { 6, s_3_201, 197, 1, 0}, -/*202 */ { 8, s_3_202, 201, 1, 0}, -/*203 */ { 8, s_3_203, 201, 1, 0}, -/*204 */ { 8, s_3_204, 201, 1, 0}, -/*205 */ { 6, s_3_205, -1, 1, 0}, -/*206 */ { 6, s_3_206, -1, 1, 0}, -/*207 */ { 6, s_3_207, -1, 1, 0}, -/*208 */ { 7, s_3_208, -1, 1, 0}, -/*209 */ { 8, s_3_209, -1, 1, 0}, -/*210 */ { 4, s_3_210, -1, 1, 0}, -/*211 */ { 5, s_3_211, -1, 1, 0}, -/*212 */ { 3, s_3_212, -1, 1, 0}, -/*213 */ { 5, s_3_213, 212, 1, 0}, -/*214 */ { 3, s_3_214, -1, 1, 0}, -/*215 */ { 3, s_3_215, -1, 1, 0}, -/*216 */ { 3, s_3_216, -1, 1, 0}, -/*217 */ { 4, s_3_217, -1, 1, 0}, -/*218 */ { 3, s_3_218, -1, 1, 0}, -/*219 */ { 5, s_3_219, 218, 1, 0}, -/*220 */ { 5, s_3_220, 218, 1, 0}, -/*221 */ { 5, s_3_221, -1, 1, 0}, -/*222 */ { 5, s_3_222, -1, 1, 0}, -/*223 */ { 5, s_3_223, -1, 1, 0}, -/*224 */ { 3, s_3_224, -1, 1, 0}, -/*225 */ { 5, s_3_225, 224, 1, 0}, -/*226 */ { 3, s_3_226, -1, 1, 0}, -/*227 */ { 4, s_3_227, -1, 1, 0}, -/*228 */ { 2, s_3_228, -1, 1, 0}, -/*229 */ { 2, s_3_229, -1, 1, 0}, -/*230 */ { 3, s_3_230, -1, 1, 0}, -/*231 */ { 3, s_3_231, -1, 1, 0}, -/*232 */ { 3, s_3_232, -1, 1, 0}, -/*233 */ { 2, s_3_233, -1, 1, 0}, -/*234 */ { 3, s_3_234, -1, 1, 0}, -/*235 */ { 2, s_3_235, -1, 1, 0}, -/*236 */ { 4, s_3_236, 235, 1, 0}, -/*237 */ { 3, s_3_237, -1, 1, 0}, -/*238 */ { 4, s_3_238, -1, 1, 0}, -/*239 */ { 4, s_3_239, -1, 1, 0}, -/*240 */ { 4, s_3_240, -1, 1, 0}, -/*241 */ { 5, s_3_241, -1, 1, 0}, -/*242 */ { 5, s_3_242, -1, 1, 0}, -/*243 */ { 5, s_3_243, -1, 1, 0}, -/*244 */ { 5, s_3_244, -1, 1, 0}, -/*245 */ { 7, s_3_245, 244, 1, 0}, -/*246 */ { 6, s_3_246, -1, 1, 0}, -/*247 */ { 6, s_3_247, -1, 1, 0}, -/*248 */ { 5, s_3_248, -1, 1, 0}, -/*249 */ { 6, s_3_249, -1, 1, 0}, -/*250 */ { 5, s_3_250, -1, 1, 0}, -/*251 */ { 5, s_3_251, -1, 1, 0}, -/*252 */ { 5, s_3_252, -1, 1, 0}, -/*253 */ { 4, s_3_253, -1, 1, 0}, -/*254 */ { 6, s_3_254, 253, 1, 0}, -/*255 */ { 4, s_3_255, -1, 1, 0}, -/*256 */ { 6, s_3_256, 255, 1, 0}, -/*257 */ { 6, s_3_257, 255, 1, 0}, -/*258 */ { 5, s_3_258, -1, 1, 0}, -/*259 */ { 5, s_3_259, -1, 1, 0}, -/*260 */ { 6, s_3_260, -1, 1, 0}, -/*261 */ { 6, s_3_261, -1, 1, 0}, -/*262 */ { 6, s_3_262, -1, 1, 0}, -/*263 */ { 6, s_3_263, -1, 1, 0}, -/*264 */ { 3, s_3_264, -1, 1, 0}, -/*265 */ { 2, s_3_265, -1, 1, 0}, -/*266 */ { 3, s_3_266, 265, 1, 0}, -/*267 */ { 3, s_3_267, -1, 1, 0}, -/*268 */ { 3, s_3_268, -1, 1, 0}, -/*269 */ { 3, s_3_269, -1, 1, 0}, -/*270 */ { 4, s_3_270, -1, 1, 0}, -/*271 */ { 4, s_3_271, -1, 1, 0}, -/*272 */ { 5, s_3_272, -1, 1, 0}, -/*273 */ { 4, s_3_273, -1, 1, 0}, -/*274 */ { 4, s_3_274, -1, 1, 0}, -/*275 */ { 4, s_3_275, -1, 1, 0}, -/*276 */ { 4, s_3_276, -1, 1, 0}, -/*277 */ { 4, s_3_277, -1, 1, 0}, -/*278 */ { 4, s_3_278, -1, 1, 0}, -/*279 */ { 4, s_3_279, -1, 1, 0}, -/*280 */ { 2, s_3_280, -1, 1, 0}, -/*281 */ { 3, s_3_281, -1, 1, 0}, -/*282 */ { 3, s_3_282, -1, 1, 0} +{ 3, s_3_0, -1, 1, 0}, +{ 4, s_3_1, -1, 1, 0}, +{ 4, s_3_2, -1, 1, 0}, +{ 5, s_3_3, -1, 1, 0}, +{ 3, s_3_4, -1, 1, 0}, +{ 3, s_3_5, -1, 1, 0}, +{ 3, s_3_6, -1, 1, 0}, +{ 4, s_3_7, -1, 1, 0}, +{ 2, s_3_8, -1, 1, 0}, +{ 4, s_3_9, 8, 1, 0}, +{ 4, s_3_10, 8, 1, 0}, +{ 3, s_3_11, -1, 1, 0}, +{ 4, s_3_12, -1, 1, 0}, +{ 3, s_3_13, -1, 1, 0}, +{ 5, s_3_14, -1, 1, 0}, +{ 4, s_3_15, -1, 1, 0}, +{ 3, s_3_16, -1, 1, 0}, +{ 3, s_3_17, -1, 1, 0}, +{ 4, s_3_18, -1, 1, 0}, +{ 3, s_3_19, -1, 1, 0}, +{ 5, s_3_20, 19, 1, 0}, +{ 5, s_3_21, 19, 1, 0}, +{ 5, s_3_22, 19, 1, 0}, +{ 3, s_3_23, -1, 1, 0}, +{ 3, s_3_24, -1, 1, 0}, +{ 4, s_3_25, -1, 1, 0}, +{ 2, s_3_26, -1, 1, 0}, +{ 2, s_3_27, -1, 1, 0}, +{ 2, s_3_28, -1, 1, 0}, +{ 2, s_3_29, -1, 1, 0}, +{ 2, s_3_30, -1, 1, 0}, +{ 3, s_3_31, 30, 1, 0}, +{ 3, s_3_32, -1, 1, 0}, +{ 4, s_3_33, -1, 1, 0}, +{ 4, s_3_34, -1, 1, 0}, +{ 4, s_3_35, -1, 1, 0}, +{ 2, s_3_36, -1, 1, 0}, +{ 3, s_3_37, -1, 1, 0}, +{ 5, s_3_38, -1, 1, 0}, +{ 4, s_3_39, -1, 1, 0}, +{ 4, s_3_40, -1, 1, 0}, +{ 2, s_3_41, -1, 1, 0}, +{ 2, s_3_42, -1, 1, 0}, +{ 4, s_3_43, 42, 1, 0}, +{ 4, s_3_44, 42, 1, 0}, +{ 5, s_3_45, 42, 1, 0}, +{ 5, s_3_46, 42, 1, 0}, +{ 6, s_3_47, 42, 1, 0}, +{ 6, s_3_48, 42, 1, 0}, +{ 5, s_3_49, 42, 1, 0}, +{ 6, s_3_50, 42, 1, 0}, +{ 4, s_3_51, 42, 1, 0}, +{ 5, s_3_52, 42, 1, 0}, +{ 5, s_3_53, 42, 1, 0}, +{ 6, s_3_54, 42, 1, 0}, +{ 4, s_3_55, 42, 1, 0}, +{ 6, s_3_56, 55, 1, 0}, +{ 6, s_3_57, 55, 1, 0}, +{ 5, s_3_58, -1, 1, 0}, +{ 5, s_3_59, -1, 1, 0}, +{ 5, s_3_60, -1, 1, 0}, +{ 6, s_3_61, -1, 1, 0}, +{ 6, s_3_62, -1, 1, 0}, +{ 6, s_3_63, -1, 1, 0}, +{ 6, s_3_64, -1, 1, 0}, +{ 3, s_3_65, -1, 1, 0}, +{ 2, s_3_66, -1, 1, 0}, +{ 4, s_3_67, 66, 1, 0}, +{ 5, s_3_68, 66, 1, 0}, +{ 4, s_3_69, 66, 1, 0}, +{ 5, s_3_70, 66, 1, 0}, +{ 4, s_3_71, 66, 1, 0}, +{ 4, s_3_72, 66, 1, 0}, +{ 6, s_3_73, 72, 1, 0}, +{ 6, s_3_74, 72, 1, 0}, +{ 6, s_3_75, 72, 1, 0}, +{ 2, s_3_76, -1, 1, 0}, +{ 3, s_3_77, 76, 1, 0}, +{ 5, s_3_78, 77, 1, 0}, +{ 5, s_3_79, 77, 1, 0}, +{ 4, s_3_80, 76, 1, 0}, +{ 4, s_3_81, 76, 1, 0}, +{ 4, s_3_82, 76, 1, 0}, +{ 5, s_3_83, 76, 1, 0}, +{ 5, s_3_84, 76, 1, 0}, +{ 4, s_3_85, 76, 1, 0}, +{ 5, s_3_86, 76, 1, 0}, +{ 5, s_3_87, 76, 1, 0}, +{ 5, s_3_88, 76, 1, 0}, +{ 5, s_3_89, 76, 1, 0}, +{ 6, s_3_90, 76, 1, 0}, +{ 6, s_3_91, 76, 1, 0}, +{ 6, s_3_92, 76, 1, 0}, +{ 6, s_3_93, 76, 1, 0}, +{ 7, s_3_94, 76, 1, 0}, +{ 4, s_3_95, 76, 1, 0}, +{ 4, s_3_96, 76, 1, 0}, +{ 5, s_3_97, 96, 1, 0}, +{ 5, s_3_98, 76, 1, 0}, +{ 4, s_3_99, 76, 1, 0}, +{ 2, s_3_100, -1, 1, 0}, +{ 4, s_3_101, 100, 1, 0}, +{ 3, s_3_102, 100, 1, 0}, +{ 4, s_3_103, 102, 1, 0}, +{ 5, s_3_104, 102, 1, 0}, +{ 5, s_3_105, 102, 1, 0}, +{ 5, s_3_106, 102, 1, 0}, +{ 6, s_3_107, 102, 1, 0}, +{ 6, s_3_108, 100, 1, 0}, +{ 5, s_3_109, 100, 1, 0}, +{ 4, s_3_110, -1, 1, 0}, +{ 5, s_3_111, -1, 1, 0}, +{ 5, s_3_112, -1, 1, 0}, +{ 5, s_3_113, -1, 1, 0}, +{ 5, s_3_114, -1, 1, 0}, +{ 4, s_3_115, -1, 1, 0}, +{ 3, s_3_116, -1, 1, 0}, +{ 3, s_3_117, -1, 1, 0}, +{ 4, s_3_118, -1, 2, 0}, +{ 5, s_3_119, -1, 1, 0}, +{ 2, s_3_120, -1, 1, 0}, +{ 3, s_3_121, -1, 1, 0}, +{ 4, s_3_122, 121, 1, 0}, +{ 4, s_3_123, -1, 1, 0}, +{ 4, s_3_124, -1, 1, 0}, +{ 2, s_3_125, -1, 1, 0}, +{ 4, s_3_126, 125, 1, 0}, +{ 2, s_3_127, -1, 1, 0}, +{ 5, s_3_128, 127, 1, 0}, +{ 2, s_3_129, -1, 1, 0}, +{ 4, s_3_130, -1, 1, 0}, +{ 2, s_3_131, -1, 1, 0}, +{ 4, s_3_132, 131, 1, 0}, +{ 4, s_3_133, 131, 1, 0}, +{ 4, s_3_134, 131, 1, 0}, +{ 4, s_3_135, 131, 1, 0}, +{ 5, s_3_136, 131, 1, 0}, +{ 4, s_3_137, 131, 1, 0}, +{ 6, s_3_138, 137, 1, 0}, +{ 6, s_3_139, 137, 1, 0}, +{ 6, s_3_140, 137, 1, 0}, +{ 3, s_3_141, -1, 1, 0}, +{ 2, s_3_142, -1, 1, 0}, +{ 4, s_3_143, 142, 1, 0}, +{ 4, s_3_144, 142, 1, 0}, +{ 4, s_3_145, 142, 1, 0}, +{ 5, s_3_146, 142, 1, 0}, +{ 5, s_3_147, 142, 1, 0}, +{ 3, s_3_148, 142, 1, 0}, +{ 5, s_3_149, 148, 1, 0}, +{ 5, s_3_150, 148, 1, 0}, +{ 4, s_3_151, 142, 1, 0}, +{ 4, s_3_152, 142, 1, 0}, +{ 6, s_3_153, 142, 1, 0}, +{ 5, s_3_154, 142, 1, 0}, +{ 4, s_3_155, 142, 1, 0}, +{ 5, s_3_156, 142, 1, 0}, +{ 5, s_3_157, 142, 1, 0}, +{ 5, s_3_158, 142, 1, 0}, +{ 5, s_3_159, 142, 1, 0}, +{ 6, s_3_160, 142, 1, 0}, +{ 4, s_3_161, 142, 1, 0}, +{ 6, s_3_162, 161, 1, 0}, +{ 7, s_3_163, 161, 1, 0}, +{ 4, s_3_164, 142, 1, 0}, +{ 4, s_3_165, 142, 1, 0}, +{ 5, s_3_166, 165, 1, 0}, +{ 5, s_3_167, 142, 1, 0}, +{ 4, s_3_168, 142, 1, 0}, +{ 5, s_3_169, -1, 1, 0}, +{ 5, s_3_170, -1, 1, 0}, +{ 6, s_3_171, -1, 1, 0}, +{ 5, s_3_172, -1, 1, 0}, +{ 7, s_3_173, 172, 1, 0}, +{ 7, s_3_174, 172, 1, 0}, +{ 7, s_3_175, 172, 1, 0}, +{ 5, s_3_176, -1, 1, 0}, +{ 6, s_3_177, -1, 1, 0}, +{ 6, s_3_178, -1, 1, 0}, +{ 6, s_3_179, -1, 1, 0}, +{ 4, s_3_180, -1, 1, 0}, +{ 3, s_3_181, -1, 1, 0}, +{ 4, s_3_182, 181, 1, 0}, +{ 5, s_3_183, 181, 1, 0}, +{ 5, s_3_184, 181, 1, 0}, +{ 5, s_3_185, 181, 1, 0}, +{ 6, s_3_186, 181, 1, 0}, +{ 6, s_3_187, -1, 1, 0}, +{ 5, s_3_188, -1, 1, 0}, +{ 5, s_3_189, -1, 1, 0}, +{ 4, s_3_190, -1, 1, 0}, +{ 6, s_3_191, -1, 1, 0}, +{ 6, s_3_192, -1, 1, 0}, +{ 6, s_3_193, -1, 1, 0}, +{ 3, s_3_194, -1, 1, 0}, +{ 4, s_3_195, -1, 1, 0}, +{ 4, s_3_196, -1, 1, 0}, +{ 4, s_3_197, -1, 1, 0}, +{ 7, s_3_198, 197, 1, 0}, +{ 7, s_3_199, 197, 1, 0}, +{ 8, s_3_200, 197, 1, 0}, +{ 6, s_3_201, 197, 1, 0}, +{ 8, s_3_202, 201, 1, 0}, +{ 8, s_3_203, 201, 1, 0}, +{ 8, s_3_204, 201, 1, 0}, +{ 6, s_3_205, -1, 1, 0}, +{ 6, s_3_206, -1, 1, 0}, +{ 6, s_3_207, -1, 1, 0}, +{ 7, s_3_208, -1, 1, 0}, +{ 8, s_3_209, -1, 1, 0}, +{ 4, s_3_210, -1, 1, 0}, +{ 5, s_3_211, -1, 1, 0}, +{ 3, s_3_212, -1, 1, 0}, +{ 5, s_3_213, 212, 1, 0}, +{ 3, s_3_214, -1, 1, 0}, +{ 3, s_3_215, -1, 1, 0}, +{ 3, s_3_216, -1, 1, 0}, +{ 4, s_3_217, -1, 1, 0}, +{ 3, s_3_218, -1, 1, 0}, +{ 5, s_3_219, 218, 1, 0}, +{ 5, s_3_220, 218, 1, 0}, +{ 5, s_3_221, -1, 1, 0}, +{ 5, s_3_222, -1, 1, 0}, +{ 5, s_3_223, -1, 1, 0}, +{ 3, s_3_224, -1, 1, 0}, +{ 5, s_3_225, 224, 1, 0}, +{ 3, s_3_226, -1, 1, 0}, +{ 4, s_3_227, -1, 1, 0}, +{ 2, s_3_228, -1, 1, 0}, +{ 2, s_3_229, -1, 1, 0}, +{ 3, s_3_230, -1, 1, 0}, +{ 3, s_3_231, -1, 1, 0}, +{ 3, s_3_232, -1, 1, 0}, +{ 2, s_3_233, -1, 1, 0}, +{ 3, s_3_234, -1, 1, 0}, +{ 2, s_3_235, -1, 1, 0}, +{ 4, s_3_236, 235, 1, 0}, +{ 3, s_3_237, -1, 1, 0}, +{ 4, s_3_238, -1, 1, 0}, +{ 4, s_3_239, -1, 1, 0}, +{ 4, s_3_240, -1, 1, 0}, +{ 5, s_3_241, -1, 1, 0}, +{ 5, s_3_242, -1, 1, 0}, +{ 5, s_3_243, -1, 1, 0}, +{ 5, s_3_244, -1, 1, 0}, +{ 7, s_3_245, 244, 1, 0}, +{ 6, s_3_246, -1, 1, 0}, +{ 6, s_3_247, -1, 1, 0}, +{ 5, s_3_248, -1, 1, 0}, +{ 6, s_3_249, -1, 1, 0}, +{ 5, s_3_250, -1, 1, 0}, +{ 5, s_3_251, -1, 1, 0}, +{ 5, s_3_252, -1, 1, 0}, +{ 4, s_3_253, -1, 1, 0}, +{ 6, s_3_254, 253, 1, 0}, +{ 4, s_3_255, -1, 1, 0}, +{ 6, s_3_256, 255, 1, 0}, +{ 6, s_3_257, 255, 1, 0}, +{ 5, s_3_258, -1, 1, 0}, +{ 5, s_3_259, -1, 1, 0}, +{ 6, s_3_260, -1, 1, 0}, +{ 6, s_3_261, -1, 1, 0}, +{ 6, s_3_262, -1, 1, 0}, +{ 6, s_3_263, -1, 1, 0}, +{ 3, s_3_264, -1, 1, 0}, +{ 2, s_3_265, -1, 1, 0}, +{ 3, s_3_266, 265, 1, 0}, +{ 3, s_3_267, -1, 1, 0}, +{ 3, s_3_268, -1, 1, 0}, +{ 3, s_3_269, -1, 1, 0}, +{ 4, s_3_270, -1, 1, 0}, +{ 4, s_3_271, -1, 1, 0}, +{ 5, s_3_272, -1, 1, 0}, +{ 4, s_3_273, -1, 1, 0}, +{ 4, s_3_274, -1, 1, 0}, +{ 4, s_3_275, -1, 1, 0}, +{ 4, s_3_276, -1, 1, 0}, +{ 4, s_3_277, -1, 1, 0}, +{ 4, s_3_278, -1, 1, 0}, +{ 4, s_3_279, -1, 1, 0}, +{ 2, s_3_280, -1, 1, 0}, +{ 3, s_3_281, -1, 1, 0}, +{ 3, s_3_282, -1, 1, 0} }; static const symbol s_4_0[1] = { 'a' }; @@ -1143,28 +1143,28 @@ static const symbol s_4_21[2] = { 0xC3, 0xB3 }; static const struct among a_4[22] = { -/* 0 */ { 1, s_4_0, -1, 1, 0}, -/* 1 */ { 1, s_4_1, -1, 1, 0}, -/* 2 */ { 1, s_4_2, -1, 1, 0}, -/* 3 */ { 3, s_4_3, -1, 1, 0}, -/* 4 */ { 1, s_4_4, -1, 1, 0}, -/* 5 */ { 2, s_4_5, -1, 1, 0}, -/* 6 */ { 1, s_4_6, -1, 1, 0}, -/* 7 */ { 2, s_4_7, 6, 1, 0}, -/* 8 */ { 2, s_4_8, 6, 1, 0}, -/* 9 */ { 3, s_4_9, 6, 1, 0}, -/* 10 */ { 2, s_4_10, -1, 1, 0}, -/* 11 */ { 2, s_4_11, -1, 1, 0}, -/* 12 */ { 2, s_4_12, -1, 1, 0}, -/* 13 */ { 3, s_4_13, -1, 2, 0}, -/* 14 */ { 3, s_4_14, -1, 1, 0}, -/* 15 */ { 2, s_4_15, -1, 1, 0}, -/* 16 */ { 2, s_4_16, -1, 1, 0}, -/* 17 */ { 2, s_4_17, -1, 1, 0}, -/* 18 */ { 2, s_4_18, -1, 1, 0}, -/* 19 */ { 2, s_4_19, -1, 1, 0}, -/* 20 */ { 2, s_4_20, -1, 1, 0}, -/* 21 */ { 2, s_4_21, -1, 1, 0} +{ 1, s_4_0, -1, 1, 0}, +{ 1, s_4_1, -1, 1, 0}, +{ 1, s_4_2, -1, 1, 0}, +{ 3, s_4_3, -1, 1, 0}, +{ 1, s_4_4, -1, 1, 0}, +{ 2, s_4_5, -1, 1, 0}, +{ 1, s_4_6, -1, 1, 0}, +{ 2, s_4_7, 6, 1, 0}, +{ 2, s_4_8, 6, 1, 0}, +{ 3, s_4_9, 6, 1, 0}, +{ 2, s_4_10, -1, 1, 0}, +{ 2, s_4_11, -1, 1, 0}, +{ 2, s_4_12, -1, 1, 0}, +{ 3, s_4_13, -1, 2, 0}, +{ 3, s_4_14, -1, 1, 0}, +{ 2, s_4_15, -1, 1, 0}, +{ 2, s_4_16, -1, 1, 0}, +{ 2, s_4_17, -1, 1, 0}, +{ 2, s_4_18, -1, 1, 0}, +{ 2, s_4_19, -1, 1, 0}, +{ 2, s_4_20, -1, 1, 0}, +{ 2, s_4_21, -1, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 129, 81, 6, 10 }; @@ -1180,83 +1180,82 @@ static const symbol s_7[] = { 'i', 'c' }; static const symbol s_8[] = { 'c' }; static const symbol s_9[] = { 'i', 'c' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 38 */ - z->I[1] = z->l; /* $p2 = , line 39 */ - { int c1 = z->c; /* do, line 41 */ - { /* gopast */ /* grouping v, line 42 */ +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int ret = out_grouping_U(z, g_v, 97, 252, 1); if (ret < 0) goto lab0; z->c += ret; } - { /* gopast */ /* non v, line 42 */ + { int ret = in_grouping_U(z, g_v, 97, 252, 1); if (ret < 0) goto lab0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 42 */ - { /* gopast */ /* grouping v, line 43 */ + z->I[1] = z->c; + { int ret = out_grouping_U(z, g_v, 97, 252, 1); if (ret < 0) goto lab0; z->c += ret; } - { /* gopast */ /* non v, line 43 */ + { int ret = in_grouping_U(z, g_v, 97, 252, 1); if (ret < 0) goto lab0; z->c += ret; } - z->I[1] = z->c; /* setmark p2, line 43 */ + z->I[0] = z->c; lab0: z->c = c1; } return 1; } -static int r_cleaning(struct SN_env * z) { /* forwardmode */ +static int r_cleaning(struct SN_env * z) { int among_var; -/* repeat, line 47 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 48 */ - if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((344765187 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 7; else /* substring, line 48 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((344765187 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 7; else among_var = find_among(z, a_0, 13); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 48 */ - switch (among_var) { /* among, line 48 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_0); /* <-, line 49 */ + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_1); /* <-, line 51 */ + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_2); /* <-, line 53 */ + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 1, s_3); /* <-, line 55 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 1, s_4); /* <-, line 57 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 1, s_5); /* <-, line 60 */ + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } break; case 7: - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 61 */ + z->c = ret; } break; } @@ -1268,74 +1267,74 @@ static int r_cleaning(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 67 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 68 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 71 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1634850 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 71 */ +static int r_attached_pronoun(struct SN_env * z) { + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1634850 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_1, 39))) return 0; - z->bra = z->c; /* ], line 71 */ - { int ret = r_R1(z); /* call R1, line 81 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 81 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ +static int r_standard_suffix(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 86 */ - among_var = find_among_b(z, a_2, 200); /* substring, line 86 */ + z->ket = z->c; + among_var = find_among_b(z, a_2, 200); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 86 */ - switch (among_var) { /* among, line 86 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R1(z); /* call R1, line 110 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 110 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 112 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 112 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - { int ret = r_R2(z); /* call R2, line 114 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_6); /* <-, line 114 */ + { int ret = slice_from_s(z, 3, s_6); if (ret < 0) return ret; } break; case 4: - { int ret = r_R2(z); /* call R2, line 116 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 2, s_7); /* <-, line 116 */ + { int ret = slice_from_s(z, 2, s_7); if (ret < 0) return ret; } break; case 5: - { int ret = r_R1(z); /* call R1, line 118 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 1, s_8); /* <-, line 118 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } break; @@ -1343,26 +1342,26 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ +static int r_verb_suffix(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 123 */ - among_var = find_among_b(z, a_3, 283); /* substring, line 123 */ + z->ket = z->c; + among_var = find_among_b(z, a_3, 283); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 123 */ - switch (among_var) { /* among, line 123 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R1(z); /* call R1, line 168 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 168 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 170 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 170 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -1370,26 +1369,26 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ +static int r_residual_suffix(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 175 */ - among_var = find_among_b(z, a_4, 22); /* substring, line 175 */ + z->ket = z->c; + among_var = find_among_b(z, a_4, 22); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 175 */ - switch (among_var) { /* among, line 175 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R1(z); /* call R1, line 178 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 178 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R1(z); /* call R1, line 180 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 2, s_9); /* <-, line 180 */ + { int ret = slice_from_s(z, 2, s_9); if (ret < 0) return ret; } break; @@ -1397,29 +1396,29 @@ static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -extern int catalan_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - /* do, line 186 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 186 */ +extern int catalan_UTF_8_stem(struct SN_env * z) { + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 187 */ + z->lb = z->c; z->c = z->l; - { int m1 = z->l - z->c; (void)m1; /* do, line 188 */ - { int ret = r_attached_pronoun(z); /* call attached_pronoun, line 188 */ + { int m1 = z->l - z->c; (void)m1; + { int ret = r_attached_pronoun(z); if (ret < 0) return ret; } z->c = z->l - m1; } - { int m2 = z->l - z->c; (void)m2; /* do, line 189 */ - { int m3 = z->l - z->c; (void)m3; /* or, line 189 */ - { int ret = r_standard_suffix(z); /* call standard_suffix, line 189 */ + { int m2 = z->l - z->c; (void)m2; + { int m3 = z->l - z->c; (void)m3; + { int ret = r_standard_suffix(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } goto lab1; lab2: z->c = z->l - m3; - { int ret = r_verb_suffix(z); /* call verb_suffix, line 190 */ + { int ret = r_verb_suffix(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -1428,15 +1427,15 @@ extern int catalan_UTF_8_stem(struct SN_env * z) { /* forwardmode */ lab0: z->c = z->l - m2; } - { int m4 = z->l - z->c; (void)m4; /* do, line 192 */ - { int ret = r_residual_suffix(z); /* call residual_suffix, line 192 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_residual_suffix(z); if (ret < 0) return ret; } z->c = z->l - m4; } z->c = z->lb; - { int c5 = z->c; /* do, line 194 */ - { int ret = r_cleaning(z); /* call cleaning, line 194 */ + { int c5 = z->c; + { int ret = r_cleaning(z); if (ret < 0) return ret; } z->c = c5; @@ -1444,7 +1443,7 @@ extern int catalan_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * catalan_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); } +extern struct SN_env * catalan_UTF_8_create_env(void) { return SN_create_env(0, 2); } extern void catalan_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_danish.c b/src/backend/snowball/libstemmer/stem_UTF_8_danish.c index 9bc7e060b1d0b..ded772b8f2d21 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_danish.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_danish.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -61,38 +61,38 @@ static const symbol s_0_31[4] = { 'e', 'r', 'e', 't' }; static const struct among a_0[32] = { -/* 0 */ { 3, s_0_0, -1, 1, 0}, -/* 1 */ { 5, s_0_1, 0, 1, 0}, -/* 2 */ { 4, s_0_2, -1, 1, 0}, -/* 3 */ { 1, s_0_3, -1, 1, 0}, -/* 4 */ { 5, s_0_4, 3, 1, 0}, -/* 5 */ { 4, s_0_5, 3, 1, 0}, -/* 6 */ { 6, s_0_6, 5, 1, 0}, -/* 7 */ { 3, s_0_7, 3, 1, 0}, -/* 8 */ { 4, s_0_8, 3, 1, 0}, -/* 9 */ { 3, s_0_9, 3, 1, 0}, -/* 10 */ { 2, s_0_10, -1, 1, 0}, -/* 11 */ { 5, s_0_11, 10, 1, 0}, -/* 12 */ { 4, s_0_12, 10, 1, 0}, -/* 13 */ { 2, s_0_13, -1, 1, 0}, -/* 14 */ { 5, s_0_14, 13, 1, 0}, -/* 15 */ { 4, s_0_15, 13, 1, 0}, -/* 16 */ { 1, s_0_16, -1, 2, 0}, -/* 17 */ { 4, s_0_17, 16, 1, 0}, -/* 18 */ { 2, s_0_18, 16, 1, 0}, -/* 19 */ { 5, s_0_19, 18, 1, 0}, -/* 20 */ { 7, s_0_20, 19, 1, 0}, -/* 21 */ { 4, s_0_21, 18, 1, 0}, -/* 22 */ { 5, s_0_22, 18, 1, 0}, -/* 23 */ { 4, s_0_23, 18, 1, 0}, -/* 24 */ { 3, s_0_24, 16, 1, 0}, -/* 25 */ { 6, s_0_25, 24, 1, 0}, -/* 26 */ { 5, s_0_26, 24, 1, 0}, -/* 27 */ { 3, s_0_27, 16, 1, 0}, -/* 28 */ { 3, s_0_28, 16, 1, 0}, -/* 29 */ { 5, s_0_29, 28, 1, 0}, -/* 30 */ { 2, s_0_30, -1, 1, 0}, -/* 31 */ { 4, s_0_31, 30, 1, 0} +{ 3, s_0_0, -1, 1, 0}, +{ 5, s_0_1, 0, 1, 0}, +{ 4, s_0_2, -1, 1, 0}, +{ 1, s_0_3, -1, 1, 0}, +{ 5, s_0_4, 3, 1, 0}, +{ 4, s_0_5, 3, 1, 0}, +{ 6, s_0_6, 5, 1, 0}, +{ 3, s_0_7, 3, 1, 0}, +{ 4, s_0_8, 3, 1, 0}, +{ 3, s_0_9, 3, 1, 0}, +{ 2, s_0_10, -1, 1, 0}, +{ 5, s_0_11, 10, 1, 0}, +{ 4, s_0_12, 10, 1, 0}, +{ 2, s_0_13, -1, 1, 0}, +{ 5, s_0_14, 13, 1, 0}, +{ 4, s_0_15, 13, 1, 0}, +{ 1, s_0_16, -1, 2, 0}, +{ 4, s_0_17, 16, 1, 0}, +{ 2, s_0_18, 16, 1, 0}, +{ 5, s_0_19, 18, 1, 0}, +{ 7, s_0_20, 19, 1, 0}, +{ 4, s_0_21, 18, 1, 0}, +{ 5, s_0_22, 18, 1, 0}, +{ 4, s_0_23, 18, 1, 0}, +{ 3, s_0_24, 16, 1, 0}, +{ 6, s_0_25, 24, 1, 0}, +{ 5, s_0_26, 24, 1, 0}, +{ 3, s_0_27, 16, 1, 0}, +{ 3, s_0_28, 16, 1, 0}, +{ 5, s_0_29, 28, 1, 0}, +{ 2, s_0_30, -1, 1, 0}, +{ 4, s_0_31, 30, 1, 0} }; static const symbol s_1_0[2] = { 'g', 'd' }; @@ -102,10 +102,10 @@ static const symbol s_1_3[2] = { 'k', 't' }; static const struct among a_1[4] = { -/* 0 */ { 2, s_1_0, -1, -1, 0}, -/* 1 */ { 2, s_1_1, -1, -1, 0}, -/* 2 */ { 2, s_1_2, -1, -1, 0}, -/* 3 */ { 2, s_1_3, -1, -1, 0} +{ 2, s_1_0, -1, -1, 0}, +{ 2, s_1_1, -1, -1, 0}, +{ 2, s_1_2, -1, -1, 0}, +{ 2, s_1_3, -1, -1, 0} }; static const symbol s_2_0[2] = { 'i', 'g' }; @@ -116,11 +116,11 @@ static const symbol s_2_4[5] = { 'l', 0xC3, 0xB8, 's', 't' }; static const struct among a_2[5] = { -/* 0 */ { 2, s_2_0, -1, 1, 0}, -/* 1 */ { 3, s_2_1, 0, 1, 0}, -/* 2 */ { 4, s_2_2, 1, 1, 0}, -/* 3 */ { 3, s_2_3, -1, 1, 0}, -/* 4 */ { 5, s_2_4, -1, 2, 0} +{ 2, s_2_0, -1, 1, 0}, +{ 3, s_2_1, 0, 1, 0}, +{ 4, s_2_2, 1, 1, 0}, +{ 3, s_2_3, -1, 1, 0}, +{ 5, s_2_4, -1, 2, 0} }; static const unsigned char g_c[] = { 119, 223, 119, 1 }; @@ -133,52 +133,52 @@ static const symbol s_0[] = { 's', 't' }; static const symbol s_1[] = { 'i', 'g' }; static const symbol s_2[] = { 'l', 0xC3, 0xB8, 's' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 33 */ - { int c_test1 = z->c; /* test, line 35 */ - { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 35 */ +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + { int c_test1 = z->c; + { int ret = skip_utf8(z->p, z->c, z->l, 3); if (ret < 0) return 0; z->c = ret; } - z->I[1] = z->c; /* setmark x, line 35 */ + z->I[0] = z->c; z->c = c_test1; } - if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 36 */ - { /* gopast */ /* non v, line 36 */ + if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0; + { int ret = in_grouping_U(z, g_v, 97, 248, 1); if (ret < 0) return 0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 36 */ - /* try, line 37 */ - if (!(z->I[0] < z->I[1])) goto lab0; /* $( < ), line 37 */ - z->I[0] = z->I[1]; /* $p1 = , line 37 */ + z->I[1] = z->c; + + if (!(z->I[1] < z->I[0])) goto lab0; + z->I[1] = z->I[0]; lab0: return 1; } -static int r_main_suffix(struct SN_env * z) { /* backwardmode */ +static int r_main_suffix(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 43 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 43 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 43 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851440 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } among_var = find_among_b(z, a_0, 32); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 43 */ + z->bra = z->c; z->lb = mlimit1; } - switch (among_var) { /* among, line 44 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 50 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (in_grouping_b_U(z, g_s_ending, 97, 229, 0)) return 0; /* grouping s_ending, line 52 */ - { int ret = slice_del(z); /* delete, line 52 */ + if (in_grouping_b_U(z, g_s_ending, 97, 229, 0)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -186,69 +186,69 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_consonant_pair(struct SN_env * z) { /* backwardmode */ - { int m_test1 = z->l - z->c; /* test, line 57 */ +static int r_consonant_pair(struct SN_env * z) { + { int m_test1 = z->l - z->c; - { int mlimit2; /* setlimit, line 58 */ - if (z->c < z->I[0]) return 0; - mlimit2 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 58 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; } /* substring, line 58 */ + { int mlimit2; + if (z->c < z->I[1]) return 0; + mlimit2 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 116)) { z->lb = mlimit2; return 0; } if (!(find_among_b(z, a_1, 4))) { z->lb = mlimit2; return 0; } - z->bra = z->c; /* ], line 58 */ + z->bra = z->c; z->lb = mlimit2; } z->c = z->l - m_test1; } - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) return 0; - z->c = ret; /* next, line 64 */ + z->c = ret; } - z->bra = z->c; /* ], line 64 */ - { int ret = slice_del(z); /* delete, line 64 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_other_suffix(struct SN_env * z) { /* backwardmode */ +static int r_other_suffix(struct SN_env * z) { int among_var; - { int m1 = z->l - z->c; (void)m1; /* do, line 68 */ - z->ket = z->c; /* [, line 68 */ - if (!(eq_s_b(z, 2, s_0))) goto lab0; /* literal, line 68 */ - z->bra = z->c; /* ], line 68 */ - if (!(eq_s_b(z, 2, s_1))) goto lab0; /* literal, line 68 */ - { int ret = slice_del(z); /* delete, line 68 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_0))) goto lab0; + z->bra = z->c; + if (!(eq_s_b(z, 2, s_1))) goto lab0; + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: z->c = z->l - m1; } - { int mlimit2; /* setlimit, line 69 */ - if (z->c < z->I[0]) return 0; - mlimit2 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 69 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; } /* substring, line 69 */ + { int mlimit2; + if (z->c < z->I[1]) return 0; + mlimit2 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit2; return 0; } among_var = find_among_b(z, a_2, 5); if (!(among_var)) { z->lb = mlimit2; return 0; } - z->bra = z->c; /* ], line 69 */ + z->bra = z->c; z->lb = mlimit2; } - switch (among_var) { /* among, line 70 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 72 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m3 = z->l - z->c; (void)m3; /* do, line 72 */ - { int ret = r_consonant_pair(z); /* call consonant_pair, line 72 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_consonant_pair(z); if (ret < 0) return ret; } z->c = z->l - m3; } break; case 2: - { int ret = slice_from_s(z, 4, s_2); /* <-, line 74 */ + { int ret = slice_from_s(z, 4, s_2); if (ret < 0) return ret; } break; @@ -256,54 +256,54 @@ static int r_other_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_undouble(struct SN_env * z) { /* backwardmode */ +static int r_undouble(struct SN_env * z) { - { int mlimit1; /* setlimit, line 78 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 78 */ - if (in_grouping_b_U(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; } /* grouping c, line 78 */ - z->bra = z->c; /* ], line 78 */ - z->S[0] = slice_to(z, z->S[0]); /* -> ch, line 78 */ - if (z->S[0] == 0) return -1; /* -> ch, line 78 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (in_grouping_b_U(z, g_c, 98, 122, 0)) { z->lb = mlimit1; return 0; } + z->bra = z->c; + z->S[0] = slice_to(z, z->S[0]); + if (z->S[0] == 0) return -1; z->lb = mlimit1; } - if (!(eq_v_b(z, z->S[0]))) return 0; /* name ch, line 79 */ - { int ret = slice_del(z); /* delete, line 80 */ + if (!(eq_v_b(z, z->S[0]))) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -extern int danish_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 86 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 86 */ +extern int danish_UTF_8_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_mark_regions(z); if (ret < 0) return ret; } z->c = c1; } - z->lb = z->c; z->c = z->l; /* backwards, line 87 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 88 */ - { int ret = r_main_suffix(z); /* call main_suffix, line 88 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_main_suffix(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 89 */ - { int ret = r_consonant_pair(z); /* call consonant_pair, line 89 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_consonant_pair(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 90 */ - { int ret = r_other_suffix(z); /* call other_suffix, line 90 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_other_suffix(z); if (ret < 0) return ret; } z->c = z->l - m4; } - { int m5 = z->l - z->c; (void)m5; /* do, line 91 */ - { int ret = r_undouble(z); /* call undouble, line 91 */ + { int m5 = z->l - z->c; (void)m5; + { int ret = r_undouble(z); if (ret < 0) return ret; } z->c = z->l - m5; @@ -312,7 +312,7 @@ extern int danish_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * danish_UTF_8_create_env(void) { return SN_create_env(1, 2, 0); } +extern struct SN_env * danish_UTF_8_create_env(void) { return SN_create_env(1, 2); } extern void danish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 1); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_dutch.c b/src/backend/snowball/libstemmer/stem_UTF_8_dutch.c index 56028832f1f46..bb82be87f7b94 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_dutch.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_dutch.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -43,17 +43,17 @@ static const symbol s_0_10[2] = { 0xC3, 0xBC }; static const struct among a_0[11] = { -/* 0 */ { 0, 0, -1, 6, 0}, -/* 1 */ { 2, s_0_1, 0, 1, 0}, -/* 2 */ { 2, s_0_2, 0, 1, 0}, -/* 3 */ { 2, s_0_3, 0, 2, 0}, -/* 4 */ { 2, s_0_4, 0, 2, 0}, -/* 5 */ { 2, s_0_5, 0, 3, 0}, -/* 6 */ { 2, s_0_6, 0, 3, 0}, -/* 7 */ { 2, s_0_7, 0, 4, 0}, -/* 8 */ { 2, s_0_8, 0, 4, 0}, -/* 9 */ { 2, s_0_9, 0, 5, 0}, -/* 10 */ { 2, s_0_10, 0, 5, 0} +{ 0, 0, -1, 6, 0}, +{ 2, s_0_1, 0, 1, 0}, +{ 2, s_0_2, 0, 1, 0}, +{ 2, s_0_3, 0, 2, 0}, +{ 2, s_0_4, 0, 2, 0}, +{ 2, s_0_5, 0, 3, 0}, +{ 2, s_0_6, 0, 3, 0}, +{ 2, s_0_7, 0, 4, 0}, +{ 2, s_0_8, 0, 4, 0}, +{ 2, s_0_9, 0, 5, 0}, +{ 2, s_0_10, 0, 5, 0} }; static const symbol s_1_1[1] = { 'I' }; @@ -61,9 +61,9 @@ static const symbol s_1_2[1] = { 'Y' }; static const struct among a_1[3] = { -/* 0 */ { 0, 0, -1, 3, 0}, -/* 1 */ { 1, s_1_1, 0, 2, 0}, -/* 2 */ { 1, s_1_2, 0, 1, 0} +{ 0, 0, -1, 3, 0}, +{ 1, s_1_1, 0, 2, 0}, +{ 1, s_1_2, 0, 1, 0} }; static const symbol s_2_0[2] = { 'd', 'd' }; @@ -72,9 +72,9 @@ static const symbol s_2_2[2] = { 't', 't' }; static const struct among a_2[3] = { -/* 0 */ { 2, s_2_0, -1, -1, 0}, -/* 1 */ { 2, s_2_1, -1, -1, 0}, -/* 2 */ { 2, s_2_2, -1, -1, 0} +{ 2, s_2_0, -1, -1, 0}, +{ 2, s_2_1, -1, -1, 0}, +{ 2, s_2_2, -1, -1, 0} }; static const symbol s_3_0[3] = { 'e', 'n', 'e' }; @@ -85,11 +85,11 @@ static const symbol s_3_4[1] = { 's' }; static const struct among a_3[5] = { -/* 0 */ { 3, s_3_0, -1, 2, 0}, -/* 1 */ { 2, s_3_1, -1, 3, 0}, -/* 2 */ { 2, s_3_2, -1, 2, 0}, -/* 3 */ { 5, s_3_3, 2, 1, 0}, -/* 4 */ { 1, s_3_4, -1, 3, 0} +{ 3, s_3_0, -1, 2, 0}, +{ 2, s_3_1, -1, 3, 0}, +{ 2, s_3_2, -1, 2, 0}, +{ 5, s_3_3, 2, 1, 0}, +{ 1, s_3_4, -1, 3, 0} }; static const symbol s_4_0[3] = { 'e', 'n', 'd' }; @@ -101,12 +101,12 @@ static const symbol s_4_5[3] = { 'b', 'a', 'r' }; static const struct among a_4[6] = { -/* 0 */ { 3, s_4_0, -1, 1, 0}, -/* 1 */ { 2, s_4_1, -1, 2, 0}, -/* 2 */ { 3, s_4_2, -1, 1, 0}, -/* 3 */ { 4, s_4_3, -1, 3, 0}, -/* 4 */ { 4, s_4_4, -1, 4, 0}, -/* 5 */ { 3, s_4_5, -1, 5, 0} +{ 3, s_4_0, -1, 1, 0}, +{ 2, s_4_1, -1, 2, 0}, +{ 3, s_4_2, -1, 1, 0}, +{ 4, s_4_3, -1, 3, 0}, +{ 4, s_4_4, -1, 4, 0}, +{ 3, s_4_5, -1, 5, 0} }; static const symbol s_5_0[2] = { 'a', 'a' }; @@ -116,10 +116,10 @@ static const symbol s_5_3[2] = { 'u', 'u' }; static const struct among a_5[4] = { -/* 0 */ { 2, s_5_0, -1, -1, 0}, -/* 1 */ { 2, s_5_1, -1, -1, 0}, -/* 2 */ { 2, s_5_2, -1, -1, 0}, -/* 3 */ { 2, s_5_3, -1, -1, 0} +{ 2, s_5_0, -1, -1, 0}, +{ 2, s_5_1, -1, -1, 0}, +{ 2, s_5_2, -1, -1, 0}, +{ 2, s_5_3, -1, -1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; @@ -144,47 +144,46 @@ static const symbol s_12[] = { 'h', 'e', 'i', 'd' }; static const symbol s_13[] = { 'e', 'n' }; static const symbol s_14[] = { 'i', 'g' }; -static int r_prelude(struct SN_env * z) { /* forwardmode */ +static int r_prelude(struct SN_env * z) { int among_var; - { int c_test1 = z->c; /* test, line 42 */ -/* repeat, line 42 */ - - while(1) { int c2 = z->c; - z->bra = z->c; /* [, line 43 */ - if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((340306450 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else /* substring, line 43 */ + { int c_test1 = z->c; + while(1) { + int c2 = z->c; + z->bra = z->c; + if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((340306450 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else among_var = find_among(z, a_0, 11); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 43 */ - switch (among_var) { /* among, line 43 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_0); /* <-, line 45 */ + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_1); /* <-, line 47 */ + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_2); /* <-, line 49 */ + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 1, s_3); /* <-, line 51 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 1, s_4); /* <-, line 53 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } break; case 6: - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 54 */ + z->c = ret; } break; } @@ -195,39 +194,38 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ } z->c = c_test1; } - { int c3 = z->c; /* try, line 57 */ - z->bra = z->c; /* [, line 57 */ - if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; } /* literal, line 57 */ + { int c3 = z->c; + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; } z->c++; - z->ket = z->c; /* ], line 57 */ - { int ret = slice_from_s(z, 1, s_5); /* <-, line 57 */ + z->ket = z->c; + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } lab1: ; } -/* repeat, line 58 */ - - while(1) { int c4 = z->c; - while(1) { /* goto, line 58 */ + while(1) { + int c4 = z->c; + while(1) { int c5 = z->c; - if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab3; /* grouping v, line 59 */ - z->bra = z->c; /* [, line 59 */ - { int c6 = z->c; /* or, line 59 */ - if (z->c == z->l || z->p[z->c] != 'i') goto lab5; /* literal, line 59 */ + if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab3; + z->bra = z->c; + { int c6 = z->c; + if (z->c == z->l || z->p[z->c] != 'i') goto lab5; z->c++; - z->ket = z->c; /* ], line 59 */ - if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab5; /* grouping v, line 59 */ - { int ret = slice_from_s(z, 1, s_6); /* <-, line 59 */ + z->ket = z->c; + if (in_grouping_U(z, g_v, 97, 232, 0)) goto lab5; + { int ret = slice_from_s(z, 1, s_6); if (ret < 0) return ret; } goto lab4; lab5: z->c = c6; - if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 60 */ + if (z->c == z->l || z->p[z->c] != 'y') goto lab3; z->c++; - z->ket = z->c; /* ], line 60 */ - { int ret = slice_from_s(z, 1, s_7); /* <-, line 60 */ + z->ket = z->c; + { int ret = slice_from_s(z, 1, s_7); if (ret < 0) return ret; } } @@ -236,9 +234,9 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ break; lab3: z->c = c5; - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab2; - z->c = ret; /* goto, line 58 */ + z->c = ret; } } continue; @@ -249,63 +247,62 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 66 */ - z->I[1] = z->l; /* $p2 = , line 67 */ - { /* gopast */ /* grouping v, line 69 */ +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + z->I[0] = z->l; + { int ret = out_grouping_U(z, g_v, 97, 232, 1); if (ret < 0) return 0; z->c += ret; } - { /* gopast */ /* non v, line 69 */ + { int ret = in_grouping_U(z, g_v, 97, 232, 1); if (ret < 0) return 0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 69 */ - /* try, line 70 */ - if (!(z->I[0] < 3)) goto lab0; /* $( < ), line 70 */ - z->I[0] = 3; /* $p1 = , line 70 */ + z->I[1] = z->c; + + if (!(z->I[1] < 3)) goto lab0; + z->I[1] = 3; lab0: - { /* gopast */ /* grouping v, line 71 */ + { int ret = out_grouping_U(z, g_v, 97, 232, 1); if (ret < 0) return 0; z->c += ret; } - { /* gopast */ /* non v, line 71 */ + { int ret = in_grouping_U(z, g_v, 97, 232, 1); if (ret < 0) return 0; z->c += ret; } - z->I[1] = z->c; /* setmark p2, line 71 */ + z->I[0] = z->c; return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ +static int r_postlude(struct SN_env * z) { int among_var; -/* repeat, line 75 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 77 */ - if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else /* substring, line 77 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else among_var = find_among(z, a_1, 3); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 77 */ - switch (among_var) { /* among, line 77 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_8); /* <-, line 78 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_9); /* <-, line 79 */ + { int ret = slice_from_s(z, 1, s_9); if (ret < 0) return ret; } break; case 3: - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 80 */ + z->c = ret; } break; } @@ -317,111 +314,111 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 87 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 88 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_undouble(struct SN_env * z) { /* backwardmode */ - { int m_test1 = z->l - z->c; /* test, line 91 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 91 */ +static int r_undouble(struct SN_env * z) { + { int m_test1 = z->l - z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_2, 3))) return 0; z->c = z->l - m_test1; } - z->ket = z->c; /* [, line 91 */ - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + z->ket = z->c; + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) return 0; - z->c = ret; /* next, line 91 */ + z->c = ret; } - z->bra = z->c; /* ], line 91 */ - { int ret = slice_del(z); /* delete, line 91 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_e_ending(struct SN_env * z) { /* backwardmode */ - z->B[0] = 0; /* unset e_found, line 95 */ - z->ket = z->c; /* [, line 96 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 96 */ +static int r_e_ending(struct SN_env * z) { + z->I[2] = 0; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; z->c--; - z->bra = z->c; /* ], line 96 */ - { int ret = r_R1(z); /* call R1, line 96 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int m_test1 = z->l - z->c; /* test, line 96 */ - if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0; /* non v, line 96 */ + { int m_test1 = z->l - z->c; + if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0; z->c = z->l - m_test1; } - { int ret = slice_del(z); /* delete, line 96 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 1; /* set e_found, line 97 */ - { int ret = r_undouble(z); /* call undouble, line 98 */ + z->I[2] = 1; + { int ret = r_undouble(z); if (ret <= 0) return ret; } return 1; } -static int r_en_ending(struct SN_env * z) { /* backwardmode */ - { int ret = r_R1(z); /* call R1, line 102 */ +static int r_en_ending(struct SN_env * z) { + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int m1 = z->l - z->c; (void)m1; /* and, line 102 */ - if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0; /* non v, line 102 */ + { int m1 = z->l - z->c; (void)m1; + if (out_grouping_b_U(z, g_v, 97, 232, 0)) return 0; z->c = z->l - m1; - { int m2 = z->l - z->c; (void)m2; /* not, line 102 */ - if (!(eq_s_b(z, 3, s_10))) goto lab0; /* literal, line 102 */ + { int m2 = z->l - z->c; (void)m2; + if (!(eq_s_b(z, 3, s_10))) goto lab0; return 0; lab0: z->c = z->l - m2; } } - { int ret = slice_del(z); /* delete, line 102 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_undouble(z); /* call undouble, line 103 */ + { int ret = r_undouble(z); if (ret <= 0) return ret; } return 1; } -static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ +static int r_standard_suffix(struct SN_env * z) { int among_var; - { int m1 = z->l - z->c; (void)m1; /* do, line 107 */ - z->ket = z->c; /* [, line 108 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 108 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; among_var = find_among_b(z, a_3, 5); if (!(among_var)) goto lab0; - z->bra = z->c; /* ], line 108 */ - switch (among_var) { /* among, line 108 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R1(z); /* call R1, line 110 */ + { int ret = r_R1(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } - { int ret = slice_from_s(z, 4, s_11); /* <-, line 110 */ + { int ret = slice_from_s(z, 4, s_11); if (ret < 0) return ret; } break; case 2: - { int ret = r_en_ending(z); /* call en_ending, line 113 */ + { int ret = r_en_ending(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } break; case 3: - { int ret = r_R1(z); /* call R1, line 116 */ + { int ret = r_R1(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } - if (out_grouping_b_U(z, g_v_j, 97, 232, 0)) goto lab0; /* non v_j, line 116 */ - { int ret = slice_del(z); /* delete, line 116 */ + if (out_grouping_b_U(z, g_v_j, 97, 232, 0)) goto lab0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -429,77 +426,77 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ lab0: z->c = z->l - m1; } - { int m2 = z->l - z->c; (void)m2; /* do, line 120 */ - { int ret = r_e_ending(z); /* call e_ending, line 120 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_e_ending(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 122 */ - z->ket = z->c; /* [, line 122 */ - if (!(eq_s_b(z, 4, s_12))) goto lab1; /* literal, line 122 */ - z->bra = z->c; /* ], line 122 */ - { int ret = r_R2(z); /* call R2, line 122 */ + { int m3 = z->l - z->c; (void)m3; + z->ket = z->c; + if (!(eq_s_b(z, 4, s_12))) goto lab1; + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } - { int m4 = z->l - z->c; (void)m4; /* not, line 122 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2; /* literal, line 122 */ + { int m4 = z->l - z->c; (void)m4; + if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2; z->c--; goto lab1; lab2: z->c = z->l - m4; } - { int ret = slice_del(z); /* delete, line 122 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 123 */ - if (!(eq_s_b(z, 2, s_13))) goto lab1; /* literal, line 123 */ - z->bra = z->c; /* ], line 123 */ - { int ret = r_en_ending(z); /* call en_ending, line 123 */ + z->ket = z->c; + if (!(eq_s_b(z, 2, s_13))) goto lab1; + z->bra = z->c; + { int ret = r_en_ending(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } lab1: z->c = z->l - m3; } - { int m5 = z->l - z->c; (void)m5; /* do, line 126 */ - z->ket = z->c; /* [, line 127 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; /* substring, line 127 */ + { int m5 = z->l - z->c; (void)m5; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; among_var = find_among_b(z, a_4, 6); if (!(among_var)) goto lab3; - z->bra = z->c; /* ], line 127 */ - switch (among_var) { /* among, line 127 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 129 */ + { int ret = r_R2(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 129 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m6 = z->l - z->c; (void)m6; /* or, line 130 */ - z->ket = z->c; /* [, line 130 */ - if (!(eq_s_b(z, 2, s_14))) goto lab5; /* literal, line 130 */ - z->bra = z->c; /* ], line 130 */ - { int ret = r_R2(z); /* call R2, line 130 */ + { int m6 = z->l - z->c; (void)m6; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_14))) goto lab5; + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) goto lab5; if (ret < 0) return ret; } - { int m7 = z->l - z->c; (void)m7; /* not, line 130 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; /* literal, line 130 */ + { int m7 = z->l - z->c; (void)m7; + if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; z->c--; goto lab5; lab6: z->c = z->l - m7; } - { int ret = slice_del(z); /* delete, line 130 */ + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab4; lab5: z->c = z->l - m6; - { int ret = r_undouble(z); /* call undouble, line 130 */ + { int ret = r_undouble(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } @@ -507,50 +504,50 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ lab4: break; case 2: - { int ret = r_R2(z); /* call R2, line 133 */ + { int ret = r_R2(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } - { int m8 = z->l - z->c; (void)m8; /* not, line 133 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7; /* literal, line 133 */ + { int m8 = z->l - z->c; (void)m8; + if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7; z->c--; goto lab3; lab7: z->c = z->l - m8; } - { int ret = slice_del(z); /* delete, line 133 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - { int ret = r_R2(z); /* call R2, line 136 */ + { int ret = r_R2(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 136 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_e_ending(z); /* call e_ending, line 136 */ + { int ret = r_e_ending(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } break; case 4: - { int ret = r_R2(z); /* call R2, line 139 */ + { int ret = r_R2(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 139 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 5: - { int ret = r_R2(z); /* call R2, line 142 */ + { int ret = r_R2(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } - if (!(z->B[0])) goto lab3; /* Boolean test e_found, line 142 */ - { int ret = slice_del(z); /* delete, line 142 */ + if (!(z->I[2])) goto lab3; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -558,21 +555,21 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ lab3: z->c = z->l - m5; } - { int m9 = z->l - z->c; (void)m9; /* do, line 146 */ - if (out_grouping_b_U(z, g_v_I, 73, 232, 0)) goto lab8; /* non v_I, line 147 */ - { int m_test10 = z->l - z->c; /* test, line 148 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8; /* among, line 149 */ + { int m9 = z->l - z->c; (void)m9; + if (out_grouping_b_U(z, g_v_I, 73, 232, 0)) goto lab8; + { int m_test10 = z->l - z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8; if (!(find_among_b(z, a_5, 4))) goto lab8; - if (out_grouping_b_U(z, g_v, 97, 232, 0)) goto lab8; /* non v, line 150 */ + if (out_grouping_b_U(z, g_v, 97, 232, 0)) goto lab8; z->c = z->l - m_test10; } - z->ket = z->c; /* [, line 152 */ - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + z->ket = z->c; + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) goto lab8; - z->c = ret; /* next, line 152 */ + z->c = ret; } - z->bra = z->c; /* ], line 152 */ - { int ret = slice_del(z); /* delete, line 152 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } lab8: @@ -581,28 +578,28 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -extern int dutch_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 159 */ - { int ret = r_prelude(z); /* call prelude, line 159 */ +extern int dutch_UTF_8_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_prelude(z); if (ret < 0) return ret; } z->c = c1; } - { int c2 = z->c; /* do, line 160 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 160 */ + { int c2 = z->c; + { int ret = r_mark_regions(z); if (ret < 0) return ret; } z->c = c2; } - z->lb = z->c; z->c = z->l; /* backwards, line 161 */ + z->lb = z->c; z->c = z->l; - /* do, line 162 */ - { int ret = r_standard_suffix(z); /* call standard_suffix, line 162 */ + + { int ret = r_standard_suffix(z); if (ret < 0) return ret; } z->c = z->lb; - { int c3 = z->c; /* do, line 163 */ - { int ret = r_postlude(z); /* call postlude, line 163 */ + { int c3 = z->c; + { int ret = r_postlude(z); if (ret < 0) return ret; } z->c = c3; @@ -610,7 +607,7 @@ extern int dutch_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * dutch_UTF_8_create_env(void) { return SN_create_env(0, 2, 1); } +extern struct SN_env * dutch_UTF_8_create_env(void) { return SN_create_env(0, 3); } extern void dutch_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_english.c b/src/backend/snowball/libstemmer/stem_UTF_8_english.c index e03c37c98a3bd..f94d08f9f727b 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_english.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_english.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -42,9 +42,9 @@ static const symbol s_0_2[5] = { 'g', 'e', 'n', 'e', 'r' }; static const struct among a_0[3] = { -/* 0 */ { 5, s_0_0, -1, -1, 0}, -/* 1 */ { 6, s_0_1, -1, -1, 0}, -/* 2 */ { 5, s_0_2, -1, -1, 0} +{ 5, s_0_0, -1, -1, 0}, +{ 6, s_0_1, -1, -1, 0}, +{ 5, s_0_2, -1, -1, 0} }; static const symbol s_1_0[1] = { '\'' }; @@ -53,9 +53,9 @@ static const symbol s_1_2[2] = { '\'', 's' }; static const struct among a_1[3] = { -/* 0 */ { 1, s_1_0, -1, 1, 0}, -/* 1 */ { 3, s_1_1, 0, 1, 0}, -/* 2 */ { 2, s_1_2, -1, 1, 0} +{ 1, s_1_0, -1, 1, 0}, +{ 3, s_1_1, 0, 1, 0}, +{ 2, s_1_2, -1, 1, 0} }; static const symbol s_2_0[3] = { 'i', 'e', 'd' }; @@ -67,12 +67,12 @@ static const symbol s_2_5[2] = { 'u', 's' }; static const struct among a_2[6] = { -/* 0 */ { 3, s_2_0, -1, 2, 0}, -/* 1 */ { 1, s_2_1, -1, 3, 0}, -/* 2 */ { 3, s_2_2, 1, 2, 0}, -/* 3 */ { 4, s_2_3, 1, 1, 0}, -/* 4 */ { 2, s_2_4, 1, -1, 0}, -/* 5 */ { 2, s_2_5, 1, -1, 0} +{ 3, s_2_0, -1, 2, 0}, +{ 1, s_2_1, -1, 3, 0}, +{ 3, s_2_2, 1, 2, 0}, +{ 4, s_2_3, 1, 1, 0}, +{ 2, s_2_4, 1, -1, 0}, +{ 2, s_2_5, 1, -1, 0} }; static const symbol s_3_1[2] = { 'b', 'b' }; @@ -90,19 +90,19 @@ static const symbol s_3_12[2] = { 'i', 'z' }; static const struct among a_3[13] = { -/* 0 */ { 0, 0, -1, 3, 0}, -/* 1 */ { 2, s_3_1, 0, 2, 0}, -/* 2 */ { 2, s_3_2, 0, 2, 0}, -/* 3 */ { 2, s_3_3, 0, 2, 0}, -/* 4 */ { 2, s_3_4, 0, 2, 0}, -/* 5 */ { 2, s_3_5, 0, 1, 0}, -/* 6 */ { 2, s_3_6, 0, 2, 0}, -/* 7 */ { 2, s_3_7, 0, 2, 0}, -/* 8 */ { 2, s_3_8, 0, 2, 0}, -/* 9 */ { 2, s_3_9, 0, 2, 0}, -/* 10 */ { 2, s_3_10, 0, 1, 0}, -/* 11 */ { 2, s_3_11, 0, 2, 0}, -/* 12 */ { 2, s_3_12, 0, 1, 0} +{ 0, 0, -1, 3, 0}, +{ 2, s_3_1, 0, 2, 0}, +{ 2, s_3_2, 0, 2, 0}, +{ 2, s_3_3, 0, 2, 0}, +{ 2, s_3_4, 0, 2, 0}, +{ 2, s_3_5, 0, 1, 0}, +{ 2, s_3_6, 0, 2, 0}, +{ 2, s_3_7, 0, 2, 0}, +{ 2, s_3_8, 0, 2, 0}, +{ 2, s_3_9, 0, 2, 0}, +{ 2, s_3_10, 0, 1, 0}, +{ 2, s_3_11, 0, 2, 0}, +{ 2, s_3_12, 0, 1, 0} }; static const symbol s_4_0[2] = { 'e', 'd' }; @@ -114,12 +114,12 @@ static const symbol s_4_5[5] = { 'i', 'n', 'g', 'l', 'y' }; static const struct among a_4[6] = { -/* 0 */ { 2, s_4_0, -1, 2, 0}, -/* 1 */ { 3, s_4_1, 0, 1, 0}, -/* 2 */ { 3, s_4_2, -1, 2, 0}, -/* 3 */ { 4, s_4_3, -1, 2, 0}, -/* 4 */ { 5, s_4_4, 3, 1, 0}, -/* 5 */ { 5, s_4_5, -1, 2, 0} +{ 2, s_4_0, -1, 2, 0}, +{ 3, s_4_1, 0, 1, 0}, +{ 3, s_4_2, -1, 2, 0}, +{ 4, s_4_3, -1, 2, 0}, +{ 5, s_4_4, 3, 1, 0}, +{ 5, s_4_5, -1, 2, 0} }; static const symbol s_5_0[4] = { 'a', 'n', 'c', 'i' }; @@ -149,30 +149,30 @@ static const symbol s_5_23[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' }; static const struct among a_5[24] = { -/* 0 */ { 4, s_5_0, -1, 3, 0}, -/* 1 */ { 4, s_5_1, -1, 2, 0}, -/* 2 */ { 3, s_5_2, -1, 13, 0}, -/* 3 */ { 2, s_5_3, -1, 15, 0}, -/* 4 */ { 3, s_5_4, 3, 12, 0}, -/* 5 */ { 4, s_5_5, 4, 4, 0}, -/* 6 */ { 4, s_5_6, 3, 8, 0}, -/* 7 */ { 5, s_5_7, 3, 9, 0}, -/* 8 */ { 6, s_5_8, 3, 14, 0}, -/* 9 */ { 5, s_5_9, 3, 10, 0}, -/* 10 */ { 5, s_5_10, 3, 5, 0}, -/* 11 */ { 5, s_5_11, -1, 8, 0}, -/* 12 */ { 6, s_5_12, -1, 12, 0}, -/* 13 */ { 5, s_5_13, -1, 11, 0}, -/* 14 */ { 6, s_5_14, -1, 1, 0}, -/* 15 */ { 7, s_5_15, 14, 7, 0}, -/* 16 */ { 5, s_5_16, -1, 8, 0}, -/* 17 */ { 5, s_5_17, -1, 7, 0}, -/* 18 */ { 7, s_5_18, 17, 6, 0}, -/* 19 */ { 4, s_5_19, -1, 6, 0}, -/* 20 */ { 4, s_5_20, -1, 7, 0}, -/* 21 */ { 7, s_5_21, -1, 11, 0}, -/* 22 */ { 7, s_5_22, -1, 9, 0}, -/* 23 */ { 7, s_5_23, -1, 10, 0} +{ 4, s_5_0, -1, 3, 0}, +{ 4, s_5_1, -1, 2, 0}, +{ 3, s_5_2, -1, 13, 0}, +{ 2, s_5_3, -1, 15, 0}, +{ 3, s_5_4, 3, 12, 0}, +{ 4, s_5_5, 4, 4, 0}, +{ 4, s_5_6, 3, 8, 0}, +{ 5, s_5_7, 3, 9, 0}, +{ 6, s_5_8, 3, 14, 0}, +{ 5, s_5_9, 3, 10, 0}, +{ 5, s_5_10, 3, 5, 0}, +{ 5, s_5_11, -1, 8, 0}, +{ 6, s_5_12, -1, 12, 0}, +{ 5, s_5_13, -1, 11, 0}, +{ 6, s_5_14, -1, 1, 0}, +{ 7, s_5_15, 14, 7, 0}, +{ 5, s_5_16, -1, 8, 0}, +{ 5, s_5_17, -1, 7, 0}, +{ 7, s_5_18, 17, 6, 0}, +{ 4, s_5_19, -1, 6, 0}, +{ 4, s_5_20, -1, 7, 0}, +{ 7, s_5_21, -1, 11, 0}, +{ 7, s_5_22, -1, 9, 0}, +{ 7, s_5_23, -1, 10, 0} }; static const symbol s_6_0[5] = { 'i', 'c', 'a', 't', 'e' }; @@ -187,15 +187,15 @@ static const symbol s_6_8[4] = { 'n', 'e', 's', 's' }; static const struct among a_6[9] = { -/* 0 */ { 5, s_6_0, -1, 4, 0}, -/* 1 */ { 5, s_6_1, -1, 6, 0}, -/* 2 */ { 5, s_6_2, -1, 3, 0}, -/* 3 */ { 5, s_6_3, -1, 4, 0}, -/* 4 */ { 4, s_6_4, -1, 4, 0}, -/* 5 */ { 6, s_6_5, -1, 1, 0}, -/* 6 */ { 7, s_6_6, 5, 2, 0}, -/* 7 */ { 3, s_6_7, -1, 5, 0}, -/* 8 */ { 4, s_6_8, -1, 5, 0} +{ 5, s_6_0, -1, 4, 0}, +{ 5, s_6_1, -1, 6, 0}, +{ 5, s_6_2, -1, 3, 0}, +{ 5, s_6_3, -1, 4, 0}, +{ 4, s_6_4, -1, 4, 0}, +{ 6, s_6_5, -1, 1, 0}, +{ 7, s_6_6, 5, 2, 0}, +{ 3, s_6_7, -1, 5, 0}, +{ 4, s_6_8, -1, 5, 0} }; static const symbol s_7_0[2] = { 'i', 'c' }; @@ -219,24 +219,24 @@ static const symbol s_7_17[5] = { 'e', 'm', 'e', 'n', 't' }; static const struct among a_7[18] = { -/* 0 */ { 2, s_7_0, -1, 1, 0}, -/* 1 */ { 4, s_7_1, -1, 1, 0}, -/* 2 */ { 4, s_7_2, -1, 1, 0}, -/* 3 */ { 4, s_7_3, -1, 1, 0}, -/* 4 */ { 4, s_7_4, -1, 1, 0}, -/* 5 */ { 3, s_7_5, -1, 1, 0}, -/* 6 */ { 3, s_7_6, -1, 1, 0}, -/* 7 */ { 3, s_7_7, -1, 1, 0}, -/* 8 */ { 3, s_7_8, -1, 1, 0}, -/* 9 */ { 2, s_7_9, -1, 1, 0}, -/* 10 */ { 3, s_7_10, -1, 1, 0}, -/* 11 */ { 3, s_7_11, -1, 2, 0}, -/* 12 */ { 2, s_7_12, -1, 1, 0}, -/* 13 */ { 3, s_7_13, -1, 1, 0}, -/* 14 */ { 3, s_7_14, -1, 1, 0}, -/* 15 */ { 3, s_7_15, -1, 1, 0}, -/* 16 */ { 4, s_7_16, 15, 1, 0}, -/* 17 */ { 5, s_7_17, 16, 1, 0} +{ 2, s_7_0, -1, 1, 0}, +{ 4, s_7_1, -1, 1, 0}, +{ 4, s_7_2, -1, 1, 0}, +{ 4, s_7_3, -1, 1, 0}, +{ 4, s_7_4, -1, 1, 0}, +{ 3, s_7_5, -1, 1, 0}, +{ 3, s_7_6, -1, 1, 0}, +{ 3, s_7_7, -1, 1, 0}, +{ 3, s_7_8, -1, 1, 0}, +{ 2, s_7_9, -1, 1, 0}, +{ 3, s_7_10, -1, 1, 0}, +{ 3, s_7_11, -1, 2, 0}, +{ 2, s_7_12, -1, 1, 0}, +{ 3, s_7_13, -1, 1, 0}, +{ 3, s_7_14, -1, 1, 0}, +{ 3, s_7_15, -1, 1, 0}, +{ 4, s_7_16, 15, 1, 0}, +{ 5, s_7_17, 16, 1, 0} }; static const symbol s_8_0[1] = { 'e' }; @@ -244,8 +244,8 @@ static const symbol s_8_1[1] = { 'l' }; static const struct among a_8[2] = { -/* 0 */ { 1, s_8_0, -1, 1, 0}, -/* 1 */ { 1, s_8_1, -1, 2, 0} +{ 1, s_8_0, -1, 1, 0}, +{ 1, s_8_1, -1, 2, 0} }; static const symbol s_9_0[7] = { 's', 'u', 'c', 'c', 'e', 'e', 'd' }; @@ -259,14 +259,14 @@ static const symbol s_9_7[6] = { 'o', 'u', 't', 'i', 'n', 'g' }; static const struct among a_9[8] = { -/* 0 */ { 7, s_9_0, -1, -1, 0}, -/* 1 */ { 7, s_9_1, -1, -1, 0}, -/* 2 */ { 6, s_9_2, -1, -1, 0}, -/* 3 */ { 7, s_9_3, -1, -1, 0}, -/* 4 */ { 6, s_9_4, -1, -1, 0}, -/* 5 */ { 7, s_9_5, -1, -1, 0}, -/* 6 */ { 7, s_9_6, -1, -1, 0}, -/* 7 */ { 6, s_9_7, -1, -1, 0} +{ 7, s_9_0, -1, -1, 0}, +{ 7, s_9_1, -1, -1, 0}, +{ 6, s_9_2, -1, -1, 0}, +{ 7, s_9_3, -1, -1, 0}, +{ 6, s_9_4, -1, -1, 0}, +{ 7, s_9_5, -1, -1, 0}, +{ 7, s_9_6, -1, -1, 0}, +{ 6, s_9_7, -1, -1, 0} }; static const symbol s_10_0[5] = { 'a', 'n', 'd', 'e', 's' }; @@ -290,24 +290,24 @@ static const symbol s_10_17[4] = { 'u', 'g', 'l', 'y' }; static const struct among a_10[18] = { -/* 0 */ { 5, s_10_0, -1, -1, 0}, -/* 1 */ { 5, s_10_1, -1, -1, 0}, -/* 2 */ { 4, s_10_2, -1, -1, 0}, -/* 3 */ { 6, s_10_3, -1, -1, 0}, -/* 4 */ { 5, s_10_4, -1, 3, 0}, -/* 5 */ { 5, s_10_5, -1, 9, 0}, -/* 6 */ { 6, s_10_6, -1, 7, 0}, -/* 7 */ { 4, s_10_7, -1, -1, 0}, -/* 8 */ { 4, s_10_8, -1, 6, 0}, -/* 9 */ { 5, s_10_9, -1, 4, 0}, -/* 10 */ { 4, s_10_10, -1, -1, 0}, -/* 11 */ { 4, s_10_11, -1, 10, 0}, -/* 12 */ { 6, s_10_12, -1, 11, 0}, -/* 13 */ { 5, s_10_13, -1, 2, 0}, -/* 14 */ { 4, s_10_14, -1, 1, 0}, -/* 15 */ { 3, s_10_15, -1, -1, 0}, -/* 16 */ { 5, s_10_16, -1, 5, 0}, -/* 17 */ { 4, s_10_17, -1, 8, 0} +{ 5, s_10_0, -1, -1, 0}, +{ 5, s_10_1, -1, -1, 0}, +{ 4, s_10_2, -1, -1, 0}, +{ 6, s_10_3, -1, -1, 0}, +{ 5, s_10_4, -1, 3, 0}, +{ 5, s_10_5, -1, 9, 0}, +{ 6, s_10_6, -1, 7, 0}, +{ 4, s_10_7, -1, -1, 0}, +{ 4, s_10_8, -1, 6, 0}, +{ 5, s_10_9, -1, 4, 0}, +{ 4, s_10_10, -1, -1, 0}, +{ 4, s_10_11, -1, 10, 0}, +{ 6, s_10_12, -1, 11, 0}, +{ 5, s_10_13, -1, 2, 0}, +{ 4, s_10_14, -1, 1, 0}, +{ 3, s_10_15, -1, -1, 0}, +{ 5, s_10_16, -1, 5, 0}, +{ 4, s_10_17, -1, 8, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 1 }; @@ -356,55 +356,54 @@ static const symbol s_36[] = { 'o', 'n', 'l', 'i' }; static const symbol s_37[] = { 's', 'i', 'n', 'g', 'l' }; static const symbol s_38[] = { 'y' }; -static int r_prelude(struct SN_env * z) { /* forwardmode */ - z->B[0] = 0; /* unset Y_found, line 26 */ - { int c1 = z->c; /* do, line 27 */ - z->bra = z->c; /* [, line 27 */ - if (z->c == z->l || z->p[z->c] != '\'') goto lab0; /* literal, line 27 */ +static int r_prelude(struct SN_env * z) { + z->I[2] = 0; + { int c1 = z->c; + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != '\'') goto lab0; z->c++; - z->ket = z->c; /* ], line 27 */ - { int ret = slice_del(z); /* delete, line 27 */ + z->ket = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: z->c = c1; } - { int c2 = z->c; /* do, line 28 */ - z->bra = z->c; /* [, line 28 */ - if (z->c == z->l || z->p[z->c] != 'y') goto lab1; /* literal, line 28 */ + { int c2 = z->c; + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'y') goto lab1; z->c++; - z->ket = z->c; /* ], line 28 */ - { int ret = slice_from_s(z, 1, s_0); /* <-, line 28 */ + z->ket = z->c; + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } - z->B[0] = 1; /* set Y_found, line 28 */ + z->I[2] = 1; lab1: z->c = c2; } - { int c3 = z->c; /* do, line 29 */ -/* repeat, line 29 */ - - while(1) { int c4 = z->c; - while(1) { /* goto, line 29 */ + { int c3 = z->c; + while(1) { + int c4 = z->c; + while(1) { int c5 = z->c; - if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab4; /* grouping v, line 29 */ - z->bra = z->c; /* [, line 29 */ - if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 29 */ + if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab4; + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'y') goto lab4; z->c++; - z->ket = z->c; /* ], line 29 */ + z->ket = z->c; z->c = c5; break; lab4: z->c = c5; - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab3; - z->c = ret; /* goto, line 29 */ + z->c = ret; } } - { int ret = slice_from_s(z, 1, s_1); /* <-, line 29 */ + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } - z->B[0] = 1; /* set Y_found, line 29 */ + z->I[2] = 1; continue; lab3: z->c = c4; @@ -415,125 +414,125 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 33 */ - z->I[1] = z->l; /* $p2 = , line 34 */ - { int c1 = z->c; /* do, line 35 */ - { int c2 = z->c; /* or, line 41 */ - if (z->c + 4 >= z->l || z->p[z->c + 4] >> 5 != 3 || !((2375680 >> (z->p[z->c + 4] & 0x1f)) & 1)) goto lab2; /* among, line 36 */ +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int c2 = z->c; + if (z->c + 4 >= z->l || z->p[z->c + 4] >> 5 != 3 || !((2375680 >> (z->p[z->c + 4] & 0x1f)) & 1)) goto lab2; if (!(find_among(z, a_0, 3))) goto lab2; goto lab1; lab2: z->c = c2; - { /* gopast */ /* grouping v, line 41 */ + { int ret = out_grouping_U(z, g_v, 97, 121, 1); if (ret < 0) goto lab0; z->c += ret; } - { /* gopast */ /* non v, line 41 */ + { int ret = in_grouping_U(z, g_v, 97, 121, 1); if (ret < 0) goto lab0; z->c += ret; } } lab1: - z->I[0] = z->c; /* setmark p1, line 42 */ - { /* gopast */ /* grouping v, line 43 */ + z->I[1] = z->c; + { int ret = out_grouping_U(z, g_v, 97, 121, 1); if (ret < 0) goto lab0; z->c += ret; } - { /* gopast */ /* non v, line 43 */ + { int ret = in_grouping_U(z, g_v, 97, 121, 1); if (ret < 0) goto lab0; z->c += ret; } - z->I[1] = z->c; /* setmark p2, line 43 */ + z->I[0] = z->c; lab0: z->c = c1; } return 1; } -static int r_shortv(struct SN_env * z) { /* backwardmode */ - { int m1 = z->l - z->c; (void)m1; /* or, line 51 */ - if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) goto lab1; /* non v_WXY, line 50 */ - if (in_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1; /* grouping v, line 50 */ - if (out_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1; /* non v, line 50 */ +static int r_shortv(struct SN_env * z) { + { int m1 = z->l - z->c; (void)m1; + if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) goto lab1; + if (in_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1; + if (out_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1; goto lab0; lab1: z->c = z->l - m1; - if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* non v, line 52 */ - if (in_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* grouping v, line 52 */ - if (z->c > z->lb) return 0; /* atlimit, line 52 */ + if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0; + if (in_grouping_b_U(z, g_v, 97, 121, 0)) return 0; + if (z->c > z->lb) return 0; } lab0: return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 55 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 56 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_Step_1a(struct SN_env * z) { /* backwardmode */ +static int r_Step_1a(struct SN_env * z) { int among_var; - { int m1 = z->l - z->c; (void)m1; /* try, line 59 */ - z->ket = z->c; /* [, line 60 */ - if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m1; goto lab0; } /* substring, line 60 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - m1; goto lab0; } if (!(find_among_b(z, a_1, 3))) { z->c = z->l - m1; goto lab0; } - z->bra = z->c; /* ], line 60 */ - { int ret = slice_del(z); /* delete, line 62 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: ; } - z->ket = z->c; /* [, line 65 */ - if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0; /* substring, line 65 */ + z->ket = z->c; + if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0; among_var = find_among_b(z, a_2, 6); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 65 */ - switch (among_var) { /* among, line 65 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 2, s_2); /* <-, line 66 */ + { int ret = slice_from_s(z, 2, s_2); if (ret < 0) return ret; } break; case 2: - { int m2 = z->l - z->c; (void)m2; /* or, line 68 */ - { int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 2); /* hop, line 68 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = skip_b_utf8(z->p, z->c, z->lb, 2); if (ret < 0) goto lab2; z->c = ret; } - { int ret = slice_from_s(z, 1, s_3); /* <-, line 68 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } goto lab1; lab2: z->c = z->l - m2; - { int ret = slice_from_s(z, 2, s_4); /* <-, line 68 */ + { int ret = slice_from_s(z, 2, s_4); if (ret < 0) return ret; } } lab1: break; case 3: - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) return 0; - z->c = ret; /* next, line 69 */ + z->c = ret; } - { /* gopast */ /* grouping v, line 69 */ + { int ret = out_grouping_b_U(z, g_v, 97, 121, 1); if (ret < 0) return 0; z->c -= ret; } - { int ret = slice_del(z); /* delete, line 69 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -541,72 +540,72 @@ static int r_Step_1a(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_1b(struct SN_env * z) { /* backwardmode */ +static int r_Step_1b(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 75 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33554576 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 75 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33554576 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_4, 6); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 75 */ - switch (among_var) { /* among, line 75 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R1(z); /* call R1, line 77 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 2, s_5); /* <-, line 77 */ + { int ret = slice_from_s(z, 2, s_5); if (ret < 0) return ret; } break; case 2: - { int m_test1 = z->l - z->c; /* test, line 80 */ - { /* gopast */ /* grouping v, line 80 */ + { int m_test1 = z->l - z->c; + { int ret = out_grouping_b_U(z, g_v, 97, 121, 1); if (ret < 0) return 0; z->c -= ret; } z->c = z->l - m_test1; } - { int ret = slice_del(z); /* delete, line 80 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m_test2 = z->l - z->c; /* test, line 81 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else /* substring, line 81 */ + { int m_test2 = z->l - z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else among_var = find_among_b(z, a_3, 13); if (!(among_var)) return 0; z->c = z->l - m_test2; } - switch (among_var) { /* among, line 81 */ + switch (among_var) { case 1: { int ret; { int saved_c = z->c; - ret = insert_s(z, z->c, z->c, 1, s_6); /* <+, line 83 */ + ret = insert_s(z, z->c, z->c, 1, s_6); z->c = saved_c; } if (ret < 0) return ret; } break; case 2: - z->ket = z->c; /* [, line 86 */ - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + z->ket = z->c; + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) return 0; - z->c = ret; /* next, line 86 */ + z->c = ret; } - z->bra = z->c; /* ], line 86 */ - { int ret = slice_del(z); /* delete, line 86 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - if (z->c != z->I[0]) return 0; /* atmark, line 87 */ - { int m_test3 = z->l - z->c; /* test, line 87 */ - { int ret = r_shortv(z); /* call shortv, line 87 */ + if (z->c != z->I[1]) return 0; + { int m_test3 = z->l - z->c; + { int ret = r_shortv(z); if (ret <= 0) return ret; } z->c = z->l - m_test3; } { int ret; { int saved_c = z->c; - ret = insert_s(z, z->c, z->c, 1, s_7); /* <+, line 87 */ + ret = insert_s(z, z->c, z->c, 1, s_7); z->c = saved_c; } if (ret < 0) return ret; @@ -618,116 +617,116 @@ static int r_Step_1b(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_1c(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 94 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 94 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 94 */ +static int r_Step_1c(struct SN_env * z) { + z->ket = z->c; + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; z->c--; goto lab0; lab1: z->c = z->l - m1; - if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 94 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; z->c--; } lab0: - z->bra = z->c; /* ], line 94 */ - if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* non v, line 95 */ - /* not, line 95 */ - if (z->c > z->lb) goto lab2; /* atlimit, line 95 */ + z->bra = z->c; + if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0; + + if (z->c > z->lb) goto lab2; return 0; lab2: - { int ret = slice_from_s(z, 1, s_8); /* <-, line 96 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } return 1; } -static int r_Step_2(struct SN_env * z) { /* backwardmode */ +static int r_Step_2(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 100 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 100 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_5, 24); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 100 */ - { int ret = r_R1(z); /* call R1, line 100 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 100 */ + switch (among_var) { case 1: - { int ret = slice_from_s(z, 4, s_9); /* <-, line 101 */ + { int ret = slice_from_s(z, 4, s_9); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 4, s_10); /* <-, line 102 */ + { int ret = slice_from_s(z, 4, s_10); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 4, s_11); /* <-, line 103 */ + { int ret = slice_from_s(z, 4, s_11); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 4, s_12); /* <-, line 104 */ + { int ret = slice_from_s(z, 4, s_12); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 3, s_13); /* <-, line 105 */ + { int ret = slice_from_s(z, 3, s_13); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 3, s_14); /* <-, line 107 */ + { int ret = slice_from_s(z, 3, s_14); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 3, s_15); /* <-, line 109 */ + { int ret = slice_from_s(z, 3, s_15); if (ret < 0) return ret; } break; case 8: - { int ret = slice_from_s(z, 2, s_16); /* <-, line 111 */ + { int ret = slice_from_s(z, 2, s_16); if (ret < 0) return ret; } break; case 9: - { int ret = slice_from_s(z, 3, s_17); /* <-, line 112 */ + { int ret = slice_from_s(z, 3, s_17); if (ret < 0) return ret; } break; case 10: - { int ret = slice_from_s(z, 3, s_18); /* <-, line 114 */ + { int ret = slice_from_s(z, 3, s_18); if (ret < 0) return ret; } break; case 11: - { int ret = slice_from_s(z, 3, s_19); /* <-, line 116 */ + { int ret = slice_from_s(z, 3, s_19); if (ret < 0) return ret; } break; case 12: - { int ret = slice_from_s(z, 3, s_20); /* <-, line 118 */ + { int ret = slice_from_s(z, 3, s_20); if (ret < 0) return ret; } break; case 13: - if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 119 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; z->c--; - { int ret = slice_from_s(z, 2, s_21); /* <-, line 119 */ + { int ret = slice_from_s(z, 2, s_21); if (ret < 0) return ret; } break; case 14: - { int ret = slice_from_s(z, 4, s_22); /* <-, line 121 */ + { int ret = slice_from_s(z, 4, s_22); if (ret < 0) return ret; } break; case 15: - if (in_grouping_b_U(z, g_valid_LI, 99, 116, 0)) return 0; /* grouping valid_LI, line 122 */ - { int ret = slice_del(z); /* delete, line 122 */ + if (in_grouping_b_U(z, g_valid_LI, 99, 116, 0)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -735,47 +734,47 @@ static int r_Step_2(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_3(struct SN_env * z) { /* backwardmode */ +static int r_Step_3(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 127 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 127 */ + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_6, 9); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 127 */ - { int ret = r_R1(z); /* call R1, line 127 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 127 */ + switch (among_var) { case 1: - { int ret = slice_from_s(z, 4, s_23); /* <-, line 128 */ + { int ret = slice_from_s(z, 4, s_23); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 3, s_24); /* <-, line 129 */ + { int ret = slice_from_s(z, 3, s_24); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 2, s_25); /* <-, line 130 */ + { int ret = slice_from_s(z, 2, s_25); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 2, s_26); /* <-, line 132 */ + { int ret = slice_from_s(z, 2, s_26); if (ret < 0) return ret; } break; case 5: - { int ret = slice_del(z); /* delete, line 134 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 6: - { int ret = r_R2(z); /* call R2, line 136 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 136 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -783,34 +782,34 @@ static int r_Step_3(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_4(struct SN_env * z) { /* backwardmode */ +static int r_Step_4(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 141 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 141 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_7, 18); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 141 */ - { int ret = r_R2(z); /* call R2, line 141 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 141 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 144 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int m1 = z->l - z->c; (void)m1; /* or, line 145 */ - if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 145 */ + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; z->c--; goto lab0; lab1: z->c = z->l - m1; - if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 145 */ + if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; z->c--; } lab0: - { int ret = slice_del(z); /* delete, line 145 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -818,28 +817,28 @@ static int r_Step_4(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_5(struct SN_env * z) { /* backwardmode */ +static int r_Step_5(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 150 */ - if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0; /* substring, line 150 */ + z->ket = z->c; + if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0; among_var = find_among_b(z, a_8, 2); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 150 */ - switch (among_var) { /* among, line 150 */ + z->bra = z->c; + switch (among_var) { case 1: - { int m1 = z->l - z->c; (void)m1; /* or, line 151 */ - { int ret = r_R2(z); /* call R2, line 151 */ + { int m1 = z->l - z->c; (void)m1; + { int ret = r_R2(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m1; - { int ret = r_R1(z); /* call R1, line 151 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int m2 = z->l - z->c; (void)m2; /* not, line 151 */ - { int ret = r_shortv(z); /* call shortv, line 151 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_shortv(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } @@ -849,17 +848,17 @@ static int r_Step_5(struct SN_env * z) { /* backwardmode */ } } lab0: - { int ret = slice_del(z); /* delete, line 151 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 152 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 152 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; z->c--; - { int ret = slice_del(z); /* delete, line 152 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -867,76 +866,76 @@ static int r_Step_5(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_exception2(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 158 */ - if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; /* substring, line 158 */ +static int r_exception2(struct SN_env * z) { + z->ket = z->c; + if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; if (!(find_among_b(z, a_9, 8))) return 0; - z->bra = z->c; /* ], line 158 */ - if (z->c > z->lb) return 0; /* atlimit, line 158 */ + z->bra = z->c; + if (z->c > z->lb) return 0; return 1; } -static int r_exception1(struct SN_env * z) { /* forwardmode */ +static int r_exception1(struct SN_env * z) { int among_var; - z->bra = z->c; /* [, line 170 */ - if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0; /* substring, line 170 */ + z->bra = z->c; + if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0; among_var = find_among(z, a_10, 18); if (!(among_var)) return 0; - z->ket = z->c; /* ], line 170 */ - if (z->c < z->l) return 0; /* atlimit, line 170 */ - switch (among_var) { /* among, line 170 */ + z->ket = z->c; + if (z->c < z->l) return 0; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 3, s_27); /* <-, line 174 */ + { int ret = slice_from_s(z, 3, s_27); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 3, s_28); /* <-, line 175 */ + { int ret = slice_from_s(z, 3, s_28); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 3, s_29); /* <-, line 176 */ + { int ret = slice_from_s(z, 3, s_29); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 3, s_30); /* <-, line 177 */ + { int ret = slice_from_s(z, 3, s_30); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 3, s_31); /* <-, line 178 */ + { int ret = slice_from_s(z, 3, s_31); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 3, s_32); /* <-, line 182 */ + { int ret = slice_from_s(z, 3, s_32); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 5, s_33); /* <-, line 183 */ + { int ret = slice_from_s(z, 5, s_33); if (ret < 0) return ret; } break; case 8: - { int ret = slice_from_s(z, 4, s_34); /* <-, line 184 */ + { int ret = slice_from_s(z, 4, s_34); if (ret < 0) return ret; } break; case 9: - { int ret = slice_from_s(z, 5, s_35); /* <-, line 185 */ + { int ret = slice_from_s(z, 5, s_35); if (ret < 0) return ret; } break; case 10: - { int ret = slice_from_s(z, 4, s_36); /* <-, line 186 */ + { int ret = slice_from_s(z, 4, s_36); if (ret < 0) return ret; } break; case 11: - { int ret = slice_from_s(z, 5, s_37); /* <-, line 187 */ + { int ret = slice_from_s(z, 5, s_37); if (ret < 0) return ret; } break; @@ -944,27 +943,26 @@ static int r_exception1(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ - if (!(z->B[0])) return 0; /* Boolean test Y_found, line 203 */ -/* repeat, line 203 */ - - while(1) { int c1 = z->c; - while(1) { /* goto, line 203 */ +static int r_postlude(struct SN_env * z) { + if (!(z->I[2])) return 0; + while(1) { + int c1 = z->c; + while(1) { int c2 = z->c; - z->bra = z->c; /* [, line 203 */ - if (z->c == z->l || z->p[z->c] != 'Y') goto lab1; /* literal, line 203 */ + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'Y') goto lab1; z->c++; - z->ket = z->c; /* ], line 203 */ + z->ket = z->c; z->c = c2; break; lab1: z->c = c2; - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* goto, line 203 */ + z->c = ret; } } - { int ret = slice_from_s(z, 1, s_38); /* <-, line 203 */ + { int ret = slice_from_s(z, 1, s_38); if (ret < 0) return ret; } continue; @@ -975,17 +973,17 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -extern int english_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* or, line 207 */ - { int ret = r_exception1(z); /* call exception1, line 207 */ +extern int english_UTF_8_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_exception1(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } goto lab0; lab1: z->c = c1; - { int c2 = z->c; /* not, line 208 */ - { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 208 */ + { int c2 = z->c; + { int ret = skip_utf8(z->p, z->c, z->l, 3); if (ret < 0) goto lab3; z->c = ret; } @@ -996,62 +994,62 @@ extern int english_UTF_8_stem(struct SN_env * z) { /* forwardmode */ goto lab0; lab2: z->c = c1; - /* do, line 209 */ - { int ret = r_prelude(z); /* call prelude, line 209 */ + + { int ret = r_prelude(z); if (ret < 0) return ret; } - /* do, line 210 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 210 */ + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 211 */ + z->lb = z->c; z->c = z->l; - { int m3 = z->l - z->c; (void)m3; /* do, line 213 */ - { int ret = r_Step_1a(z); /* call Step_1a, line 213 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_Step_1a(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* or, line 215 */ - { int ret = r_exception2(z); /* call exception2, line 215 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_exception2(z); if (ret == 0) goto lab5; if (ret < 0) return ret; } goto lab4; lab5: z->c = z->l - m4; - { int m5 = z->l - z->c; (void)m5; /* do, line 217 */ - { int ret = r_Step_1b(z); /* call Step_1b, line 217 */ + { int m5 = z->l - z->c; (void)m5; + { int ret = r_Step_1b(z); if (ret < 0) return ret; } z->c = z->l - m5; } - { int m6 = z->l - z->c; (void)m6; /* do, line 218 */ - { int ret = r_Step_1c(z); /* call Step_1c, line 218 */ + { int m6 = z->l - z->c; (void)m6; + { int ret = r_Step_1c(z); if (ret < 0) return ret; } z->c = z->l - m6; } - { int m7 = z->l - z->c; (void)m7; /* do, line 220 */ - { int ret = r_Step_2(z); /* call Step_2, line 220 */ + { int m7 = z->l - z->c; (void)m7; + { int ret = r_Step_2(z); if (ret < 0) return ret; } z->c = z->l - m7; } - { int m8 = z->l - z->c; (void)m8; /* do, line 221 */ - { int ret = r_Step_3(z); /* call Step_3, line 221 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_Step_3(z); if (ret < 0) return ret; } z->c = z->l - m8; } - { int m9 = z->l - z->c; (void)m9; /* do, line 222 */ - { int ret = r_Step_4(z); /* call Step_4, line 222 */ + { int m9 = z->l - z->c; (void)m9; + { int ret = r_Step_4(z); if (ret < 0) return ret; } z->c = z->l - m9; } - { int m10 = z->l - z->c; (void)m10; /* do, line 224 */ - { int ret = r_Step_5(z); /* call Step_5, line 224 */ + { int m10 = z->l - z->c; (void)m10; + { int ret = r_Step_5(z); if (ret < 0) return ret; } z->c = z->l - m10; @@ -1059,8 +1057,8 @@ extern int english_UTF_8_stem(struct SN_env * z) { /* forwardmode */ } lab4: z->c = z->lb; - { int c11 = z->c; /* do, line 227 */ - { int ret = r_postlude(z); /* call postlude, line 227 */ + { int c11 = z->c; + { int ret = r_postlude(z); if (ret < 0) return ret; } z->c = c11; @@ -1070,7 +1068,7 @@ extern int english_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * english_UTF_8_create_env(void) { return SN_create_env(0, 2, 1); } +extern struct SN_env * english_UTF_8_create_env(void) { return SN_create_env(0, 3); } extern void english_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_finnish.c b/src/backend/snowball/libstemmer/stem_UTF_8_finnish.c index d99456f323923..77995bec0158b 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_finnish.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_finnish.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -45,16 +45,16 @@ static const symbol s_0_9[3] = { 'k', 0xC3, 0xB6 }; static const struct among a_0[10] = { -/* 0 */ { 2, s_0_0, -1, 1, 0}, -/* 1 */ { 3, s_0_1, -1, 2, 0}, -/* 2 */ { 4, s_0_2, -1, 1, 0}, -/* 3 */ { 3, s_0_3, -1, 1, 0}, -/* 4 */ { 3, s_0_4, -1, 1, 0}, -/* 5 */ { 4, s_0_5, -1, 1, 0}, -/* 6 */ { 6, s_0_6, -1, 1, 0}, -/* 7 */ { 2, s_0_7, -1, 1, 0}, -/* 8 */ { 3, s_0_8, -1, 1, 0}, -/* 9 */ { 3, s_0_9, -1, 1, 0} +{ 2, s_0_0, -1, 1, 0}, +{ 3, s_0_1, -1, 2, 0}, +{ 4, s_0_2, -1, 1, 0}, +{ 3, s_0_3, -1, 1, 0}, +{ 3, s_0_4, -1, 1, 0}, +{ 4, s_0_5, -1, 1, 0}, +{ 6, s_0_6, -1, 1, 0}, +{ 2, s_0_7, -1, 1, 0}, +{ 3, s_0_8, -1, 1, 0}, +{ 3, s_0_9, -1, 1, 0} }; static const symbol s_1_0[3] = { 'l', 'l', 'a' }; @@ -66,12 +66,12 @@ static const symbol s_1_5[3] = { 's', 't', 'a' }; static const struct among a_1[6] = { -/* 0 */ { 3, s_1_0, -1, -1, 0}, -/* 1 */ { 2, s_1_1, -1, -1, 0}, -/* 2 */ { 3, s_1_2, -1, -1, 0}, -/* 3 */ { 2, s_1_3, -1, -1, 0}, -/* 4 */ { 3, s_1_4, 3, -1, 0}, -/* 5 */ { 3, s_1_5, 3, -1, 0} +{ 3, s_1_0, -1, -1, 0}, +{ 2, s_1_1, -1, -1, 0}, +{ 3, s_1_2, -1, -1, 0}, +{ 2, s_1_3, -1, -1, 0}, +{ 3, s_1_4, 3, -1, 0}, +{ 3, s_1_5, 3, -1, 0} }; static const symbol s_2_0[4] = { 'l', 'l', 0xC3, 0xA4 }; @@ -83,12 +83,12 @@ static const symbol s_2_5[4] = { 's', 't', 0xC3, 0xA4 }; static const struct among a_2[6] = { -/* 0 */ { 4, s_2_0, -1, -1, 0}, -/* 1 */ { 3, s_2_1, -1, -1, 0}, -/* 2 */ { 4, s_2_2, -1, -1, 0}, -/* 3 */ { 3, s_2_3, -1, -1, 0}, -/* 4 */ { 4, s_2_4, 3, -1, 0}, -/* 5 */ { 4, s_2_5, 3, -1, 0} +{ 4, s_2_0, -1, -1, 0}, +{ 3, s_2_1, -1, -1, 0}, +{ 4, s_2_2, -1, -1, 0}, +{ 3, s_2_3, -1, -1, 0}, +{ 4, s_2_4, 3, -1, 0}, +{ 4, s_2_5, 3, -1, 0} }; static const symbol s_3_0[3] = { 'l', 'l', 'e' }; @@ -96,8 +96,8 @@ static const symbol s_3_1[3] = { 'i', 'n', 'e' }; static const struct among a_3[2] = { -/* 0 */ { 3, s_3_0, -1, -1, 0}, -/* 1 */ { 3, s_3_1, -1, -1, 0} +{ 3, s_3_0, -1, -1, 0}, +{ 3, s_3_1, -1, -1, 0} }; static const symbol s_4_0[3] = { 'n', 's', 'a' }; @@ -112,15 +112,15 @@ static const symbol s_4_8[4] = { 'n', 's', 0xC3, 0xA4 }; static const struct among a_4[9] = { -/* 0 */ { 3, s_4_0, -1, 3, 0}, -/* 1 */ { 3, s_4_1, -1, 3, 0}, -/* 2 */ { 3, s_4_2, -1, 3, 0}, -/* 3 */ { 2, s_4_3, -1, 2, 0}, -/* 4 */ { 2, s_4_4, -1, 1, 0}, -/* 5 */ { 2, s_4_5, -1, 4, 0}, -/* 6 */ { 2, s_4_6, -1, 6, 0}, -/* 7 */ { 3, s_4_7, -1, 5, 0}, -/* 8 */ { 4, s_4_8, -1, 3, 0} +{ 3, s_4_0, -1, 3, 0}, +{ 3, s_4_1, -1, 3, 0}, +{ 3, s_4_2, -1, 3, 0}, +{ 2, s_4_3, -1, 2, 0}, +{ 2, s_4_4, -1, 1, 0}, +{ 2, s_4_5, -1, 4, 0}, +{ 2, s_4_6, -1, 6, 0}, +{ 3, s_4_7, -1, 5, 0}, +{ 4, s_4_8, -1, 3, 0} }; static const symbol s_5_0[2] = { 'a', 'a' }; @@ -133,13 +133,13 @@ static const symbol s_5_6[4] = { 0xC3, 0xB6, 0xC3, 0xB6 }; static const struct among a_5[7] = { -/* 0 */ { 2, s_5_0, -1, -1, 0}, -/* 1 */ { 2, s_5_1, -1, -1, 0}, -/* 2 */ { 2, s_5_2, -1, -1, 0}, -/* 3 */ { 2, s_5_3, -1, -1, 0}, -/* 4 */ { 2, s_5_4, -1, -1, 0}, -/* 5 */ { 4, s_5_5, -1, -1, 0}, -/* 6 */ { 4, s_5_6, -1, -1, 0} +{ 2, s_5_0, -1, -1, 0}, +{ 2, s_5_1, -1, -1, 0}, +{ 2, s_5_2, -1, -1, 0}, +{ 2, s_5_3, -1, -1, 0}, +{ 2, s_5_4, -1, -1, 0}, +{ 4, s_5_5, -1, -1, 0}, +{ 4, s_5_6, -1, -1, 0} }; static const symbol s_6_0[1] = { 'a' }; @@ -175,36 +175,36 @@ static const symbol s_6_29[4] = { 't', 't', 0xC3, 0xA4 }; static const struct among a_6[30] = { -/* 0 */ { 1, s_6_0, -1, 8, 0}, -/* 1 */ { 3, s_6_1, 0, -1, 0}, -/* 2 */ { 2, s_6_2, 0, -1, 0}, -/* 3 */ { 3, s_6_3, 0, -1, 0}, -/* 4 */ { 2, s_6_4, 0, -1, 0}, -/* 5 */ { 3, s_6_5, 4, -1, 0}, -/* 6 */ { 3, s_6_6, 4, -1, 0}, -/* 7 */ { 3, s_6_7, 4, 2, 0}, -/* 8 */ { 3, s_6_8, -1, -1, 0}, -/* 9 */ { 3, s_6_9, -1, -1, 0}, -/* 10 */ { 3, s_6_10, -1, -1, 0}, -/* 11 */ { 1, s_6_11, -1, 7, 0}, -/* 12 */ { 3, s_6_12, 11, 1, 0}, -/* 13 */ { 3, s_6_13, 11, -1, r_VI}, -/* 14 */ { 4, s_6_14, 11, -1, r_LONG}, -/* 15 */ { 3, s_6_15, 11, 2, 0}, -/* 16 */ { 4, s_6_16, 11, -1, r_VI}, -/* 17 */ { 3, s_6_17, 11, 3, 0}, -/* 18 */ { 4, s_6_18, 11, -1, r_VI}, -/* 19 */ { 3, s_6_19, 11, 4, 0}, -/* 20 */ { 4, s_6_20, 11, 5, 0}, -/* 21 */ { 4, s_6_21, 11, 6, 0}, -/* 22 */ { 2, s_6_22, -1, 8, 0}, -/* 23 */ { 4, s_6_23, 22, -1, 0}, -/* 24 */ { 3, s_6_24, 22, -1, 0}, -/* 25 */ { 4, s_6_25, 22, -1, 0}, -/* 26 */ { 3, s_6_26, 22, -1, 0}, -/* 27 */ { 4, s_6_27, 26, -1, 0}, -/* 28 */ { 4, s_6_28, 26, -1, 0}, -/* 29 */ { 4, s_6_29, 26, 2, 0} +{ 1, s_6_0, -1, 8, 0}, +{ 3, s_6_1, 0, -1, 0}, +{ 2, s_6_2, 0, -1, 0}, +{ 3, s_6_3, 0, -1, 0}, +{ 2, s_6_4, 0, -1, 0}, +{ 3, s_6_5, 4, -1, 0}, +{ 3, s_6_6, 4, -1, 0}, +{ 3, s_6_7, 4, 2, 0}, +{ 3, s_6_8, -1, -1, 0}, +{ 3, s_6_9, -1, -1, 0}, +{ 3, s_6_10, -1, -1, 0}, +{ 1, s_6_11, -1, 7, 0}, +{ 3, s_6_12, 11, 1, 0}, +{ 3, s_6_13, 11, -1, r_VI}, +{ 4, s_6_14, 11, -1, r_LONG}, +{ 3, s_6_15, 11, 2, 0}, +{ 4, s_6_16, 11, -1, r_VI}, +{ 3, s_6_17, 11, 3, 0}, +{ 4, s_6_18, 11, -1, r_VI}, +{ 3, s_6_19, 11, 4, 0}, +{ 4, s_6_20, 11, 5, 0}, +{ 4, s_6_21, 11, 6, 0}, +{ 2, s_6_22, -1, 8, 0}, +{ 4, s_6_23, 22, -1, 0}, +{ 3, s_6_24, 22, -1, 0}, +{ 4, s_6_25, 22, -1, 0}, +{ 3, s_6_26, 22, -1, 0}, +{ 4, s_6_27, 26, -1, 0}, +{ 4, s_6_28, 26, -1, 0}, +{ 4, s_6_29, 26, 2, 0} }; static const symbol s_7_0[3] = { 'e', 'j', 'a' }; @@ -224,20 +224,20 @@ static const symbol s_7_13[5] = { 'i', 'm', 'p', 0xC3, 0xA4 }; static const struct among a_7[14] = { -/* 0 */ { 3, s_7_0, -1, -1, 0}, -/* 1 */ { 3, s_7_1, -1, 1, 0}, -/* 2 */ { 4, s_7_2, 1, -1, 0}, -/* 3 */ { 3, s_7_3, -1, 1, 0}, -/* 4 */ { 4, s_7_4, 3, -1, 0}, -/* 5 */ { 3, s_7_5, -1, 1, 0}, -/* 6 */ { 4, s_7_6, 5, -1, 0}, -/* 7 */ { 3, s_7_7, -1, 1, 0}, -/* 8 */ { 4, s_7_8, 7, -1, 0}, -/* 9 */ { 4, s_7_9, -1, -1, 0}, -/* 10 */ { 4, s_7_10, -1, 1, 0}, -/* 11 */ { 5, s_7_11, 10, -1, 0}, -/* 12 */ { 4, s_7_12, -1, 1, 0}, -/* 13 */ { 5, s_7_13, 12, -1, 0} +{ 3, s_7_0, -1, -1, 0}, +{ 3, s_7_1, -1, 1, 0}, +{ 4, s_7_2, 1, -1, 0}, +{ 3, s_7_3, -1, 1, 0}, +{ 4, s_7_4, 3, -1, 0}, +{ 3, s_7_5, -1, 1, 0}, +{ 4, s_7_6, 5, -1, 0}, +{ 3, s_7_7, -1, 1, 0}, +{ 4, s_7_8, 7, -1, 0}, +{ 4, s_7_9, -1, -1, 0}, +{ 4, s_7_10, -1, 1, 0}, +{ 5, s_7_11, 10, -1, 0}, +{ 4, s_7_12, -1, 1, 0}, +{ 5, s_7_13, 12, -1, 0} }; static const symbol s_8_0[1] = { 'i' }; @@ -245,8 +245,8 @@ static const symbol s_8_1[1] = { 'j' }; static const struct among a_8[2] = { -/* 0 */ { 1, s_8_0, -1, -1, 0}, -/* 1 */ { 1, s_8_1, -1, -1, 0} +{ 1, s_8_0, -1, -1, 0}, +{ 1, s_8_1, -1, -1, 0} }; static const symbol s_9_0[3] = { 'm', 'm', 'a' }; @@ -254,8 +254,8 @@ static const symbol s_9_1[4] = { 'i', 'm', 'm', 'a' }; static const struct among a_9[2] = { -/* 0 */ { 3, s_9_0, -1, 1, 0}, -/* 1 */ { 4, s_9_1, 0, -1, 0} +{ 3, s_9_0, -1, 1, 0}, +{ 4, s_9_1, 0, -1, 0} }; static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 }; @@ -276,118 +276,118 @@ static const symbol s_4[] = { 'i', 'e' }; static const symbol s_5[] = { 'p', 'o' }; static const symbol s_6[] = { 'p', 'o' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 44 */ - z->I[1] = z->l; /* $p2 = , line 45 */ - if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 47 */ - { /* gopast */ /* non V1, line 47 */ +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + z->I[0] = z->l; + if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0; + { int ret = in_grouping_U(z, g_V1, 97, 246, 1); if (ret < 0) return 0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 47 */ - if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* grouping V1, line 48 */ - { /* gopast */ /* non V1, line 48 */ + z->I[1] = z->c; + if (out_grouping_U(z, g_V1, 97, 246, 1) < 0) return 0; + { int ret = in_grouping_U(z, g_V1, 97, 246, 1); if (ret < 0) return 0; z->c += ret; } - z->I[1] = z->c; /* setmark p2, line 48 */ + z->I[0] = z->c; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 53 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_particle_etc(struct SN_env * z) { /* backwardmode */ +static int r_particle_etc(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 56 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 56 */ - among_var = find_among_b(z, a_0, 10); /* substring, line 56 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + among_var = find_among_b(z, a_0, 10); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 56 */ + z->bra = z->c; z->lb = mlimit1; } - switch (among_var) { /* among, line 57 */ + switch (among_var) { case 1: - if (in_grouping_b_U(z, g_particle_end, 97, 246, 0)) return 0; /* grouping particle_end, line 63 */ + if (in_grouping_b_U(z, g_particle_end, 97, 246, 0)) return 0; break; case 2: - { int ret = r_R2(z); /* call R2, line 65 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } break; } - { int ret = slice_del(z); /* delete, line 67 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_possessive(struct SN_env * z) { /* backwardmode */ +static int r_possessive(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 70 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 70 */ - among_var = find_among_b(z, a_4, 9); /* substring, line 70 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + among_var = find_among_b(z, a_4, 9); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 70 */ + z->bra = z->c; z->lb = mlimit1; } - switch (among_var) { /* among, line 71 */ + switch (among_var) { case 1: - { int m2 = z->l - z->c; (void)m2; /* not, line 73 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0; /* literal, line 73 */ + { int m2 = z->l - z->c; (void)m2; + if (z->c <= z->lb || z->p[z->c - 1] != 'k') goto lab0; z->c--; return 0; lab0: z->c = z->l - m2; } - { int ret = slice_del(z); /* delete, line 73 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_del(z); /* delete, line 75 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 75 */ - if (!(eq_s_b(z, 3, s_0))) return 0; /* literal, line 75 */ - z->bra = z->c; /* ], line 75 */ - { int ret = slice_from_s(z, 3, s_1); /* <-, line 75 */ + z->ket = z->c; + if (!(eq_s_b(z, 3, s_0))) return 0; + z->bra = z->c; + { int ret = slice_from_s(z, 3, s_1); if (ret < 0) return ret; } break; case 3: - { int ret = slice_del(z); /* delete, line 79 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 4: - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0; /* among, line 82 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 97) return 0; if (!(find_among_b(z, a_1, 6))) return 0; - { int ret = slice_del(z); /* delete, line 82 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 5: - if (z->c - 2 <= z->lb || z->p[z->c - 1] != 164) return 0; /* among, line 84 */ + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 164) return 0; if (!(find_among_b(z, a_2, 6))) return 0; - { int ret = slice_del(z); /* delete, line 85 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 6: - if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0; /* among, line 87 */ + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 101) return 0; if (!(find_among_b(z, a_3, 2))) return 0; - { int ret = slice_del(z); /* delete, line 87 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -395,246 +395,246 @@ static int r_possessive(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_LONG(struct SN_env * z) { /* backwardmode */ - if (!(find_among_b(z, a_5, 7))) return 0; /* among, line 92 */ +static int r_LONG(struct SN_env * z) { + if (!(find_among_b(z, a_5, 7))) return 0; return 1; } -static int r_VI(struct SN_env * z) { /* backwardmode */ - if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 94 */ +static int r_VI(struct SN_env * z) { + if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; z->c--; - if (in_grouping_b_U(z, g_V2, 97, 246, 0)) return 0; /* grouping V2, line 94 */ + if (in_grouping_b_U(z, g_V2, 97, 246, 0)) return 0; return 1; } -static int r_case_ending(struct SN_env * z) { /* backwardmode */ +static int r_case_ending(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 97 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 97 */ - among_var = find_among_b(z, a_6, 30); /* substring, line 97 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + among_var = find_among_b(z, a_6, 30); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 97 */ + z->bra = z->c; z->lb = mlimit1; } - switch (among_var) { /* among, line 98 */ + switch (among_var) { case 1: - if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0; /* literal, line 99 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'a') return 0; z->c--; break; case 2: - if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 100 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; z->c--; break; case 3: - if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 101 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; z->c--; break; case 4: - if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0; /* literal, line 102 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'o') return 0; z->c--; break; case 5: - if (!(eq_s_b(z, 2, s_2))) return 0; /* literal, line 103 */ + if (!(eq_s_b(z, 2, s_2))) return 0; break; case 6: - if (!(eq_s_b(z, 2, s_3))) return 0; /* literal, line 104 */ + if (!(eq_s_b(z, 2, s_3))) return 0; break; case 7: - { int m2 = z->l - z->c; (void)m2; /* try, line 112 */ - { int m3 = z->l - z->c; (void)m3; /* and, line 114 */ - { int m4 = z->l - z->c; (void)m4; /* or, line 113 */ - { int ret = r_LONG(z); /* call LONG, line 112 */ + { int m2 = z->l - z->c; (void)m2; + { int m3 = z->l - z->c; (void)m3; + { int m4 = z->l - z->c; (void)m4; + { int ret = r_LONG(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } goto lab1; lab2: z->c = z->l - m4; - if (!(eq_s_b(z, 2, s_4))) { z->c = z->l - m2; goto lab0; } /* literal, line 113 */ + if (!(eq_s_b(z, 2, s_4))) { z->c = z->l - m2; goto lab0; } } lab1: z->c = z->l - m3; - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) { z->c = z->l - m2; goto lab0; } - z->c = ret; /* next, line 114 */ + z->c = ret; } } - z->bra = z->c; /* ], line 114 */ + z->bra = z->c; lab0: ; } break; case 8: - if (in_grouping_b_U(z, g_V1, 97, 246, 0)) return 0; /* grouping V1, line 120 */ - if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 120 */ + if (in_grouping_b_U(z, g_V1, 97, 246, 0)) return 0; + if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0; break; } - { int ret = slice_del(z); /* delete, line 139 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 1; /* set ending_removed, line 140 */ + z->I[2] = 1; return 1; } -static int r_other_endings(struct SN_env * z) { /* backwardmode */ +static int r_other_endings(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 143 */ - if (z->c < z->I[1]) return 0; - mlimit1 = z->lb; z->lb = z->I[1]; - z->ket = z->c; /* [, line 143 */ - among_var = find_among_b(z, a_7, 14); /* substring, line 143 */ + { int mlimit1; + if (z->c < z->I[0]) return 0; + mlimit1 = z->lb; z->lb = z->I[0]; + z->ket = z->c; + among_var = find_among_b(z, a_7, 14); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 143 */ + z->bra = z->c; z->lb = mlimit1; } - switch (among_var) { /* among, line 144 */ + switch (among_var) { case 1: - { int m2 = z->l - z->c; (void)m2; /* not, line 147 */ - if (!(eq_s_b(z, 2, s_5))) goto lab0; /* literal, line 147 */ + { int m2 = z->l - z->c; (void)m2; + if (!(eq_s_b(z, 2, s_5))) goto lab0; return 0; lab0: z->c = z->l - m2; } break; } - { int ret = slice_del(z); /* delete, line 152 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_i_plural(struct SN_env * z) { /* backwardmode */ +static int r_i_plural(struct SN_env * z) { - { int mlimit1; /* setlimit, line 155 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 155 */ - if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; } /* substring, line 155 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 106)) { z->lb = mlimit1; return 0; } if (!(find_among_b(z, a_8, 2))) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 155 */ + z->bra = z->c; z->lb = mlimit1; } - { int ret = slice_del(z); /* delete, line 159 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_t_plural(struct SN_env * z) { /* backwardmode */ +static int r_t_plural(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 162 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 163 */ - if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; } /* literal, line 163 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit1; return 0; } z->c--; - z->bra = z->c; /* ], line 163 */ - { int m_test2 = z->l - z->c; /* test, line 163 */ - if (in_grouping_b_U(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; } /* grouping V1, line 163 */ + z->bra = z->c; + { int m_test2 = z->l - z->c; + if (in_grouping_b_U(z, g_V1, 97, 246, 0)) { z->lb = mlimit1; return 0; } z->c = z->l - m_test2; } - { int ret = slice_del(z); /* delete, line 164 */ + { int ret = slice_del(z); if (ret < 0) return ret; } z->lb = mlimit1; } - { int mlimit3; /* setlimit, line 166 */ - if (z->c < z->I[1]) return 0; - mlimit3 = z->lb; z->lb = z->I[1]; - z->ket = z->c; /* [, line 166 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; } /* substring, line 166 */ + { int mlimit3; + if (z->c < z->I[0]) return 0; + mlimit3 = z->lb; z->lb = z->I[0]; + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 97) { z->lb = mlimit3; return 0; } among_var = find_among_b(z, a_9, 2); if (!(among_var)) { z->lb = mlimit3; return 0; } - z->bra = z->c; /* ], line 166 */ + z->bra = z->c; z->lb = mlimit3; } - switch (among_var) { /* among, line 167 */ + switch (among_var) { case 1: - { int m4 = z->l - z->c; (void)m4; /* not, line 168 */ - if (!(eq_s_b(z, 2, s_6))) goto lab0; /* literal, line 168 */ + { int m4 = z->l - z->c; (void)m4; + if (!(eq_s_b(z, 2, s_6))) goto lab0; return 0; lab0: z->c = z->l - m4; } break; } - { int ret = slice_del(z); /* delete, line 171 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_tidy(struct SN_env * z) { /* backwardmode */ +static int r_tidy(struct SN_env * z) { - { int mlimit1; /* setlimit, line 174 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - { int m2 = z->l - z->c; (void)m2; /* do, line 175 */ - { int m3 = z->l - z->c; (void)m3; /* and, line 175 */ - { int ret = r_LONG(z); /* call LONG, line 175 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + { int m2 = z->l - z->c; (void)m2; + { int m3 = z->l - z->c; (void)m3; + { int ret = r_LONG(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } z->c = z->l - m3; - z->ket = z->c; /* [, line 175 */ - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + z->ket = z->c; + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 175 */ + z->c = ret; } - z->bra = z->c; /* ], line 175 */ - { int ret = slice_del(z); /* delete, line 175 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } } lab0: z->c = z->l - m2; } - { int m4 = z->l - z->c; (void)m4; /* do, line 176 */ - z->ket = z->c; /* [, line 176 */ - if (in_grouping_b_U(z, g_AEI, 97, 228, 0)) goto lab1; /* grouping AEI, line 176 */ - z->bra = z->c; /* ], line 176 */ - if (in_grouping_b_U(z, g_C, 98, 122, 0)) goto lab1; /* grouping C, line 176 */ - { int ret = slice_del(z); /* delete, line 176 */ + { int m4 = z->l - z->c; (void)m4; + z->ket = z->c; + if (in_grouping_b_U(z, g_AEI, 97, 228, 0)) goto lab1; + z->bra = z->c; + if (in_grouping_b_U(z, g_C, 98, 122, 0)) goto lab1; + { int ret = slice_del(z); if (ret < 0) return ret; } lab1: z->c = z->l - m4; } - { int m5 = z->l - z->c; (void)m5; /* do, line 177 */ - z->ket = z->c; /* [, line 177 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2; /* literal, line 177 */ + { int m5 = z->l - z->c; (void)m5; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab2; z->c--; - z->bra = z->c; /* ], line 177 */ - { int m6 = z->l - z->c; (void)m6; /* or, line 177 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4; /* literal, line 177 */ + z->bra = z->c; + { int m6 = z->l - z->c; (void)m6; + if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4; z->c--; goto lab3; lab4: z->c = z->l - m6; - if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2; /* literal, line 177 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab2; z->c--; } lab3: - { int ret = slice_del(z); /* delete, line 177 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab2: z->c = z->l - m5; } - { int m7 = z->l - z->c; (void)m7; /* do, line 178 */ - z->ket = z->c; /* [, line 178 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5; /* literal, line 178 */ + { int m7 = z->l - z->c; (void)m7; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5; z->c--; - z->bra = z->c; /* ], line 178 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab5; /* literal, line 178 */ + z->bra = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'j') goto lab5; z->c--; - { int ret = slice_del(z); /* delete, line 178 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab5: @@ -642,72 +642,72 @@ static int r_tidy(struct SN_env * z) { /* backwardmode */ } z->lb = mlimit1; } - if (in_grouping_b_U(z, g_V1, 97, 246, 1) < 0) return 0; /* goto */ /* non V1, line 180 */ - z->ket = z->c; /* [, line 180 */ - if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0; /* grouping C, line 180 */ - z->bra = z->c; /* ], line 180 */ - z->S[0] = slice_to(z, z->S[0]); /* -> x, line 180 */ - if (z->S[0] == 0) return -1; /* -> x, line 180 */ - if (!(eq_v_b(z, z->S[0]))) return 0; /* name x, line 180 */ - { int ret = slice_del(z); /* delete, line 180 */ + if (in_grouping_b_U(z, g_V1, 97, 246, 1) < 0) return 0; + z->ket = z->c; + if (in_grouping_b_U(z, g_C, 98, 122, 0)) return 0; + z->bra = z->c; + z->S[0] = slice_to(z, z->S[0]); + if (z->S[0] == 0) return -1; + if (!(eq_v_b(z, z->S[0]))) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -extern int finnish_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 186 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 186 */ +extern int finnish_UTF_8_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_mark_regions(z); if (ret < 0) return ret; } z->c = c1; } - z->B[0] = 0; /* unset ending_removed, line 187 */ - z->lb = z->c; z->c = z->l; /* backwards, line 188 */ + z->I[2] = 0; + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 189 */ - { int ret = r_particle_etc(z); /* call particle_etc, line 189 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_particle_etc(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 190 */ - { int ret = r_possessive(z); /* call possessive, line 190 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_possessive(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 191 */ - { int ret = r_case_ending(z); /* call case_ending, line 191 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_case_ending(z); if (ret < 0) return ret; } z->c = z->l - m4; } - { int m5 = z->l - z->c; (void)m5; /* do, line 192 */ - { int ret = r_other_endings(z); /* call other_endings, line 192 */ + { int m5 = z->l - z->c; (void)m5; + { int ret = r_other_endings(z); if (ret < 0) return ret; } z->c = z->l - m5; } - /* or, line 193 */ - if (!(z->B[0])) goto lab1; /* Boolean test ending_removed, line 193 */ - { int m6 = z->l - z->c; (void)m6; /* do, line 193 */ - { int ret = r_i_plural(z); /* call i_plural, line 193 */ + + if (!(z->I[2])) goto lab1; + { int m6 = z->l - z->c; (void)m6; + { int ret = r_i_plural(z); if (ret < 0) return ret; } z->c = z->l - m6; } goto lab0; lab1: - { int m7 = z->l - z->c; (void)m7; /* do, line 193 */ - { int ret = r_t_plural(z); /* call t_plural, line 193 */ + { int m7 = z->l - z->c; (void)m7; + { int ret = r_t_plural(z); if (ret < 0) return ret; } z->c = z->l - m7; } lab0: - { int m8 = z->l - z->c; (void)m8; /* do, line 194 */ - { int ret = r_tidy(z); /* call tidy, line 194 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_tidy(z); if (ret < 0) return ret; } z->c = z->l - m8; @@ -716,7 +716,7 @@ extern int finnish_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * finnish_UTF_8_create_env(void) { return SN_create_env(1, 2, 1); } +extern struct SN_env * finnish_UTF_8_create_env(void) { return SN_create_env(1, 3); } extern void finnish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 1); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_french.c b/src/backend/snowball/libstemmer/stem_UTF_8_french.c index fa4a1c8f30578..6d12e99a8cb5e 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_french.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_french.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -39,9 +39,9 @@ static const symbol s_0_2[3] = { 't', 'a', 'p' }; static const struct among a_0[3] = { -/* 0 */ { 3, s_0_0, -1, -1, 0}, -/* 1 */ { 3, s_0_1, -1, -1, 0}, -/* 2 */ { 3, s_0_2, -1, -1, 0} +{ 3, s_0_0, -1, -1, 0}, +{ 3, s_0_1, -1, -1, 0}, +{ 3, s_0_2, -1, -1, 0} }; static const symbol s_1_1[1] = { 'H' }; @@ -53,13 +53,13 @@ static const symbol s_1_6[1] = { 'Y' }; static const struct among a_1[7] = { -/* 0 */ { 0, 0, -1, 7, 0}, -/* 1 */ { 1, s_1_1, 0, 6, 0}, -/* 2 */ { 2, s_1_2, 1, 4, 0}, -/* 3 */ { 2, s_1_3, 1, 5, 0}, -/* 4 */ { 1, s_1_4, 0, 1, 0}, -/* 5 */ { 1, s_1_5, 0, 2, 0}, -/* 6 */ { 1, s_1_6, 0, 3, 0} +{ 0, 0, -1, 7, 0}, +{ 1, s_1_1, 0, 6, 0}, +{ 2, s_1_2, 1, 4, 0}, +{ 2, s_1_3, 1, 5, 0}, +{ 1, s_1_4, 0, 1, 0}, +{ 1, s_1_5, 0, 2, 0}, +{ 1, s_1_6, 0, 3, 0} }; static const symbol s_2_0[3] = { 'i', 'q', 'U' }; @@ -71,12 +71,12 @@ static const symbol s_2_5[2] = { 'i', 'v' }; static const struct among a_2[6] = { -/* 0 */ { 3, s_2_0, -1, 3, 0}, -/* 1 */ { 3, s_2_1, -1, 3, 0}, -/* 2 */ { 4, s_2_2, -1, 4, 0}, -/* 3 */ { 4, s_2_3, -1, 4, 0}, -/* 4 */ { 3, s_2_4, -1, 2, 0}, -/* 5 */ { 2, s_2_5, -1, 1, 0} +{ 3, s_2_0, -1, 3, 0}, +{ 3, s_2_1, -1, 3, 0}, +{ 4, s_2_2, -1, 4, 0}, +{ 4, s_2_3, -1, 4, 0}, +{ 3, s_2_4, -1, 2, 0}, +{ 2, s_2_5, -1, 1, 0} }; static const symbol s_3_0[2] = { 'i', 'c' }; @@ -85,9 +85,9 @@ static const symbol s_3_2[2] = { 'i', 'v' }; static const struct among a_3[3] = { -/* 0 */ { 2, s_3_0, -1, 2, 0}, -/* 1 */ { 4, s_3_1, -1, 1, 0}, -/* 2 */ { 2, s_3_2, -1, 3, 0} +{ 2, s_3_0, -1, 2, 0}, +{ 4, s_3_1, -1, 1, 0}, +{ 2, s_3_2, -1, 3, 0} }; static const symbol s_4_0[4] = { 'i', 'q', 'U', 'e' }; @@ -136,49 +136,49 @@ static const symbol s_4_42[4] = { 'i', 't', 0xC3, 0xA9 }; static const struct among a_4[43] = { -/* 0 */ { 4, s_4_0, -1, 1, 0}, -/* 1 */ { 6, s_4_1, -1, 2, 0}, -/* 2 */ { 4, s_4_2, -1, 1, 0}, -/* 3 */ { 4, s_4_3, -1, 5, 0}, -/* 4 */ { 5, s_4_4, -1, 3, 0}, -/* 5 */ { 4, s_4_5, -1, 1, 0}, -/* 6 */ { 4, s_4_6, -1, 1, 0}, -/* 7 */ { 4, s_4_7, -1, 11, 0}, -/* 8 */ { 4, s_4_8, -1, 1, 0}, -/* 9 */ { 3, s_4_9, -1, 8, 0}, -/* 10 */ { 2, s_4_10, -1, 8, 0}, -/* 11 */ { 5, s_4_11, -1, 4, 0}, -/* 12 */ { 5, s_4_12, -1, 2, 0}, -/* 13 */ { 5, s_4_13, -1, 4, 0}, -/* 14 */ { 5, s_4_14, -1, 2, 0}, -/* 15 */ { 5, s_4_15, -1, 1, 0}, -/* 16 */ { 7, s_4_16, -1, 2, 0}, -/* 17 */ { 5, s_4_17, -1, 1, 0}, -/* 18 */ { 5, s_4_18, -1, 5, 0}, -/* 19 */ { 6, s_4_19, -1, 3, 0}, -/* 20 */ { 5, s_4_20, -1, 1, 0}, -/* 21 */ { 5, s_4_21, -1, 1, 0}, -/* 22 */ { 5, s_4_22, -1, 11, 0}, -/* 23 */ { 5, s_4_23, -1, 1, 0}, -/* 24 */ { 4, s_4_24, -1, 8, 0}, -/* 25 */ { 3, s_4_25, -1, 8, 0}, -/* 26 */ { 6, s_4_26, -1, 4, 0}, -/* 27 */ { 6, s_4_27, -1, 2, 0}, -/* 28 */ { 6, s_4_28, -1, 4, 0}, -/* 29 */ { 6, s_4_29, -1, 2, 0}, -/* 30 */ { 5, s_4_30, -1, 15, 0}, -/* 31 */ { 6, s_4_31, 30, 6, 0}, -/* 32 */ { 9, s_4_32, 31, 12, 0}, -/* 33 */ { 5, s_4_33, -1, 7, 0}, -/* 34 */ { 4, s_4_34, -1, 15, 0}, -/* 35 */ { 5, s_4_35, 34, 6, 0}, -/* 36 */ { 8, s_4_36, 35, 12, 0}, -/* 37 */ { 6, s_4_37, 34, 13, 0}, -/* 38 */ { 6, s_4_38, 34, 14, 0}, -/* 39 */ { 3, s_4_39, -1, 10, 0}, -/* 40 */ { 4, s_4_40, 39, 9, 0}, -/* 41 */ { 3, s_4_41, -1, 1, 0}, -/* 42 */ { 4, s_4_42, -1, 7, 0} +{ 4, s_4_0, -1, 1, 0}, +{ 6, s_4_1, -1, 2, 0}, +{ 4, s_4_2, -1, 1, 0}, +{ 4, s_4_3, -1, 5, 0}, +{ 5, s_4_4, -1, 3, 0}, +{ 4, s_4_5, -1, 1, 0}, +{ 4, s_4_6, -1, 1, 0}, +{ 4, s_4_7, -1, 11, 0}, +{ 4, s_4_8, -1, 1, 0}, +{ 3, s_4_9, -1, 8, 0}, +{ 2, s_4_10, -1, 8, 0}, +{ 5, s_4_11, -1, 4, 0}, +{ 5, s_4_12, -1, 2, 0}, +{ 5, s_4_13, -1, 4, 0}, +{ 5, s_4_14, -1, 2, 0}, +{ 5, s_4_15, -1, 1, 0}, +{ 7, s_4_16, -1, 2, 0}, +{ 5, s_4_17, -1, 1, 0}, +{ 5, s_4_18, -1, 5, 0}, +{ 6, s_4_19, -1, 3, 0}, +{ 5, s_4_20, -1, 1, 0}, +{ 5, s_4_21, -1, 1, 0}, +{ 5, s_4_22, -1, 11, 0}, +{ 5, s_4_23, -1, 1, 0}, +{ 4, s_4_24, -1, 8, 0}, +{ 3, s_4_25, -1, 8, 0}, +{ 6, s_4_26, -1, 4, 0}, +{ 6, s_4_27, -1, 2, 0}, +{ 6, s_4_28, -1, 4, 0}, +{ 6, s_4_29, -1, 2, 0}, +{ 5, s_4_30, -1, 15, 0}, +{ 6, s_4_31, 30, 6, 0}, +{ 9, s_4_32, 31, 12, 0}, +{ 5, s_4_33, -1, 7, 0}, +{ 4, s_4_34, -1, 15, 0}, +{ 5, s_4_35, 34, 6, 0}, +{ 8, s_4_36, 35, 12, 0}, +{ 6, s_4_37, 34, 13, 0}, +{ 6, s_4_38, 34, 14, 0}, +{ 3, s_4_39, -1, 10, 0}, +{ 4, s_4_40, 39, 9, 0}, +{ 3, s_4_41, -1, 1, 0}, +{ 4, s_4_42, -1, 7, 0} }; static const symbol s_5_0[3] = { 'i', 'r', 'a' }; @@ -219,41 +219,41 @@ static const symbol s_5_34[5] = { 'i', 's', 's', 'e', 'z' }; static const struct among a_5[35] = { -/* 0 */ { 3, s_5_0, -1, 1, 0}, -/* 1 */ { 2, s_5_1, -1, 1, 0}, -/* 2 */ { 4, s_5_2, -1, 1, 0}, -/* 3 */ { 7, s_5_3, -1, 1, 0}, -/* 4 */ { 1, s_5_4, -1, 1, 0}, -/* 5 */ { 4, s_5_5, 4, 1, 0}, -/* 6 */ { 2, s_5_6, -1, 1, 0}, -/* 7 */ { 4, s_5_7, -1, 1, 0}, -/* 8 */ { 3, s_5_8, -1, 1, 0}, -/* 9 */ { 5, s_5_9, -1, 1, 0}, -/* 10 */ { 5, s_5_10, -1, 1, 0}, -/* 11 */ { 8, s_5_11, -1, 1, 0}, -/* 12 */ { 5, s_5_12, -1, 1, 0}, -/* 13 */ { 2, s_5_13, -1, 1, 0}, -/* 14 */ { 5, s_5_14, 13, 1, 0}, -/* 15 */ { 6, s_5_15, 13, 1, 0}, -/* 16 */ { 6, s_5_16, -1, 1, 0}, -/* 17 */ { 7, s_5_17, -1, 1, 0}, -/* 18 */ { 5, s_5_18, -1, 1, 0}, -/* 19 */ { 6, s_5_19, -1, 1, 0}, -/* 20 */ { 7, s_5_20, -1, 1, 0}, -/* 21 */ { 2, s_5_21, -1, 1, 0}, -/* 22 */ { 5, s_5_22, 21, 1, 0}, -/* 23 */ { 6, s_5_23, 21, 1, 0}, -/* 24 */ { 6, s_5_24, -1, 1, 0}, -/* 25 */ { 7, s_5_25, -1, 1, 0}, -/* 26 */ { 8, s_5_26, -1, 1, 0}, -/* 27 */ { 5, s_5_27, -1, 1, 0}, -/* 28 */ { 6, s_5_28, -1, 1, 0}, -/* 29 */ { 5, s_5_29, -1, 1, 0}, -/* 30 */ { 3, s_5_30, -1, 1, 0}, -/* 31 */ { 5, s_5_31, -1, 1, 0}, -/* 32 */ { 6, s_5_32, -1, 1, 0}, -/* 33 */ { 4, s_5_33, -1, 1, 0}, -/* 34 */ { 5, s_5_34, -1, 1, 0} +{ 3, s_5_0, -1, 1, 0}, +{ 2, s_5_1, -1, 1, 0}, +{ 4, s_5_2, -1, 1, 0}, +{ 7, s_5_3, -1, 1, 0}, +{ 1, s_5_4, -1, 1, 0}, +{ 4, s_5_5, 4, 1, 0}, +{ 2, s_5_6, -1, 1, 0}, +{ 4, s_5_7, -1, 1, 0}, +{ 3, s_5_8, -1, 1, 0}, +{ 5, s_5_9, -1, 1, 0}, +{ 5, s_5_10, -1, 1, 0}, +{ 8, s_5_11, -1, 1, 0}, +{ 5, s_5_12, -1, 1, 0}, +{ 2, s_5_13, -1, 1, 0}, +{ 5, s_5_14, 13, 1, 0}, +{ 6, s_5_15, 13, 1, 0}, +{ 6, s_5_16, -1, 1, 0}, +{ 7, s_5_17, -1, 1, 0}, +{ 5, s_5_18, -1, 1, 0}, +{ 6, s_5_19, -1, 1, 0}, +{ 7, s_5_20, -1, 1, 0}, +{ 2, s_5_21, -1, 1, 0}, +{ 5, s_5_22, 21, 1, 0}, +{ 6, s_5_23, 21, 1, 0}, +{ 6, s_5_24, -1, 1, 0}, +{ 7, s_5_25, -1, 1, 0}, +{ 8, s_5_26, -1, 1, 0}, +{ 5, s_5_27, -1, 1, 0}, +{ 6, s_5_28, -1, 1, 0}, +{ 5, s_5_29, -1, 1, 0}, +{ 3, s_5_30, -1, 1, 0}, +{ 5, s_5_31, -1, 1, 0}, +{ 6, s_5_32, -1, 1, 0}, +{ 4, s_5_33, -1, 1, 0}, +{ 5, s_5_34, -1, 1, 0} }; static const symbol s_6_0[1] = { 'a' }; @@ -297,44 +297,44 @@ static const symbol s_6_37[2] = { 0xC3, 0xA9 }; static const struct among a_6[38] = { -/* 0 */ { 1, s_6_0, -1, 3, 0}, -/* 1 */ { 3, s_6_1, 0, 2, 0}, -/* 2 */ { 4, s_6_2, -1, 3, 0}, -/* 3 */ { 4, s_6_3, -1, 3, 0}, -/* 4 */ { 3, s_6_4, -1, 2, 0}, -/* 5 */ { 2, s_6_5, -1, 3, 0}, -/* 6 */ { 4, s_6_6, 5, 2, 0}, -/* 7 */ { 2, s_6_7, -1, 2, 0}, -/* 8 */ { 2, s_6_8, -1, 3, 0}, -/* 9 */ { 4, s_6_9, 8, 2, 0}, -/* 10 */ { 5, s_6_10, -1, 3, 0}, -/* 11 */ { 5, s_6_11, -1, 3, 0}, -/* 12 */ { 5, s_6_12, -1, 3, 0}, -/* 13 */ { 5, s_6_13, -1, 3, 0}, -/* 14 */ { 4, s_6_14, -1, 2, 0}, -/* 15 */ { 3, s_6_15, -1, 3, 0}, -/* 16 */ { 5, s_6_16, 15, 2, 0}, -/* 17 */ { 4, s_6_17, -1, 1, 0}, -/* 18 */ { 6, s_6_18, 17, 2, 0}, -/* 19 */ { 7, s_6_19, 17, 3, 0}, -/* 20 */ { 5, s_6_20, -1, 2, 0}, -/* 21 */ { 4, s_6_21, -1, 3, 0}, -/* 22 */ { 3, s_6_22, -1, 2, 0}, -/* 23 */ { 3, s_6_23, -1, 3, 0}, -/* 24 */ { 5, s_6_24, 23, 2, 0}, -/* 25 */ { 3, s_6_25, -1, 3, 0}, -/* 26 */ { 5, s_6_26, -1, 3, 0}, -/* 27 */ { 7, s_6_27, 26, 2, 0}, -/* 28 */ { 6, s_6_28, -1, 2, 0}, -/* 29 */ { 6, s_6_29, -1, 3, 0}, -/* 30 */ { 5, s_6_30, -1, 2, 0}, -/* 31 */ { 3, s_6_31, -1, 3, 0}, -/* 32 */ { 2, s_6_32, -1, 2, 0}, -/* 33 */ { 3, s_6_33, 32, 2, 0}, -/* 34 */ { 5, s_6_34, 33, 2, 0}, -/* 35 */ { 6, s_6_35, 33, 3, 0}, -/* 36 */ { 4, s_6_36, 32, 2, 0}, -/* 37 */ { 2, s_6_37, -1, 2, 0} +{ 1, s_6_0, -1, 3, 0}, +{ 3, s_6_1, 0, 2, 0}, +{ 4, s_6_2, -1, 3, 0}, +{ 4, s_6_3, -1, 3, 0}, +{ 3, s_6_4, -1, 2, 0}, +{ 2, s_6_5, -1, 3, 0}, +{ 4, s_6_6, 5, 2, 0}, +{ 2, s_6_7, -1, 2, 0}, +{ 2, s_6_8, -1, 3, 0}, +{ 4, s_6_9, 8, 2, 0}, +{ 5, s_6_10, -1, 3, 0}, +{ 5, s_6_11, -1, 3, 0}, +{ 5, s_6_12, -1, 3, 0}, +{ 5, s_6_13, -1, 3, 0}, +{ 4, s_6_14, -1, 2, 0}, +{ 3, s_6_15, -1, 3, 0}, +{ 5, s_6_16, 15, 2, 0}, +{ 4, s_6_17, -1, 1, 0}, +{ 6, s_6_18, 17, 2, 0}, +{ 7, s_6_19, 17, 3, 0}, +{ 5, s_6_20, -1, 2, 0}, +{ 4, s_6_21, -1, 3, 0}, +{ 3, s_6_22, -1, 2, 0}, +{ 3, s_6_23, -1, 3, 0}, +{ 5, s_6_24, 23, 2, 0}, +{ 3, s_6_25, -1, 3, 0}, +{ 5, s_6_26, -1, 3, 0}, +{ 7, s_6_27, 26, 2, 0}, +{ 6, s_6_28, -1, 2, 0}, +{ 6, s_6_29, -1, 3, 0}, +{ 5, s_6_30, -1, 2, 0}, +{ 3, s_6_31, -1, 3, 0}, +{ 2, s_6_32, -1, 2, 0}, +{ 3, s_6_33, 32, 2, 0}, +{ 5, s_6_34, 33, 2, 0}, +{ 6, s_6_35, 33, 3, 0}, +{ 4, s_6_36, 32, 2, 0}, +{ 2, s_6_37, -1, 2, 0} }; static const symbol s_7_0[1] = { 'e' }; @@ -346,12 +346,12 @@ static const symbol s_7_5[3] = { 'i', 'e', 'r' }; static const struct among a_7[6] = { -/* 0 */ { 1, s_7_0, -1, 3, 0}, -/* 1 */ { 5, s_7_1, 0, 2, 0}, -/* 2 */ { 5, s_7_2, 0, 2, 0}, -/* 3 */ { 3, s_7_3, -1, 1, 0}, -/* 4 */ { 3, s_7_4, -1, 2, 0}, -/* 5 */ { 3, s_7_5, -1, 2, 0} +{ 1, s_7_0, -1, 3, 0}, +{ 5, s_7_1, 0, 2, 0}, +{ 5, s_7_2, 0, 2, 0}, +{ 3, s_7_3, -1, 1, 0}, +{ 3, s_7_4, -1, 2, 0}, +{ 3, s_7_5, -1, 2, 0} }; static const symbol s_8_0[3] = { 'e', 'l', 'l' }; @@ -362,11 +362,11 @@ static const symbol s_8_4[3] = { 'e', 't', 't' }; static const struct among a_8[5] = { -/* 0 */ { 3, s_8_0, -1, -1, 0}, -/* 1 */ { 4, s_8_1, -1, -1, 0}, -/* 2 */ { 3, s_8_2, -1, -1, 0}, -/* 3 */ { 3, s_8_3, -1, -1, 0}, -/* 4 */ { 3, s_8_4, -1, -1, 0} +{ 3, s_8_0, -1, -1, 0}, +{ 4, s_8_1, -1, -1, 0}, +{ 3, s_8_2, -1, -1, 0}, +{ 3, s_8_3, -1, -1, 0}, +{ 3, s_8_4, -1, -1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 }; @@ -414,40 +414,39 @@ static const symbol s_37[] = { 'i' }; static const symbol s_38[] = { 0xC3, 0xA7 }; static const symbol s_39[] = { 'c' }; -static int r_prelude(struct SN_env * z) { /* forwardmode */ -/* repeat, line 38 */ - - while(1) { int c1 = z->c; - while(1) { /* goto, line 38 */ +static int r_prelude(struct SN_env * z) { + while(1) { + int c1 = z->c; + while(1) { int c2 = z->c; - { int c3 = z->c; /* or, line 44 */ - if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab3; /* grouping v, line 40 */ - z->bra = z->c; /* [, line 40 */ - { int c4 = z->c; /* or, line 40 */ - if (z->c == z->l || z->p[z->c] != 'u') goto lab5; /* literal, line 40 */ + { int c3 = z->c; + if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab3; + z->bra = z->c; + { int c4 = z->c; + if (z->c == z->l || z->p[z->c] != 'u') goto lab5; z->c++; - z->ket = z->c; /* ], line 40 */ - if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab5; /* grouping v, line 40 */ - { int ret = slice_from_s(z, 1, s_0); /* <-, line 40 */ + z->ket = z->c; + if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab5; + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } goto lab4; lab5: z->c = c4; - if (z->c == z->l || z->p[z->c] != 'i') goto lab6; /* literal, line 41 */ + if (z->c == z->l || z->p[z->c] != 'i') goto lab6; z->c++; - z->ket = z->c; /* ], line 41 */ - if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab6; /* grouping v, line 41 */ - { int ret = slice_from_s(z, 1, s_1); /* <-, line 41 */ + z->ket = z->c; + if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab6; + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } goto lab4; lab6: z->c = c4; - if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 42 */ + if (z->c == z->l || z->p[z->c] != 'y') goto lab3; z->c++; - z->ket = z->c; /* ], line 42 */ - { int ret = slice_from_s(z, 1, s_2); /* <-, line 42 */ + z->ket = z->c; + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } } @@ -455,42 +454,42 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ goto lab2; lab3: z->c = c3; - z->bra = z->c; /* [, line 45 */ - if (!(eq_s(z, 2, s_3))) goto lab7; /* literal, line 45 */ - z->ket = z->c; /* ], line 45 */ - { int ret = slice_from_s(z, 2, s_4); /* <-, line 45 */ + z->bra = z->c; + if (!(eq_s(z, 2, s_3))) goto lab7; + z->ket = z->c; + { int ret = slice_from_s(z, 2, s_4); if (ret < 0) return ret; } goto lab2; lab7: z->c = c3; - z->bra = z->c; /* [, line 47 */ - if (!(eq_s(z, 2, s_5))) goto lab8; /* literal, line 47 */ - z->ket = z->c; /* ], line 47 */ - { int ret = slice_from_s(z, 2, s_6); /* <-, line 47 */ + z->bra = z->c; + if (!(eq_s(z, 2, s_5))) goto lab8; + z->ket = z->c; + { int ret = slice_from_s(z, 2, s_6); if (ret < 0) return ret; } goto lab2; lab8: z->c = c3; - z->bra = z->c; /* [, line 49 */ - if (z->c == z->l || z->p[z->c] != 'y') goto lab9; /* literal, line 49 */ + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'y') goto lab9; z->c++; - z->ket = z->c; /* ], line 49 */ - if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab9; /* grouping v, line 49 */ - { int ret = slice_from_s(z, 1, s_7); /* <-, line 49 */ + z->ket = z->c; + if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab9; + { int ret = slice_from_s(z, 1, s_7); if (ret < 0) return ret; } goto lab2; lab9: z->c = c3; - if (z->c == z->l || z->p[z->c] != 'q') goto lab1; /* literal, line 51 */ + if (z->c == z->l || z->p[z->c] != 'q') goto lab1; z->c++; - z->bra = z->c; /* [, line 51 */ - if (z->c == z->l || z->p[z->c] != 'u') goto lab1; /* literal, line 51 */ + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'u') goto lab1; z->c++; - z->ket = z->c; /* ], line 51 */ - { int ret = slice_from_s(z, 1, s_8); /* <-, line 51 */ + z->ket = z->c; + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } } @@ -499,9 +498,9 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ break; lab1: z->c = c2; - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* goto, line 38 */ + z->c = ret; } } continue; @@ -512,115 +511,114 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $pV = , line 56 */ - z->I[1] = z->l; /* $p1 = , line 57 */ - z->I[2] = z->l; /* $p2 = , line 58 */ - { int c1 = z->c; /* do, line 60 */ - { int c2 = z->c; /* or, line 62 */ - if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 61 */ - if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2; /* grouping v, line 61 */ - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); +static int r_mark_regions(struct SN_env * z) { + z->I[2] = z->l; + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int c2 = z->c; + if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2; + if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2; + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab2; - z->c = ret; /* next, line 61 */ + z->c = ret; } goto lab1; lab2: z->c = c2; - if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((331776 >> (z->p[z->c + 2] & 0x1f)) & 1)) goto lab3; /* among, line 63 */ + if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((331776 >> (z->p[z->c + 2] & 0x1f)) & 1)) goto lab3; if (!(find_among(z, a_0, 3))) goto lab3; goto lab1; lab3: z->c = c2; - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 70 */ + z->c = ret; } - { /* gopast */ /* grouping v, line 70 */ + { int ret = out_grouping_U(z, g_v, 97, 251, 1); if (ret < 0) goto lab0; z->c += ret; } } lab1: - z->I[0] = z->c; /* setmark pV, line 71 */ + z->I[2] = z->c; lab0: z->c = c1; } - { int c3 = z->c; /* do, line 73 */ - { /* gopast */ /* grouping v, line 74 */ + { int c3 = z->c; + { int ret = out_grouping_U(z, g_v, 97, 251, 1); if (ret < 0) goto lab4; z->c += ret; } - { /* gopast */ /* non v, line 74 */ + { int ret = in_grouping_U(z, g_v, 97, 251, 1); if (ret < 0) goto lab4; z->c += ret; } - z->I[1] = z->c; /* setmark p1, line 74 */ - { /* gopast */ /* grouping v, line 75 */ + z->I[1] = z->c; + { int ret = out_grouping_U(z, g_v, 97, 251, 1); if (ret < 0) goto lab4; z->c += ret; } - { /* gopast */ /* non v, line 75 */ + { int ret = in_grouping_U(z, g_v, 97, 251, 1); if (ret < 0) goto lab4; z->c += ret; } - z->I[2] = z->c; /* setmark p2, line 75 */ + z->I[0] = z->c; lab4: z->c = c3; } return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ +static int r_postlude(struct SN_env * z) { int among_var; -/* repeat, line 79 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 81 */ - if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else /* substring, line 81 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else among_var = find_among(z, a_1, 7); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 81 */ - switch (among_var) { /* among, line 81 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_9); /* <-, line 82 */ + { int ret = slice_from_s(z, 1, s_9); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_10); /* <-, line 83 */ + { int ret = slice_from_s(z, 1, s_10); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_11); /* <-, line 84 */ + { int ret = slice_from_s(z, 1, s_11); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 2, s_12); /* <-, line 85 */ + { int ret = slice_from_s(z, 2, s_12); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 2, s_13); /* <-, line 86 */ + { int ret = slice_from_s(z, 2, s_13); if (ret < 0) return ret; } break; case 6: - { int ret = slice_del(z); /* delete, line 87 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 7: - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 88 */ + z->c = ret; } break; } @@ -632,59 +630,59 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_RV(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 94 */ +static int r_RV(struct SN_env * z) { + if (!(z->I[2] <= z->c)) return 0; return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 95 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 96 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ +static int r_standard_suffix(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 99 */ - among_var = find_among_b(z, a_4, 43); /* substring, line 99 */ + z->ket = z->c; + among_var = find_among_b(z, a_4, 43); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 99 */ - switch (among_var) { /* among, line 99 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 103 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 103 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 106 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 106 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m1 = z->l - z->c; (void)m1; /* try, line 107 */ - z->ket = z->c; /* [, line 107 */ - if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m1; goto lab0; } /* literal, line 107 */ - z->bra = z->c; /* ], line 107 */ - { int m2 = z->l - z->c; (void)m2; /* or, line 107 */ - { int ret = r_R2(z); /* call R2, line 107 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m1; goto lab0; } + z->bra = z->c; + { int m2 = z->l - z->c; (void)m2; + { int ret = r_R2(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 107 */ + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab1; lab2: z->c = z->l - m2; - { int ret = slice_from_s(z, 3, s_15); /* <-, line 107 */ + { int ret = slice_from_s(z, 3, s_15); if (ret < 0) return ret; } } @@ -694,98 +692,98 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 3: - { int ret = r_R2(z); /* call R2, line 111 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_16); /* <-, line 111 */ + { int ret = slice_from_s(z, 3, s_16); if (ret < 0) return ret; } break; case 4: - { int ret = r_R2(z); /* call R2, line 114 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 1, s_17); /* <-, line 114 */ + { int ret = slice_from_s(z, 1, s_17); if (ret < 0) return ret; } break; case 5: - { int ret = r_R2(z); /* call R2, line 117 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_18); /* <-, line 117 */ + { int ret = slice_from_s(z, 3, s_18); if (ret < 0) return ret; } break; case 6: - { int ret = r_RV(z); /* call RV, line 121 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 121 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m3 = z->l - z->c; (void)m3; /* try, line 122 */ - z->ket = z->c; /* [, line 123 */ - among_var = find_among_b(z, a_2, 6); /* substring, line 123 */ + { int m3 = z->l - z->c; (void)m3; + z->ket = z->c; + among_var = find_among_b(z, a_2, 6); if (!(among_var)) { z->c = z->l - m3; goto lab3; } - z->bra = z->c; /* ], line 123 */ - switch (among_var) { /* among, line 123 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 124 */ + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m3; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 124 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 124 */ - if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m3; goto lab3; } /* literal, line 124 */ - z->bra = z->c; /* ], line 124 */ - { int ret = r_R2(z); /* call R2, line 124 */ + z->ket = z->c; + if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m3; goto lab3; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m3; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 124 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int m4 = z->l - z->c; (void)m4; /* or, line 125 */ - { int ret = r_R2(z); /* call R2, line 125 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_R2(z); if (ret == 0) goto lab5; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 125 */ + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab4; lab5: z->c = z->l - m4; - { int ret = r_R1(z); /* call R1, line 125 */ + { int ret = r_R1(z); if (ret == 0) { z->c = z->l - m3; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_from_s(z, 3, s_20); /* <-, line 125 */ + { int ret = slice_from_s(z, 3, s_20); if (ret < 0) return ret; } } lab4: break; case 3: - { int ret = r_R2(z); /* call R2, line 127 */ + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m3; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 127 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 4: - { int ret = r_RV(z); /* call RV, line 129 */ + { int ret = r_RV(z); if (ret == 0) { z->c = z->l - m3; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_from_s(z, 1, s_21); /* <-, line 129 */ + { int ret = slice_from_s(z, 1, s_21); if (ret < 0) return ret; } break; @@ -795,61 +793,61 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 7: - { int ret = r_R2(z); /* call R2, line 136 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 136 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m5 = z->l - z->c; (void)m5; /* try, line 137 */ - z->ket = z->c; /* [, line 138 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m5; goto lab6; } /* substring, line 138 */ + { int m5 = z->l - z->c; (void)m5; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m5; goto lab6; } among_var = find_among_b(z, a_3, 3); if (!(among_var)) { z->c = z->l - m5; goto lab6; } - z->bra = z->c; /* ], line 138 */ - switch (among_var) { /* among, line 138 */ + z->bra = z->c; + switch (among_var) { case 1: - { int m6 = z->l - z->c; (void)m6; /* or, line 139 */ - { int ret = r_R2(z); /* call R2, line 139 */ + { int m6 = z->l - z->c; (void)m6; + { int ret = r_R2(z); if (ret == 0) goto lab8; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 139 */ + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab7; lab8: z->c = z->l - m6; - { int ret = slice_from_s(z, 3, s_22); /* <-, line 139 */ + { int ret = slice_from_s(z, 3, s_22); if (ret < 0) return ret; } } lab7: break; case 2: - { int m7 = z->l - z->c; (void)m7; /* or, line 140 */ - { int ret = r_R2(z); /* call R2, line 140 */ + { int m7 = z->l - z->c; (void)m7; + { int ret = r_R2(z); if (ret == 0) goto lab10; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 140 */ + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab9; lab10: z->c = z->l - m7; - { int ret = slice_from_s(z, 3, s_23); /* <-, line 140 */ + { int ret = slice_from_s(z, 3, s_23); if (ret < 0) return ret; } } lab9: break; case 3: - { int ret = r_R2(z); /* call R2, line 141 */ + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m5; goto lab6; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 141 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -859,38 +857,38 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 8: - { int ret = r_R2(z); /* call R2, line 148 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 148 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m8 = z->l - z->c; (void)m8; /* try, line 149 */ - z->ket = z->c; /* [, line 149 */ - if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m8; goto lab11; } /* literal, line 149 */ - z->bra = z->c; /* ], line 149 */ - { int ret = r_R2(z); /* call R2, line 149 */ + { int m8 = z->l - z->c; (void)m8; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m8; goto lab11; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m8; goto lab11; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 149 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 149 */ - if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m8; goto lab11; } /* literal, line 149 */ - z->bra = z->c; /* ], line 149 */ - { int m9 = z->l - z->c; (void)m9; /* or, line 149 */ - { int ret = r_R2(z); /* call R2, line 149 */ + z->ket = z->c; + if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m8; goto lab11; } + z->bra = z->c; + { int m9 = z->l - z->c; (void)m9; + { int ret = r_R2(z); if (ret == 0) goto lab13; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 149 */ + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab12; lab13: z->c = z->l - m9; - { int ret = slice_from_s(z, 3, s_26); /* <-, line 149 */ + { int ret = slice_from_s(z, 3, s_26); if (ret < 0) return ret; } } @@ -900,101 +898,101 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 9: - { int ret = slice_from_s(z, 3, s_27); /* <-, line 151 */ + { int ret = slice_from_s(z, 3, s_27); if (ret < 0) return ret; } break; case 10: - { int ret = r_R1(z); /* call R1, line 152 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 2, s_28); /* <-, line 152 */ + { int ret = slice_from_s(z, 2, s_28); if (ret < 0) return ret; } break; case 11: - { int m10 = z->l - z->c; (void)m10; /* or, line 154 */ - { int ret = r_R2(z); /* call R2, line 154 */ + { int m10 = z->l - z->c; (void)m10; + { int ret = r_R2(z); if (ret == 0) goto lab15; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 154 */ + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab14; lab15: z->c = z->l - m10; - { int ret = r_R1(z); /* call R1, line 154 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_29); /* <-, line 154 */ + { int ret = slice_from_s(z, 3, s_29); if (ret < 0) return ret; } } lab14: break; case 12: - { int ret = r_R1(z); /* call R1, line 157 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - if (out_grouping_b_U(z, g_v, 97, 251, 0)) return 0; /* non v, line 157 */ - { int ret = slice_del(z); /* delete, line 157 */ + if (out_grouping_b_U(z, g_v, 97, 251, 0)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 13: - { int ret = r_RV(z); /* call RV, line 162 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_30); /* <-, line 162 */ + { int ret = slice_from_s(z, 3, s_30); if (ret < 0) return ret; } - return 0; /* fail, line 162 */ + return 0; break; case 14: - { int ret = r_RV(z); /* call RV, line 163 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_31); /* <-, line 163 */ + { int ret = slice_from_s(z, 3, s_31); if (ret < 0) return ret; } - return 0; /* fail, line 163 */ + return 0; break; case 15: - { int m_test11 = z->l - z->c; /* test, line 165 */ - if (in_grouping_b_U(z, g_v, 97, 251, 0)) return 0; /* grouping v, line 165 */ - { int ret = r_RV(z); /* call RV, line 165 */ + { int m_test11 = z->l - z->c; + if (in_grouping_b_U(z, g_v, 97, 251, 0)) return 0; + { int ret = r_RV(z); if (ret <= 0) return ret; } z->c = z->l - m_test11; } - { int ret = slice_del(z); /* delete, line 165 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - return 0; /* fail, line 165 */ + return 0; break; } return 1; } -static int r_i_verb_suffix(struct SN_env * z) { /* backwardmode */ +static int r_i_verb_suffix(struct SN_env * z) { - { int mlimit1; /* setlimit, line 170 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 171 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 171 */ + { int mlimit1; + if (z->c < z->I[2]) return 0; + mlimit1 = z->lb; z->lb = z->I[2]; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } if (!(find_among_b(z, a_5, 35))) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 171 */ - { int m2 = z->l - z->c; (void)m2; /* not, line 177 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0; /* literal, line 177 */ + z->bra = z->c; + { int m2 = z->l - z->c; (void)m2; + if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0; z->c--; { z->lb = mlimit1; return 0; } lab0: z->c = z->l - m2; } - if (out_grouping_b_U(z, g_v, 97, 251, 0)) { z->lb = mlimit1; return 0; } /* non v, line 177 */ - { int ret = slice_del(z); /* delete, line 177 */ + if (out_grouping_b_U(z, g_v, 97, 251, 0)) { z->lb = mlimit1; return 0; } + { int ret = slice_del(z); if (ret < 0) return ret; } z->lb = mlimit1; @@ -1002,41 +1000,41 @@ static int r_i_verb_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ +static int r_verb_suffix(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 181 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 182 */ - among_var = find_among_b(z, a_6, 38); /* substring, line 182 */ + { int mlimit1; + if (z->c < z->I[2]) return 0; + mlimit1 = z->lb; z->lb = z->I[2]; + z->ket = z->c; + among_var = find_among_b(z, a_6, 38); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 182 */ - switch (among_var) { /* among, line 182 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 184 */ + { int ret = r_R2(z); if (ret == 0) { z->lb = mlimit1; return 0; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 184 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_del(z); /* delete, line 192 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - { int ret = slice_del(z); /* delete, line 197 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m2 = z->l - z->c; (void)m2; /* try, line 198 */ - z->ket = z->c; /* [, line 198 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; } /* literal, line 198 */ + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; } z->c--; - z->bra = z->c; /* ], line 198 */ - { int ret = slice_del(z); /* delete, line 198 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: @@ -1049,66 +1047,66 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ +static int r_residual_suffix(struct SN_env * z) { int among_var; - { int m1 = z->l - z->c; (void)m1; /* try, line 206 */ - z->ket = z->c; /* [, line 206 */ - if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; } /* literal, line 206 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; } z->c--; - z->bra = z->c; /* ], line 206 */ - { int m_test2 = z->l - z->c; /* test, line 206 */ - { int m3 = z->l - z->c; (void)m3; /* or, line 206 */ - if (!(eq_s_b(z, 2, s_32))) goto lab2; /* literal, line 206 */ + z->bra = z->c; + { int m_test2 = z->l - z->c; + { int m3 = z->l - z->c; (void)m3; + if (!(eq_s_b(z, 2, s_32))) goto lab2; goto lab1; lab2: z->c = z->l - m3; - if (out_grouping_b_U(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m1; goto lab0; } /* non keep_with_s, line 206 */ + if (out_grouping_b_U(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m1; goto lab0; } } lab1: z->c = z->l - m_test2; } - { int ret = slice_del(z); /* delete, line 206 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: ; } - { int mlimit4; /* setlimit, line 207 */ - if (z->c < z->I[0]) return 0; - mlimit4 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 208 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((278560 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit4; return 0; } /* substring, line 208 */ + { int mlimit4; + if (z->c < z->I[2]) return 0; + mlimit4 = z->lb; z->lb = z->I[2]; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((278560 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit4; return 0; } among_var = find_among_b(z, a_7, 6); if (!(among_var)) { z->lb = mlimit4; return 0; } - z->bra = z->c; /* ], line 208 */ - switch (among_var) { /* among, line 208 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 209 */ + { int ret = r_R2(z); if (ret == 0) { z->lb = mlimit4; return 0; } if (ret < 0) return ret; } - { int m5 = z->l - z->c; (void)m5; /* or, line 209 */ - if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab4; /* literal, line 209 */ + { int m5 = z->l - z->c; (void)m5; + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab4; z->c--; goto lab3; lab4: z->c = z->l - m5; - if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit4; return 0; } /* literal, line 209 */ + if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit4; return 0; } z->c--; } lab3: - { int ret = slice_del(z); /* delete, line 209 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_33); /* <-, line 211 */ + { int ret = slice_from_s(z, 1, s_33); if (ret < 0) return ret; } break; case 3: - { int ret = slice_del(z); /* delete, line 212 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -1118,27 +1116,28 @@ static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_un_double(struct SN_env * z) { /* backwardmode */ - { int m_test1 = z->l - z->c; /* test, line 218 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 218 */ +static int r_un_double(struct SN_env * z) { + { int m_test1 = z->l - z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_8, 5))) return 0; z->c = z->l - m_test1; } - z->ket = z->c; /* [, line 218 */ - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + z->ket = z->c; + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) return 0; - z->c = ret; /* next, line 218 */ + z->c = ret; } - z->bra = z->c; /* ], line 218 */ - { int ret = slice_del(z); /* delete, line 218 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_un_accent(struct SN_env * z) { /* backwardmode */ +static int r_un_accent(struct SN_env * z) { { int i = 1; - while(1) { if (out_grouping_b_U(z, g_v, 97, 251, 0)) goto lab0; /* non v, line 222 */ + while(1) { + if (out_grouping_b_U(z, g_v, 97, 251, 0)) goto lab0; i--; continue; lab0: @@ -1146,75 +1145,75 @@ static int r_un_accent(struct SN_env * z) { /* backwardmode */ } if (i > 0) return 0; } - z->ket = z->c; /* [, line 223 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 223 */ - if (!(eq_s_b(z, 2, s_34))) goto lab2; /* literal, line 223 */ + z->ket = z->c; + { int m1 = z->l - z->c; (void)m1; + if (!(eq_s_b(z, 2, s_34))) goto lab2; goto lab1; lab2: z->c = z->l - m1; - if (!(eq_s_b(z, 2, s_35))) return 0; /* literal, line 223 */ + if (!(eq_s_b(z, 2, s_35))) return 0; } lab1: - z->bra = z->c; /* ], line 223 */ - { int ret = slice_from_s(z, 1, s_36); /* <-, line 223 */ + z->bra = z->c; + { int ret = slice_from_s(z, 1, s_36); if (ret < 0) return ret; } return 1; } -extern int french_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 229 */ - { int ret = r_prelude(z); /* call prelude, line 229 */ +extern int french_UTF_8_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_prelude(z); if (ret < 0) return ret; } z->c = c1; } - /* do, line 230 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 230 */ + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 231 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 233 */ - { int m3 = z->l - z->c; (void)m3; /* or, line 243 */ - { int m4 = z->l - z->c; (void)m4; /* and, line 239 */ - { int m5 = z->l - z->c; (void)m5; /* or, line 235 */ - { int ret = r_standard_suffix(z); /* call standard_suffix, line 235 */ + { int m2 = z->l - z->c; (void)m2; + { int m3 = z->l - z->c; (void)m3; + { int m4 = z->l - z->c; (void)m4; + { int m5 = z->l - z->c; (void)m5; + { int ret = r_standard_suffix(z); if (ret == 0) goto lab4; if (ret < 0) return ret; } goto lab3; lab4: z->c = z->l - m5; - { int ret = r_i_verb_suffix(z); /* call i_verb_suffix, line 236 */ + { int ret = r_i_verb_suffix(z); if (ret == 0) goto lab5; if (ret < 0) return ret; } goto lab3; lab5: z->c = z->l - m5; - { int ret = r_verb_suffix(z); /* call verb_suffix, line 237 */ + { int ret = r_verb_suffix(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } } lab3: z->c = z->l - m4; - { int m6 = z->l - z->c; (void)m6; /* try, line 240 */ - z->ket = z->c; /* [, line 240 */ - { int m7 = z->l - z->c; (void)m7; /* or, line 240 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8; /* literal, line 240 */ + { int m6 = z->l - z->c; (void)m6; + z->ket = z->c; + { int m7 = z->l - z->c; (void)m7; + if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8; z->c--; - z->bra = z->c; /* ], line 240 */ - { int ret = slice_from_s(z, 1, s_37); /* <-, line 240 */ + z->bra = z->c; + { int ret = slice_from_s(z, 1, s_37); if (ret < 0) return ret; } goto lab7; lab8: z->c = z->l - m7; - if (!(eq_s_b(z, 2, s_38))) { z->c = z->l - m6; goto lab6; } /* literal, line 241 */ - z->bra = z->c; /* ], line 241 */ - { int ret = slice_from_s(z, 1, s_39); /* <-, line 241 */ + if (!(eq_s_b(z, 2, s_38))) { z->c = z->l - m6; goto lab6; } + z->bra = z->c; + { int ret = slice_from_s(z, 1, s_39); if (ret < 0) return ret; } } @@ -1226,7 +1225,7 @@ extern int french_UTF_8_stem(struct SN_env * z) { /* forwardmode */ goto lab1; lab2: z->c = z->l - m3; - { int ret = r_residual_suffix(z); /* call residual_suffix, line 244 */ + { int ret = r_residual_suffix(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -1235,21 +1234,21 @@ extern int french_UTF_8_stem(struct SN_env * z) { /* forwardmode */ lab0: z->c = z->l - m2; } - { int m8 = z->l - z->c; (void)m8; /* do, line 249 */ - { int ret = r_un_double(z); /* call un_double, line 249 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_un_double(z); if (ret < 0) return ret; } z->c = z->l - m8; } - { int m9 = z->l - z->c; (void)m9; /* do, line 250 */ - { int ret = r_un_accent(z); /* call un_accent, line 250 */ + { int m9 = z->l - z->c; (void)m9; + { int ret = r_un_accent(z); if (ret < 0) return ret; } z->c = z->l - m9; } z->c = z->lb; - { int c10 = z->c; /* do, line 252 */ - { int ret = r_postlude(z); /* call postlude, line 252 */ + { int c10 = z->c; + { int ret = r_postlude(z); if (ret < 0) return ret; } z->c = c10; @@ -1257,7 +1256,7 @@ extern int french_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * french_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); } +extern struct SN_env * french_UTF_8_create_env(void) { return SN_create_env(0, 3); } extern void french_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_german.c b/src/backend/snowball/libstemmer/stem_UTF_8_german.c index 41a3b4eec347b..5b65f2d039cf8 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_german.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_german.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -35,12 +35,12 @@ static const symbol s_0_5[2] = { 0xC3, 0xBC }; static const struct among a_0[6] = { -/* 0 */ { 0, 0, -1, 5, 0}, -/* 1 */ { 1, s_0_1, 0, 2, 0}, -/* 2 */ { 1, s_0_2, 0, 1, 0}, -/* 3 */ { 2, s_0_3, 0, 3, 0}, -/* 4 */ { 2, s_0_4, 0, 4, 0}, -/* 5 */ { 2, s_0_5, 0, 2, 0} +{ 0, 0, -1, 5, 0}, +{ 1, s_0_1, 0, 2, 0}, +{ 1, s_0_2, 0, 1, 0}, +{ 2, s_0_3, 0, 3, 0}, +{ 2, s_0_4, 0, 4, 0}, +{ 2, s_0_5, 0, 2, 0} }; static const symbol s_1_0[1] = { 'e' }; @@ -53,13 +53,13 @@ static const symbol s_1_6[2] = { 'e', 's' }; static const struct among a_1[7] = { -/* 0 */ { 1, s_1_0, -1, 2, 0}, -/* 1 */ { 2, s_1_1, -1, 1, 0}, -/* 2 */ { 2, s_1_2, -1, 2, 0}, -/* 3 */ { 3, s_1_3, -1, 1, 0}, -/* 4 */ { 2, s_1_4, -1, 1, 0}, -/* 5 */ { 1, s_1_5, -1, 3, 0}, -/* 6 */ { 2, s_1_6, 5, 2, 0} +{ 1, s_1_0, -1, 2, 0}, +{ 2, s_1_1, -1, 1, 0}, +{ 2, s_1_2, -1, 2, 0}, +{ 3, s_1_3, -1, 1, 0}, +{ 2, s_1_4, -1, 1, 0}, +{ 1, s_1_5, -1, 3, 0}, +{ 2, s_1_6, 5, 2, 0} }; static const symbol s_2_0[2] = { 'e', 'n' }; @@ -69,10 +69,10 @@ static const symbol s_2_3[3] = { 'e', 's', 't' }; static const struct among a_2[4] = { -/* 0 */ { 2, s_2_0, -1, 1, 0}, -/* 1 */ { 2, s_2_1, -1, 1, 0}, -/* 2 */ { 2, s_2_2, -1, 2, 0}, -/* 3 */ { 3, s_2_3, 2, 1, 0} +{ 2, s_2_0, -1, 1, 0}, +{ 2, s_2_1, -1, 1, 0}, +{ 2, s_2_2, -1, 2, 0}, +{ 3, s_2_3, 2, 1, 0} }; static const symbol s_3_0[2] = { 'i', 'g' }; @@ -80,8 +80,8 @@ static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' }; static const struct among a_3[2] = { -/* 0 */ { 2, s_3_0, -1, 1, 0}, -/* 1 */ { 4, s_3_1, -1, 1, 0} +{ 2, s_3_0, -1, 1, 0}, +{ 4, s_3_1, -1, 1, 0} }; static const symbol s_4_0[3] = { 'e', 'n', 'd' }; @@ -95,14 +95,14 @@ static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' }; static const struct among a_4[8] = { -/* 0 */ { 3, s_4_0, -1, 1, 0}, -/* 1 */ { 2, s_4_1, -1, 2, 0}, -/* 2 */ { 3, s_4_2, -1, 1, 0}, -/* 3 */ { 4, s_4_3, -1, 3, 0}, -/* 4 */ { 4, s_4_4, -1, 2, 0}, -/* 5 */ { 2, s_4_5, -1, 2, 0}, -/* 6 */ { 4, s_4_6, -1, 3, 0}, -/* 7 */ { 4, s_4_7, -1, 4, 0} +{ 3, s_4_0, -1, 1, 0}, +{ 2, s_4_1, -1, 2, 0}, +{ 3, s_4_2, -1, 1, 0}, +{ 4, s_4_3, -1, 3, 0}, +{ 4, s_4_4, -1, 2, 0}, +{ 2, s_4_5, -1, 2, 0}, +{ 4, s_4_6, -1, 3, 0}, +{ 4, s_4_7, -1, 4, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 }; @@ -124,24 +124,23 @@ static const symbol s_9[] = { 'i', 'g' }; static const symbol s_10[] = { 'e', 'r' }; static const symbol s_11[] = { 'e', 'n' }; -static int r_prelude(struct SN_env * z) { /* forwardmode */ - { int c_test1 = z->c; /* test, line 35 */ -/* repeat, line 35 */ - - while(1) { int c2 = z->c; - { int c3 = z->c; /* or, line 38 */ - z->bra = z->c; /* [, line 37 */ - if (!(eq_s(z, 2, s_0))) goto lab2; /* literal, line 37 */ - z->ket = z->c; /* ], line 37 */ - { int ret = slice_from_s(z, 2, s_1); /* <-, line 37 */ +static int r_prelude(struct SN_env * z) { + { int c_test1 = z->c; + while(1) { + int c2 = z->c; + { int c3 = z->c; + z->bra = z->c; + if (!(eq_s(z, 2, s_0))) goto lab2; + z->ket = z->c; + { int ret = slice_from_s(z, 2, s_1); if (ret < 0) return ret; } goto lab1; lab2: z->c = c3; - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 38 */ + z->c = ret; } } lab1: @@ -152,29 +151,28 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ } z->c = c_test1; } -/* repeat, line 41 */ - - while(1) { int c4 = z->c; - while(1) { /* goto, line 41 */ + while(1) { + int c4 = z->c; + while(1) { int c5 = z->c; - if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4; /* grouping v, line 42 */ - z->bra = z->c; /* [, line 42 */ - { int c6 = z->c; /* or, line 42 */ - if (z->c == z->l || z->p[z->c] != 'u') goto lab6; /* literal, line 42 */ + if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4; + z->bra = z->c; + { int c6 = z->c; + if (z->c == z->l || z->p[z->c] != 'u') goto lab6; z->c++; - z->ket = z->c; /* ], line 42 */ - if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab6; /* grouping v, line 42 */ - { int ret = slice_from_s(z, 1, s_2); /* <-, line 42 */ + z->ket = z->c; + if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab6; + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } goto lab5; lab6: z->c = c6; - if (z->c == z->l || z->p[z->c] != 'y') goto lab4; /* literal, line 43 */ + if (z->c == z->l || z->p[z->c] != 'y') goto lab4; z->c++; - z->ket = z->c; /* ], line 43 */ - if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4; /* grouping v, line 43 */ - { int ret = slice_from_s(z, 1, s_3); /* <-, line 43 */ + z->ket = z->c; + if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab4; + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } } @@ -183,9 +181,9 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ break; lab4: z->c = c5; - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab3; - z->c = ret; /* goto, line 41 */ + z->c = ret; } } continue; @@ -196,80 +194,79 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 49 */ - z->I[1] = z->l; /* $p2 = , line 50 */ - { int c_test1 = z->c; /* test, line 52 */ - { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 52 */ +static int r_mark_regions(struct SN_env * z) { + z->I[2] = z->l; + z->I[1] = z->l; + { int c_test1 = z->c; + { int ret = skip_utf8(z->p, z->c, z->l, 3); if (ret < 0) return 0; z->c = ret; } - z->I[2] = z->c; /* setmark x, line 52 */ + z->I[0] = z->c; z->c = c_test1; } - { /* gopast */ /* grouping v, line 54 */ + { int ret = out_grouping_U(z, g_v, 97, 252, 1); if (ret < 0) return 0; z->c += ret; } - { /* gopast */ /* non v, line 54 */ + { int ret = in_grouping_U(z, g_v, 97, 252, 1); if (ret < 0) return 0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 54 */ - /* try, line 55 */ - if (!(z->I[0] < z->I[2])) goto lab0; /* $( < ), line 55 */ - z->I[0] = z->I[2]; /* $p1 = , line 55 */ + z->I[2] = z->c; + + if (!(z->I[2] < z->I[0])) goto lab0; + z->I[2] = z->I[0]; lab0: - { /* gopast */ /* grouping v, line 56 */ + { int ret = out_grouping_U(z, g_v, 97, 252, 1); if (ret < 0) return 0; z->c += ret; } - { /* gopast */ /* non v, line 56 */ + { int ret = in_grouping_U(z, g_v, 97, 252, 1); if (ret < 0) return 0; z->c += ret; } - z->I[1] = z->c; /* setmark p2, line 56 */ + z->I[1] = z->c; return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ +static int r_postlude(struct SN_env * z) { int among_var; -/* repeat, line 60 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 62 */ - among_var = find_among(z, a_0, 6); /* substring, line 62 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + among_var = find_among(z, a_0, 6); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 62 */ - switch (among_var) { /* among, line 62 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_4); /* <-, line 63 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_5); /* <-, line 64 */ + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_6); /* <-, line 65 */ + { int ret = slice_from_s(z, 1, s_6); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 1, s_7); /* <-, line 66 */ + { int ret = slice_from_s(z, 1, s_7); if (ret < 0) return ret; } break; case 5: - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 68 */ + z->c = ret; } break; } @@ -281,45 +278,45 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 75 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[2] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 76 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ +static int r_standard_suffix(struct SN_env * z) { int among_var; - { int m1 = z->l - z->c; (void)m1; /* do, line 79 */ - z->ket = z->c; /* [, line 80 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; /* substring, line 80 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0; among_var = find_among_b(z, a_1, 7); if (!(among_var)) goto lab0; - z->bra = z->c; /* ], line 80 */ - { int ret = r_R1(z); /* call R1, line 80 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } - switch (among_var) { /* among, line 80 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 82 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_del(z); /* delete, line 85 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m2 = z->l - z->c; (void)m2; /* try, line 86 */ - z->ket = z->c; /* [, line 86 */ - if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; } /* literal, line 86 */ + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m2; goto lab1; } z->c--; - z->bra = z->c; /* ], line 86 */ - if (!(eq_s_b(z, 3, s_8))) { z->c = z->l - m2; goto lab1; } /* literal, line 86 */ - { int ret = slice_del(z); /* delete, line 86 */ + z->bra = z->c; + if (!(eq_s_b(z, 3, s_8))) { z->c = z->l - m2; goto lab1; } + { int ret = slice_del(z); if (ret < 0) return ret; } lab1: @@ -327,8 +324,8 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 3: - if (in_grouping_b_U(z, g_s_ending, 98, 116, 0)) goto lab0; /* grouping s_ending, line 89 */ - { int ret = slice_del(z); /* delete, line 89 */ + if (in_grouping_b_U(z, g_s_ending, 98, 116, 0)) goto lab0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -336,29 +333,29 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ lab0: z->c = z->l - m1; } - { int m3 = z->l - z->c; (void)m3; /* do, line 93 */ - z->ket = z->c; /* [, line 94 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2; /* substring, line 94 */ + { int m3 = z->l - z->c; (void)m3; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2; among_var = find_among_b(z, a_2, 4); if (!(among_var)) goto lab2; - z->bra = z->c; /* ], line 94 */ - { int ret = r_R1(z); /* call R1, line 94 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } - switch (among_var) { /* among, line 94 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 96 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (in_grouping_b_U(z, g_st_ending, 98, 116, 0)) goto lab2; /* grouping st_ending, line 99 */ - { int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 3); /* hop, line 99 */ + if (in_grouping_b_U(z, g_st_ending, 98, 116, 0)) goto lab2; + { int ret = skip_b_utf8(z->p, z->c, z->lb, 3); if (ret < 0) goto lab2; z->c = ret; } - { int ret = slice_del(z); /* delete, line 99 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -366,37 +363,37 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ lab2: z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 103 */ - z->ket = z->c; /* [, line 104 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; /* substring, line 104 */ + { int m4 = z->l - z->c; (void)m4; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3; among_var = find_among_b(z, a_4, 8); if (!(among_var)) goto lab3; - z->bra = z->c; /* ], line 104 */ - { int ret = r_R2(z); /* call R2, line 104 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } - switch (among_var) { /* among, line 104 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 106 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m5 = z->l - z->c; (void)m5; /* try, line 107 */ - z->ket = z->c; /* [, line 107 */ - if (!(eq_s_b(z, 2, s_9))) { z->c = z->l - m5; goto lab4; } /* literal, line 107 */ - z->bra = z->c; /* ], line 107 */ - { int m6 = z->l - z->c; (void)m6; /* not, line 107 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5; /* literal, line 107 */ + { int m5 = z->l - z->c; (void)m5; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_9))) { z->c = z->l - m5; goto lab4; } + z->bra = z->c; + { int m6 = z->l - z->c; (void)m6; + if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab5; z->c--; { z->c = z->l - m5; goto lab4; } lab5: z->c = z->l - m6; } - { int ret = r_R2(z); /* call R2, line 107 */ + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m5; goto lab4; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 107 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab4: @@ -404,37 +401,37 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 2: - { int m7 = z->l - z->c; (void)m7; /* not, line 110 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; /* literal, line 110 */ + { int m7 = z->l - z->c; (void)m7; + if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6; z->c--; goto lab3; lab6: z->c = z->l - m7; } - { int ret = slice_del(z); /* delete, line 110 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - { int ret = slice_del(z); /* delete, line 113 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m8 = z->l - z->c; (void)m8; /* try, line 114 */ - z->ket = z->c; /* [, line 115 */ - { int m9 = z->l - z->c; (void)m9; /* or, line 115 */ - if (!(eq_s_b(z, 2, s_10))) goto lab9; /* literal, line 115 */ + { int m8 = z->l - z->c; (void)m8; + z->ket = z->c; + { int m9 = z->l - z->c; (void)m9; + if (!(eq_s_b(z, 2, s_10))) goto lab9; goto lab8; lab9: z->c = z->l - m9; - if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m8; goto lab7; } /* literal, line 115 */ + if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m8; goto lab7; } } lab8: - z->bra = z->c; /* ], line 115 */ - { int ret = r_R1(z); /* call R1, line 115 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret == 0) { z->c = z->l - m8; goto lab7; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 115 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab7: @@ -442,19 +439,19 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 4: - { int ret = slice_del(z); /* delete, line 119 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m10 = z->l - z->c; (void)m10; /* try, line 120 */ - z->ket = z->c; /* [, line 121 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; } /* substring, line 121 */ + { int m10 = z->l - z->c; (void)m10; + z->ket = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m10; goto lab10; } if (!(find_among_b(z, a_3, 2))) { z->c = z->l - m10; goto lab10; } - z->bra = z->c; /* ], line 121 */ - { int ret = r_R2(z); /* call R2, line 121 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m10; goto lab10; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 123 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab10: @@ -468,28 +465,28 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -extern int german_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 134 */ - { int ret = r_prelude(z); /* call prelude, line 134 */ +extern int german_UTF_8_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_prelude(z); if (ret < 0) return ret; } z->c = c1; } - { int c2 = z->c; /* do, line 135 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 135 */ + { int c2 = z->c; + { int ret = r_mark_regions(z); if (ret < 0) return ret; } z->c = c2; } - z->lb = z->c; z->c = z->l; /* backwards, line 136 */ + z->lb = z->c; z->c = z->l; - /* do, line 137 */ - { int ret = r_standard_suffix(z); /* call standard_suffix, line 137 */ + + { int ret = r_standard_suffix(z); if (ret < 0) return ret; } z->c = z->lb; - { int c3 = z->c; /* do, line 138 */ - { int ret = r_postlude(z); /* call postlude, line 138 */ + { int c3 = z->c; + { int ret = r_postlude(z); if (ret < 0) return ret; } z->c = c3; @@ -497,7 +494,7 @@ extern int german_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * german_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); } +extern struct SN_env * german_UTF_8_create_env(void) { return SN_create_env(0, 3); } extern void german_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_greek.c b/src/backend/snowball/libstemmer/stem_UTF_8_greek.c index 8810357358f87..bb2d4259e6ae4 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_greek.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_greek.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -103,52 +103,52 @@ static const symbol s_0_45[2] = { 0xCE, 0xB0 }; static const struct among a_0[46] = { -/* 0 */ { 0, 0, -1, 25, 0}, -/* 1 */ { 2, s_0_1, 0, 18, 0}, -/* 2 */ { 2, s_0_2, 0, 1, 0}, -/* 3 */ { 2, s_0_3, 0, 5, 0}, -/* 4 */ { 2, s_0_4, 0, 7, 0}, -/* 5 */ { 2, s_0_5, 0, 9, 0}, -/* 6 */ { 2, s_0_6, 0, 7, 0}, -/* 7 */ { 2, s_0_7, 0, 20, 0}, -/* 8 */ { 2, s_0_8, 0, 15, 0}, -/* 9 */ { 2, s_0_9, 0, 15, 0}, -/* 10 */ { 2, s_0_10, 0, 20, 0}, -/* 11 */ { 2, s_0_11, 0, 20, 0}, -/* 12 */ { 2, s_0_12, 0, 24, 0}, -/* 13 */ { 2, s_0_13, 0, 24, 0}, -/* 14 */ { 2, s_0_14, 0, 7, 0}, -/* 15 */ { 2, s_0_15, 0, 1, 0}, -/* 16 */ { 2, s_0_16, 0, 2, 0}, -/* 17 */ { 2, s_0_17, 0, 3, 0}, -/* 18 */ { 2, s_0_18, 0, 4, 0}, -/* 19 */ { 2, s_0_19, 0, 5, 0}, -/* 20 */ { 2, s_0_20, 0, 6, 0}, -/* 21 */ { 2, s_0_21, 0, 7, 0}, -/* 22 */ { 2, s_0_22, 0, 8, 0}, -/* 23 */ { 2, s_0_23, 0, 9, 0}, -/* 24 */ { 2, s_0_24, 0, 10, 0}, -/* 25 */ { 2, s_0_25, 0, 11, 0}, -/* 26 */ { 2, s_0_26, 0, 12, 0}, -/* 27 */ { 2, s_0_27, 0, 13, 0}, -/* 28 */ { 2, s_0_28, 0, 14, 0}, -/* 29 */ { 2, s_0_29, 0, 15, 0}, -/* 30 */ { 2, s_0_30, 0, 16, 0}, -/* 31 */ { 2, s_0_31, 0, 17, 0}, -/* 32 */ { 2, s_0_32, 0, 18, 0}, -/* 33 */ { 2, s_0_33, 0, 19, 0}, -/* 34 */ { 2, s_0_34, 0, 20, 0}, -/* 35 */ { 2, s_0_35, 0, 21, 0}, -/* 36 */ { 2, s_0_36, 0, 22, 0}, -/* 37 */ { 2, s_0_37, 0, 23, 0}, -/* 38 */ { 2, s_0_38, 0, 24, 0}, -/* 39 */ { 2, s_0_39, 0, 9, 0}, -/* 40 */ { 2, s_0_40, 0, 20, 0}, -/* 41 */ { 2, s_0_41, 0, 1, 0}, -/* 42 */ { 2, s_0_42, 0, 5, 0}, -/* 43 */ { 2, s_0_43, 0, 7, 0}, -/* 44 */ { 2, s_0_44, 0, 9, 0}, -/* 45 */ { 2, s_0_45, 0, 20, 0} +{ 0, 0, -1, 25, 0}, +{ 2, s_0_1, 0, 18, 0}, +{ 2, s_0_2, 0, 1, 0}, +{ 2, s_0_3, 0, 5, 0}, +{ 2, s_0_4, 0, 7, 0}, +{ 2, s_0_5, 0, 9, 0}, +{ 2, s_0_6, 0, 7, 0}, +{ 2, s_0_7, 0, 20, 0}, +{ 2, s_0_8, 0, 15, 0}, +{ 2, s_0_9, 0, 15, 0}, +{ 2, s_0_10, 0, 20, 0}, +{ 2, s_0_11, 0, 20, 0}, +{ 2, s_0_12, 0, 24, 0}, +{ 2, s_0_13, 0, 24, 0}, +{ 2, s_0_14, 0, 7, 0}, +{ 2, s_0_15, 0, 1, 0}, +{ 2, s_0_16, 0, 2, 0}, +{ 2, s_0_17, 0, 3, 0}, +{ 2, s_0_18, 0, 4, 0}, +{ 2, s_0_19, 0, 5, 0}, +{ 2, s_0_20, 0, 6, 0}, +{ 2, s_0_21, 0, 7, 0}, +{ 2, s_0_22, 0, 8, 0}, +{ 2, s_0_23, 0, 9, 0}, +{ 2, s_0_24, 0, 10, 0}, +{ 2, s_0_25, 0, 11, 0}, +{ 2, s_0_26, 0, 12, 0}, +{ 2, s_0_27, 0, 13, 0}, +{ 2, s_0_28, 0, 14, 0}, +{ 2, s_0_29, 0, 15, 0}, +{ 2, s_0_30, 0, 16, 0}, +{ 2, s_0_31, 0, 17, 0}, +{ 2, s_0_32, 0, 18, 0}, +{ 2, s_0_33, 0, 19, 0}, +{ 2, s_0_34, 0, 20, 0}, +{ 2, s_0_35, 0, 21, 0}, +{ 2, s_0_36, 0, 22, 0}, +{ 2, s_0_37, 0, 23, 0}, +{ 2, s_0_38, 0, 24, 0}, +{ 2, s_0_39, 0, 9, 0}, +{ 2, s_0_40, 0, 20, 0}, +{ 2, s_0_41, 0, 1, 0}, +{ 2, s_0_42, 0, 5, 0}, +{ 2, s_0_43, 0, 7, 0}, +{ 2, s_0_44, 0, 9, 0}, +{ 2, s_0_45, 0, 20, 0} }; static const symbol s_1_0[16] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xB8, 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x89, 0xCF, 0x83 }; @@ -194,46 +194,46 @@ static const symbol s_1_39[14] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF, 0xCE, 0xB static const struct among a_1[40] = { -/* 0 */ { 16, s_1_0, -1, 10, 0}, -/* 1 */ { 6, s_1_1, -1, 9, 0}, -/* 2 */ { 10, s_1_2, -1, 7, 0}, -/* 3 */ { 10, s_1_3, -1, 8, 0}, -/* 4 */ { 10, s_1_4, -1, 6, 0}, -/* 5 */ { 20, s_1_5, -1, 10, 0}, -/* 6 */ { 10, s_1_6, -1, 9, 0}, -/* 7 */ { 14, s_1_7, -1, 7, 0}, -/* 8 */ { 14, s_1_8, -1, 8, 0}, -/* 9 */ { 14, s_1_9, -1, 6, 0}, -/* 10 */ { 18, s_1_10, -1, 11, 0}, -/* 11 */ { 14, s_1_11, -1, 11, 0}, -/* 12 */ { 12, s_1_12, -1, 1, 0}, -/* 13 */ { 14, s_1_13, -1, 2, 0}, -/* 14 */ { 12, s_1_14, -1, 4, 0}, -/* 15 */ { 16, s_1_15, -1, 5, 0}, -/* 16 */ { 14, s_1_16, -1, 3, 0}, -/* 17 */ { 18, s_1_17, -1, 10, 0}, -/* 18 */ { 8, s_1_18, -1, 9, 0}, -/* 19 */ { 12, s_1_19, -1, 7, 0}, -/* 20 */ { 12, s_1_20, -1, 8, 0}, -/* 21 */ { 12, s_1_21, -1, 6, 0}, -/* 22 */ { 16, s_1_22, -1, 11, 0}, -/* 23 */ { 10, s_1_23, -1, 1, 0}, -/* 24 */ { 12, s_1_24, -1, 2, 0}, -/* 25 */ { 10, s_1_25, -1, 4, 0}, -/* 26 */ { 14, s_1_26, -1, 5, 0}, -/* 27 */ { 12, s_1_27, -1, 3, 0}, -/* 28 */ { 12, s_1_28, -1, 7, 0}, -/* 29 */ { 20, s_1_29, -1, 10, 0}, -/* 30 */ { 10, s_1_30, -1, 9, 0}, -/* 31 */ { 14, s_1_31, -1, 7, 0}, -/* 32 */ { 14, s_1_32, -1, 8, 0}, -/* 33 */ { 14, s_1_33, -1, 6, 0}, -/* 34 */ { 18, s_1_34, -1, 11, 0}, -/* 35 */ { 12, s_1_35, -1, 1, 0}, -/* 36 */ { 14, s_1_36, -1, 2, 0}, -/* 37 */ { 12, s_1_37, -1, 4, 0}, -/* 38 */ { 16, s_1_38, -1, 5, 0}, -/* 39 */ { 14, s_1_39, -1, 3, 0} +{ 16, s_1_0, -1, 10, 0}, +{ 6, s_1_1, -1, 9, 0}, +{ 10, s_1_2, -1, 7, 0}, +{ 10, s_1_3, -1, 8, 0}, +{ 10, s_1_4, -1, 6, 0}, +{ 20, s_1_5, -1, 10, 0}, +{ 10, s_1_6, -1, 9, 0}, +{ 14, s_1_7, -1, 7, 0}, +{ 14, s_1_8, -1, 8, 0}, +{ 14, s_1_9, -1, 6, 0}, +{ 18, s_1_10, -1, 11, 0}, +{ 14, s_1_11, -1, 11, 0}, +{ 12, s_1_12, -1, 1, 0}, +{ 14, s_1_13, -1, 2, 0}, +{ 12, s_1_14, -1, 4, 0}, +{ 16, s_1_15, -1, 5, 0}, +{ 14, s_1_16, -1, 3, 0}, +{ 18, s_1_17, -1, 10, 0}, +{ 8, s_1_18, -1, 9, 0}, +{ 12, s_1_19, -1, 7, 0}, +{ 12, s_1_20, -1, 8, 0}, +{ 12, s_1_21, -1, 6, 0}, +{ 16, s_1_22, -1, 11, 0}, +{ 10, s_1_23, -1, 1, 0}, +{ 12, s_1_24, -1, 2, 0}, +{ 10, s_1_25, -1, 4, 0}, +{ 14, s_1_26, -1, 5, 0}, +{ 12, s_1_27, -1, 3, 0}, +{ 12, s_1_28, -1, 7, 0}, +{ 20, s_1_29, -1, 10, 0}, +{ 10, s_1_30, -1, 9, 0}, +{ 14, s_1_31, -1, 7, 0}, +{ 14, s_1_32, -1, 8, 0}, +{ 14, s_1_33, -1, 6, 0}, +{ 18, s_1_34, -1, 11, 0}, +{ 12, s_1_35, -1, 1, 0}, +{ 14, s_1_36, -1, 2, 0}, +{ 12, s_1_37, -1, 4, 0}, +{ 16, s_1_38, -1, 5, 0}, +{ 14, s_1_39, -1, 3, 0} }; static const symbol s_2_0[4] = { 0xCF, 0x80, 0xCE, 0xB1 }; @@ -248,15 +248,15 @@ static const symbol s_2_8[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB1 static const struct among a_2[9] = { -/* 0 */ { 4, s_2_0, -1, 1, 0}, -/* 1 */ { 12, s_2_1, 0, 1, 0}, -/* 2 */ { 6, s_2_2, 0, 1, 0}, -/* 3 */ { 12, s_2_3, 0, 1, 0}, -/* 4 */ { 12, s_2_4, 0, 1, 0}, -/* 5 */ { 8, s_2_5, 0, 1, 0}, -/* 6 */ { 8, s_2_6, -1, 1, 0}, -/* 7 */ { 8, s_2_7, -1, 1, 0}, -/* 8 */ { 14, s_2_8, 7, 1, 0} +{ 4, s_2_0, -1, 1, 0}, +{ 12, s_2_1, 0, 1, 0}, +{ 6, s_2_2, 0, 1, 0}, +{ 12, s_2_3, 0, 1, 0}, +{ 12, s_2_4, 0, 1, 0}, +{ 8, s_2_5, 0, 1, 0}, +{ 8, s_2_6, -1, 1, 0}, +{ 8, s_2_7, -1, 1, 0}, +{ 14, s_2_8, 7, 1, 0} }; static const symbol s_3_0[2] = { 0xCF, 0x80 }; @@ -284,28 +284,28 @@ static const symbol s_3_21[8] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x81, 0xCE, 0xBD static const struct among a_3[22] = { -/* 0 */ { 2, s_3_0, -1, 1, 0}, -/* 1 */ { 6, s_3_1, 0, 1, 0}, -/* 2 */ { 2, s_3_2, -1, 1, 0}, -/* 3 */ { 4, s_3_3, 2, 1, 0}, -/* 4 */ { 6, s_3_4, 3, 1, 0}, -/* 5 */ { 6, s_3_5, 2, 1, 0}, -/* 6 */ { 12, s_3_6, 2, 1, 0}, -/* 7 */ { 10, s_3_7, 2, 1, 0}, -/* 8 */ { 10, s_3_8, 2, 1, 0}, -/* 9 */ { 6, s_3_9, 2, 1, 0}, -/* 10 */ { 6, s_3_10, 2, 1, 0}, -/* 11 */ { 14, s_3_11, 2, 1, 0}, -/* 12 */ { 12, s_3_12, 2, 1, 0}, -/* 13 */ { 12, s_3_13, 2, 1, 0}, -/* 14 */ { 6, s_3_14, -1, 1, 0}, -/* 15 */ { 2, s_3_15, -1, 1, 0}, -/* 16 */ { 12, s_3_16, -1, 1, 0}, -/* 17 */ { 8, s_3_17, -1, 1, 0}, -/* 18 */ { 8, s_3_18, -1, 1, 0}, -/* 19 */ { 2, s_3_19, -1, 1, 0}, -/* 20 */ { 2, s_3_20, -1, 1, 0}, -/* 21 */ { 8, s_3_21, -1, 1, 0} +{ 2, s_3_0, -1, 1, 0}, +{ 6, s_3_1, 0, 1, 0}, +{ 2, s_3_2, -1, 1, 0}, +{ 4, s_3_3, 2, 1, 0}, +{ 6, s_3_4, 3, 1, 0}, +{ 6, s_3_5, 2, 1, 0}, +{ 12, s_3_6, 2, 1, 0}, +{ 10, s_3_7, 2, 1, 0}, +{ 10, s_3_8, 2, 1, 0}, +{ 6, s_3_9, 2, 1, 0}, +{ 6, s_3_10, 2, 1, 0}, +{ 14, s_3_11, 2, 1, 0}, +{ 12, s_3_12, 2, 1, 0}, +{ 12, s_3_13, 2, 1, 0}, +{ 6, s_3_14, -1, 1, 0}, +{ 2, s_3_15, -1, 1, 0}, +{ 12, s_3_16, -1, 1, 0}, +{ 8, s_3_17, -1, 1, 0}, +{ 8, s_3_18, -1, 1, 0}, +{ 2, s_3_19, -1, 1, 0}, +{ 2, s_3_20, -1, 1, 0}, +{ 8, s_3_21, -1, 1, 0} }; static const symbol s_4_0[8] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB5, 0xCF, 0x83 }; @@ -325,20 +325,20 @@ static const symbol s_4_13[8] = { 0xCE, 0xB9, 0xCE, 0xB6, 0xCE, 0xB1, 0xCE, 0xBD static const struct among a_4[14] = { -/* 0 */ { 8, s_4_0, -1, 1, 0}, -/* 1 */ { 10, s_4_1, -1, 1, 0}, -/* 2 */ { 6, s_4_2, -1, 1, 0}, -/* 3 */ { 6, s_4_3, -1, 1, 0}, -/* 4 */ { 10, s_4_4, -1, 1, 0}, -/* 5 */ { 10, s_4_5, -1, 1, 0}, -/* 6 */ { 6, s_4_6, -1, 1, 0}, -/* 7 */ { 12, s_4_7, -1, 1, 0}, -/* 8 */ { 10, s_4_8, -1, 1, 0}, -/* 9 */ { 12, s_4_9, -1, 1, 0}, -/* 10 */ { 10, s_4_10, -1, 1, 0}, -/* 11 */ { 8, s_4_11, -1, 1, 0}, -/* 12 */ { 10, s_4_12, -1, 1, 0}, -/* 13 */ { 8, s_4_13, -1, 1, 0} +{ 8, s_4_0, -1, 1, 0}, +{ 10, s_4_1, -1, 1, 0}, +{ 6, s_4_2, -1, 1, 0}, +{ 6, s_4_3, -1, 1, 0}, +{ 10, s_4_4, -1, 1, 0}, +{ 10, s_4_5, -1, 1, 0}, +{ 6, s_4_6, -1, 1, 0}, +{ 12, s_4_7, -1, 1, 0}, +{ 10, s_4_8, -1, 1, 0}, +{ 12, s_4_9, -1, 1, 0}, +{ 10, s_4_10, -1, 1, 0}, +{ 8, s_4_11, -1, 1, 0}, +{ 10, s_4_12, -1, 1, 0}, +{ 8, s_4_13, -1, 1, 0} }; static const symbol s_5_0[2] = { 0xCF, 0x83 }; @@ -352,14 +352,14 @@ static const symbol s_5_7[4] = { 0xCE, 0xB5, 0xCE, 0xBD }; static const struct among a_5[8] = { -/* 0 */ { 2, s_5_0, -1, 1, 0}, -/* 1 */ { 2, s_5_1, -1, 1, 0}, -/* 2 */ { 4, s_5_2, -1, 1, 0}, -/* 3 */ { 4, s_5_3, -1, 1, 0}, -/* 4 */ { 4, s_5_4, -1, 1, 0}, -/* 5 */ { 4, s_5_5, -1, 1, 0}, -/* 6 */ { 4, s_5_6, -1, 1, 0}, -/* 7 */ { 4, s_5_7, -1, 1, 0} +{ 2, s_5_0, -1, 1, 0}, +{ 2, s_5_1, -1, 1, 0}, +{ 4, s_5_2, -1, 1, 0}, +{ 4, s_5_3, -1, 1, 0}, +{ 4, s_5_4, -1, 1, 0}, +{ 4, s_5_5, -1, 1, 0}, +{ 4, s_5_6, -1, 1, 0}, +{ 4, s_5_7, -1, 1, 0} }; static const symbol s_6_0[12] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x83 }; @@ -372,13 +372,13 @@ static const symbol s_6_6[12] = { 0xCF, 0x89, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA static const struct among a_6[7] = { -/* 0 */ { 12, s_6_0, -1, 1, 0}, -/* 1 */ { 10, s_6_1, -1, 1, 0}, -/* 2 */ { 14, s_6_2, -1, 1, 0}, -/* 3 */ { 10, s_6_3, -1, 1, 0}, -/* 4 */ { 14, s_6_4, -1, 1, 0}, -/* 5 */ { 14, s_6_5, -1, 1, 0}, -/* 6 */ { 12, s_6_6, -1, 1, 0} +{ 12, s_6_0, -1, 1, 0}, +{ 10, s_6_1, -1, 1, 0}, +{ 14, s_6_2, -1, 1, 0}, +{ 10, s_6_3, -1, 1, 0}, +{ 14, s_6_4, -1, 1, 0}, +{ 14, s_6_5, -1, 1, 0}, +{ 12, s_6_6, -1, 1, 0} }; static const symbol s_7_0[12] = { 0xCE, 0xBE, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB1 }; @@ -403,25 +403,25 @@ static const symbol s_7_18[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB static const struct among a_7[19] = { -/* 0 */ { 12, s_7_0, -1, 1, 0}, -/* 1 */ { 6, s_7_1, -1, 1, 0}, -/* 2 */ { 12, s_7_2, -1, 1, 0}, -/* 3 */ { 12, s_7_3, -1, 1, 0}, -/* 4 */ { 8, s_7_4, -1, 1, 0}, -/* 5 */ { 14, s_7_5, -1, 1, 0}, -/* 6 */ { 12, s_7_6, -1, 1, 0}, -/* 7 */ { 4, s_7_7, -1, 1, 0}, -/* 8 */ { 6, s_7_8, 7, 1, 0}, -/* 9 */ { 12, s_7_9, 8, 1, 0}, -/* 10 */ { 6, s_7_10, -1, 1, 0}, -/* 11 */ { 6, s_7_11, -1, 1, 0}, -/* 12 */ { 12, s_7_12, 11, 1, 0}, -/* 13 */ { 8, s_7_13, 11, 1, 0}, -/* 14 */ { 12, s_7_14, 13, 1, 0}, -/* 15 */ { 12, s_7_15, 11, 1, 0}, -/* 16 */ { 8, s_7_16, -1, 1, 0}, -/* 17 */ { 8, s_7_17, -1, 1, 0}, -/* 18 */ { 14, s_7_18, 17, 1, 0} +{ 12, s_7_0, -1, 1, 0}, +{ 6, s_7_1, -1, 1, 0}, +{ 12, s_7_2, -1, 1, 0}, +{ 12, s_7_3, -1, 1, 0}, +{ 8, s_7_4, -1, 1, 0}, +{ 14, s_7_5, -1, 1, 0}, +{ 12, s_7_6, -1, 1, 0}, +{ 4, s_7_7, -1, 1, 0}, +{ 6, s_7_8, 7, 1, 0}, +{ 12, s_7_9, 8, 1, 0}, +{ 6, s_7_10, -1, 1, 0}, +{ 6, s_7_11, -1, 1, 0}, +{ 12, s_7_12, 11, 1, 0}, +{ 8, s_7_13, 11, 1, 0}, +{ 12, s_7_14, 13, 1, 0}, +{ 12, s_7_15, 11, 1, 0}, +{ 8, s_7_16, -1, 1, 0}, +{ 8, s_7_17, -1, 1, 0}, +{ 14, s_7_18, 17, 1, 0} }; static const symbol s_8_0[2] = { 0xCF, 0x80 }; @@ -440,19 +440,19 @@ static const symbol s_8_12[6] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF }; static const struct among a_8[13] = { -/* 0 */ { 2, s_8_0, -1, 1, 0}, -/* 1 */ { 6, s_8_1, -1, 1, 0}, -/* 2 */ { 16, s_8_2, -1, 1, 0}, -/* 3 */ { 4, s_8_3, -1, 1, 0}, -/* 4 */ { 18, s_8_4, 3, 1, 0}, -/* 5 */ { 4, s_8_5, -1, 1, 0}, -/* 6 */ { 6, s_8_6, -1, 1, 0}, -/* 7 */ { 4, s_8_7, -1, 1, 0}, -/* 8 */ { 2, s_8_8, -1, 1, 0}, -/* 9 */ { 12, s_8_9, 8, 1, 0}, -/* 10 */ { 6, s_8_10, 8, 1, 0}, -/* 11 */ { 4, s_8_11, -1, 1, 0}, -/* 12 */ { 6, s_8_12, -1, 1, 0} +{ 2, s_8_0, -1, 1, 0}, +{ 6, s_8_1, -1, 1, 0}, +{ 16, s_8_2, -1, 1, 0}, +{ 4, s_8_3, -1, 1, 0}, +{ 18, s_8_4, 3, 1, 0}, +{ 4, s_8_5, -1, 1, 0}, +{ 6, s_8_6, -1, 1, 0}, +{ 4, s_8_7, -1, 1, 0}, +{ 2, s_8_8, -1, 1, 0}, +{ 12, s_8_9, 8, 1, 0}, +{ 6, s_8_10, 8, 1, 0}, +{ 4, s_8_11, -1, 1, 0}, +{ 6, s_8_12, -1, 1, 0} }; static const symbol s_9_0[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x83 }; @@ -465,13 +465,13 @@ static const symbol s_9_6[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD static const struct among a_9[7] = { -/* 0 */ { 8, s_9_0, -1, 1, 0}, -/* 1 */ { 6, s_9_1, -1, 1, 0}, -/* 2 */ { 6, s_9_2, -1, 1, 0}, -/* 3 */ { 10, s_9_3, -1, 1, 0}, -/* 4 */ { 10, s_9_4, -1, 1, 0}, -/* 5 */ { 10, s_9_5, -1, 1, 0}, -/* 6 */ { 8, s_9_6, -1, 1, 0} +{ 8, s_9_0, -1, 1, 0}, +{ 6, s_9_1, -1, 1, 0}, +{ 6, s_9_2, -1, 1, 0}, +{ 10, s_9_3, -1, 1, 0}, +{ 10, s_9_4, -1, 1, 0}, +{ 10, s_9_5, -1, 1, 0}, +{ 8, s_9_6, -1, 1, 0} }; static const symbol s_10_0[12] = { 0xCE, 0xBE, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xB1 }; @@ -496,25 +496,25 @@ static const symbol s_10_18[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0x static const struct among a_10[19] = { -/* 0 */ { 12, s_10_0, -1, 1, 0}, -/* 1 */ { 6, s_10_1, -1, 1, 0}, -/* 2 */ { 12, s_10_2, -1, 1, 0}, -/* 3 */ { 12, s_10_3, -1, 1, 0}, -/* 4 */ { 8, s_10_4, -1, 1, 0}, -/* 5 */ { 14, s_10_5, -1, 1, 0}, -/* 6 */ { 12, s_10_6, -1, 1, 0}, -/* 7 */ { 4, s_10_7, -1, 1, 0}, -/* 8 */ { 6, s_10_8, 7, 1, 0}, -/* 9 */ { 12, s_10_9, 8, 1, 0}, -/* 10 */ { 6, s_10_10, -1, 1, 0}, -/* 11 */ { 6, s_10_11, -1, 1, 0}, -/* 12 */ { 12, s_10_12, 11, 1, 0}, -/* 13 */ { 8, s_10_13, 11, 1, 0}, -/* 14 */ { 12, s_10_14, 13, 1, 0}, -/* 15 */ { 12, s_10_15, 11, 1, 0}, -/* 16 */ { 8, s_10_16, -1, 1, 0}, -/* 17 */ { 8, s_10_17, -1, 1, 0}, -/* 18 */ { 14, s_10_18, 17, 1, 0} +{ 12, s_10_0, -1, 1, 0}, +{ 6, s_10_1, -1, 1, 0}, +{ 12, s_10_2, -1, 1, 0}, +{ 12, s_10_3, -1, 1, 0}, +{ 8, s_10_4, -1, 1, 0}, +{ 14, s_10_5, -1, 1, 0}, +{ 12, s_10_6, -1, 1, 0}, +{ 4, s_10_7, -1, 1, 0}, +{ 6, s_10_8, 7, 1, 0}, +{ 12, s_10_9, 8, 1, 0}, +{ 6, s_10_10, -1, 1, 0}, +{ 6, s_10_11, -1, 1, 0}, +{ 12, s_10_12, 11, 1, 0}, +{ 8, s_10_13, 11, 1, 0}, +{ 12, s_10_14, 13, 1, 0}, +{ 12, s_10_15, 11, 1, 0}, +{ 8, s_10_16, -1, 1, 0}, +{ 8, s_10_17, -1, 1, 0}, +{ 14, s_10_18, 17, 1, 0} }; static const symbol s_11_0[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xB5, 0xCE, 0xB9, 0xCF, 0x83 }; @@ -527,13 +527,13 @@ static const symbol s_11_6[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x8 static const struct among a_11[7] = { -/* 0 */ { 10, s_11_0, -1, 1, 0}, -/* 1 */ { 6, s_11_1, -1, 1, 0}, -/* 2 */ { 10, s_11_2, -1, 1, 0}, -/* 3 */ { 12, s_11_3, -1, 1, 0}, -/* 4 */ { 12, s_11_4, -1, 1, 0}, -/* 5 */ { 8, s_11_5, -1, 1, 0}, -/* 6 */ { 10, s_11_6, -1, 1, 0} +{ 10, s_11_0, -1, 1, 0}, +{ 6, s_11_1, -1, 1, 0}, +{ 10, s_11_2, -1, 1, 0}, +{ 12, s_11_3, -1, 1, 0}, +{ 12, s_11_4, -1, 1, 0}, +{ 8, s_11_5, -1, 1, 0}, +{ 10, s_11_6, -1, 1, 0} }; static const symbol s_12_0[4] = { 0xCF, 0x83, 0xCE, 0xB5 }; @@ -546,13 +546,13 @@ static const symbol s_12_6[14] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB static const struct among a_12[7] = { -/* 0 */ { 4, s_12_0, -1, 1, 0}, -/* 1 */ { 6, s_12_1, 0, 1, 0}, -/* 2 */ { 6, s_12_2, -1, 1, 0}, -/* 3 */ { 6, s_12_3, -1, 1, 0}, -/* 4 */ { 12, s_12_4, 3, 1, 0}, -/* 5 */ { 8, s_12_5, -1, 1, 0}, -/* 6 */ { 14, s_12_6, -1, 1, 0} +{ 4, s_12_0, -1, 1, 0}, +{ 6, s_12_1, 0, 1, 0}, +{ 6, s_12_2, -1, 1, 0}, +{ 6, s_12_3, -1, 1, 0}, +{ 12, s_12_4, 3, 1, 0}, +{ 8, s_12_5, -1, 1, 0}, +{ 14, s_12_6, -1, 1, 0} }; static const symbol s_13_0[2] = { 0xCF, 0x80 }; @@ -591,39 +591,39 @@ static const symbol s_13_32[6] = { 0xCE, 0xB1, 0xCF, 0x87, 0xCE, 0xBD }; static const struct among a_13[33] = { -/* 0 */ { 2, s_13_0, -1, 1, 0}, -/* 1 */ { 6, s_13_1, 0, 1, 0}, -/* 2 */ { 4, s_13_2, 0, 1, 0}, -/* 3 */ { 6, s_13_3, 0, 1, 0}, -/* 4 */ { 6, s_13_4, -1, 1, 0}, -/* 5 */ { 4, s_13_5, -1, 1, 0}, -/* 6 */ { 6, s_13_6, -1, 1, 0}, -/* 7 */ { 4, s_13_7, -1, 1, 0}, -/* 8 */ { 6, s_13_8, -1, 1, 0}, -/* 9 */ { 4, s_13_9, -1, 1, 0}, -/* 10 */ { 6, s_13_10, 9, 1, 0}, -/* 11 */ { 4, s_13_11, -1, 1, 0}, -/* 12 */ { 6, s_13_12, 11, 1, 0}, -/* 13 */ { 4, s_13_13, -1, 1, 0}, -/* 14 */ { 6, s_13_14, 13, 1, 0}, -/* 15 */ { 6, s_13_15, -1, 1, 0}, -/* 16 */ { 4, s_13_16, -1, 1, 0}, -/* 17 */ { 6, s_13_17, -1, 1, 0}, -/* 18 */ { 4, s_13_18, -1, 1, 0}, -/* 19 */ { 6, s_13_19, 18, 1, 0}, -/* 20 */ { 6, s_13_20, -1, 1, 0}, -/* 21 */ { 6, s_13_21, -1, 1, 0}, -/* 22 */ { 4, s_13_22, -1, 1, 0}, -/* 23 */ { 6, s_13_23, -1, 1, 0}, -/* 24 */ { 6, s_13_24, -1, 1, 0}, -/* 25 */ { 4, s_13_25, -1, 1, 0}, -/* 26 */ { 6, s_13_26, -1, 1, 0}, -/* 27 */ { 6, s_13_27, -1, 1, 0}, -/* 28 */ { 6, s_13_28, -1, 1, 0}, -/* 29 */ { 6, s_13_29, -1, 1, 0}, -/* 30 */ { 2, s_13_30, -1, 1, 0}, -/* 31 */ { 6, s_13_31, 30, 1, 0}, -/* 32 */ { 6, s_13_32, -1, 1, 0} +{ 2, s_13_0, -1, 1, 0}, +{ 6, s_13_1, 0, 1, 0}, +{ 4, s_13_2, 0, 1, 0}, +{ 6, s_13_3, 0, 1, 0}, +{ 6, s_13_4, -1, 1, 0}, +{ 4, s_13_5, -1, 1, 0}, +{ 6, s_13_6, -1, 1, 0}, +{ 4, s_13_7, -1, 1, 0}, +{ 6, s_13_8, -1, 1, 0}, +{ 4, s_13_9, -1, 1, 0}, +{ 6, s_13_10, 9, 1, 0}, +{ 4, s_13_11, -1, 1, 0}, +{ 6, s_13_12, 11, 1, 0}, +{ 4, s_13_13, -1, 1, 0}, +{ 6, s_13_14, 13, 1, 0}, +{ 6, s_13_15, -1, 1, 0}, +{ 4, s_13_16, -1, 1, 0}, +{ 6, s_13_17, -1, 1, 0}, +{ 4, s_13_18, -1, 1, 0}, +{ 6, s_13_19, 18, 1, 0}, +{ 6, s_13_20, -1, 1, 0}, +{ 6, s_13_21, -1, 1, 0}, +{ 4, s_13_22, -1, 1, 0}, +{ 6, s_13_23, -1, 1, 0}, +{ 6, s_13_24, -1, 1, 0}, +{ 4, s_13_25, -1, 1, 0}, +{ 6, s_13_26, -1, 1, 0}, +{ 6, s_13_27, -1, 1, 0}, +{ 6, s_13_28, -1, 1, 0}, +{ 6, s_13_29, -1, 1, 0}, +{ 2, s_13_30, -1, 1, 0}, +{ 6, s_13_31, 30, 1, 0}, +{ 6, s_13_32, -1, 1, 0} }; static const symbol s_14_0[12] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 }; @@ -640,17 +640,17 @@ static const symbol s_14_10[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB static const struct among a_14[11] = { -/* 0 */ { 12, s_14_0, -1, 1, 0}, -/* 1 */ { 10, s_14_1, -1, 1, 0}, -/* 2 */ { 10, s_14_2, -1, 1, 0}, -/* 3 */ { 10, s_14_3, -1, 1, 0}, -/* 4 */ { 10, s_14_4, -1, 1, 0}, -/* 5 */ { 8, s_14_5, -1, 1, 0}, -/* 6 */ { 8, s_14_6, -1, 1, 0}, -/* 7 */ { 8, s_14_7, -1, 1, 0}, -/* 8 */ { 10, s_14_8, -1, 1, 0}, -/* 9 */ { 10, s_14_9, -1, 1, 0}, -/* 10 */ { 8, s_14_10, -1, 1, 0} +{ 12, s_14_0, -1, 1, 0}, +{ 10, s_14_1, -1, 1, 0}, +{ 10, s_14_2, -1, 1, 0}, +{ 10, s_14_3, -1, 1, 0}, +{ 10, s_14_4, -1, 1, 0}, +{ 8, s_14_5, -1, 1, 0}, +{ 8, s_14_6, -1, 1, 0}, +{ 8, s_14_7, -1, 1, 0}, +{ 10, s_14_8, -1, 1, 0}, +{ 10, s_14_9, -1, 1, 0}, +{ 8, s_14_10, -1, 1, 0} }; static const symbol s_15_0[4] = { 0xCF, 0x83, 0xCE, 0xB5 }; @@ -661,11 +661,11 @@ static const symbol s_15_4[12] = { 0xCE, 0xB1, 0xCF, 0x80, 0xCE, 0xBF, 0xCE, 0xB static const struct among a_15[5] = { -/* 0 */ { 4, s_15_0, -1, 1, 0}, -/* 1 */ { 12, s_15_1, 0, 1, 0}, -/* 2 */ { 14, s_15_2, 0, 1, 0}, -/* 3 */ { 10, s_15_3, -1, 1, 0}, -/* 4 */ { 12, s_15_4, -1, 1, 0} +{ 4, s_15_0, -1, 1, 0}, +{ 12, s_15_1, 0, 1, 0}, +{ 14, s_15_2, 0, 1, 0}, +{ 10, s_15_3, -1, 1, 0}, +{ 12, s_15_4, -1, 1, 0} }; static const symbol s_16_0[8] = { 0xCE, 0xB4, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; @@ -673,8 +673,8 @@ static const symbol s_16_1[16] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB static const struct among a_16[2] = { -/* 0 */ { 8, s_16_0, -1, 1, 0}, -/* 1 */ { 16, s_16_1, 0, 1, 0} +{ 8, s_16_0, -1, 1, 0}, +{ 16, s_16_1, 0, 1, 0} }; static const symbol s_17_0[10] = { 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x80, 0xCE, 0xB9, 0xCE, 0xBA }; @@ -690,16 +690,16 @@ static const symbol s_17_9[16] = { 0xCE, 0xB2, 0xCF, 0x85, 0xCE, 0xB6, 0xCE, 0xB static const struct among a_17[10] = { -/* 0 */ { 10, s_17_0, -1, 7, 0}, -/* 1 */ { 14, s_17_1, -1, 6, 0}, -/* 2 */ { 14, s_17_2, -1, 3, 0}, -/* 3 */ { 16, s_17_3, 2, 1, 0}, -/* 4 */ { 16, s_17_4, -1, 5, 0}, -/* 5 */ { 12, s_17_5, -1, 2, 0}, -/* 6 */ { 10, s_17_6, -1, 4, 0}, -/* 7 */ { 14, s_17_7, -1, 10, 0}, -/* 8 */ { 20, s_17_8, -1, 8, 0}, -/* 9 */ { 16, s_17_9, -1, 9, 0} +{ 10, s_17_0, -1, 7, 0}, +{ 14, s_17_1, -1, 6, 0}, +{ 14, s_17_2, -1, 3, 0}, +{ 16, s_17_3, 2, 1, 0}, +{ 16, s_17_4, -1, 5, 0}, +{ 12, s_17_5, -1, 2, 0}, +{ 10, s_17_6, -1, 4, 0}, +{ 14, s_17_7, -1, 10, 0}, +{ 20, s_17_8, -1, 8, 0}, +{ 16, s_17_9, -1, 9, 0} }; static const symbol s_18_0[12] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 }; @@ -711,12 +711,12 @@ static const symbol s_18_5[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xBF static const struct among a_18[6] = { -/* 0 */ { 12, s_18_0, -1, 1, 0}, -/* 1 */ { 10, s_18_1, -1, 1, 0}, -/* 2 */ { 10, s_18_2, -1, 1, 0}, -/* 3 */ { 10, s_18_3, -1, 1, 0}, -/* 4 */ { 10, s_18_4, -1, 1, 0}, -/* 5 */ { 8, s_18_5, -1, 1, 0} +{ 12, s_18_0, -1, 1, 0}, +{ 10, s_18_1, -1, 1, 0}, +{ 10, s_18_2, -1, 1, 0}, +{ 10, s_18_3, -1, 1, 0}, +{ 10, s_18_4, -1, 1, 0}, +{ 8, s_18_5, -1, 1, 0} }; static const symbol s_19_0[2] = { 0xCF, 0x83 }; @@ -724,8 +724,8 @@ static const symbol s_19_1[2] = { 0xCF, 0x87 }; static const struct among a_19[2] = { -/* 0 */ { 2, s_19_0, -1, 1, 0}, -/* 1 */ { 2, s_19_1, -1, 1, 0} +{ 2, s_19_0, -1, 1, 0}, +{ 2, s_19_1, -1, 1, 0} }; static const symbol s_20_0[12] = { 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0xB1, 0xCE, 0xBA, 0xCE, 0xB9, 0xCE, 0xB1 }; @@ -735,10 +735,10 @@ static const symbol s_20_3[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4, 0xCE, 0xB static const struct among a_20[4] = { -/* 0 */ { 12, s_20_0, -1, 1, 0}, -/* 1 */ { 14, s_20_1, -1, 1, 0}, -/* 2 */ { 10, s_20_2, -1, 1, 0}, -/* 3 */ { 12, s_20_3, -1, 1, 0} +{ 12, s_20_0, -1, 1, 0}, +{ 14, s_20_1, -1, 1, 0}, +{ 10, s_20_2, -1, 1, 0}, +{ 12, s_20_3, -1, 1, 0} }; static const symbol s_21_0[12] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x80 }; @@ -777,39 +777,39 @@ static const symbol s_21_32[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xBD }; static const struct among a_21[33] = { -/* 0 */ { 12, s_21_0, -1, 1, 0}, -/* 1 */ { 2, s_21_1, -1, 1, 0}, -/* 2 */ { 4, s_21_2, 1, 1, 0}, -/* 3 */ { 8, s_21_3, 2, 1, 0}, -/* 4 */ { 8, s_21_4, 2, 1, 0}, -/* 5 */ { 6, s_21_5, 1, 1, 0}, -/* 6 */ { 8, s_21_6, 1, 1, 0}, -/* 7 */ { 6, s_21_7, 1, 1, 0}, -/* 8 */ { 2, s_21_8, -1, 1, 0}, -/* 9 */ { 12, s_21_9, 8, 1, 0}, -/* 10 */ { 10, s_21_10, -1, 1, 0}, -/* 11 */ { 4, s_21_11, -1, 1, 0}, -/* 12 */ { 2, s_21_12, -1, 1, 0}, -/* 13 */ { 4, s_21_13, 12, 1, 0}, -/* 14 */ { 10, s_21_14, 13, 1, 0}, -/* 15 */ { 2, s_21_15, -1, 1, 0}, -/* 16 */ { 8, s_21_16, -1, 1, 0}, -/* 17 */ { 8, s_21_17, -1, 1, 0}, -/* 18 */ { 18, s_21_18, 17, 1, 0}, -/* 19 */ { 4, s_21_19, -1, 1, 0}, -/* 20 */ { 2, s_21_20, -1, 1, 0}, -/* 21 */ { 4, s_21_21, 20, 1, 0}, -/* 22 */ { 10, s_21_22, 20, 1, 0}, -/* 23 */ { 6, s_21_23, 20, 1, 0}, -/* 24 */ { 4, s_21_24, -1, 1, 0}, -/* 25 */ { 6, s_21_25, -1, 1, 0}, -/* 26 */ { 8, s_21_26, -1, 1, 0}, -/* 27 */ { 6, s_21_27, -1, 1, 0}, -/* 28 */ { 8, s_21_28, -1, 1, 0}, -/* 29 */ { 8, s_21_29, -1, 1, 0}, -/* 30 */ { 8, s_21_30, -1, 1, 0}, -/* 31 */ { 8, s_21_31, -1, 1, 0}, -/* 32 */ { 6, s_21_32, -1, 1, 0} +{ 12, s_21_0, -1, 1, 0}, +{ 2, s_21_1, -1, 1, 0}, +{ 4, s_21_2, 1, 1, 0}, +{ 8, s_21_3, 2, 1, 0}, +{ 8, s_21_4, 2, 1, 0}, +{ 6, s_21_5, 1, 1, 0}, +{ 8, s_21_6, 1, 1, 0}, +{ 6, s_21_7, 1, 1, 0}, +{ 2, s_21_8, -1, 1, 0}, +{ 12, s_21_9, 8, 1, 0}, +{ 10, s_21_10, -1, 1, 0}, +{ 4, s_21_11, -1, 1, 0}, +{ 2, s_21_12, -1, 1, 0}, +{ 4, s_21_13, 12, 1, 0}, +{ 10, s_21_14, 13, 1, 0}, +{ 2, s_21_15, -1, 1, 0}, +{ 8, s_21_16, -1, 1, 0}, +{ 8, s_21_17, -1, 1, 0}, +{ 18, s_21_18, 17, 1, 0}, +{ 4, s_21_19, -1, 1, 0}, +{ 2, s_21_20, -1, 1, 0}, +{ 4, s_21_21, 20, 1, 0}, +{ 10, s_21_22, 20, 1, 0}, +{ 6, s_21_23, 20, 1, 0}, +{ 4, s_21_24, -1, 1, 0}, +{ 6, s_21_25, -1, 1, 0}, +{ 8, s_21_26, -1, 1, 0}, +{ 6, s_21_27, -1, 1, 0}, +{ 8, s_21_28, -1, 1, 0}, +{ 8, s_21_29, -1, 1, 0}, +{ 8, s_21_30, -1, 1, 0}, +{ 8, s_21_31, -1, 1, 0}, +{ 6, s_21_32, -1, 1, 0} }; static const symbol s_22_0[2] = { 0xCF, 0x80 }; @@ -830,21 +830,21 @@ static const symbol s_22_14[6] = { 0xCE, 0xBA, 0xCE, 0xBF, 0xCE, 0xBD }; static const struct among a_22[15] = { -/* 0 */ { 2, s_22_0, -1, 1, 0}, -/* 1 */ { 10, s_22_1, -1, 1, 0}, -/* 2 */ { 6, s_22_2, -1, 1, 0}, -/* 3 */ { 6, s_22_3, -1, 1, 0}, -/* 4 */ { 2, s_22_4, -1, 1, 0}, -/* 5 */ { 8, s_22_5, -1, 1, 0}, -/* 6 */ { 2, s_22_6, -1, 1, 0}, -/* 7 */ { 4, s_22_7, -1, 1, 0}, -/* 8 */ { 6, s_22_8, -1, 1, 0}, -/* 9 */ { 4, s_22_9, -1, 1, 0}, -/* 10 */ { 12, s_22_10, -1, 1, 0}, -/* 11 */ { 12, s_22_11, -1, 1, 0}, -/* 12 */ { 8, s_22_12, -1, 1, 0}, -/* 13 */ { 14, s_22_13, -1, 1, 0}, -/* 14 */ { 6, s_22_14, -1, 1, 0} +{ 2, s_22_0, -1, 1, 0}, +{ 10, s_22_1, -1, 1, 0}, +{ 6, s_22_2, -1, 1, 0}, +{ 6, s_22_3, -1, 1, 0}, +{ 2, s_22_4, -1, 1, 0}, +{ 8, s_22_5, -1, 1, 0}, +{ 2, s_22_6, -1, 1, 0}, +{ 4, s_22_7, -1, 1, 0}, +{ 6, s_22_8, -1, 1, 0}, +{ 4, s_22_9, -1, 1, 0}, +{ 12, s_22_10, -1, 1, 0}, +{ 12, s_22_11, -1, 1, 0}, +{ 8, s_22_12, -1, 1, 0}, +{ 14, s_22_13, -1, 1, 0}, +{ 6, s_22_14, -1, 1, 0} }; static const symbol s_23_0[10] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83, 0xCE, 0xB1, 0xCF, 0x83 }; @@ -858,14 +858,14 @@ static const symbol s_23_7[10] = { 0xCE, 0xB9, 0xCF, 0x84, 0xCF, 0x83, 0xCF, 0x8 static const struct among a_23[8] = { -/* 0 */ { 10, s_23_0, -1, 1, 0}, -/* 1 */ { 10, s_23_1, -1, 1, 0}, -/* 2 */ { 8, s_23_2, -1, 1, 0}, -/* 3 */ { 8, s_23_3, -1, 1, 0}, -/* 4 */ { 12, s_23_4, 3, 1, 0}, -/* 5 */ { 6, s_23_5, -1, 1, 0}, -/* 6 */ { 10, s_23_6, 5, 1, 0}, -/* 7 */ { 10, s_23_7, -1, 1, 0} +{ 10, s_23_0, -1, 1, 0}, +{ 10, s_23_1, -1, 1, 0}, +{ 8, s_23_2, -1, 1, 0}, +{ 8, s_23_3, -1, 1, 0}, +{ 12, s_23_4, 3, 1, 0}, +{ 6, s_23_5, -1, 1, 0}, +{ 10, s_23_6, 5, 1, 0}, +{ 10, s_23_7, -1, 1, 0} }; static const symbol s_24_0[4] = { 0xCE, 0xB9, 0xCF, 0x81 }; @@ -875,10 +875,10 @@ static const symbol s_24_3[6] = { 0xCE, 0xBF, 0xCE, 0xBB, 0xCE, 0xBF }; static const struct among a_24[4] = { -/* 0 */ { 4, s_24_0, -1, 1, 0}, -/* 1 */ { 6, s_24_1, -1, 1, 0}, -/* 2 */ { 8, s_24_2, -1, 1, 0}, -/* 3 */ { 6, s_24_3, -1, 1, 0} +{ 4, s_24_0, -1, 1, 0}, +{ 6, s_24_1, -1, 1, 0}, +{ 8, s_24_2, -1, 1, 0}, +{ 6, s_24_3, -1, 1, 0} }; static const symbol s_25_0[2] = { 0xCE, 0xB5 }; @@ -886,8 +886,8 @@ static const symbol s_25_1[10] = { 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xB9, 0xCF, 0x8 static const struct among a_25[2] = { -/* 0 */ { 2, s_25_0, -1, 1, 0}, -/* 1 */ { 10, s_25_1, -1, 1, 0} +{ 2, s_25_0, -1, 1, 0}, +{ 10, s_25_1, -1, 1, 0} }; static const symbol s_26_0[8] = { 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xB1 }; @@ -896,9 +896,9 @@ static const symbol s_26_2[8] = { 0xCE, 0xB9, 0xCE, 0xB4, 0xCE, 0xB9, 0xCE, 0xBF static const struct among a_26[3] = { -/* 0 */ { 8, s_26_0, -1, 1, 0}, -/* 1 */ { 10, s_26_1, -1, 1, 0}, -/* 2 */ { 8, s_26_2, -1, 1, 0} +{ 8, s_26_0, -1, 1, 0}, +{ 10, s_26_1, -1, 1, 0}, +{ 8, s_26_2, -1, 1, 0} }; static const symbol s_27_0[2] = { 0xCF, 0x81 }; @@ -911,13 +911,13 @@ static const symbol s_27_6[6] = { 0xCE, 0xBC, 0xCE, 0xB7, 0xCE, 0xBD }; static const struct among a_27[7] = { -/* 0 */ { 2, s_27_0, -1, 1, 0}, -/* 1 */ { 4, s_27_1, -1, 1, 0}, -/* 2 */ { 2, s_27_2, -1, 1, 0}, -/* 3 */ { 6, s_27_3, -1, 1, 0}, -/* 4 */ { 10, s_27_4, -1, 1, 0}, -/* 5 */ { 8, s_27_5, -1, 1, 0}, -/* 6 */ { 6, s_27_6, -1, 1, 0} +{ 2, s_27_0, -1, 1, 0}, +{ 4, s_27_1, -1, 1, 0}, +{ 2, s_27_2, -1, 1, 0}, +{ 6, s_27_3, -1, 1, 0}, +{ 10, s_27_4, -1, 1, 0}, +{ 8, s_27_5, -1, 1, 0}, +{ 6, s_27_6, -1, 1, 0} }; static const symbol s_28_0[10] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x83 }; @@ -927,10 +927,10 @@ static const symbol s_28_3[8] = { 0xCE, 0xB9, 0xCF, 0x83, 0xCE, 0xBA, 0xCE, 0xBF static const struct among a_28[4] = { -/* 0 */ { 10, s_28_0, -1, 1, 0}, -/* 1 */ { 10, s_28_1, -1, 1, 0}, -/* 2 */ { 8, s_28_2, -1, 1, 0}, -/* 3 */ { 8, s_28_3, -1, 1, 0} +{ 10, s_28_0, -1, 1, 0}, +{ 10, s_28_1, -1, 1, 0}, +{ 8, s_28_2, -1, 1, 0}, +{ 8, s_28_3, -1, 1, 0} }; static const symbol s_29_0[8] = { 0xCE, 0xB1, 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83 }; @@ -938,8 +938,8 @@ static const symbol s_29_1[8] = { 0xCE, 0xB1, 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xBD static const struct among a_29[2] = { -/* 0 */ { 8, s_29_0, -1, 1, 0}, -/* 1 */ { 8, s_29_1, -1, 1, 0} +{ 8, s_29_0, -1, 1, 0}, +{ 8, s_29_1, -1, 1, 0} }; static const symbol s_30_0[10] = { 0xCE, 0xBC, 0xCF, 0x80, 0xCE, 0xB1, 0xCE, 0xBC, 0xCF, 0x80 }; @@ -955,16 +955,16 @@ static const symbol s_30_9[6] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCE, 0xBD }; static const struct among a_30[10] = { -/* 0 */ { 10, s_30_0, -1, -1, 0}, -/* 1 */ { 6, s_30_1, -1, -1, 0}, -/* 2 */ { 10, s_30_2, -1, -1, 0}, -/* 3 */ { 10, s_30_3, -1, -1, 0}, -/* 4 */ { 10, s_30_4, -1, -1, 0}, -/* 5 */ { 10, s_30_5, -1, -1, 0}, -/* 6 */ { 6, s_30_6, -1, -1, 0}, -/* 7 */ { 4, s_30_7, -1, -1, 0}, -/* 8 */ { 6, s_30_8, -1, -1, 0}, -/* 9 */ { 6, s_30_9, -1, -1, 0} +{ 10, s_30_0, -1, -1, 0}, +{ 6, s_30_1, -1, -1, 0}, +{ 10, s_30_2, -1, -1, 0}, +{ 10, s_30_3, -1, -1, 0}, +{ 10, s_30_4, -1, -1, 0}, +{ 10, s_30_5, -1, -1, 0}, +{ 6, s_30_6, -1, -1, 0}, +{ 4, s_30_7, -1, -1, 0}, +{ 6, s_30_8, -1, -1, 0}, +{ 6, s_30_9, -1, -1, 0} }; static const symbol s_31_0[8] = { 0xCE, 0xB5, 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83 }; @@ -972,8 +972,8 @@ static const symbol s_31_1[8] = { 0xCE, 0xB5, 0xCE, 0xB4, 0xCF, 0x89, 0xCE, 0xBD static const struct among a_31[2] = { -/* 0 */ { 8, s_31_0, -1, 1, 0}, -/* 1 */ { 8, s_31_1, -1, 1, 0} +{ 8, s_31_0, -1, 1, 0}, +{ 8, s_31_1, -1, 1, 0} }; static const symbol s_32_0[10] = { 0xCE, 0xBA, 0xCF, 0x81, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x80 }; @@ -987,14 +987,14 @@ static const symbol s_32_7[6] = { 0xCE, 0xBC, 0xCE, 0xB9, 0xCE, 0xBB }; static const struct among a_32[8] = { -/* 0 */ { 10, s_32_0, -1, 1, 0}, -/* 1 */ { 4, s_32_1, -1, 1, 0}, -/* 2 */ { 6, s_32_2, -1, 1, 0}, -/* 3 */ { 6, s_32_3, -1, 1, 0}, -/* 4 */ { 4, s_32_4, -1, 1, 0}, -/* 5 */ { 6, s_32_5, -1, 1, 0}, -/* 6 */ { 4, s_32_6, -1, 1, 0}, -/* 7 */ { 6, s_32_7, -1, 1, 0} +{ 10, s_32_0, -1, 1, 0}, +{ 4, s_32_1, -1, 1, 0}, +{ 6, s_32_2, -1, 1, 0}, +{ 6, s_32_3, -1, 1, 0}, +{ 4, s_32_4, -1, 1, 0}, +{ 6, s_32_5, -1, 1, 0}, +{ 4, s_32_6, -1, 1, 0}, +{ 6, s_32_7, -1, 1, 0} }; static const symbol s_33_0[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x83 }; @@ -1002,8 +1002,8 @@ static const symbol s_33_1[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xB4, 0xCF, 0x8 static const struct among a_33[2] = { -/* 0 */ { 10, s_33_0, -1, 1, 0}, -/* 1 */ { 10, s_33_1, -1, 1, 0} +{ 10, s_33_0, -1, 1, 0}, +{ 10, s_33_1, -1, 1, 0} }; static const symbol s_34_0[4] = { 0xCF, 0x83, 0xCF, 0x80 }; @@ -1024,21 +1024,21 @@ static const symbol s_34_14[8] = { 0xCF, 0x80, 0xCE, 0xBB, 0xCE, 0xB5, 0xCE, 0xB static const struct among a_34[15] = { -/* 0 */ { 4, s_34_0, -1, 1, 0}, -/* 1 */ { 4, s_34_1, -1, 1, 0}, -/* 2 */ { 2, s_34_2, -1, 1, 0}, -/* 3 */ { 6, s_34_3, -1, 1, 0}, -/* 4 */ { 8, s_34_4, -1, 1, 0}, -/* 5 */ { 4, s_34_5, -1, 1, 0}, -/* 6 */ { 6, s_34_6, -1, 1, 0}, -/* 7 */ { 4, s_34_7, -1, 1, 0}, -/* 8 */ { 12, s_34_8, -1, 1, 0}, -/* 9 */ { 8, s_34_9, -1, 1, 0}, -/* 10 */ { 4, s_34_10, -1, 1, 0}, -/* 11 */ { 10, s_34_11, -1, 1, 0}, -/* 12 */ { 6, s_34_12, -1, 1, 0}, -/* 13 */ { 4, s_34_13, -1, 1, 0}, -/* 14 */ { 8, s_34_14, -1, 1, 0} +{ 4, s_34_0, -1, 1, 0}, +{ 4, s_34_1, -1, 1, 0}, +{ 2, s_34_2, -1, 1, 0}, +{ 6, s_34_3, -1, 1, 0}, +{ 8, s_34_4, -1, 1, 0}, +{ 4, s_34_5, -1, 1, 0}, +{ 6, s_34_6, -1, 1, 0}, +{ 4, s_34_7, -1, 1, 0}, +{ 12, s_34_8, -1, 1, 0}, +{ 8, s_34_9, -1, 1, 0}, +{ 4, s_34_10, -1, 1, 0}, +{ 10, s_34_11, -1, 1, 0}, +{ 6, s_34_12, -1, 1, 0}, +{ 4, s_34_13, -1, 1, 0}, +{ 8, s_34_14, -1, 1, 0} }; static const symbol s_35_0[6] = { 0xCE, 0xB5, 0xCF, 0x89, 0xCF, 0x83 }; @@ -1046,8 +1046,8 @@ static const symbol s_35_1[6] = { 0xCE, 0xB5, 0xCF, 0x89, 0xCE, 0xBD }; static const struct among a_35[2] = { -/* 0 */ { 6, s_35_0, -1, 1, 0}, -/* 1 */ { 6, s_35_1, -1, 1, 0} +{ 6, s_35_0, -1, 1, 0}, +{ 6, s_35_1, -1, 1, 0} }; static const symbol s_36_0[2] = { 0xCF, 0x80 }; @@ -1061,14 +1061,14 @@ static const symbol s_36_7[2] = { 0xCE, 0xBD }; static const struct among a_36[8] = { -/* 0 */ { 2, s_36_0, -1, 1, 0}, -/* 1 */ { 6, s_36_1, -1, 1, 0}, -/* 2 */ { 2, s_36_2, -1, 1, 0}, -/* 3 */ { 4, s_36_3, 2, 1, 0}, -/* 4 */ { 2, s_36_4, -1, 1, 0}, -/* 5 */ { 6, s_36_5, -1, 1, 0}, -/* 6 */ { 4, s_36_6, -1, 1, 0}, -/* 7 */ { 2, s_36_7, -1, 1, 0} +{ 2, s_36_0, -1, 1, 0}, +{ 6, s_36_1, -1, 1, 0}, +{ 2, s_36_2, -1, 1, 0}, +{ 4, s_36_3, 2, 1, 0}, +{ 2, s_36_4, -1, 1, 0}, +{ 6, s_36_5, -1, 1, 0}, +{ 4, s_36_6, -1, 1, 0}, +{ 2, s_36_7, -1, 1, 0} }; static const symbol s_37_0[6] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCF, 0x85 }; @@ -1077,9 +1077,9 @@ static const symbol s_37_2[6] = { 0xCE, 0xB9, 0xCF, 0x89, 0xCE, 0xBD }; static const struct among a_37[3] = { -/* 0 */ { 6, s_37_0, -1, 1, 0}, -/* 1 */ { 4, s_37_1, -1, 1, 0}, -/* 2 */ { 6, s_37_2, -1, 1, 0} +{ 6, s_37_0, -1, 1, 0}, +{ 4, s_37_1, -1, 1, 0}, +{ 6, s_37_2, -1, 1, 0} }; static const symbol s_38_0[8] = { 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBF, 0xCF, 0x85 }; @@ -1089,10 +1089,10 @@ static const symbol s_38_3[6] = { 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBF }; static const struct among a_38[4] = { -/* 0 */ { 8, s_38_0, -1, 1, 0}, -/* 1 */ { 6, s_38_1, -1, 1, 0}, -/* 2 */ { 8, s_38_2, -1, 1, 0}, -/* 3 */ { 6, s_38_3, -1, 1, 0} +{ 8, s_38_0, -1, 1, 0}, +{ 6, s_38_1, -1, 1, 0}, +{ 8, s_38_2, -1, 1, 0}, +{ 6, s_38_3, -1, 1, 0} }; static const symbol s_39_0[8] = { 0xCE, 0xBA, 0xCE, 0xB1, 0xCE, 0xBB, 0xCF, 0x80 }; @@ -1134,42 +1134,42 @@ static const symbol s_39_35[10] = { 0xCF, 0x86, 0xCE, 0xB9, 0xCE, 0xBB, 0xCE, 0x static const struct among a_39[36] = { -/* 0 */ { 8, s_39_0, -1, 1, 0}, -/* 1 */ { 6, s_39_1, -1, 1, 0}, -/* 2 */ { 12, s_39_2, -1, 1, 0}, -/* 3 */ { 8, s_39_3, -1, 1, 0}, -/* 4 */ { 8, s_39_4, -1, 1, 0}, -/* 5 */ { 6, s_39_5, -1, 1, 0}, -/* 6 */ { 6, s_39_6, -1, 1, 0}, -/* 7 */ { 8, s_39_7, -1, 1, 0}, -/* 8 */ { 8, s_39_8, -1, 1, 0}, -/* 9 */ { 14, s_39_9, -1, 1, 0}, -/* 10 */ { 6, s_39_10, -1, 1, 0}, -/* 11 */ { 12, s_39_11, -1, 1, 0}, -/* 12 */ { 8, s_39_12, -1, 1, 0}, -/* 13 */ { 4, s_39_13, -1, 1, 0}, -/* 14 */ { 10, s_39_14, 13, 1, 0}, -/* 15 */ { 10, s_39_15, 13, 1, 0}, -/* 16 */ { 10, s_39_16, -1, 1, 0}, -/* 17 */ { 6, s_39_17, -1, 1, 0}, -/* 18 */ { 8, s_39_18, -1, 1, 0}, -/* 19 */ { 12, s_39_19, -1, 1, 0}, -/* 20 */ { 10, s_39_20, -1, 1, 0}, -/* 21 */ { 4, s_39_21, -1, 1, 0}, -/* 22 */ { 8, s_39_22, 21, 1, 0}, -/* 23 */ { 6, s_39_23, -1, 1, 0}, -/* 24 */ { 8, s_39_24, -1, 1, 0}, -/* 25 */ { 4, s_39_25, -1, 1, 0}, -/* 26 */ { 14, s_39_26, 25, 1, 0}, -/* 27 */ { 14, s_39_27, -1, 1, 0}, -/* 28 */ { 8, s_39_28, -1, 1, 0}, -/* 29 */ { 8, s_39_29, -1, 1, 0}, -/* 30 */ { 8, s_39_30, -1, 1, 0}, -/* 31 */ { 8, s_39_31, -1, 1, 0}, -/* 32 */ { 8, s_39_32, -1, 1, 0}, -/* 33 */ { 12, s_39_33, -1, 1, 0}, -/* 34 */ { 14, s_39_34, -1, 1, 0}, -/* 35 */ { 10, s_39_35, -1, 1, 0} +{ 8, s_39_0, -1, 1, 0}, +{ 6, s_39_1, -1, 1, 0}, +{ 12, s_39_2, -1, 1, 0}, +{ 8, s_39_3, -1, 1, 0}, +{ 8, s_39_4, -1, 1, 0}, +{ 6, s_39_5, -1, 1, 0}, +{ 6, s_39_6, -1, 1, 0}, +{ 8, s_39_7, -1, 1, 0}, +{ 8, s_39_8, -1, 1, 0}, +{ 14, s_39_9, -1, 1, 0}, +{ 6, s_39_10, -1, 1, 0}, +{ 12, s_39_11, -1, 1, 0}, +{ 8, s_39_12, -1, 1, 0}, +{ 4, s_39_13, -1, 1, 0}, +{ 10, s_39_14, 13, 1, 0}, +{ 10, s_39_15, 13, 1, 0}, +{ 10, s_39_16, -1, 1, 0}, +{ 6, s_39_17, -1, 1, 0}, +{ 8, s_39_18, -1, 1, 0}, +{ 12, s_39_19, -1, 1, 0}, +{ 10, s_39_20, -1, 1, 0}, +{ 4, s_39_21, -1, 1, 0}, +{ 8, s_39_22, 21, 1, 0}, +{ 6, s_39_23, -1, 1, 0}, +{ 8, s_39_24, -1, 1, 0}, +{ 4, s_39_25, -1, 1, 0}, +{ 14, s_39_26, 25, 1, 0}, +{ 14, s_39_27, -1, 1, 0}, +{ 8, s_39_28, -1, 1, 0}, +{ 8, s_39_29, -1, 1, 0}, +{ 8, s_39_30, -1, 1, 0}, +{ 8, s_39_31, -1, 1, 0}, +{ 8, s_39_32, -1, 1, 0}, +{ 12, s_39_33, -1, 1, 0}, +{ 14, s_39_34, -1, 1, 0}, +{ 10, s_39_35, -1, 1, 0} }; static const symbol s_40_0[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5 }; @@ -1180,11 +1180,11 @@ static const symbol s_40_4[14] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xB static const struct among a_40[5] = { -/* 0 */ { 12, s_40_0, -1, 1, 0}, -/* 1 */ { 10, s_40_1, -1, 1, 0}, -/* 2 */ { 10, s_40_2, -1, 1, 0}, -/* 3 */ { 10, s_40_3, -1, 1, 0}, -/* 4 */ { 14, s_40_4, 3, 1, 0} +{ 12, s_40_0, -1, 1, 0}, +{ 10, s_40_1, -1, 1, 0}, +{ 10, s_40_2, -1, 1, 0}, +{ 10, s_40_3, -1, 1, 0}, +{ 14, s_40_4, 3, 1, 0} }; static const symbol s_41_0[8] = { 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x80 }; @@ -1202,18 +1202,18 @@ static const symbol s_41_11[6] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBB }; static const struct among a_41[12] = { -/* 0 */ { 8, s_41_0, -1, 1, 0}, -/* 1 */ { 8, s_41_1, -1, 1, 0}, -/* 2 */ { 10, s_41_2, -1, 1, 0}, -/* 3 */ { 6, s_41_3, -1, 1, 0}, -/* 4 */ { 2, s_41_4, -1, 1, 0}, -/* 5 */ { 6, s_41_5, 4, 1, 0}, -/* 6 */ { 8, s_41_6, -1, 1, 0}, -/* 7 */ { 6, s_41_7, -1, 1, 0}, -/* 8 */ { 6, s_41_8, -1, 1, 0}, -/* 9 */ { 8, s_41_9, -1, 1, 0}, -/* 10 */ { 8, s_41_10, -1, 1, 0}, -/* 11 */ { 6, s_41_11, -1, 1, 0} +{ 8, s_41_0, -1, 1, 0}, +{ 8, s_41_1, -1, 1, 0}, +{ 10, s_41_2, -1, 1, 0}, +{ 6, s_41_3, -1, 1, 0}, +{ 2, s_41_4, -1, 1, 0}, +{ 6, s_41_5, 4, 1, 0}, +{ 8, s_41_6, -1, 1, 0}, +{ 6, s_41_7, -1, 1, 0}, +{ 6, s_41_8, -1, 1, 0}, +{ 8, s_41_9, -1, 1, 0}, +{ 8, s_41_10, -1, 1, 0}, +{ 6, s_41_11, -1, 1, 0} }; static const symbol s_42_0[4] = { 0xCF, 0x84, 0xCF, 0x81 }; @@ -1221,8 +1221,8 @@ static const symbol s_42_1[4] = { 0xCF, 0x84, 0xCF, 0x83 }; static const struct among a_42[2] = { -/* 0 */ { 4, s_42_0, -1, 1, 0}, -/* 1 */ { 4, s_42_1, -1, 1, 0} +{ 4, s_42_0, -1, 1, 0}, +{ 4, s_42_1, -1, 1, 0} }; static const symbol s_43_0[12] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB1, 0xCE, 0xBD, 0xCE, 0xB5 }; @@ -1239,17 +1239,17 @@ static const symbol s_43_10[14] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0x static const struct among a_43[11] = { -/* 0 */ { 12, s_43_0, -1, 1, 0}, -/* 1 */ { 10, s_43_1, -1, 1, 0}, -/* 2 */ { 14, s_43_2, -1, 1, 0}, -/* 3 */ { 16, s_43_3, 2, 1, 0}, -/* 4 */ { 12, s_43_4, -1, 1, 0}, -/* 5 */ { 14, s_43_5, 4, 1, 0}, -/* 6 */ { 10, s_43_6, -1, 1, 0}, -/* 7 */ { 12, s_43_7, 6, 1, 0}, -/* 8 */ { 10, s_43_8, -1, 1, 0}, -/* 9 */ { 10, s_43_9, -1, 1, 0}, -/* 10 */ { 14, s_43_10, 9, 1, 0} +{ 12, s_43_0, -1, 1, 0}, +{ 10, s_43_1, -1, 1, 0}, +{ 14, s_43_2, -1, 1, 0}, +{ 16, s_43_3, 2, 1, 0}, +{ 12, s_43_4, -1, 1, 0}, +{ 14, s_43_5, 4, 1, 0}, +{ 10, s_43_6, -1, 1, 0}, +{ 12, s_43_7, 6, 1, 0}, +{ 10, s_43_8, -1, 1, 0}, +{ 10, s_43_9, -1, 1, 0}, +{ 14, s_43_10, 9, 1, 0} }; static const symbol s_44_0[2] = { 0xCF, 0x80 }; @@ -1350,108 +1350,108 @@ static const symbol s_44_94[16] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x static const struct among a_44[95] = { -/* 0 */ { 2, s_44_0, -1, 1, 0}, -/* 1 */ { 4, s_44_1, 0, 1, 0}, -/* 2 */ { 14, s_44_2, 0, 1, 0}, -/* 3 */ { 8, s_44_3, 0, 1, 0}, -/* 4 */ { 18, s_44_4, 0, 1, 0}, -/* 5 */ { 8, s_44_5, 0, 1, 0}, -/* 6 */ { 6, s_44_6, 0, 1, 0}, -/* 7 */ { 12, s_44_7, 6, 1, 0}, -/* 8 */ { 12, s_44_8, -1, 1, 0}, -/* 9 */ { 6, s_44_9, -1, 1, 0}, -/* 10 */ { 4, s_44_10, -1, 1, 0}, -/* 11 */ { 10, s_44_11, 10, 1, 0}, -/* 12 */ { 6, s_44_12, 10, 1, 0}, -/* 13 */ { 12, s_44_13, -1, 1, 0}, -/* 14 */ { 12, s_44_14, -1, 1, 0}, -/* 15 */ { 2, s_44_15, -1, 1, 0}, -/* 16 */ { 16, s_44_16, 15, 1, 0}, -/* 17 */ { 6, s_44_17, 15, 1, 0}, -/* 18 */ { 6, s_44_18, 15, 1, 0}, -/* 19 */ { 10, s_44_19, 15, 1, 0}, -/* 20 */ { 8, s_44_20, -1, 1, 0}, -/* 21 */ { 8, s_44_21, -1, 1, 0}, -/* 22 */ { 8, s_44_22, -1, 1, 0}, -/* 23 */ { 14, s_44_23, -1, 1, 0}, -/* 24 */ { 6, s_44_24, -1, 1, 0}, -/* 25 */ { 12, s_44_25, -1, 1, 0}, -/* 26 */ { 10, s_44_26, -1, 1, 0}, -/* 27 */ { 8, s_44_27, -1, 1, 0}, -/* 28 */ { 10, s_44_28, -1, 1, 0}, -/* 29 */ { 2, s_44_29, -1, 1, 0}, -/* 30 */ { 14, s_44_30, 29, 1, 0}, -/* 31 */ { 14, s_44_31, 29, 1, 0}, -/* 32 */ { 6, s_44_32, 29, 1, 0}, -/* 33 */ { 8, s_44_33, 29, 1, 0}, -/* 34 */ { 8, s_44_34, 29, 1, 0}, -/* 35 */ { 16, s_44_35, 34, 1, 0}, -/* 36 */ { 10, s_44_36, 29, 1, 0}, -/* 37 */ { 12, s_44_37, 36, 1, 0}, -/* 38 */ { 2, s_44_38, -1, 1, 0}, -/* 39 */ { 14, s_44_39, 38, 1, 0}, -/* 40 */ { 8, s_44_40, 38, 1, 0}, -/* 41 */ { 12, s_44_41, 38, 1, 0}, -/* 42 */ { 22, s_44_42, 41, 1, 0}, -/* 43 */ { 22, s_44_43, 41, 1, 0}, -/* 44 */ { 22, s_44_44, 41, 1, 0}, -/* 45 */ { 6, s_44_45, 38, 1, 0}, -/* 46 */ { 6, s_44_46, -1, 1, 0}, -/* 47 */ { 8, s_44_47, 46, 1, 0}, -/* 48 */ { 14, s_44_48, 46, 1, 0}, -/* 49 */ { 6, s_44_49, -1, 1, 0}, -/* 50 */ { 8, s_44_50, 49, 1, 0}, -/* 51 */ { 16, s_44_51, 50, 1, 0}, -/* 52 */ { 2, s_44_52, -1, 1, 0}, -/* 53 */ { 10, s_44_53, 52, 1, 0}, -/* 54 */ { 10, s_44_54, 52, 1, 0}, -/* 55 */ { 4, s_44_55, 52, 1, 0}, -/* 56 */ { 8, s_44_56, 55, 1, 0}, -/* 57 */ { 8, s_44_57, 55, 1, 0}, -/* 58 */ { 10, s_44_58, 52, 1, 0}, -/* 59 */ { 12, s_44_59, 58, 1, 0}, -/* 60 */ { 10, s_44_60, 52, 1, 0}, -/* 61 */ { 8, s_44_61, 52, 1, 0}, -/* 62 */ { 8, s_44_62, 52, 1, 0}, -/* 63 */ { 6, s_44_63, 52, 1, 0}, -/* 64 */ { 14, s_44_64, -1, 1, 0}, -/* 65 */ { 2, s_44_65, -1, 1, 0}, -/* 66 */ { 12, s_44_66, 65, 1, 0}, -/* 67 */ { 6, s_44_67, 65, 1, 0}, -/* 68 */ { 8, s_44_68, 67, 1, 0}, -/* 69 */ { 8, s_44_69, -1, 1, 0}, -/* 70 */ { 12, s_44_70, -1, 1, 0}, -/* 71 */ { 6, s_44_71, -1, 1, 0}, -/* 72 */ { 10, s_44_72, -1, 1, 0}, -/* 73 */ { 4, s_44_73, -1, 1, 0}, -/* 74 */ { 8, s_44_74, 73, 1, 0}, -/* 75 */ { 10, s_44_75, -1, 1, 0}, -/* 76 */ { 4, s_44_76, -1, 1, 0}, -/* 77 */ { 8, s_44_77, 76, 1, 0}, -/* 78 */ { 12, s_44_78, 76, 1, 0}, -/* 79 */ { 10, s_44_79, 76, 1, 0}, -/* 80 */ { 6, s_44_80, -1, 1, 0}, -/* 81 */ { 6, s_44_81, -1, 1, 0}, -/* 82 */ { 14, s_44_82, 81, 1, 0}, -/* 83 */ { 14, s_44_83, 81, 1, 0}, -/* 84 */ { 12, s_44_84, 81, 1, 0}, -/* 85 */ { 12, s_44_85, -1, 1, 0}, -/* 86 */ { 6, s_44_86, -1, 1, 0}, -/* 87 */ { 12, s_44_87, -1, 1, 0}, -/* 88 */ { 2, s_44_88, -1, 1, 0}, -/* 89 */ { 14, s_44_89, 88, 1, 0}, -/* 90 */ { 10, s_44_90, 88, 1, 0}, -/* 91 */ { 16, s_44_91, 88, 1, 0}, -/* 92 */ { 16, s_44_92, 88, 1, 0}, -/* 93 */ { 2, s_44_93, -1, 1, 0}, -/* 94 */ { 16, s_44_94, 93, 1, 0} +{ 2, s_44_0, -1, 1, 0}, +{ 4, s_44_1, 0, 1, 0}, +{ 14, s_44_2, 0, 1, 0}, +{ 8, s_44_3, 0, 1, 0}, +{ 18, s_44_4, 0, 1, 0}, +{ 8, s_44_5, 0, 1, 0}, +{ 6, s_44_6, 0, 1, 0}, +{ 12, s_44_7, 6, 1, 0}, +{ 12, s_44_8, -1, 1, 0}, +{ 6, s_44_9, -1, 1, 0}, +{ 4, s_44_10, -1, 1, 0}, +{ 10, s_44_11, 10, 1, 0}, +{ 6, s_44_12, 10, 1, 0}, +{ 12, s_44_13, -1, 1, 0}, +{ 12, s_44_14, -1, 1, 0}, +{ 2, s_44_15, -1, 1, 0}, +{ 16, s_44_16, 15, 1, 0}, +{ 6, s_44_17, 15, 1, 0}, +{ 6, s_44_18, 15, 1, 0}, +{ 10, s_44_19, 15, 1, 0}, +{ 8, s_44_20, -1, 1, 0}, +{ 8, s_44_21, -1, 1, 0}, +{ 8, s_44_22, -1, 1, 0}, +{ 14, s_44_23, -1, 1, 0}, +{ 6, s_44_24, -1, 1, 0}, +{ 12, s_44_25, -1, 1, 0}, +{ 10, s_44_26, -1, 1, 0}, +{ 8, s_44_27, -1, 1, 0}, +{ 10, s_44_28, -1, 1, 0}, +{ 2, s_44_29, -1, 1, 0}, +{ 14, s_44_30, 29, 1, 0}, +{ 14, s_44_31, 29, 1, 0}, +{ 6, s_44_32, 29, 1, 0}, +{ 8, s_44_33, 29, 1, 0}, +{ 8, s_44_34, 29, 1, 0}, +{ 16, s_44_35, 34, 1, 0}, +{ 10, s_44_36, 29, 1, 0}, +{ 12, s_44_37, 36, 1, 0}, +{ 2, s_44_38, -1, 1, 0}, +{ 14, s_44_39, 38, 1, 0}, +{ 8, s_44_40, 38, 1, 0}, +{ 12, s_44_41, 38, 1, 0}, +{ 22, s_44_42, 41, 1, 0}, +{ 22, s_44_43, 41, 1, 0}, +{ 22, s_44_44, 41, 1, 0}, +{ 6, s_44_45, 38, 1, 0}, +{ 6, s_44_46, -1, 1, 0}, +{ 8, s_44_47, 46, 1, 0}, +{ 14, s_44_48, 46, 1, 0}, +{ 6, s_44_49, -1, 1, 0}, +{ 8, s_44_50, 49, 1, 0}, +{ 16, s_44_51, 50, 1, 0}, +{ 2, s_44_52, -1, 1, 0}, +{ 10, s_44_53, 52, 1, 0}, +{ 10, s_44_54, 52, 1, 0}, +{ 4, s_44_55, 52, 1, 0}, +{ 8, s_44_56, 55, 1, 0}, +{ 8, s_44_57, 55, 1, 0}, +{ 10, s_44_58, 52, 1, 0}, +{ 12, s_44_59, 58, 1, 0}, +{ 10, s_44_60, 52, 1, 0}, +{ 8, s_44_61, 52, 1, 0}, +{ 8, s_44_62, 52, 1, 0}, +{ 6, s_44_63, 52, 1, 0}, +{ 14, s_44_64, -1, 1, 0}, +{ 2, s_44_65, -1, 1, 0}, +{ 12, s_44_66, 65, 1, 0}, +{ 6, s_44_67, 65, 1, 0}, +{ 8, s_44_68, 67, 1, 0}, +{ 8, s_44_69, -1, 1, 0}, +{ 12, s_44_70, -1, 1, 0}, +{ 6, s_44_71, -1, 1, 0}, +{ 10, s_44_72, -1, 1, 0}, +{ 4, s_44_73, -1, 1, 0}, +{ 8, s_44_74, 73, 1, 0}, +{ 10, s_44_75, -1, 1, 0}, +{ 4, s_44_76, -1, 1, 0}, +{ 8, s_44_77, 76, 1, 0}, +{ 12, s_44_78, 76, 1, 0}, +{ 10, s_44_79, 76, 1, 0}, +{ 6, s_44_80, -1, 1, 0}, +{ 6, s_44_81, -1, 1, 0}, +{ 14, s_44_82, 81, 1, 0}, +{ 14, s_44_83, 81, 1, 0}, +{ 12, s_44_84, 81, 1, 0}, +{ 12, s_44_85, -1, 1, 0}, +{ 6, s_44_86, -1, 1, 0}, +{ 12, s_44_87, -1, 1, 0}, +{ 2, s_44_88, -1, 1, 0}, +{ 14, s_44_89, 88, 1, 0}, +{ 10, s_44_90, 88, 1, 0}, +{ 16, s_44_91, 88, 1, 0}, +{ 16, s_44_92, 88, 1, 0}, +{ 2, s_44_93, -1, 1, 0}, +{ 16, s_44_94, 93, 1, 0} }; static const symbol s_45_0[10] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x84, 0xCE, 0xB5 }; static const struct among a_45[1] = { -/* 0 */ { 10, s_45_0, -1, 1, 0} +{ 10, s_45_0, -1, 1, 0} }; static const symbol s_46_0[6] = { 0xCF, 0x80, 0xCF, 0x85, 0xCF, 0x81 }; @@ -1488,37 +1488,37 @@ static const symbol s_46_30[6] = { 0xCF, 0x81, 0xCE, 0xBF, 0xCE, 0xBD }; static const struct among a_46[31] = { -/* 0 */ { 6, s_46_0, -1, 1, 0}, -/* 1 */ { 6, s_46_1, -1, 1, 0}, -/* 2 */ { 6, s_46_2, -1, 1, 0}, -/* 3 */ { 6, s_46_3, -1, 1, 0}, -/* 4 */ { 4, s_46_4, -1, 1, 0}, -/* 5 */ { 6, s_46_5, -1, 1, 0}, -/* 6 */ { 6, s_46_6, -1, 1, 0}, -/* 7 */ { 6, s_46_7, -1, 1, 0}, -/* 8 */ { 4, s_46_8, -1, 1, 0}, -/* 9 */ { 8, s_46_9, -1, 1, 0}, -/* 10 */ { 6, s_46_10, -1, 1, 0}, -/* 11 */ { 4, s_46_11, -1, 1, 0}, -/* 12 */ { 10, s_46_12, -1, 1, 0}, -/* 13 */ { 4, s_46_13, -1, 1, 0}, -/* 14 */ { 6, s_46_14, -1, 1, 0}, -/* 15 */ { 6, s_46_15, -1, 1, 0}, -/* 16 */ { 6, s_46_16, -1, 1, 0}, -/* 17 */ { 8, s_46_17, -1, 1, 0}, -/* 18 */ { 6, s_46_18, -1, 1, 0}, -/* 19 */ { 6, s_46_19, -1, 1, 0}, -/* 20 */ { 6, s_46_20, -1, 1, 0}, -/* 21 */ { 8, s_46_21, -1, 1, 0}, -/* 22 */ { 6, s_46_22, -1, 1, 0}, -/* 23 */ { 6, s_46_23, -1, 1, 0}, -/* 24 */ { 6, s_46_24, -1, 1, 0}, -/* 25 */ { 8, s_46_25, -1, 1, 0}, -/* 26 */ { 6, s_46_26, -1, 1, 0}, -/* 27 */ { 6, s_46_27, -1, 1, 0}, -/* 28 */ { 6, s_46_28, -1, 1, 0}, -/* 29 */ { 6, s_46_29, -1, 1, 0}, -/* 30 */ { 6, s_46_30, -1, 1, 0} +{ 6, s_46_0, -1, 1, 0}, +{ 6, s_46_1, -1, 1, 0}, +{ 6, s_46_2, -1, 1, 0}, +{ 6, s_46_3, -1, 1, 0}, +{ 4, s_46_4, -1, 1, 0}, +{ 6, s_46_5, -1, 1, 0}, +{ 6, s_46_6, -1, 1, 0}, +{ 6, s_46_7, -1, 1, 0}, +{ 4, s_46_8, -1, 1, 0}, +{ 8, s_46_9, -1, 1, 0}, +{ 6, s_46_10, -1, 1, 0}, +{ 4, s_46_11, -1, 1, 0}, +{ 10, s_46_12, -1, 1, 0}, +{ 4, s_46_13, -1, 1, 0}, +{ 6, s_46_14, -1, 1, 0}, +{ 6, s_46_15, -1, 1, 0}, +{ 6, s_46_16, -1, 1, 0}, +{ 8, s_46_17, -1, 1, 0}, +{ 6, s_46_18, -1, 1, 0}, +{ 6, s_46_19, -1, 1, 0}, +{ 6, s_46_20, -1, 1, 0}, +{ 8, s_46_21, -1, 1, 0}, +{ 6, s_46_22, -1, 1, 0}, +{ 6, s_46_23, -1, 1, 0}, +{ 6, s_46_24, -1, 1, 0}, +{ 8, s_46_25, -1, 1, 0}, +{ 6, s_46_26, -1, 1, 0}, +{ 6, s_46_27, -1, 1, 0}, +{ 6, s_46_28, -1, 1, 0}, +{ 6, s_46_29, -1, 1, 0}, +{ 6, s_46_30, -1, 1, 0} }; static const symbol s_47_0[8] = { 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x81, 0xCF, 0x80 }; @@ -1549,31 +1549,31 @@ static const symbol s_47_24[10] = { 0xCE, 0xB2, 0xCE, 0xB1, 0xCF, 0x81, 0xCE, 0x static const struct among a_47[25] = { -/* 0 */ { 8, s_47_0, -1, 1, 0}, -/* 1 */ { 6, s_47_1, -1, 1, 0}, -/* 2 */ { 8, s_47_2, -1, 1, 0}, -/* 3 */ { 6, s_47_3, -1, 1, 0}, -/* 4 */ { 8, s_47_4, -1, 1, 0}, -/* 5 */ { 8, s_47_5, -1, 1, 0}, -/* 6 */ { 6, s_47_6, -1, 1, 0}, -/* 7 */ { 8, s_47_7, -1, 1, 0}, -/* 8 */ { 2, s_47_8, -1, 1, 0}, -/* 9 */ { 8, s_47_9, -1, 1, 0}, -/* 10 */ { 6, s_47_10, -1, 1, 0}, -/* 11 */ { 6, s_47_11, -1, 1, 0}, -/* 12 */ { 2, s_47_12, -1, 1, 0}, -/* 13 */ { 4, s_47_13, 12, 1, 0}, -/* 14 */ { 2, s_47_14, -1, 1, 0}, -/* 15 */ { 4, s_47_15, 14, 1, 0}, -/* 16 */ { 4, s_47_16, -1, 1, 0}, -/* 17 */ { 6, s_47_17, -1, 1, 0}, -/* 18 */ { 6, s_47_18, -1, 1, 0}, -/* 19 */ { 14, s_47_19, -1, 1, 0}, -/* 20 */ { 8, s_47_20, -1, 1, 0}, -/* 21 */ { 4, s_47_21, -1, 1, 0}, -/* 22 */ { 4, s_47_22, -1, 1, 0}, -/* 23 */ { 6, s_47_23, -1, 1, 0}, -/* 24 */ { 10, s_47_24, -1, 1, 0} +{ 8, s_47_0, -1, 1, 0}, +{ 6, s_47_1, -1, 1, 0}, +{ 8, s_47_2, -1, 1, 0}, +{ 6, s_47_3, -1, 1, 0}, +{ 8, s_47_4, -1, 1, 0}, +{ 8, s_47_5, -1, 1, 0}, +{ 6, s_47_6, -1, 1, 0}, +{ 8, s_47_7, -1, 1, 0}, +{ 2, s_47_8, -1, 1, 0}, +{ 8, s_47_9, -1, 1, 0}, +{ 6, s_47_10, -1, 1, 0}, +{ 6, s_47_11, -1, 1, 0}, +{ 2, s_47_12, -1, 1, 0}, +{ 4, s_47_13, 12, 1, 0}, +{ 2, s_47_14, -1, 1, 0}, +{ 4, s_47_15, 14, 1, 0}, +{ 4, s_47_16, -1, 1, 0}, +{ 6, s_47_17, -1, 1, 0}, +{ 6, s_47_18, -1, 1, 0}, +{ 14, s_47_19, -1, 1, 0}, +{ 8, s_47_20, -1, 1, 0}, +{ 4, s_47_21, -1, 1, 0}, +{ 4, s_47_22, -1, 1, 0}, +{ 6, s_47_23, -1, 1, 0}, +{ 10, s_47_24, -1, 1, 0} }; static const symbol s_48_0[10] = { 0xCF, 0x89, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x83 }; @@ -1581,8 +1581,8 @@ static const symbol s_48_1[10] = { 0xCE, 0xBF, 0xCE, 0xBD, 0xCF, 0x84, 0xCE, 0xB static const struct among a_48[2] = { -/* 0 */ { 10, s_48_0, -1, 1, 0}, -/* 1 */ { 10, s_48_1, -1, 1, 0} +{ 10, s_48_0, -1, 1, 0}, +{ 10, s_48_1, -1, 1, 0} }; static const symbol s_49_0[12] = { 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 }; @@ -1590,8 +1590,8 @@ static const symbol s_49_1[14] = { 0xCE, 0xB9, 0xCE, 0xBF, 0xCE, 0xBC, 0xCE, 0xB static const struct among a_49[2] = { -/* 0 */ { 12, s_49_0, -1, 1, 0}, -/* 1 */ { 14, s_49_1, 0, 1, 0} +{ 12, s_49_0, -1, 1, 0}, +{ 14, s_49_1, 0, 1, 0} }; static const symbol s_50_0[2] = { 0xCF, 0x80 }; @@ -1603,12 +1603,12 @@ static const symbol s_50_5[14] = { 0xCE, 0xB1, 0xCE, 0xBC, 0xCE, 0xB5, 0xCF, 0x8 static const struct among a_50[6] = { -/* 0 */ { 2, s_50_0, -1, 1, 0}, -/* 1 */ { 4, s_50_1, 0, 1, 0}, -/* 2 */ { 12, s_50_2, 1, 1, 0}, -/* 3 */ { 8, s_50_3, 0, 1, 0}, -/* 4 */ { 10, s_50_4, 3, 1, 0}, -/* 5 */ { 14, s_50_5, -1, 1, 0} +{ 2, s_50_0, -1, 1, 0}, +{ 4, s_50_1, 0, 1, 0}, +{ 12, s_50_2, 1, 1, 0}, +{ 8, s_50_3, 0, 1, 0}, +{ 10, s_50_4, 3, 1, 0}, +{ 14, s_50_5, -1, 1, 0} }; static const symbol s_51_0[4] = { 0xCE, 0xB1, 0xCF, 0x81 }; @@ -1623,15 +1623,15 @@ static const symbol s_51_8[6] = { 0xCF, 0x80, 0xCF, 0x81, 0xCE, 0xBF }; static const struct among a_51[9] = { -/* 0 */ { 4, s_51_0, -1, 1, 0}, -/* 1 */ { 6, s_51_1, -1, 1, 0}, -/* 2 */ { 2, s_51_2, -1, 1, 0}, -/* 3 */ { 4, s_51_3, -1, 1, 0}, -/* 4 */ { 14, s_51_4, 3, 1, 0}, -/* 5 */ { 10, s_51_5, -1, 1, 0}, -/* 6 */ { 2, s_51_6, -1, 1, 0}, -/* 7 */ { 2, s_51_7, -1, 1, 0}, -/* 8 */ { 6, s_51_8, -1, 1, 0} +{ 4, s_51_0, -1, 1, 0}, +{ 6, s_51_1, -1, 1, 0}, +{ 2, s_51_2, -1, 1, 0}, +{ 4, s_51_3, -1, 1, 0}, +{ 14, s_51_4, 3, 1, 0}, +{ 10, s_51_5, -1, 1, 0}, +{ 2, s_51_6, -1, 1, 0}, +{ 2, s_51_7, -1, 1, 0}, +{ 6, s_51_8, -1, 1, 0} }; static const symbol s_52_0[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x83 }; @@ -1640,9 +1640,9 @@ static const symbol s_52_2[10] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB7, 0xCE, 0xB static const struct among a_52[3] = { -/* 0 */ { 12, s_52_0, -1, 1, 0}, -/* 1 */ { 10, s_52_1, -1, 1, 0}, -/* 2 */ { 10, s_52_2, -1, 1, 0} +{ 12, s_52_0, -1, 1, 0}, +{ 10, s_52_1, -1, 1, 0}, +{ 10, s_52_2, -1, 1, 0} }; static const symbol s_53_0[4] = { 0xCF, 0x83, 0xCF, 0x86 }; @@ -1654,12 +1654,12 @@ static const symbol s_53_5[8] = { 0xCF, 0x83, 0xCE, 0xBA, 0xCF, 0x89, 0xCE, 0xBB static const struct among a_53[6] = { -/* 0 */ { 4, s_53_0, -1, 1, 0}, -/* 1 */ { 8, s_53_1, -1, 1, 0}, -/* 2 */ { 6, s_53_2, -1, 1, 0}, -/* 3 */ { 4, s_53_3, -1, 1, 0}, -/* 4 */ { 10, s_53_4, -1, 1, 0}, -/* 5 */ { 8, s_53_5, -1, 1, 0} +{ 4, s_53_0, -1, 1, 0}, +{ 8, s_53_1, -1, 1, 0}, +{ 6, s_53_2, -1, 1, 0}, +{ 4, s_53_3, -1, 1, 0}, +{ 10, s_53_4, -1, 1, 0}, +{ 8, s_53_5, -1, 1, 0} }; static const symbol s_54_0[2] = { 0xCE, 0xB8 }; @@ -1670,11 +1670,11 @@ static const symbol s_54_4[8] = { 0xCF, 0x83, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB8 static const struct among a_54[5] = { -/* 0 */ { 2, s_54_0, -1, 1, 0}, -/* 1 */ { 10, s_54_1, 0, 1, 0}, -/* 2 */ { 18, s_54_2, 0, 1, 0}, -/* 3 */ { 8, s_54_3, 0, 1, 0}, -/* 4 */ { 8, s_54_4, 0, 1, 0} +{ 2, s_54_0, -1, 1, 0}, +{ 10, s_54_1, 0, 1, 0}, +{ 18, s_54_2, 0, 1, 0}, +{ 8, s_54_3, 0, 1, 0}, +{ 8, s_54_4, 0, 1, 0} }; static const symbol s_55_0[8] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5, 0xCF, 0x83 }; @@ -1683,9 +1683,9 @@ static const symbol s_55_2[6] = { 0xCE, 0xB7, 0xCE, 0xBA, 0xCE, 0xB5 }; static const struct among a_55[3] = { -/* 0 */ { 8, s_55_0, -1, 1, 0}, -/* 1 */ { 6, s_55_1, -1, 1, 0}, -/* 2 */ { 6, s_55_2, -1, 1, 0} +{ 8, s_55_0, -1, 1, 0}, +{ 6, s_55_1, -1, 1, 0}, +{ 6, s_55_2, -1, 1, 0} }; static const symbol s_56_0[8] = { 0xCE, 0xB2, 0xCE, 0xBB, 0xCE, 0xB5, 0xCF, 0x80 }; @@ -1703,18 +1703,18 @@ static const symbol s_56_11[4] = { 0xCE, 0xBF, 0xCE, 0xBC }; static const struct among a_56[12] = { -/* 0 */ { 8, s_56_0, -1, 1, 0}, -/* 1 */ { 10, s_56_1, -1, 1, 0}, -/* 2 */ { 8, s_56_2, -1, 1, 0}, -/* 3 */ { 10, s_56_3, -1, 1, 0}, -/* 4 */ { 12, s_56_4, -1, 1, 0}, -/* 5 */ { 6, s_56_5, -1, 1, 0}, -/* 6 */ { 6, s_56_6, -1, 1, 0}, -/* 7 */ { 6, s_56_7, -1, 1, 0}, -/* 8 */ { 8, s_56_8, -1, 1, 0}, -/* 9 */ { 12, s_56_9, -1, 1, 0}, -/* 10 */ { 8, s_56_10, -1, 1, 0}, -/* 11 */ { 4, s_56_11, -1, 1, 0} +{ 8, s_56_0, -1, 1, 0}, +{ 10, s_56_1, -1, 1, 0}, +{ 8, s_56_2, -1, 1, 0}, +{ 10, s_56_3, -1, 1, 0}, +{ 12, s_56_4, -1, 1, 0}, +{ 6, s_56_5, -1, 1, 0}, +{ 6, s_56_6, -1, 1, 0}, +{ 6, s_56_7, -1, 1, 0}, +{ 8, s_56_8, -1, 1, 0}, +{ 12, s_56_9, -1, 1, 0}, +{ 8, s_56_10, -1, 1, 0}, +{ 4, s_56_11, -1, 1, 0} }; static const symbol s_57_0[10] = { 0xCE, 0xB5, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xB9, 0xCF, 0x80 }; @@ -1745,31 +1745,31 @@ static const symbol s_57_24[14] = { 0xCF, 0x85, 0xCF, 0x80, 0xCE, 0xBF, 0xCF, 0x static const struct among a_57[25] = { -/* 0 */ { 10, s_57_0, -1, 1, 0}, -/* 1 */ { 2, s_57_1, -1, 1, 0}, -/* 2 */ { 10, s_57_2, 1, 1, 0}, -/* 3 */ { 16, s_57_3, 1, 1, 0}, -/* 4 */ { 6, s_57_4, -1, 1, 0}, -/* 5 */ { 14, s_57_5, -1, 1, 0}, -/* 6 */ { 16, s_57_6, -1, 1, 0}, -/* 7 */ { 6, s_57_7, -1, 1, 0}, -/* 8 */ { 6, s_57_8, -1, 1, 0}, -/* 9 */ { 6, s_57_9, -1, 1, 0}, -/* 10 */ { 6, s_57_10, -1, 1, 0}, -/* 11 */ { 12, s_57_11, -1, 1, 0}, -/* 12 */ { 4, s_57_12, -1, 1, 0}, -/* 13 */ { 6, s_57_13, -1, 1, 0}, -/* 14 */ { 10, s_57_14, -1, 1, 0}, -/* 15 */ { 12, s_57_15, -1, 1, 0}, -/* 16 */ { 6, s_57_16, -1, 1, 0}, -/* 17 */ { 12, s_57_17, -1, 1, 0}, -/* 18 */ { 6, s_57_18, -1, 1, 0}, -/* 19 */ { 8, s_57_19, -1, 1, 0}, -/* 20 */ { 2, s_57_20, -1, 1, 0}, -/* 21 */ { 2, s_57_21, -1, 1, 0}, -/* 22 */ { 4, s_57_22, 21, 1, 0}, -/* 23 */ { 8, s_57_23, 21, 1, 0}, -/* 24 */ { 14, s_57_24, -1, 1, 0} +{ 10, s_57_0, -1, 1, 0}, +{ 2, s_57_1, -1, 1, 0}, +{ 10, s_57_2, 1, 1, 0}, +{ 16, s_57_3, 1, 1, 0}, +{ 6, s_57_4, -1, 1, 0}, +{ 14, s_57_5, -1, 1, 0}, +{ 16, s_57_6, -1, 1, 0}, +{ 6, s_57_7, -1, 1, 0}, +{ 6, s_57_8, -1, 1, 0}, +{ 6, s_57_9, -1, 1, 0}, +{ 6, s_57_10, -1, 1, 0}, +{ 12, s_57_11, -1, 1, 0}, +{ 4, s_57_12, -1, 1, 0}, +{ 6, s_57_13, -1, 1, 0}, +{ 10, s_57_14, -1, 1, 0}, +{ 12, s_57_15, -1, 1, 0}, +{ 6, s_57_16, -1, 1, 0}, +{ 12, s_57_17, -1, 1, 0}, +{ 6, s_57_18, -1, 1, 0}, +{ 8, s_57_19, -1, 1, 0}, +{ 2, s_57_20, -1, 1, 0}, +{ 2, s_57_21, -1, 1, 0}, +{ 4, s_57_22, 21, 1, 0}, +{ 8, s_57_23, 21, 1, 0}, +{ 14, s_57_24, -1, 1, 0} }; static const symbol s_58_0[10] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB5, 0xCF, 0x83 }; @@ -1778,9 +1778,9 @@ static const symbol s_58_2[8] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83, 0xCE, 0xB5 static const struct among a_58[3] = { -/* 0 */ { 10, s_58_0, -1, 1, 0}, -/* 1 */ { 8, s_58_1, -1, 1, 0}, -/* 2 */ { 8, s_58_2, -1, 1, 0} +{ 10, s_58_0, -1, 1, 0}, +{ 8, s_58_1, -1, 1, 0}, +{ 8, s_58_2, -1, 1, 0} }; static const symbol s_59_0[6] = { 0xCF, 0x88, 0xCE, 0xBF, 0xCF, 0x86 }; @@ -1788,8 +1788,8 @@ static const symbol s_59_1[12] = { 0xCE, 0xBD, 0xCE, 0xB1, 0xCF, 0x85, 0xCE, 0xB static const struct among a_59[2] = { -/* 0 */ { 6, s_59_0, -1, -1, 0}, -/* 1 */ { 12, s_59_1, -1, -1, 0} +{ 6, s_59_0, -1, -1, 0}, +{ 12, s_59_1, -1, -1, 0} }; static const symbol s_60_0[4] = { 0xCF, 0x81, 0xCF, 0x80 }; @@ -1805,16 +1805,16 @@ static const symbol s_60_9[8] = { 0xCF, 0x83, 0xCE, 0xBC, 0xCE, 0xB7, 0xCE, 0xBD static const struct among a_60[10] = { -/* 0 */ { 4, s_60_0, -1, 1, 0}, -/* 1 */ { 4, s_60_1, -1, 1, 0}, -/* 2 */ { 4, s_60_2, -1, 1, 0}, -/* 3 */ { 8, s_60_3, -1, 1, 0}, -/* 4 */ { 4, s_60_4, -1, 1, 0}, -/* 5 */ { 4, s_60_5, -1, 1, 0}, -/* 6 */ { 6, s_60_6, -1, 1, 0}, -/* 7 */ { 6, s_60_7, -1, 1, 0}, -/* 8 */ { 4, s_60_8, -1, 1, 0}, -/* 9 */ { 8, s_60_9, -1, 1, 0} +{ 4, s_60_0, -1, 1, 0}, +{ 4, s_60_1, -1, 1, 0}, +{ 4, s_60_2, -1, 1, 0}, +{ 8, s_60_3, -1, 1, 0}, +{ 4, s_60_4, -1, 1, 0}, +{ 4, s_60_5, -1, 1, 0}, +{ 6, s_60_6, -1, 1, 0}, +{ 6, s_60_7, -1, 1, 0}, +{ 4, s_60_8, -1, 1, 0}, +{ 8, s_60_9, -1, 1, 0} }; static const symbol s_61_0[2] = { 0xCF, 0x80 }; @@ -1864,50 +1864,50 @@ static const symbol s_61_43[12] = { 0xCE, 0xB4, 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0x static const struct among a_61[44] = { -/* 0 */ { 2, s_61_0, -1, 1, 0}, -/* 1 */ { 6, s_61_1, 0, 1, 0}, -/* 2 */ { 8, s_61_2, 0, 1, 0}, -/* 3 */ { 10, s_61_3, 0, 1, 0}, -/* 4 */ { 8, s_61_4, 0, 1, 0}, -/* 5 */ { 8, s_61_5, 0, 1, 0}, -/* 6 */ { 16, s_61_6, 0, 1, 0}, -/* 7 */ { 14, s_61_7, 0, 1, 0}, -/* 8 */ { 12, s_61_8, 0, 1, 0}, -/* 9 */ { 8, s_61_9, 0, 1, 0}, -/* 10 */ { 16, s_61_10, 0, 1, 0}, -/* 11 */ { 8, s_61_11, 0, 1, 0}, -/* 12 */ { 2, s_61_12, -1, 1, 0}, -/* 13 */ { 4, s_61_13, 12, 1, 0}, -/* 14 */ { 6, s_61_14, 12, 1, 0}, -/* 15 */ { 10, s_61_15, 12, 1, 0}, -/* 16 */ { 6, s_61_16, 12, 1, 0}, -/* 17 */ { 8, s_61_17, 16, 1, 0}, -/* 18 */ { 8, s_61_18, 12, 1, 0}, -/* 19 */ { 2, s_61_19, -1, 1, 0}, -/* 20 */ { 10, s_61_20, 19, 1, 0}, -/* 21 */ { 10, s_61_21, 19, 1, 0}, -/* 22 */ { 10, s_61_22, 19, 1, 0}, -/* 23 */ { 12, s_61_23, 19, 1, 0}, -/* 24 */ { 8, s_61_24, 19, 1, 0}, -/* 25 */ { 8, s_61_25, 19, 1, 0}, -/* 26 */ { 8, s_61_26, 19, 1, 0}, -/* 27 */ { 8, s_61_27, 19, 1, 0}, -/* 28 */ { 8, s_61_28, 19, 1, 0}, -/* 29 */ { 8, s_61_29, 19, 1, 0}, -/* 30 */ { 10, s_61_30, 29, 1, 0}, -/* 31 */ { 6, s_61_31, -1, 1, 0}, -/* 32 */ { 10, s_61_32, -1, 1, 0}, -/* 33 */ { 4, s_61_33, -1, 1, 0}, -/* 34 */ { 6, s_61_34, -1, 1, 0}, -/* 35 */ { 8, s_61_35, -1, 1, 0}, -/* 36 */ { 8, s_61_36, -1, 1, 0}, -/* 37 */ { 12, s_61_37, -1, 1, 0}, -/* 38 */ { 2, s_61_38, -1, 1, 0}, -/* 39 */ { 8, s_61_39, 38, 1, 0}, -/* 40 */ { 2, s_61_40, -1, 1, 0}, -/* 41 */ { 10, s_61_41, 40, 1, 0}, -/* 42 */ { 4, s_61_42, -1, 1, 0}, -/* 43 */ { 12, s_61_43, 42, 1, 0} +{ 2, s_61_0, -1, 1, 0}, +{ 6, s_61_1, 0, 1, 0}, +{ 8, s_61_2, 0, 1, 0}, +{ 10, s_61_3, 0, 1, 0}, +{ 8, s_61_4, 0, 1, 0}, +{ 8, s_61_5, 0, 1, 0}, +{ 16, s_61_6, 0, 1, 0}, +{ 14, s_61_7, 0, 1, 0}, +{ 12, s_61_8, 0, 1, 0}, +{ 8, s_61_9, 0, 1, 0}, +{ 16, s_61_10, 0, 1, 0}, +{ 8, s_61_11, 0, 1, 0}, +{ 2, s_61_12, -1, 1, 0}, +{ 4, s_61_13, 12, 1, 0}, +{ 6, s_61_14, 12, 1, 0}, +{ 10, s_61_15, 12, 1, 0}, +{ 6, s_61_16, 12, 1, 0}, +{ 8, s_61_17, 16, 1, 0}, +{ 8, s_61_18, 12, 1, 0}, +{ 2, s_61_19, -1, 1, 0}, +{ 10, s_61_20, 19, 1, 0}, +{ 10, s_61_21, 19, 1, 0}, +{ 10, s_61_22, 19, 1, 0}, +{ 12, s_61_23, 19, 1, 0}, +{ 8, s_61_24, 19, 1, 0}, +{ 8, s_61_25, 19, 1, 0}, +{ 8, s_61_26, 19, 1, 0}, +{ 8, s_61_27, 19, 1, 0}, +{ 8, s_61_28, 19, 1, 0}, +{ 8, s_61_29, 19, 1, 0}, +{ 10, s_61_30, 29, 1, 0}, +{ 6, s_61_31, -1, 1, 0}, +{ 10, s_61_32, -1, 1, 0}, +{ 4, s_61_33, -1, 1, 0}, +{ 6, s_61_34, -1, 1, 0}, +{ 8, s_61_35, -1, 1, 0}, +{ 8, s_61_36, -1, 1, 0}, +{ 12, s_61_37, -1, 1, 0}, +{ 2, s_61_38, -1, 1, 0}, +{ 8, s_61_39, 38, 1, 0}, +{ 2, s_61_40, -1, 1, 0}, +{ 10, s_61_41, 40, 1, 0}, +{ 4, s_61_42, -1, 1, 0}, +{ 12, s_61_43, 42, 1, 0} }; static const symbol s_62_0[8] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB5, 0xCF, 0x83 }; @@ -1916,9 +1916,9 @@ static const symbol s_62_2[6] = { 0xCE, 0xB1, 0xCE, 0xB3, 0xCE, 0xB5 }; static const struct among a_62[3] = { -/* 0 */ { 8, s_62_0, -1, 1, 0}, -/* 1 */ { 6, s_62_1, -1, 1, 0}, -/* 2 */ { 6, s_62_2, -1, 1, 0} +{ 8, s_62_0, -1, 1, 0}, +{ 6, s_62_1, -1, 1, 0}, +{ 6, s_62_2, -1, 1, 0} }; static const symbol s_63_0[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85 }; @@ -1927,9 +1927,9 @@ static const symbol s_63_2[6] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCE, 0xB5 }; static const struct among a_63[3] = { -/* 0 */ { 8, s_63_0, -1, 1, 0}, -/* 1 */ { 6, s_63_1, -1, 1, 0}, -/* 2 */ { 6, s_63_2, -1, 1, 0} +{ 8, s_63_0, -1, 1, 0}, +{ 6, s_63_1, -1, 1, 0}, +{ 6, s_63_2, -1, 1, 0} }; static const symbol s_64_0[2] = { 0xCE, 0xBD }; @@ -1941,19 +1941,19 @@ static const symbol s_64_5[12] = { 0xCE, 0xB5, 0xCF, 0x81, 0xCE, 0xB7, 0xCE, 0xB static const struct among a_64[6] = { -/* 0 */ { 2, s_64_0, -1, 1, 0}, -/* 1 */ { 10, s_64_1, 0, 1, 0}, -/* 2 */ { 14, s_64_2, 0, 1, 0}, -/* 3 */ { 12, s_64_3, 0, 1, 0}, -/* 4 */ { 14, s_64_4, 0, 1, 0}, -/* 5 */ { 12, s_64_5, 0, 1, 0} +{ 2, s_64_0, -1, 1, 0}, +{ 10, s_64_1, 0, 1, 0}, +{ 14, s_64_2, 0, 1, 0}, +{ 12, s_64_3, 0, 1, 0}, +{ 14, s_64_4, 0, 1, 0}, +{ 12, s_64_5, 0, 1, 0} }; static const symbol s_65_0[8] = { 0xCE, 0xB7, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5 }; static const struct among a_65[1] = { -/* 0 */ { 8, s_65_0, -1, 1, 0} +{ 8, s_65_0, -1, 1, 0} }; static const symbol s_66_0[4] = { 0xCF, 0x87, 0xCF, 0x81 }; @@ -1969,16 +1969,16 @@ static const symbol s_66_9[10] = { 0xCE, 0xB1, 0xCE, 0xB5, 0xCE, 0xB9, 0xCE, 0xB static const struct among a_66[10] = { -/* 0 */ { 4, s_66_0, -1, 1, 0}, -/* 1 */ { 10, s_66_1, 0, 1, 0}, -/* 2 */ { 8, s_66_2, 0, 1, 0}, -/* 3 */ { 6, s_66_3, 0, 1, 0}, -/* 4 */ { 14, s_66_4, 0, 1, 0}, -/* 5 */ { 12, s_66_5, -1, 1, 0}, -/* 6 */ { 4, s_66_6, -1, 1, 0}, -/* 7 */ { 6, s_66_7, 6, 1, 0}, -/* 8 */ { 6, s_66_8, -1, 1, 0}, -/* 9 */ { 10, s_66_9, -1, 1, 0} +{ 4, s_66_0, -1, 1, 0}, +{ 10, s_66_1, 0, 1, 0}, +{ 8, s_66_2, 0, 1, 0}, +{ 6, s_66_3, 0, 1, 0}, +{ 14, s_66_4, 0, 1, 0}, +{ 12, s_66_5, -1, 1, 0}, +{ 4, s_66_6, -1, 1, 0}, +{ 6, s_66_7, 6, 1, 0}, +{ 6, s_66_8, -1, 1, 0}, +{ 10, s_66_9, -1, 1, 0} }; static const symbol s_67_0[8] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD, 0xCE, 0xB5 }; @@ -1987,9 +1987,9 @@ static const symbol s_67_2[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xBF, 0xCF, 0x8 static const struct among a_67[3] = { -/* 0 */ { 8, s_67_0, -1, 1, 0}, -/* 1 */ { 12, s_67_1, 0, 1, 0}, -/* 2 */ { 12, s_67_2, 0, 1, 0} +{ 8, s_67_0, -1, 1, 0}, +{ 12, s_67_1, 0, 1, 0}, +{ 12, s_67_2, 0, 1, 0} }; static const symbol s_68_0[2] = { 0xCF, 0x81 }; @@ -2001,12 +2001,12 @@ static const symbol s_68_5[8] = { 0xCE, 0xB5, 0xCE, 0xBE, 0xCF, 0x89, 0xCE, 0xBD static const struct among a_68[6] = { -/* 0 */ { 2, s_68_0, -1, 1, 0}, -/* 1 */ { 22, s_68_1, -1, 1, 0}, -/* 2 */ { 18, s_68_2, -1, 1, 0}, -/* 3 */ { 6, s_68_3, -1, 1, 0}, -/* 4 */ { 2, s_68_4, -1, 1, 0}, -/* 5 */ { 8, s_68_5, 4, 1, 0} +{ 2, s_68_0, -1, 1, 0}, +{ 22, s_68_1, -1, 1, 0}, +{ 18, s_68_2, -1, 1, 0}, +{ 6, s_68_3, -1, 1, 0}, +{ 2, s_68_4, -1, 1, 0}, +{ 8, s_68_5, 4, 1, 0} }; static const symbol s_69_0[8] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC, 0xCE, 0xB5 }; @@ -2015,9 +2015,9 @@ static const symbol s_69_2[12] = { 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xBF, 0xCF, 0x8 static const struct among a_69[3] = { -/* 0 */ { 8, s_69_0, -1, 1, 0}, -/* 1 */ { 12, s_69_1, 0, 1, 0}, -/* 2 */ { 12, s_69_2, 0, 1, 0} +{ 8, s_69_0, -1, 1, 0}, +{ 12, s_69_1, 0, 1, 0}, +{ 12, s_69_2, 0, 1, 0} }; static const symbol s_70_0[10] = { 0xCE, 0xB1, 0xCF, 0x83, 0xCE, 0xBF, 0xCF, 0x85, 0xCF, 0x83 }; @@ -2030,13 +2030,13 @@ static const symbol s_70_6[12] = { 0xCF, 0x89, 0xCF, 0x81, 0xCE, 0xB9, 0xCE, 0xB static const struct among a_70[7] = { -/* 0 */ { 10, s_70_0, -1, 1, 0}, -/* 1 */ { 16, s_70_1, 0, 1, 0}, -/* 2 */ { 16, s_70_2, -1, 1, 0}, -/* 3 */ { 2, s_70_3, -1, 1, 0}, -/* 4 */ { 2, s_70_4, -1, 1, 0}, -/* 5 */ { 4, s_70_5, -1, 1, 0}, -/* 6 */ { 12, s_70_6, -1, 1, 0} +{ 10, s_70_0, -1, 1, 0}, +{ 16, s_70_1, 0, 1, 0}, +{ 16, s_70_2, -1, 1, 0}, +{ 2, s_70_3, -1, 1, 0}, +{ 2, s_70_4, -1, 1, 0}, +{ 4, s_70_5, -1, 1, 0}, +{ 12, s_70_6, -1, 1, 0} }; static const symbol s_71_0[10] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x84, 0xCE, 0xBF, 0xCF, 0x83 }; @@ -2045,9 +2045,9 @@ static const symbol s_71_2[10] = { 0xCE, 0xBC, 0xCE, 0xB1, 0xCF, 0x84, 0xCF, 0x8 static const struct among a_71[3] = { -/* 0 */ { 10, s_71_0, -1, 1, 0}, -/* 1 */ { 8, s_71_1, -1, 1, 0}, -/* 2 */ { 10, s_71_2, -1, 1, 0} +{ 10, s_71_0, -1, 1, 0}, +{ 8, s_71_1, -1, 1, 0}, +{ 10, s_71_2, -1, 1, 0} }; static const symbol s_72_0[4] = { 0xCF, 0x85, 0xCF, 0x83 }; @@ -2137,90 +2137,90 @@ static const symbol s_72_83[2] = { 0xCE, 0xBF }; static const struct among a_72[84] = { -/* 0 */ { 4, s_72_0, -1, 1, 0}, -/* 1 */ { 6, s_72_1, 0, 1, 0}, -/* 2 */ { 4, s_72_2, -1, 1, 0}, -/* 3 */ { 4, s_72_3, -1, 1, 0}, -/* 4 */ { 8, s_72_4, 3, 1, 0}, -/* 5 */ { 8, s_72_5, 3, 1, 0}, -/* 6 */ { 4, s_72_6, -1, 1, 0}, -/* 7 */ { 6, s_72_7, -1, 1, 0}, -/* 8 */ { 10, s_72_8, 7, 1, 0}, -/* 9 */ { 4, s_72_9, -1, 1, 0}, -/* 10 */ { 2, s_72_10, -1, 1, 0}, -/* 11 */ { 4, s_72_11, 10, 1, 0}, -/* 12 */ { 2, s_72_12, -1, 1, 0}, -/* 13 */ { 6, s_72_13, 12, 1, 0}, -/* 14 */ { 4, s_72_14, 12, 1, 0}, -/* 15 */ { 6, s_72_15, 12, 1, 0}, -/* 16 */ { 2, s_72_16, -1, 1, 0}, -/* 17 */ { 10, s_72_17, 16, 1, 0}, -/* 18 */ { 12, s_72_18, 16, 1, 0}, -/* 19 */ { 14, s_72_19, 18, 1, 0}, -/* 20 */ { 12, s_72_20, 16, 1, 0}, -/* 21 */ { 14, s_72_21, 20, 1, 0}, -/* 22 */ { 2, s_72_22, -1, 1, 0}, -/* 23 */ { 14, s_72_23, 22, 1, 0}, -/* 24 */ { 12, s_72_24, 22, 1, 0}, -/* 25 */ { 14, s_72_25, 24, 1, 0}, -/* 26 */ { 14, s_72_26, 22, 1, 0}, -/* 27 */ { 16, s_72_27, 26, 1, 0}, -/* 28 */ { 14, s_72_28, 22, 1, 0}, -/* 29 */ { 12, s_72_29, 22, 1, 0}, -/* 30 */ { 10, s_72_30, 22, 1, 0}, -/* 31 */ { 10, s_72_31, 22, 1, 0}, -/* 32 */ { 10, s_72_32, 22, 1, 0}, -/* 33 */ { 14, s_72_33, 32, 1, 0}, -/* 34 */ { 8, s_72_34, 22, 1, 0}, -/* 35 */ { 12, s_72_35, 34, 1, 0}, -/* 36 */ { 2, s_72_36, -1, 1, 0}, -/* 37 */ { 2, s_72_37, -1, 1, 0}, -/* 38 */ { 8, s_72_38, 37, 1, 0}, -/* 39 */ { 8, s_72_39, 37, 1, 0}, -/* 40 */ { 10, s_72_40, 39, 1, 0}, -/* 41 */ { 8, s_72_41, 37, 1, 0}, -/* 42 */ { 8, s_72_42, 37, 1, 0}, -/* 43 */ { 10, s_72_43, 42, 1, 0}, -/* 44 */ { 12, s_72_44, 37, 1, 0}, -/* 45 */ { 14, s_72_45, 44, 1, 0}, -/* 46 */ { 10, s_72_46, 37, 1, 0}, -/* 47 */ { 10, s_72_47, 37, 1, 0}, -/* 48 */ { 8, s_72_48, 37, 1, 0}, -/* 49 */ { 10, s_72_49, 37, 1, 0}, -/* 50 */ { 8, s_72_50, 37, 1, 0}, -/* 51 */ { 4, s_72_51, 37, 1, 0}, -/* 52 */ { 8, s_72_52, 51, 1, 0}, -/* 53 */ { 6, s_72_53, 51, 1, 0}, -/* 54 */ { 8, s_72_54, 51, 1, 0}, -/* 55 */ { 4, s_72_55, 37, 1, 0}, -/* 56 */ { 6, s_72_56, -1, 1, 0}, -/* 57 */ { 10, s_72_57, 56, 1, 0}, -/* 58 */ { 10, s_72_58, 56, 1, 0}, -/* 59 */ { 12, s_72_59, 58, 1, 0}, -/* 60 */ { 10, s_72_60, 56, 1, 0}, -/* 61 */ { 10, s_72_61, 56, 1, 0}, -/* 62 */ { 12, s_72_62, 61, 1, 0}, -/* 63 */ { 4, s_72_63, -1, 1, 0}, -/* 64 */ { 8, s_72_64, 63, 1, 0}, -/* 65 */ { 4, s_72_65, -1, 1, 0}, -/* 66 */ { 10, s_72_66, 65, 1, 0}, -/* 67 */ { 16, s_72_67, 66, 1, 0}, -/* 68 */ { 18, s_72_68, 67, 1, 0}, -/* 69 */ { 8, s_72_69, 65, 1, 0}, -/* 70 */ { 14, s_72_70, 65, 1, 0}, -/* 71 */ { 16, s_72_71, 70, 1, 0}, -/* 72 */ { 14, s_72_72, 65, 1, 0}, -/* 73 */ { 16, s_72_73, 72, 1, 0}, -/* 74 */ { 12, s_72_74, 65, 1, 0}, -/* 75 */ { 14, s_72_75, 74, 1, 0}, -/* 76 */ { 10, s_72_76, 65, 1, 0}, -/* 77 */ { 12, s_72_77, 76, 1, 0}, -/* 78 */ { 8, s_72_78, 65, 1, 0}, -/* 79 */ { 10, s_72_79, 78, 1, 0}, -/* 80 */ { 8, s_72_80, 65, 1, 0}, -/* 81 */ { 8, s_72_81, 65, 1, 0}, -/* 82 */ { 12, s_72_82, 81, 1, 0}, -/* 83 */ { 2, s_72_83, -1, 1, 0} +{ 4, s_72_0, -1, 1, 0}, +{ 6, s_72_1, 0, 1, 0}, +{ 4, s_72_2, -1, 1, 0}, +{ 4, s_72_3, -1, 1, 0}, +{ 8, s_72_4, 3, 1, 0}, +{ 8, s_72_5, 3, 1, 0}, +{ 4, s_72_6, -1, 1, 0}, +{ 6, s_72_7, -1, 1, 0}, +{ 10, s_72_8, 7, 1, 0}, +{ 4, s_72_9, -1, 1, 0}, +{ 2, s_72_10, -1, 1, 0}, +{ 4, s_72_11, 10, 1, 0}, +{ 2, s_72_12, -1, 1, 0}, +{ 6, s_72_13, 12, 1, 0}, +{ 4, s_72_14, 12, 1, 0}, +{ 6, s_72_15, 12, 1, 0}, +{ 2, s_72_16, -1, 1, 0}, +{ 10, s_72_17, 16, 1, 0}, +{ 12, s_72_18, 16, 1, 0}, +{ 14, s_72_19, 18, 1, 0}, +{ 12, s_72_20, 16, 1, 0}, +{ 14, s_72_21, 20, 1, 0}, +{ 2, s_72_22, -1, 1, 0}, +{ 14, s_72_23, 22, 1, 0}, +{ 12, s_72_24, 22, 1, 0}, +{ 14, s_72_25, 24, 1, 0}, +{ 14, s_72_26, 22, 1, 0}, +{ 16, s_72_27, 26, 1, 0}, +{ 14, s_72_28, 22, 1, 0}, +{ 12, s_72_29, 22, 1, 0}, +{ 10, s_72_30, 22, 1, 0}, +{ 10, s_72_31, 22, 1, 0}, +{ 10, s_72_32, 22, 1, 0}, +{ 14, s_72_33, 32, 1, 0}, +{ 8, s_72_34, 22, 1, 0}, +{ 12, s_72_35, 34, 1, 0}, +{ 2, s_72_36, -1, 1, 0}, +{ 2, s_72_37, -1, 1, 0}, +{ 8, s_72_38, 37, 1, 0}, +{ 8, s_72_39, 37, 1, 0}, +{ 10, s_72_40, 39, 1, 0}, +{ 8, s_72_41, 37, 1, 0}, +{ 8, s_72_42, 37, 1, 0}, +{ 10, s_72_43, 42, 1, 0}, +{ 12, s_72_44, 37, 1, 0}, +{ 14, s_72_45, 44, 1, 0}, +{ 10, s_72_46, 37, 1, 0}, +{ 10, s_72_47, 37, 1, 0}, +{ 8, s_72_48, 37, 1, 0}, +{ 10, s_72_49, 37, 1, 0}, +{ 8, s_72_50, 37, 1, 0}, +{ 4, s_72_51, 37, 1, 0}, +{ 8, s_72_52, 51, 1, 0}, +{ 6, s_72_53, 51, 1, 0}, +{ 8, s_72_54, 51, 1, 0}, +{ 4, s_72_55, 37, 1, 0}, +{ 6, s_72_56, -1, 1, 0}, +{ 10, s_72_57, 56, 1, 0}, +{ 10, s_72_58, 56, 1, 0}, +{ 12, s_72_59, 58, 1, 0}, +{ 10, s_72_60, 56, 1, 0}, +{ 10, s_72_61, 56, 1, 0}, +{ 12, s_72_62, 61, 1, 0}, +{ 4, s_72_63, -1, 1, 0}, +{ 8, s_72_64, 63, 1, 0}, +{ 4, s_72_65, -1, 1, 0}, +{ 10, s_72_66, 65, 1, 0}, +{ 16, s_72_67, 66, 1, 0}, +{ 18, s_72_68, 67, 1, 0}, +{ 8, s_72_69, 65, 1, 0}, +{ 14, s_72_70, 65, 1, 0}, +{ 16, s_72_71, 70, 1, 0}, +{ 14, s_72_72, 65, 1, 0}, +{ 16, s_72_73, 72, 1, 0}, +{ 12, s_72_74, 65, 1, 0}, +{ 14, s_72_75, 74, 1, 0}, +{ 10, s_72_76, 65, 1, 0}, +{ 12, s_72_77, 76, 1, 0}, +{ 8, s_72_78, 65, 1, 0}, +{ 10, s_72_79, 78, 1, 0}, +{ 8, s_72_80, 65, 1, 0}, +{ 8, s_72_81, 65, 1, 0}, +{ 12, s_72_82, 81, 1, 0}, +{ 2, s_72_83, -1, 1, 0} }; static const symbol s_73_0[10] = { 0xCE, 0xB5, 0xCF, 0x83, 0xCF, 0x84, 0xCE, 0xB5, 0xCF, 0x81 }; @@ -2234,14 +2234,14 @@ static const symbol s_73_7[8] = { 0xCE, 0xBF, 0xCF, 0x84, 0xCE, 0xB1, 0xCF, 0x84 static const struct among a_73[8] = { -/* 0 */ { 10, s_73_0, -1, 1, 0}, -/* 1 */ { 8, s_73_1, -1, 1, 0}, -/* 2 */ { 8, s_73_2, -1, 1, 0}, -/* 3 */ { 8, s_73_3, -1, 1, 0}, -/* 4 */ { 10, s_73_4, -1, 1, 0}, -/* 5 */ { 8, s_73_5, -1, 1, 0}, -/* 6 */ { 8, s_73_6, -1, 1, 0}, -/* 7 */ { 8, s_73_7, -1, 1, 0} +{ 10, s_73_0, -1, 1, 0}, +{ 8, s_73_1, -1, 1, 0}, +{ 8, s_73_2, -1, 1, 0}, +{ 8, s_73_3, -1, 1, 0}, +{ 10, s_73_4, -1, 1, 0}, +{ 8, s_73_5, -1, 1, 0}, +{ 8, s_73_6, -1, 1, 0}, +{ 8, s_73_7, -1, 1, 0} }; static const unsigned char g_v[] = { 81, 65, 16, 1 }; @@ -2356,145 +2356,144 @@ static const symbol s_104[] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBD }; static const symbol s_105[] = { 0xCE, 0xBF, 0xCF, 0x85, 0xCE, 0xBC }; static const symbol s_106[] = { 0xCE, 0xBC, 0xCE, 0xB1 }; -static int r_has_min_length(struct SN_env * z) { /* backwardmode */ - if (!(len_utf8(z->p) >= 3)) return 0; /* $( >= ), line 109 */ +static int r_has_min_length(struct SN_env * z) { + if (!(len_utf8(z->p) >= 3)) return 0; return 1; } -static int r_tolower(struct SN_env * z) { /* backwardmode */ +static int r_tolower(struct SN_env * z) { int among_var; -/* repeat, line 113 */ - - while(1) { int m1 = z->l - z->c; (void)m1; - z->ket = z->c; /* [, line 114 */ - among_var = find_among_b(z, a_0, 46); /* substring, line 114 */ + while(1) { + int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + among_var = find_among_b(z, a_0, 46); if (!(among_var)) goto lab0; - z->bra = z->c; /* ], line 114 */ - switch (among_var) { /* among, line 114 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 2, s_0); /* <-, line 115 */ + { int ret = slice_from_s(z, 2, s_0); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 2, s_1); /* <-, line 116 */ + { int ret = slice_from_s(z, 2, s_1); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 2, s_2); /* <-, line 117 */ + { int ret = slice_from_s(z, 2, s_2); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 2, s_3); /* <-, line 118 */ + { int ret = slice_from_s(z, 2, s_3); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 2, s_4); /* <-, line 119 */ + { int ret = slice_from_s(z, 2, s_4); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 2, s_5); /* <-, line 120 */ + { int ret = slice_from_s(z, 2, s_5); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 2, s_6); /* <-, line 121 */ + { int ret = slice_from_s(z, 2, s_6); if (ret < 0) return ret; } break; case 8: - { int ret = slice_from_s(z, 2, s_7); /* <-, line 122 */ + { int ret = slice_from_s(z, 2, s_7); if (ret < 0) return ret; } break; case 9: - { int ret = slice_from_s(z, 2, s_8); /* <-, line 123 */ + { int ret = slice_from_s(z, 2, s_8); if (ret < 0) return ret; } break; case 10: - { int ret = slice_from_s(z, 2, s_9); /* <-, line 124 */ + { int ret = slice_from_s(z, 2, s_9); if (ret < 0) return ret; } break; case 11: - { int ret = slice_from_s(z, 2, s_10); /* <-, line 125 */ + { int ret = slice_from_s(z, 2, s_10); if (ret < 0) return ret; } break; case 12: - { int ret = slice_from_s(z, 2, s_11); /* <-, line 126 */ + { int ret = slice_from_s(z, 2, s_11); if (ret < 0) return ret; } break; case 13: - { int ret = slice_from_s(z, 2, s_12); /* <-, line 127 */ + { int ret = slice_from_s(z, 2, s_12); if (ret < 0) return ret; } break; case 14: - { int ret = slice_from_s(z, 2, s_13); /* <-, line 128 */ + { int ret = slice_from_s(z, 2, s_13); if (ret < 0) return ret; } break; case 15: - { int ret = slice_from_s(z, 2, s_14); /* <-, line 129 */ + { int ret = slice_from_s(z, 2, s_14); if (ret < 0) return ret; } break; case 16: - { int ret = slice_from_s(z, 2, s_15); /* <-, line 130 */ + { int ret = slice_from_s(z, 2, s_15); if (ret < 0) return ret; } break; case 17: - { int ret = slice_from_s(z, 2, s_16); /* <-, line 131 */ + { int ret = slice_from_s(z, 2, s_16); if (ret < 0) return ret; } break; case 18: - { int ret = slice_from_s(z, 2, s_17); /* <-, line 132 */ + { int ret = slice_from_s(z, 2, s_17); if (ret < 0) return ret; } break; case 19: - { int ret = slice_from_s(z, 2, s_18); /* <-, line 133 */ + { int ret = slice_from_s(z, 2, s_18); if (ret < 0) return ret; } break; case 20: - { int ret = slice_from_s(z, 2, s_19); /* <-, line 134 */ + { int ret = slice_from_s(z, 2, s_19); if (ret < 0) return ret; } break; case 21: - { int ret = slice_from_s(z, 2, s_20); /* <-, line 135 */ + { int ret = slice_from_s(z, 2, s_20); if (ret < 0) return ret; } break; case 22: - { int ret = slice_from_s(z, 2, s_21); /* <-, line 136 */ + { int ret = slice_from_s(z, 2, s_21); if (ret < 0) return ret; } break; case 23: - { int ret = slice_from_s(z, 2, s_22); /* <-, line 137 */ + { int ret = slice_from_s(z, 2, s_22); if (ret < 0) return ret; } break; case 24: - { int ret = slice_from_s(z, 2, s_23); /* <-, line 138 */ + { int ret = slice_from_s(z, 2, s_23); if (ret < 0) return ret; } break; case 25: - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 160 */ + z->c = ret; } break; } @@ -2506,98 +2505,98 @@ static int r_tolower(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_step1(struct SN_env * z) { /* backwardmode */ +static int r_step1(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 166 */ - among_var = find_among_b(z, a_1, 40); /* substring, line 166 */ + z->ket = z->c; + among_var = find_among_b(z, a_1, 40); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 166 */ - switch (among_var) { /* among, line 166 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 4, s_24); /* <-, line 167 */ + { int ret = slice_from_s(z, 4, s_24); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 6, s_25); /* <-, line 168 */ + { int ret = slice_from_s(z, 6, s_25); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 6, s_26); /* <-, line 169 */ + { int ret = slice_from_s(z, 6, s_26); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 4, s_27); /* <-, line 170 */ + { int ret = slice_from_s(z, 4, s_27); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 8, s_28); /* <-, line 171 */ + { int ret = slice_from_s(z, 8, s_28); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 6, s_29); /* <-, line 172 */ + { int ret = slice_from_s(z, 6, s_29); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 6, s_30); /* <-, line 173 */ + { int ret = slice_from_s(z, 6, s_30); if (ret < 0) return ret; } break; case 8: - { int ret = slice_from_s(z, 6, s_31); /* <-, line 174 */ + { int ret = slice_from_s(z, 6, s_31); if (ret < 0) return ret; } break; case 9: - { int ret = slice_from_s(z, 4, s_32); /* <-, line 175 */ + { int ret = slice_from_s(z, 4, s_32); if (ret < 0) return ret; } break; case 10: - { int ret = slice_from_s(z, 12, s_33); /* <-, line 176 */ + { int ret = slice_from_s(z, 12, s_33); if (ret < 0) return ret; } break; case 11: - { int ret = slice_from_s(z, 10, s_34); /* <-, line 177 */ + { int ret = slice_from_s(z, 10, s_34); if (ret < 0) return ret; } break; } - z->B[0] = 0; /* unset test1, line 179 */ + z->I[0] = 0; return 1; } -static int r_steps1(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 183 */ - if (!(find_among_b(z, a_4, 14))) return 0; /* substring, line 183 */ - z->bra = z->c; /* ], line 183 */ - { int ret = slice_del(z); /* delete, line 186 */ +static int r_steps1(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_4, 14))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 187 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 191 */ - z->ket = z->c; /* [, line 188 */ - z->bra = z->c; /* ], line 188 */ - if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-2145255424 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab1; /* substring, line 188 */ + z->I[0] = 0; + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + z->bra = z->c; + if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-2145255424 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab1; if (!(find_among_b(z, a_2, 9))) goto lab1; - if (z->c > z->lb) goto lab1; /* atlimit, line 188 */ - { int ret = slice_from_s(z, 2, s_35); /* <-, line 190 */ + if (z->c > z->lb) goto lab1; + { int ret = slice_from_s(z, 2, s_35); if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m1; - z->ket = z->c; /* [, line 192 */ - z->bra = z->c; /* ], line 192 */ - if (!(find_among_b(z, a_3, 22))) return 0; /* substring, line 192 */ - if (z->c > z->lb) return 0; /* atlimit, line 192 */ - { int ret = slice_from_s(z, 4, s_36); /* <-, line 196 */ + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_3, 22))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 4, s_36); if (ret < 0) return ret; } } @@ -2605,57 +2604,57 @@ static int r_steps1(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_steps2(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 203 */ - if (!(find_among_b(z, a_6, 7))) return 0; /* substring, line 203 */ - z->bra = z->c; /* ], line 203 */ - { int ret = slice_del(z); /* delete, line 205 */ +static int r_steps2(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_6, 7))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 206 */ - z->ket = z->c; /* [, line 207 */ - z->bra = z->c; /* ], line 207 */ - if (!(find_among_b(z, a_5, 8))) return 0; /* substring, line 207 */ - if (z->c > z->lb) return 0; /* atlimit, line 207 */ - { int ret = slice_from_s(z, 4, s_37); /* <-, line 208 */ + z->I[0] = 0; + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_5, 8))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 4, s_37); if (ret < 0) return ret; } return 1; } -static int r_steps3(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 215 */ - if (!(find_among_b(z, a_9, 7))) return 0; /* substring, line 215 */ - z->bra = z->c; /* ], line 215 */ - { int ret = slice_del(z); /* delete, line 217 */ +static int r_steps3(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_9, 7))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 218 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 219 */ - if (!(eq_s_b(z, 6, s_38))) goto lab1; /* literal, line 219 */ - if (z->c > z->lb) goto lab1; /* atlimit, line 219 */ - { int ret = slice_from_s(z, 4, s_39); /* <-, line 219 */ + z->I[0] = 0; + { int m1 = z->l - z->c; (void)m1; + if (!(eq_s_b(z, 6, s_38))) goto lab1; + if (z->c > z->lb) goto lab1; + { int ret = slice_from_s(z, 4, s_39); if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m1; - z->ket = z->c; /* [, line 220 */ - z->bra = z->c; /* ], line 220 */ - if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-2145255424 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2; /* substring, line 220 */ + z->ket = z->c; + z->bra = z->c; + if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-2145255424 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2; if (!(find_among_b(z, a_7, 19))) goto lab2; - if (z->c > z->lb) goto lab2; /* atlimit, line 220 */ - { int ret = slice_from_s(z, 2, s_40); /* <-, line 224 */ + if (z->c > z->lb) goto lab2; + { int ret = slice_from_s(z, 2, s_40); if (ret < 0) return ret; } goto lab0; lab2: z->c = z->l - m1; - z->ket = z->c; /* [, line 226 */ - z->bra = z->c; /* ], line 226 */ - if (!(find_among_b(z, a_8, 13))) return 0; /* substring, line 226 */ - if (z->c > z->lb) return 0; /* atlimit, line 226 */ - { int ret = slice_from_s(z, 4, s_41); /* <-, line 229 */ + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_8, 13))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 4, s_41); if (ret < 0) return ret; } } @@ -2663,50 +2662,50 @@ static int r_steps3(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_steps4(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 236 */ - if (!(find_among_b(z, a_11, 7))) return 0; /* substring, line 236 */ - z->bra = z->c; /* ], line 236 */ - { int ret = slice_del(z); /* delete, line 238 */ +static int r_steps4(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_11, 7))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 239 */ - z->ket = z->c; /* [, line 240 */ - z->bra = z->c; /* ], line 240 */ - if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-2145255424 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 240 */ + z->I[0] = 0; + z->ket = z->c; + z->bra = z->c; + if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-2145255424 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_10, 19))) return 0; - if (z->c > z->lb) return 0; /* atlimit, line 240 */ - { int ret = slice_from_s(z, 2, s_42); /* <-, line 244 */ + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 2, s_42); if (ret < 0) return ret; } return 1; } -static int r_steps5(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 251 */ - if (!(find_among_b(z, a_14, 11))) return 0; /* substring, line 251 */ - z->bra = z->c; /* ], line 251 */ - { int ret = slice_del(z); /* delete, line 254 */ +static int r_steps5(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_14, 11))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 255 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 259 */ - z->ket = z->c; /* [, line 256 */ - z->bra = z->c; /* ], line 256 */ - if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 181 && z->p[z->c - 1] != 191)) goto lab1; /* substring, line 256 */ + z->I[0] = 0; + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + z->bra = z->c; + if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 181 && z->p[z->c - 1] != 191)) goto lab1; if (!(find_among_b(z, a_12, 7))) goto lab1; - if (z->c > z->lb) goto lab1; /* atlimit, line 256 */ - { int ret = slice_from_s(z, 2, s_43); /* <-, line 258 */ + if (z->c > z->lb) goto lab1; + { int ret = slice_from_s(z, 2, s_43); if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m1; - z->ket = z->c; /* [, line 260 */ - z->bra = z->c; /* ], line 260 */ - if (!(find_among_b(z, a_13, 33))) return 0; /* substring, line 260 */ - if (z->c > z->lb) return 0; /* atlimit, line 260 */ - { int ret = slice_from_s(z, 6, s_44); /* <-, line 264 */ + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_13, 33))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 6, s_44); if (ret < 0) return ret; } } @@ -2714,91 +2713,91 @@ static int r_steps5(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_steps6(struct SN_env * z) { /* backwardmode */ +static int r_steps6(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 271 */ - if (!(find_among_b(z, a_18, 6))) return 0; /* substring, line 271 */ - z->bra = z->c; /* ], line 271 */ - { int ret = slice_del(z); /* delete, line 273 */ + z->ket = z->c; + if (!(find_among_b(z, a_18, 6))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 274 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 278 */ - z->ket = z->c; /* [, line 275 */ - z->bra = z->c; /* ], line 275 */ - if (z->c - 3 <= z->lb || z->p[z->c - 1] != 181) goto lab1; /* substring, line 275 */ + z->I[0] = 0; + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + z->bra = z->c; + if (z->c - 3 <= z->lb || z->p[z->c - 1] != 181) goto lab1; if (!(find_among_b(z, a_15, 5))) goto lab1; - if (z->c > z->lb) goto lab1; /* atlimit, line 275 */ - { int ret = slice_from_s(z, 6, s_45); /* <-, line 277 */ + if (z->c > z->lb) goto lab1; + { int ret = slice_from_s(z, 6, s_45); if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m1; - z->ket = z->c; /* [, line 279 */ - z->bra = z->c; /* ], line 279 */ - if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) goto lab2; /* substring, line 279 */ + z->ket = z->c; + z->bra = z->c; + if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) goto lab2; if (!(find_among_b(z, a_16, 2))) goto lab2; - if (z->c > z->lb) goto lab2; /* atlimit, line 279 */ - { int ret = slice_from_s(z, 2, s_46); /* <-, line 281 */ + if (z->c > z->lb) goto lab2; + { int ret = slice_from_s(z, 2, s_46); if (ret < 0) return ret; } goto lab0; lab2: z->c = z->l - m1; - z->ket = z->c; /* [, line 283 */ - if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 186 && z->p[z->c - 1] != 189)) return 0; /* substring, line 283 */ + z->ket = z->c; + if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 186 && z->p[z->c - 1] != 189)) return 0; among_var = find_among_b(z, a_17, 10); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 283 */ - switch (among_var) { /* among, line 283 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 12, s_47); /* <-, line 284 */ + { int ret = slice_from_s(z, 12, s_47); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 8, s_48); /* <-, line 285 */ + { int ret = slice_from_s(z, 8, s_48); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 10, s_49); /* <-, line 286 */ + { int ret = slice_from_s(z, 10, s_49); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 6, s_50); /* <-, line 287 */ + { int ret = slice_from_s(z, 6, s_50); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 12, s_51); /* <-, line 288 */ + { int ret = slice_from_s(z, 12, s_51); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 10, s_52); /* <-, line 289 */ + { int ret = slice_from_s(z, 10, s_52); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 6, s_53); /* <-, line 290 */ + { int ret = slice_from_s(z, 6, s_53); if (ret < 0) return ret; } break; case 8: - { int ret = slice_from_s(z, 16, s_54); /* <-, line 291 */ + { int ret = slice_from_s(z, 16, s_54); if (ret < 0) return ret; } break; case 9: - { int ret = slice_from_s(z, 12, s_55); /* <-, line 292 */ + { int ret = slice_from_s(z, 12, s_55); if (ret < 0) return ret; } break; case 10: - { int ret = slice_from_s(z, 10, s_56); /* <-, line 293 */ + { int ret = slice_from_s(z, 10, s_56); if (ret < 0) return ret; } break; @@ -2808,59 +2807,59 @@ static int r_steps6(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_steps7(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 300 */ - if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 177 && z->p[z->c - 1] != 185)) return 0; /* substring, line 300 */ +static int r_steps7(struct SN_env * z) { + z->ket = z->c; + if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 177 && z->p[z->c - 1] != 185)) return 0; if (!(find_among_b(z, a_20, 4))) return 0; - z->bra = z->c; /* ], line 300 */ - { int ret = slice_del(z); /* delete, line 302 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 303 */ - z->ket = z->c; /* [, line 304 */ - z->bra = z->c; /* ], line 304 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 135)) return 0; /* substring, line 304 */ + z->I[0] = 0; + z->ket = z->c; + z->bra = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 135)) return 0; if (!(find_among_b(z, a_19, 2))) return 0; - if (z->c > z->lb) return 0; /* atlimit, line 304 */ - { int ret = slice_from_s(z, 8, s_57); /* <-, line 306 */ + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 8, s_57); if (ret < 0) return ret; } return 1; } -static int r_steps8(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 313 */ - if (!(find_among_b(z, a_23, 8))) return 0; /* substring, line 313 */ - z->bra = z->c; /* ], line 313 */ - { int ret = slice_del(z); /* delete, line 315 */ +static int r_steps8(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_23, 8))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 316 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 323 */ - z->ket = z->c; /* [, line 317 */ - z->bra = z->c; /* ], line 317 */ - if (!(find_among_b(z, a_21, 33))) goto lab1; /* substring, line 317 */ - if (z->c > z->lb) goto lab1; /* atlimit, line 317 */ - { int ret = slice_from_s(z, 4, s_58); /* <-, line 322 */ + z->I[0] = 0; + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_21, 33))) goto lab1; + if (z->c > z->lb) goto lab1; + { int ret = slice_from_s(z, 4, s_58); if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m1; - z->ket = z->c; /* [, line 324 */ - z->bra = z->c; /* ], line 324 */ - if (!(find_among_b(z, a_22, 15))) goto lab2; /* substring, line 324 */ - if (z->c > z->lb) goto lab2; /* atlimit, line 324 */ - { int ret = slice_from_s(z, 6, s_59); /* <-, line 327 */ + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_22, 15))) goto lab2; + if (z->c > z->lb) goto lab2; + { int ret = slice_from_s(z, 6, s_59); if (ret < 0) return ret; } goto lab0; lab2: z->c = z->l - m1; - z->ket = z->c; /* [, line 329 */ - z->bra = z->c; /* ], line 329 */ - if (!(eq_s_b(z, 6, s_60))) return 0; /* literal, line 329 */ - { int ret = slice_from_s(z, 6, s_61); /* <-, line 329 */ + z->ket = z->c; + z->bra = z->c; + if (!(eq_s_b(z, 6, s_60))) return 0; + { int ret = slice_from_s(z, 6, s_61); if (ret < 0) return ret; } } @@ -2868,31 +2867,31 @@ static int r_steps8(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_steps9(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 335 */ - if (z->c - 7 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-1610481664 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 335 */ +static int r_steps9(struct SN_env * z) { + z->ket = z->c; + if (z->c - 7 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((-1610481664 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_26, 3))) return 0; - z->bra = z->c; /* ], line 335 */ - { int ret = slice_del(z); /* delete, line 337 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 338 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 341 */ - z->ket = z->c; /* [, line 339 */ - z->bra = z->c; /* ], line 339 */ - if (!(find_among_b(z, a_24, 4))) goto lab1; /* substring, line 339 */ - if (z->c > z->lb) goto lab1; /* atlimit, line 339 */ - { int ret = slice_from_s(z, 4, s_62); /* <-, line 340 */ + z->I[0] = 0; + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_24, 4))) goto lab1; + if (z->c > z->lb) goto lab1; + { int ret = slice_from_s(z, 4, s_62); if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m1; - z->ket = z->c; /* [, line 342 */ - z->bra = z->c; /* ], line 342 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 181 && z->p[z->c - 1] != 189)) return 0; /* substring, line 342 */ + z->ket = z->c; + z->bra = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 181 && z->p[z->c - 1] != 189)) return 0; if (!(find_among_b(z, a_25, 2))) return 0; - { int ret = slice_from_s(z, 4, s_63); /* <-, line 343 */ + { int ret = slice_from_s(z, 4, s_63); if (ret < 0) return ret; } } @@ -2900,43 +2899,43 @@ static int r_steps9(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_steps10(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 350 */ - if (!(find_among_b(z, a_28, 4))) return 0; /* substring, line 350 */ - z->bra = z->c; /* ], line 350 */ - { int ret = slice_del(z); /* delete, line 352 */ +static int r_steps10(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_28, 4))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 353 */ - z->ket = z->c; /* [, line 354 */ - z->bra = z->c; /* ], line 354 */ - if (!(find_among_b(z, a_27, 7))) return 0; /* substring, line 354 */ - if (z->c > z->lb) return 0; /* atlimit, line 354 */ - { int ret = slice_from_s(z, 6, s_64); /* <-, line 356 */ + z->I[0] = 0; + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_27, 7))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 6, s_64); if (ret < 0) return ret; } return 1; } -static int r_step2a(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 363 */ - if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0; /* substring, line 363 */ +static int r_step2a(struct SN_env * z) { + z->ket = z->c; + if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0; if (!(find_among_b(z, a_29, 2))) return 0; - z->bra = z->c; /* ], line 363 */ - { int ret = slice_del(z); /* delete, line 364 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m1 = z->l - z->c; (void)m1; /* not, line 366 */ - z->ket = z->c; /* [, line 366 */ - if (!(find_among_b(z, a_30, 10))) goto lab0; /* substring, line 366 */ - z->bra = z->c; /* ], line 366 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (!(find_among_b(z, a_30, 10))) goto lab0; + z->bra = z->c; return 0; lab0: z->c = z->l - m1; } { int ret; { int saved_c = z->c; - ret = insert_s(z, z->c, z->c, 4, s_65); /* <+, line 369 */ + ret = insert_s(z, z->c, z->c, 4, s_65); z->c = saved_c; } if (ret < 0) return ret; @@ -2944,271 +2943,271 @@ static int r_step2a(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_step2b(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 373 */ - if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0; /* substring, line 373 */ +static int r_step2b(struct SN_env * z) { + z->ket = z->c; + if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0; if (!(find_among_b(z, a_31, 2))) return 0; - z->bra = z->c; /* ], line 373 */ - { int ret = slice_del(z); /* delete, line 374 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 376 */ - z->bra = z->c; /* ], line 376 */ - if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 128 && z->p[z->c - 1] != 187)) return 0; /* substring, line 376 */ + z->ket = z->c; + z->bra = z->c; + if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 128 && z->p[z->c - 1] != 187)) return 0; if (!(find_among_b(z, a_32, 8))) return 0; - { int ret = slice_from_s(z, 4, s_66); /* <-, line 377 */ + { int ret = slice_from_s(z, 4, s_66); if (ret < 0) return ret; } return 1; } -static int r_step2c(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 382 */ - if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0; /* substring, line 382 */ +static int r_step2c(struct SN_env * z) { + z->ket = z->c; + if (z->c - 9 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0; if (!(find_among_b(z, a_33, 2))) return 0; - z->bra = z->c; /* ], line 382 */ - { int ret = slice_del(z); /* delete, line 383 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 385 */ - z->bra = z->c; /* ], line 385 */ - if (!(find_among_b(z, a_34, 15))) return 0; /* substring, line 385 */ - { int ret = slice_from_s(z, 6, s_67); /* <-, line 387 */ + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_34, 15))) return 0; + { int ret = slice_from_s(z, 6, s_67); if (ret < 0) return ret; } return 1; } -static int r_step2d(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 392 */ - if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0; /* substring, line 392 */ +static int r_step2d(struct SN_env * z) { + z->ket = z->c; + if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 131 && z->p[z->c - 1] != 189)) return 0; if (!(find_among_b(z, a_35, 2))) return 0; - z->bra = z->c; /* ], line 392 */ - { int ret = slice_del(z); /* delete, line 393 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 393 */ - z->ket = z->c; /* [, line 395 */ - z->bra = z->c; /* ], line 395 */ - if (!(find_among_b(z, a_36, 8))) return 0; /* substring, line 395 */ - if (z->c > z->lb) return 0; /* atlimit, line 395 */ - { int ret = slice_from_s(z, 2, s_68); /* <-, line 396 */ + z->I[0] = 0; + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_36, 8))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 2, s_68); if (ret < 0) return ret; } return 1; } -static int r_step3(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 401 */ - if (!(find_among_b(z, a_37, 3))) return 0; /* substring, line 401 */ - z->bra = z->c; /* ], line 401 */ - { int ret = slice_del(z); /* delete, line 402 */ +static int r_step3(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_37, 3))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 402 */ - z->ket = z->c; /* [, line 404 */ - z->bra = z->c; /* ], line 404 */ - if (in_grouping_b_U(z, g_v, 945, 969, 0)) return 0; /* grouping v, line 404 */ - { int ret = slice_from_s(z, 2, s_69); /* <-, line 404 */ + z->I[0] = 0; + z->ket = z->c; + z->bra = z->c; + if (in_grouping_b_U(z, g_v, 945, 969, 0)) return 0; + { int ret = slice_from_s(z, 2, s_69); if (ret < 0) return ret; } return 1; } -static int r_step4(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 408 */ - if (!(find_among_b(z, a_38, 4))) return 0; /* substring, line 408 */ - z->bra = z->c; /* ], line 408 */ - { int ret = slice_del(z); /* delete, line 409 */ +static int r_step4(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_38, 4))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 409 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 411 */ - z->ket = z->c; /* [, line 411 */ - z->bra = z->c; /* ], line 411 */ - if (in_grouping_b_U(z, g_v, 945, 969, 0)) goto lab1; /* grouping v, line 411 */ - { int ret = slice_from_s(z, 4, s_70); /* <-, line 411 */ + z->I[0] = 0; + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + z->bra = z->c; + if (in_grouping_b_U(z, g_v, 945, 969, 0)) goto lab1; + { int ret = slice_from_s(z, 4, s_70); if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m1; - z->ket = z->c; /* [, line 412 */ + z->ket = z->c; } lab0: - z->bra = z->c; /* ], line 412 */ - if (!(find_among_b(z, a_39, 36))) return 0; /* substring, line 412 */ - if (z->c > z->lb) return 0; /* atlimit, line 412 */ - { int ret = slice_from_s(z, 4, s_71); /* <-, line 417 */ + z->bra = z->c; + if (!(find_among_b(z, a_39, 36))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 4, s_71); if (ret < 0) return ret; } return 1; } -static int r_step5a(struct SN_env * z) { /* backwardmode */ - { int m1 = z->l - z->c; (void)m1; /* do, line 422 */ - if (!(eq_s_b(z, 10, s_72))) goto lab0; /* literal, line 422 */ - if (z->c > z->lb) goto lab0; /* atlimit, line 422 */ - { int ret = slice_from_s(z, 8, s_73); /* <-, line 422 */ +static int r_step5a(struct SN_env * z) { + { int m1 = z->l - z->c; (void)m1; + if (!(eq_s_b(z, 10, s_72))) goto lab0; + if (z->c > z->lb) goto lab0; + { int ret = slice_from_s(z, 8, s_73); if (ret < 0) return ret; } lab0: z->c = z->l - m1; } - { int m2 = z->l - z->c; (void)m2; /* do, line 423 */ - z->ket = z->c; /* [, line 424 */ - if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab1; /* substring, line 424 */ + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab1; if (!(find_among_b(z, a_40, 5))) goto lab1; - z->bra = z->c; /* ], line 424 */ - { int ret = slice_del(z); /* delete, line 425 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 425 */ + z->I[0] = 0; lab1: z->c = z->l - m2; } - z->ket = z->c; /* [, line 428 */ - if (!(eq_s_b(z, 6, s_74))) return 0; /* literal, line 428 */ - z->bra = z->c; /* ], line 428 */ - { int ret = slice_del(z); /* delete, line 429 */ + z->ket = z->c; + if (!(eq_s_b(z, 6, s_74))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 430 */ - z->ket = z->c; /* [, line 431 */ - z->bra = z->c; /* ], line 431 */ - if (!(find_among_b(z, a_41, 12))) return 0; /* substring, line 431 */ - if (z->c > z->lb) return 0; /* atlimit, line 431 */ - { int ret = slice_from_s(z, 4, s_75); /* <-, line 433 */ + z->I[0] = 0; + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_41, 12))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 4, s_75); if (ret < 0) return ret; } return 1; } -static int r_step5b(struct SN_env * z) { /* backwardmode */ - { int m1 = z->l - z->c; (void)m1; /* do, line 438 */ - z->ket = z->c; /* [, line 439 */ - if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab0; /* substring, line 439 */ +static int r_step5b(struct SN_env * z) { + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab0; if (!(find_among_b(z, a_43, 11))) goto lab0; - z->bra = z->c; /* ], line 439 */ - { int ret = slice_del(z); /* delete, line 442 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 443 */ - z->ket = z->c; /* [, line 444 */ - z->bra = z->c; /* ], line 444 */ - if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 131)) goto lab0; /* substring, line 444 */ + z->I[0] = 0; + z->ket = z->c; + z->bra = z->c; + if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 131)) goto lab0; if (!(find_among_b(z, a_42, 2))) goto lab0; - if (z->c > z->lb) goto lab0; /* atlimit, line 444 */ - { int ret = slice_from_s(z, 8, s_76); /* <-, line 445 */ + if (z->c > z->lb) goto lab0; + { int ret = slice_from_s(z, 8, s_76); if (ret < 0) return ret; } lab0: z->c = z->l - m1; } - z->ket = z->c; /* [, line 450 */ - if (!(eq_s_b(z, 6, s_77))) return 0; /* literal, line 450 */ - z->bra = z->c; /* ], line 450 */ - { int ret = slice_del(z); /* delete, line 451 */ + z->ket = z->c; + if (!(eq_s_b(z, 6, s_77))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 452 */ - { int m2 = z->l - z->c; (void)m2; /* or, line 453 */ - z->ket = z->c; /* [, line 453 */ - z->bra = z->c; /* ], line 453 */ - if (in_grouping_b_U(z, g_v2, 945, 969, 0)) goto lab2; /* grouping v2, line 453 */ - { int ret = slice_from_s(z, 4, s_78); /* <-, line 453 */ + z->I[0] = 0; + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + z->bra = z->c; + if (in_grouping_b_U(z, g_v2, 945, 969, 0)) goto lab2; + { int ret = slice_from_s(z, 4, s_78); if (ret < 0) return ret; } goto lab1; lab2: z->c = z->l - m2; - z->ket = z->c; /* [, line 454 */ + z->ket = z->c; } lab1: - z->bra = z->c; /* ], line 454 */ - if (!(find_among_b(z, a_44, 95))) return 0; /* substring, line 454 */ - if (z->c > z->lb) return 0; /* atlimit, line 454 */ - { int ret = slice_from_s(z, 4, s_79); /* <-, line 471 */ + z->bra = z->c; + if (!(find_among_b(z, a_44, 95))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 4, s_79); if (ret < 0) return ret; } return 1; } -static int r_step5c(struct SN_env * z) { /* backwardmode */ - { int m1 = z->l - z->c; (void)m1; /* do, line 476 */ - z->ket = z->c; /* [, line 477 */ - if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab0; /* substring, line 477 */ +static int r_step5c(struct SN_env * z) { + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (z->c - 9 <= z->lb || z->p[z->c - 1] != 181) goto lab0; if (!(find_among_b(z, a_45, 1))) goto lab0; - z->bra = z->c; /* ], line 477 */ - { int ret = slice_del(z); /* delete, line 478 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 478 */ + z->I[0] = 0; lab0: z->c = z->l - m1; } - z->ket = z->c; /* [, line 481 */ - if (!(eq_s_b(z, 6, s_80))) return 0; /* literal, line 481 */ - z->bra = z->c; /* ], line 481 */ - { int ret = slice_del(z); /* delete, line 482 */ + z->ket = z->c; + if (!(eq_s_b(z, 6, s_80))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 483 */ - { int m2 = z->l - z->c; (void)m2; /* or, line 484 */ - z->ket = z->c; /* [, line 484 */ - z->bra = z->c; /* ], line 484 */ - if (in_grouping_b_U(z, g_v2, 945, 969, 0)) goto lab2; /* grouping v2, line 484 */ - { int ret = slice_from_s(z, 4, s_81); /* <-, line 484 */ + z->I[0] = 0; + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + z->bra = z->c; + if (in_grouping_b_U(z, g_v2, 945, 969, 0)) goto lab2; + { int ret = slice_from_s(z, 4, s_81); if (ret < 0) return ret; } goto lab1; lab2: z->c = z->l - m2; - z->ket = z->c; /* [, line 485 */ - z->bra = z->c; /* ], line 485 */ - if (!(find_among_b(z, a_46, 31))) goto lab3; /* substring, line 485 */ - { int ret = slice_from_s(z, 4, s_82); /* <-, line 489 */ + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_46, 31))) goto lab3; + { int ret = slice_from_s(z, 4, s_82); if (ret < 0) return ret; } goto lab1; lab3: z->c = z->l - m2; - z->ket = z->c; /* [, line 491 */ + z->ket = z->c; } lab1: - z->bra = z->c; /* ], line 491 */ - if (!(find_among_b(z, a_47, 25))) return 0; /* substring, line 491 */ - if (z->c > z->lb) return 0; /* atlimit, line 491 */ - { int ret = slice_from_s(z, 4, s_83); /* <-, line 495 */ + z->bra = z->c; + if (!(find_among_b(z, a_47, 25))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 4, s_83); if (ret < 0) return ret; } return 1; } -static int r_step5d(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 500 */ - if (z->c - 9 <= z->lb || z->p[z->c - 1] != 131) return 0; /* substring, line 500 */ +static int r_step5d(struct SN_env * z) { + z->ket = z->c; + if (z->c - 9 <= z->lb || z->p[z->c - 1] != 131) return 0; if (!(find_among_b(z, a_48, 2))) return 0; - z->bra = z->c; /* ], line 500 */ - { int ret = slice_del(z); /* delete, line 502 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 503 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 504 */ - z->ket = z->c; /* [, line 504 */ - z->bra = z->c; /* ], line 504 */ - if (!(eq_s_b(z, 6, s_84))) goto lab1; /* literal, line 504 */ - if (z->c > z->lb) goto lab1; /* atlimit, line 504 */ - { int ret = slice_from_s(z, 6, s_85); /* <-, line 504 */ + z->I[0] = 0; + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + z->bra = z->c; + if (!(eq_s_b(z, 6, s_84))) goto lab1; + if (z->c > z->lb) goto lab1; + { int ret = slice_from_s(z, 6, s_85); if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m1; - z->ket = z->c; /* [, line 505 */ - z->bra = z->c; /* ], line 505 */ - if (!(eq_s_b(z, 6, s_86))) return 0; /* literal, line 505 */ - { int ret = slice_from_s(z, 6, s_87); /* <-, line 505 */ + z->ket = z->c; + z->bra = z->c; + if (!(eq_s_b(z, 6, s_86))) return 0; + { int ret = slice_from_s(z, 6, s_87); if (ret < 0) return ret; } } @@ -3216,97 +3215,97 @@ static int r_step5d(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_step5e(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 511 */ - if (z->c - 11 <= z->lb || z->p[z->c - 1] != 181) return 0; /* substring, line 511 */ +static int r_step5e(struct SN_env * z) { + z->ket = z->c; + if (z->c - 11 <= z->lb || z->p[z->c - 1] != 181) return 0; if (!(find_among_b(z, a_49, 2))) return 0; - z->bra = z->c; /* ], line 511 */ - { int ret = slice_del(z); /* delete, line 513 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 514 */ - z->ket = z->c; /* [, line 515 */ - z->bra = z->c; /* ], line 515 */ - if (!(eq_s_b(z, 4, s_88))) return 0; /* literal, line 515 */ - if (z->c > z->lb) return 0; /* atlimit, line 515 */ - { int ret = slice_from_s(z, 10, s_89); /* <-, line 515 */ + z->I[0] = 0; + z->ket = z->c; + z->bra = z->c; + if (!(eq_s_b(z, 4, s_88))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 10, s_89); if (ret < 0) return ret; } return 1; } -static int r_step5f(struct SN_env * z) { /* backwardmode */ - { int m1 = z->l - z->c; (void)m1; /* do, line 521 */ - z->ket = z->c; /* [, line 522 */ - if (!(eq_s_b(z, 10, s_90))) goto lab0; /* literal, line 522 */ - z->bra = z->c; /* ], line 522 */ - { int ret = slice_del(z); /* delete, line 523 */ +static int r_step5f(struct SN_env * z) { + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (!(eq_s_b(z, 10, s_90))) goto lab0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 524 */ - z->ket = z->c; /* [, line 525 */ - z->bra = z->c; /* ], line 525 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 128 && z->p[z->c - 1] != 134)) goto lab0; /* substring, line 525 */ + z->I[0] = 0; + z->ket = z->c; + z->bra = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 128 && z->p[z->c - 1] != 134)) goto lab0; if (!(find_among_b(z, a_50, 6))) goto lab0; - if (z->c > z->lb) goto lab0; /* atlimit, line 525 */ - { int ret = slice_from_s(z, 8, s_91); /* <-, line 526 */ + if (z->c > z->lb) goto lab0; + { int ret = slice_from_s(z, 8, s_91); if (ret < 0) return ret; } lab0: z->c = z->l - m1; } - z->ket = z->c; /* [, line 529 */ - if (!(eq_s_b(z, 8, s_92))) return 0; /* literal, line 529 */ - z->bra = z->c; /* ], line 529 */ - { int ret = slice_del(z); /* delete, line 530 */ + z->ket = z->c; + if (!(eq_s_b(z, 8, s_92))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 531 */ - z->ket = z->c; /* [, line 532 */ - z->bra = z->c; /* ], line 532 */ - if (!(find_among_b(z, a_51, 9))) return 0; /* substring, line 532 */ - if (z->c > z->lb) return 0; /* atlimit, line 532 */ - { int ret = slice_from_s(z, 8, s_93); /* <-, line 534 */ + z->I[0] = 0; + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_51, 9))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 8, s_93); if (ret < 0) return ret; } return 1; } -static int r_step5g(struct SN_env * z) { /* backwardmode */ - { int m1 = z->l - z->c; (void)m1; /* do, line 539 */ - z->ket = z->c; /* [, line 540 */ - if (!(find_among_b(z, a_52, 3))) goto lab0; /* substring, line 540 */ - z->bra = z->c; /* ], line 540 */ - { int ret = slice_del(z); /* delete, line 541 */ +static int r_step5g(struct SN_env * z) { + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (!(find_among_b(z, a_52, 3))) goto lab0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 541 */ + z->I[0] = 0; lab0: z->c = z->l - m1; } - z->ket = z->c; /* [, line 544 */ - if (!(find_among_b(z, a_55, 3))) return 0; /* substring, line 544 */ - z->bra = z->c; /* ], line 544 */ - { int ret = slice_del(z); /* delete, line 546 */ + z->ket = z->c; + if (!(find_among_b(z, a_55, 3))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 547 */ - { int m2 = z->l - z->c; (void)m2; /* or, line 550 */ - z->ket = z->c; /* [, line 548 */ - z->bra = z->c; /* ], line 548 */ - if (!(find_among_b(z, a_53, 6))) goto lab2; /* substring, line 548 */ - { int ret = slice_from_s(z, 4, s_94); /* <-, line 549 */ + z->I[0] = 0; + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_53, 6))) goto lab2; + { int ret = slice_from_s(z, 4, s_94); if (ret < 0) return ret; } goto lab1; lab2: z->c = z->l - m2; - z->ket = z->c; /* [, line 551 */ - z->bra = z->c; /* ], line 551 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 184) return 0; /* substring, line 551 */ + z->ket = z->c; + z->bra = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 184) return 0; if (!(find_among_b(z, a_54, 5))) return 0; - if (z->c > z->lb) return 0; /* atlimit, line 551 */ - { int ret = slice_from_s(z, 4, s_95); /* <-, line 552 */ + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 4, s_95); if (ret < 0) return ret; } } @@ -3314,29 +3313,29 @@ static int r_step5g(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_step5h(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 559 */ - if (!(find_among_b(z, a_58, 3))) return 0; /* substring, line 559 */ - z->bra = z->c; /* ], line 559 */ - { int ret = slice_del(z); /* delete, line 561 */ +static int r_step5h(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_58, 3))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 562 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 567 */ - z->ket = z->c; /* [, line 563 */ - z->bra = z->c; /* ], line 563 */ - if (!(find_among_b(z, a_56, 12))) goto lab1; /* substring, line 563 */ - { int ret = slice_from_s(z, 6, s_96); /* <-, line 565 */ + z->I[0] = 0; + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_56, 12))) goto lab1; + { int ret = slice_from_s(z, 6, s_96); if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m1; - z->ket = z->c; /* [, line 568 */ - z->bra = z->c; /* ], line 568 */ - if (!(find_among_b(z, a_57, 25))) return 0; /* substring, line 568 */ - if (z->c > z->lb) return 0; /* atlimit, line 568 */ - { int ret = slice_from_s(z, 6, s_97); /* <-, line 572 */ + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_57, 25))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 6, s_97); if (ret < 0) return ret; } } @@ -3344,48 +3343,48 @@ static int r_step5h(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_step5i(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 579 */ - if (!(find_among_b(z, a_62, 3))) return 0; /* substring, line 579 */ - z->bra = z->c; /* ], line 579 */ - { int ret = slice_del(z); /* delete, line 581 */ +static int r_step5i(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_62, 3))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 582 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 583 */ - z->ket = z->c; /* [, line 583 */ - z->bra = z->c; /* ], line 583 */ - if (!(eq_s_b(z, 8, s_98))) goto lab1; /* literal, line 583 */ - { int ret = slice_from_s(z, 4, s_99); /* <-, line 583 */ + z->I[0] = 0; + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + z->bra = z->c; + if (!(eq_s_b(z, 8, s_98))) goto lab1; + { int ret = slice_from_s(z, 4, s_99); if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m1; - { int m2 = z->l - z->c; (void)m2; /* not, line 584 */ - z->ket = z->c; /* [, line 584 */ - if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 134 && z->p[z->c - 1] != 135)) goto lab2; /* substring, line 584 */ + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 134 && z->p[z->c - 1] != 135)) goto lab2; if (!(find_among_b(z, a_59, 2))) goto lab2; - z->bra = z->c; /* ], line 584 */ + z->bra = z->c; return 0; lab2: z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* or, line 588 */ - z->ket = z->c; /* [, line 585 */ - z->bra = z->c; /* ], line 585 */ - if (!(find_among_b(z, a_60, 10))) goto lab4; /* substring, line 585 */ - { int ret = slice_from_s(z, 4, s_100); /* <-, line 587 */ + { int m3 = z->l - z->c; (void)m3; + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_60, 10))) goto lab4; + { int ret = slice_from_s(z, 4, s_100); if (ret < 0) return ret; } goto lab3; lab4: z->c = z->l - m3; - z->ket = z->c; /* [, line 589 */ - z->bra = z->c; /* ], line 589 */ - if (!(find_among_b(z, a_61, 44))) return 0; /* substring, line 589 */ - if (z->c > z->lb) return 0; /* atlimit, line 589 */ - { int ret = slice_from_s(z, 4, s_101); /* <-, line 595 */ + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_61, 44))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 4, s_101); if (ret < 0) return ret; } } @@ -3396,315 +3395,315 @@ static int r_step5i(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_step5j(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 603 */ - if (!(find_among_b(z, a_63, 3))) return 0; /* substring, line 603 */ - z->bra = z->c; /* ], line 603 */ - { int ret = slice_del(z); /* delete, line 604 */ +static int r_step5j(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_63, 3))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 604 */ - z->ket = z->c; /* [, line 606 */ - z->bra = z->c; /* ], line 606 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 189) return 0; /* substring, line 606 */ + z->I[0] = 0; + z->ket = z->c; + z->bra = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 189) return 0; if (!(find_among_b(z, a_64, 6))) return 0; - if (z->c > z->lb) return 0; /* atlimit, line 606 */ - { int ret = slice_from_s(z, 4, s_102); /* <-, line 607 */ + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 4, s_102); if (ret < 0) return ret; } return 1; } -static int r_step5k(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 612 */ - if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0; /* substring, line 612 */ +static int r_step5k(struct SN_env * z) { + z->ket = z->c; + if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0; if (!(find_among_b(z, a_65, 1))) return 0; - z->bra = z->c; /* ], line 612 */ - { int ret = slice_del(z); /* delete, line 613 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 613 */ - z->ket = z->c; /* [, line 615 */ - z->bra = z->c; /* ], line 615 */ - if (!(find_among_b(z, a_66, 10))) return 0; /* substring, line 615 */ - if (z->c > z->lb) return 0; /* atlimit, line 615 */ - { int ret = slice_from_s(z, 6, s_103); /* <-, line 617 */ + z->I[0] = 0; + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_66, 10))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 6, s_103); if (ret < 0) return ret; } return 1; } -static int r_step5l(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 622 */ - if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0; /* substring, line 622 */ +static int r_step5l(struct SN_env * z) { + z->ket = z->c; + if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0; if (!(find_among_b(z, a_67, 3))) return 0; - z->bra = z->c; /* ], line 622 */ - { int ret = slice_del(z); /* delete, line 623 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 623 */ - z->ket = z->c; /* [, line 625 */ - z->bra = z->c; /* ], line 625 */ - if (!(find_among_b(z, a_68, 6))) return 0; /* substring, line 625 */ - if (z->c > z->lb) return 0; /* atlimit, line 625 */ - { int ret = slice_from_s(z, 6, s_104); /* <-, line 626 */ + z->I[0] = 0; + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_68, 6))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 6, s_104); if (ret < 0) return ret; } return 1; } -static int r_step5m(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 631 */ - if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0; /* substring, line 631 */ +static int r_step5m(struct SN_env * z) { + z->ket = z->c; + if (z->c - 7 <= z->lb || z->p[z->c - 1] != 181) return 0; if (!(find_among_b(z, a_69, 3))) return 0; - z->bra = z->c; /* ], line 631 */ - { int ret = slice_del(z); /* delete, line 632 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 0; /* unset test1, line 632 */ - z->ket = z->c; /* [, line 634 */ - z->bra = z->c; /* ], line 634 */ - if (!(find_among_b(z, a_70, 7))) return 0; /* substring, line 634 */ - if (z->c > z->lb) return 0; /* atlimit, line 634 */ - { int ret = slice_from_s(z, 6, s_105); /* <-, line 636 */ + z->I[0] = 0; + z->ket = z->c; + z->bra = z->c; + if (!(find_among_b(z, a_70, 7))) return 0; + if (z->c > z->lb) return 0; + { int ret = slice_from_s(z, 6, s_105); if (ret < 0) return ret; } return 1; } -static int r_step6(struct SN_env * z) { /* backwardmode */ - { int m1 = z->l - z->c; (void)m1; /* do, line 641 */ - z->ket = z->c; /* [, line 642 */ - if (!(find_among_b(z, a_71, 3))) goto lab0; /* substring, line 642 */ - z->bra = z->c; /* ], line 642 */ - { int ret = slice_from_s(z, 4, s_106); /* <-, line 643 */ +static int r_step6(struct SN_env * z) { + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (!(find_among_b(z, a_71, 3))) goto lab0; + z->bra = z->c; + { int ret = slice_from_s(z, 4, s_106); if (ret < 0) return ret; } lab0: z->c = z->l - m1; } - if (!(z->B[0])) return 0; /* Boolean test test1, line 646 */ - z->ket = z->c; /* [, line 647 */ - if (!(find_among_b(z, a_72, 84))) return 0; /* substring, line 647 */ - z->bra = z->c; /* ], line 647 */ - { int ret = slice_del(z); /* delete, line 657 */ + if (!(z->I[0])) return 0; + z->ket = z->c; + if (!(find_among_b(z, a_72, 84))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_step7(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 662 */ - if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 132)) return 0; /* substring, line 662 */ +static int r_step7(struct SN_env * z) { + z->ket = z->c; + if (z->c - 7 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 132)) return 0; if (!(find_among_b(z, a_73, 8))) return 0; - z->bra = z->c; /* ], line 662 */ - { int ret = slice_del(z); /* delete, line 663 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -extern int greek_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - z->lb = z->c; z->c = z->l; /* backwards, line 669 */ +extern int greek_UTF_8_stem(struct SN_env * z) { + z->lb = z->c; z->c = z->l; - { int m1 = z->l - z->c; (void)m1; /* do, line 670 */ - { int ret = r_tolower(z); /* call tolower, line 670 */ + { int m1 = z->l - z->c; (void)m1; + { int ret = r_tolower(z); if (ret < 0) return ret; } z->c = z->l - m1; } - { int ret = r_has_min_length(z); /* call has_min_length, line 671 */ + { int ret = r_has_min_length(z); if (ret <= 0) return ret; } - z->B[0] = 1; /* set test1, line 672 */ - { int m2 = z->l - z->c; (void)m2; /* do, line 673 */ - { int ret = r_step1(z); /* call step1, line 673 */ + z->I[0] = 1; + { int m2 = z->l - z->c; (void)m2; + { int ret = r_step1(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 674 */ - { int ret = r_steps1(z); /* call steps1, line 674 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_steps1(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 675 */ - { int ret = r_steps2(z); /* call steps2, line 675 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_steps2(z); if (ret < 0) return ret; } z->c = z->l - m4; } - { int m5 = z->l - z->c; (void)m5; /* do, line 676 */ - { int ret = r_steps3(z); /* call steps3, line 676 */ + { int m5 = z->l - z->c; (void)m5; + { int ret = r_steps3(z); if (ret < 0) return ret; } z->c = z->l - m5; } - { int m6 = z->l - z->c; (void)m6; /* do, line 677 */ - { int ret = r_steps4(z); /* call steps4, line 677 */ + { int m6 = z->l - z->c; (void)m6; + { int ret = r_steps4(z); if (ret < 0) return ret; } z->c = z->l - m6; } - { int m7 = z->l - z->c; (void)m7; /* do, line 678 */ - { int ret = r_steps5(z); /* call steps5, line 678 */ + { int m7 = z->l - z->c; (void)m7; + { int ret = r_steps5(z); if (ret < 0) return ret; } z->c = z->l - m7; } - { int m8 = z->l - z->c; (void)m8; /* do, line 679 */ - { int ret = r_steps6(z); /* call steps6, line 679 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_steps6(z); if (ret < 0) return ret; } z->c = z->l - m8; } - { int m9 = z->l - z->c; (void)m9; /* do, line 680 */ - { int ret = r_steps7(z); /* call steps7, line 680 */ + { int m9 = z->l - z->c; (void)m9; + { int ret = r_steps7(z); if (ret < 0) return ret; } z->c = z->l - m9; } - { int m10 = z->l - z->c; (void)m10; /* do, line 681 */ - { int ret = r_steps8(z); /* call steps8, line 681 */ + { int m10 = z->l - z->c; (void)m10; + { int ret = r_steps8(z); if (ret < 0) return ret; } z->c = z->l - m10; } - { int m11 = z->l - z->c; (void)m11; /* do, line 682 */ - { int ret = r_steps9(z); /* call steps9, line 682 */ + { int m11 = z->l - z->c; (void)m11; + { int ret = r_steps9(z); if (ret < 0) return ret; } z->c = z->l - m11; } - { int m12 = z->l - z->c; (void)m12; /* do, line 683 */ - { int ret = r_steps10(z); /* call steps10, line 683 */ + { int m12 = z->l - z->c; (void)m12; + { int ret = r_steps10(z); if (ret < 0) return ret; } z->c = z->l - m12; } - { int m13 = z->l - z->c; (void)m13; /* do, line 684 */ - { int ret = r_step2a(z); /* call step2a, line 684 */ + { int m13 = z->l - z->c; (void)m13; + { int ret = r_step2a(z); if (ret < 0) return ret; } z->c = z->l - m13; } - { int m14 = z->l - z->c; (void)m14; /* do, line 685 */ - { int ret = r_step2b(z); /* call step2b, line 685 */ + { int m14 = z->l - z->c; (void)m14; + { int ret = r_step2b(z); if (ret < 0) return ret; } z->c = z->l - m14; } - { int m15 = z->l - z->c; (void)m15; /* do, line 686 */ - { int ret = r_step2c(z); /* call step2c, line 686 */ + { int m15 = z->l - z->c; (void)m15; + { int ret = r_step2c(z); if (ret < 0) return ret; } z->c = z->l - m15; } - { int m16 = z->l - z->c; (void)m16; /* do, line 687 */ - { int ret = r_step2d(z); /* call step2d, line 687 */ + { int m16 = z->l - z->c; (void)m16; + { int ret = r_step2d(z); if (ret < 0) return ret; } z->c = z->l - m16; } - { int m17 = z->l - z->c; (void)m17; /* do, line 688 */ - { int ret = r_step3(z); /* call step3, line 688 */ + { int m17 = z->l - z->c; (void)m17; + { int ret = r_step3(z); if (ret < 0) return ret; } z->c = z->l - m17; } - { int m18 = z->l - z->c; (void)m18; /* do, line 689 */ - { int ret = r_step4(z); /* call step4, line 689 */ + { int m18 = z->l - z->c; (void)m18; + { int ret = r_step4(z); if (ret < 0) return ret; } z->c = z->l - m18; } - { int m19 = z->l - z->c; (void)m19; /* do, line 690 */ - { int ret = r_step5a(z); /* call step5a, line 690 */ + { int m19 = z->l - z->c; (void)m19; + { int ret = r_step5a(z); if (ret < 0) return ret; } z->c = z->l - m19; } - { int m20 = z->l - z->c; (void)m20; /* do, line 691 */ - { int ret = r_step5b(z); /* call step5b, line 691 */ + { int m20 = z->l - z->c; (void)m20; + { int ret = r_step5b(z); if (ret < 0) return ret; } z->c = z->l - m20; } - { int m21 = z->l - z->c; (void)m21; /* do, line 692 */ - { int ret = r_step5c(z); /* call step5c, line 692 */ + { int m21 = z->l - z->c; (void)m21; + { int ret = r_step5c(z); if (ret < 0) return ret; } z->c = z->l - m21; } - { int m22 = z->l - z->c; (void)m22; /* do, line 693 */ - { int ret = r_step5d(z); /* call step5d, line 693 */ + { int m22 = z->l - z->c; (void)m22; + { int ret = r_step5d(z); if (ret < 0) return ret; } z->c = z->l - m22; } - { int m23 = z->l - z->c; (void)m23; /* do, line 694 */ - { int ret = r_step5e(z); /* call step5e, line 694 */ + { int m23 = z->l - z->c; (void)m23; + { int ret = r_step5e(z); if (ret < 0) return ret; } z->c = z->l - m23; } - { int m24 = z->l - z->c; (void)m24; /* do, line 695 */ - { int ret = r_step5f(z); /* call step5f, line 695 */ + { int m24 = z->l - z->c; (void)m24; + { int ret = r_step5f(z); if (ret < 0) return ret; } z->c = z->l - m24; } - { int m25 = z->l - z->c; (void)m25; /* do, line 696 */ - { int ret = r_step5g(z); /* call step5g, line 696 */ + { int m25 = z->l - z->c; (void)m25; + { int ret = r_step5g(z); if (ret < 0) return ret; } z->c = z->l - m25; } - { int m26 = z->l - z->c; (void)m26; /* do, line 697 */ - { int ret = r_step5h(z); /* call step5h, line 697 */ + { int m26 = z->l - z->c; (void)m26; + { int ret = r_step5h(z); if (ret < 0) return ret; } z->c = z->l - m26; } - { int m27 = z->l - z->c; (void)m27; /* do, line 698 */ - { int ret = r_step5j(z); /* call step5j, line 698 */ + { int m27 = z->l - z->c; (void)m27; + { int ret = r_step5j(z); if (ret < 0) return ret; } z->c = z->l - m27; } - { int m28 = z->l - z->c; (void)m28; /* do, line 699 */ - { int ret = r_step5i(z); /* call step5i, line 699 */ + { int m28 = z->l - z->c; (void)m28; + { int ret = r_step5i(z); if (ret < 0) return ret; } z->c = z->l - m28; } - { int m29 = z->l - z->c; (void)m29; /* do, line 700 */ - { int ret = r_step5k(z); /* call step5k, line 700 */ + { int m29 = z->l - z->c; (void)m29; + { int ret = r_step5k(z); if (ret < 0) return ret; } z->c = z->l - m29; } - { int m30 = z->l - z->c; (void)m30; /* do, line 701 */ - { int ret = r_step5l(z); /* call step5l, line 701 */ + { int m30 = z->l - z->c; (void)m30; + { int ret = r_step5l(z); if (ret < 0) return ret; } z->c = z->l - m30; } - { int m31 = z->l - z->c; (void)m31; /* do, line 702 */ - { int ret = r_step5m(z); /* call step5m, line 702 */ + { int m31 = z->l - z->c; (void)m31; + { int ret = r_step5m(z); if (ret < 0) return ret; } z->c = z->l - m31; } - { int m32 = z->l - z->c; (void)m32; /* do, line 703 */ - { int ret = r_step6(z); /* call step6, line 703 */ + { int m32 = z->l - z->c; (void)m32; + { int ret = r_step6(z); if (ret < 0) return ret; } z->c = z->l - m32; } - { int m33 = z->l - z->c; (void)m33; /* do, line 704 */ - { int ret = r_step7(z); /* call step7, line 704 */ + { int m33 = z->l - z->c; (void)m33; + { int ret = r_step7(z); if (ret < 0) return ret; } z->c = z->l - m33; @@ -3713,7 +3712,7 @@ extern int greek_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * greek_UTF_8_create_env(void) { return SN_create_env(0, 0, 1); } +extern struct SN_env * greek_UTF_8_create_env(void) { return SN_create_env(0, 1); } extern void greek_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_hindi.c b/src/backend/snowball/libstemmer/stem_UTF_8_hindi.c index 06bc674eb90fb..68f9c557af950 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_hindi.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_hindi.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -157,176 +157,176 @@ static const symbol s_0_131[3] = { 0xE0, 0xA4, 0xBF }; static const struct among a_0[132] = { -/* 0 */ { 3, s_0_0, -1, -1, 0}, -/* 1 */ { 12, s_0_1, 0, -1, 0}, -/* 2 */ { 12, s_0_2, 0, -1, 0}, -/* 3 */ { 12, s_0_3, 0, -1, 0}, -/* 4 */ { 15, s_0_4, 3, -1, 0}, -/* 5 */ { 15, s_0_5, 3, -1, 0}, -/* 6 */ { 12, s_0_6, 0, -1, 0}, -/* 7 */ { 15, s_0_7, 6, -1, 0}, -/* 8 */ { 15, s_0_8, 6, -1, 0}, -/* 9 */ { 9, s_0_9, 0, -1, 0}, -/* 10 */ { 9, s_0_10, 0, -1, 0}, -/* 11 */ { 9, s_0_11, 0, -1, 0}, -/* 12 */ { 12, s_0_12, 11, -1, 0}, -/* 13 */ { 12, s_0_13, 11, -1, 0}, -/* 14 */ { 9, s_0_14, 0, -1, 0}, -/* 15 */ { 12, s_0_15, 14, -1, 0}, -/* 16 */ { 12, s_0_16, 14, -1, 0}, -/* 17 */ { 6, s_0_17, 0, -1, r_CONSONANT}, -/* 18 */ { 9, s_0_18, 17, -1, 0}, -/* 19 */ { 9, s_0_19, 17, -1, 0}, -/* 20 */ { 9, s_0_20, 17, -1, 0}, -/* 21 */ { 6, s_0_21, 0, -1, r_CONSONANT}, -/* 22 */ { 9, s_0_22, 21, -1, 0}, -/* 23 */ { 6, s_0_23, -1, -1, 0}, -/* 24 */ { 6, s_0_24, -1, -1, 0}, -/* 25 */ { 12, s_0_25, 24, -1, 0}, -/* 26 */ { 15, s_0_26, 25, -1, 0}, -/* 27 */ { 15, s_0_27, 25, -1, 0}, -/* 28 */ { 12, s_0_28, 24, -1, 0}, -/* 29 */ { 3, s_0_29, -1, -1, 0}, -/* 30 */ { 6, s_0_30, -1, -1, 0}, -/* 31 */ { 9, s_0_31, 30, -1, r_CONSONANT}, -/* 32 */ { 12, s_0_32, 31, -1, 0}, -/* 33 */ { 12, s_0_33, 31, -1, 0}, -/* 34 */ { 12, s_0_34, 31, -1, 0}, -/* 35 */ { 6, s_0_35, -1, -1, 0}, -/* 36 */ { 9, s_0_36, 35, -1, 0}, -/* 37 */ { 9, s_0_37, 35, -1, 0}, -/* 38 */ { 6, s_0_38, -1, -1, 0}, -/* 39 */ { 6, s_0_39, -1, -1, 0}, -/* 40 */ { 9, s_0_40, 39, -1, 0}, -/* 41 */ { 9, s_0_41, 39, -1, 0}, -/* 42 */ { 6, s_0_42, -1, -1, 0}, -/* 43 */ { 12, s_0_43, 42, -1, 0}, -/* 44 */ { 15, s_0_44, 43, -1, 0}, -/* 45 */ { 15, s_0_45, 43, -1, 0}, -/* 46 */ { 12, s_0_46, 42, -1, 0}, -/* 47 */ { 6, s_0_47, -1, -1, 0}, -/* 48 */ { 9, s_0_48, 47, -1, 0}, -/* 49 */ { 9, s_0_49, 47, -1, 0}, -/* 50 */ { 9, s_0_50, 47, -1, 0}, -/* 51 */ { 9, s_0_51, 47, -1, 0}, -/* 52 */ { 12, s_0_52, 51, -1, r_CONSONANT}, -/* 53 */ { 15, s_0_53, 52, -1, 0}, -/* 54 */ { 12, s_0_54, 51, -1, r_CONSONANT}, -/* 55 */ { 15, s_0_55, 54, -1, 0}, -/* 56 */ { 6, s_0_56, -1, -1, 0}, -/* 57 */ { 9, s_0_57, 56, -1, 0}, -/* 58 */ { 9, s_0_58, 56, -1, 0}, -/* 59 */ { 9, s_0_59, 56, -1, 0}, -/* 60 */ { 9, s_0_60, 56, -1, 0}, -/* 61 */ { 12, s_0_61, 60, -1, r_CONSONANT}, -/* 62 */ { 15, s_0_62, 61, -1, 0}, -/* 63 */ { 12, s_0_63, 60, -1, r_CONSONANT}, -/* 64 */ { 15, s_0_64, 63, -1, 0}, -/* 65 */ { 6, s_0_65, -1, -1, 0}, -/* 66 */ { 12, s_0_66, 65, -1, 0}, -/* 67 */ { 15, s_0_67, 66, -1, 0}, -/* 68 */ { 15, s_0_68, 66, -1, 0}, -/* 69 */ { 12, s_0_69, 65, -1, 0}, -/* 70 */ { 3, s_0_70, -1, -1, 0}, -/* 71 */ { 3, s_0_71, -1, -1, 0}, -/* 72 */ { 3, s_0_72, -1, -1, 0}, -/* 73 */ { 3, s_0_73, -1, -1, 0}, -/* 74 */ { 3, s_0_74, -1, -1, 0}, -/* 75 */ { 12, s_0_75, 74, -1, 0}, -/* 76 */ { 12, s_0_76, 74, -1, 0}, -/* 77 */ { 15, s_0_77, 76, -1, 0}, -/* 78 */ { 15, s_0_78, 76, -1, 0}, -/* 79 */ { 9, s_0_79, 74, -1, 0}, -/* 80 */ { 9, s_0_80, 74, -1, 0}, -/* 81 */ { 12, s_0_81, 80, -1, 0}, -/* 82 */ { 12, s_0_82, 80, -1, 0}, -/* 83 */ { 6, s_0_83, 74, -1, r_CONSONANT}, -/* 84 */ { 9, s_0_84, 83, -1, 0}, -/* 85 */ { 9, s_0_85, 83, -1, 0}, -/* 86 */ { 9, s_0_86, 83, -1, 0}, -/* 87 */ { 6, s_0_87, 74, -1, r_CONSONANT}, -/* 88 */ { 9, s_0_88, 87, -1, 0}, -/* 89 */ { 9, s_0_89, 87, -1, 0}, -/* 90 */ { 9, s_0_90, 87, -1, 0}, -/* 91 */ { 3, s_0_91, -1, -1, 0}, -/* 92 */ { 6, s_0_92, 91, -1, 0}, -/* 93 */ { 6, s_0_93, 91, -1, 0}, -/* 94 */ { 3, s_0_94, -1, -1, 0}, -/* 95 */ { 3, s_0_95, -1, -1, 0}, -/* 96 */ { 3, s_0_96, -1, -1, 0}, -/* 97 */ { 3, s_0_97, -1, -1, 0}, -/* 98 */ { 3, s_0_98, -1, -1, 0}, -/* 99 */ { 6, s_0_99, 98, -1, 0}, -/*100 */ { 6, s_0_100, 98, -1, 0}, -/*101 */ { 9, s_0_101, 100, -1, 0}, -/*102 */ { 9, s_0_102, 100, -1, 0}, -/*103 */ { 6, s_0_103, 98, -1, 0}, -/*104 */ { 6, s_0_104, 98, -1, 0}, -/*105 */ { 3, s_0_105, -1, -1, 0}, -/*106 */ { 6, s_0_106, 105, -1, 0}, -/*107 */ { 6, s_0_107, 105, -1, 0}, -/*108 */ { 6, s_0_108, -1, -1, r_CONSONANT}, -/*109 */ { 9, s_0_109, 108, -1, 0}, -/*110 */ { 9, s_0_110, 108, -1, 0}, -/*111 */ { 9, s_0_111, 108, -1, 0}, -/*112 */ { 3, s_0_112, -1, -1, 0}, -/*113 */ { 12, s_0_113, 112, -1, 0}, -/*114 */ { 12, s_0_114, 112, -1, 0}, -/*115 */ { 15, s_0_115, 114, -1, 0}, -/*116 */ { 15, s_0_116, 114, -1, 0}, -/*117 */ { 9, s_0_117, 112, -1, 0}, -/*118 */ { 9, s_0_118, 112, -1, 0}, -/*119 */ { 12, s_0_119, 118, -1, 0}, -/*120 */ { 12, s_0_120, 118, -1, 0}, -/*121 */ { 6, s_0_121, 112, -1, r_CONSONANT}, -/*122 */ { 9, s_0_122, 121, -1, 0}, -/*123 */ { 9, s_0_123, 121, -1, 0}, -/*124 */ { 9, s_0_124, 121, -1, 0}, -/*125 */ { 6, s_0_125, 112, -1, r_CONSONANT}, -/*126 */ { 9, s_0_126, 125, -1, 0}, -/*127 */ { 9, s_0_127, 125, -1, 0}, -/*128 */ { 9, s_0_128, 125, -1, 0}, -/*129 */ { 9, s_0_129, 112, -1, 0}, -/*130 */ { 9, s_0_130, 112, -1, 0}, -/*131 */ { 3, s_0_131, -1, -1, 0} +{ 3, s_0_0, -1, -1, 0}, +{ 12, s_0_1, 0, -1, 0}, +{ 12, s_0_2, 0, -1, 0}, +{ 12, s_0_3, 0, -1, 0}, +{ 15, s_0_4, 3, -1, 0}, +{ 15, s_0_5, 3, -1, 0}, +{ 12, s_0_6, 0, -1, 0}, +{ 15, s_0_7, 6, -1, 0}, +{ 15, s_0_8, 6, -1, 0}, +{ 9, s_0_9, 0, -1, 0}, +{ 9, s_0_10, 0, -1, 0}, +{ 9, s_0_11, 0, -1, 0}, +{ 12, s_0_12, 11, -1, 0}, +{ 12, s_0_13, 11, -1, 0}, +{ 9, s_0_14, 0, -1, 0}, +{ 12, s_0_15, 14, -1, 0}, +{ 12, s_0_16, 14, -1, 0}, +{ 6, s_0_17, 0, -1, r_CONSONANT}, +{ 9, s_0_18, 17, -1, 0}, +{ 9, s_0_19, 17, -1, 0}, +{ 9, s_0_20, 17, -1, 0}, +{ 6, s_0_21, 0, -1, r_CONSONANT}, +{ 9, s_0_22, 21, -1, 0}, +{ 6, s_0_23, -1, -1, 0}, +{ 6, s_0_24, -1, -1, 0}, +{ 12, s_0_25, 24, -1, 0}, +{ 15, s_0_26, 25, -1, 0}, +{ 15, s_0_27, 25, -1, 0}, +{ 12, s_0_28, 24, -1, 0}, +{ 3, s_0_29, -1, -1, 0}, +{ 6, s_0_30, -1, -1, 0}, +{ 9, s_0_31, 30, -1, r_CONSONANT}, +{ 12, s_0_32, 31, -1, 0}, +{ 12, s_0_33, 31, -1, 0}, +{ 12, s_0_34, 31, -1, 0}, +{ 6, s_0_35, -1, -1, 0}, +{ 9, s_0_36, 35, -1, 0}, +{ 9, s_0_37, 35, -1, 0}, +{ 6, s_0_38, -1, -1, 0}, +{ 6, s_0_39, -1, -1, 0}, +{ 9, s_0_40, 39, -1, 0}, +{ 9, s_0_41, 39, -1, 0}, +{ 6, s_0_42, -1, -1, 0}, +{ 12, s_0_43, 42, -1, 0}, +{ 15, s_0_44, 43, -1, 0}, +{ 15, s_0_45, 43, -1, 0}, +{ 12, s_0_46, 42, -1, 0}, +{ 6, s_0_47, -1, -1, 0}, +{ 9, s_0_48, 47, -1, 0}, +{ 9, s_0_49, 47, -1, 0}, +{ 9, s_0_50, 47, -1, 0}, +{ 9, s_0_51, 47, -1, 0}, +{ 12, s_0_52, 51, -1, r_CONSONANT}, +{ 15, s_0_53, 52, -1, 0}, +{ 12, s_0_54, 51, -1, r_CONSONANT}, +{ 15, s_0_55, 54, -1, 0}, +{ 6, s_0_56, -1, -1, 0}, +{ 9, s_0_57, 56, -1, 0}, +{ 9, s_0_58, 56, -1, 0}, +{ 9, s_0_59, 56, -1, 0}, +{ 9, s_0_60, 56, -1, 0}, +{ 12, s_0_61, 60, -1, r_CONSONANT}, +{ 15, s_0_62, 61, -1, 0}, +{ 12, s_0_63, 60, -1, r_CONSONANT}, +{ 15, s_0_64, 63, -1, 0}, +{ 6, s_0_65, -1, -1, 0}, +{ 12, s_0_66, 65, -1, 0}, +{ 15, s_0_67, 66, -1, 0}, +{ 15, s_0_68, 66, -1, 0}, +{ 12, s_0_69, 65, -1, 0}, +{ 3, s_0_70, -1, -1, 0}, +{ 3, s_0_71, -1, -1, 0}, +{ 3, s_0_72, -1, -1, 0}, +{ 3, s_0_73, -1, -1, 0}, +{ 3, s_0_74, -1, -1, 0}, +{ 12, s_0_75, 74, -1, 0}, +{ 12, s_0_76, 74, -1, 0}, +{ 15, s_0_77, 76, -1, 0}, +{ 15, s_0_78, 76, -1, 0}, +{ 9, s_0_79, 74, -1, 0}, +{ 9, s_0_80, 74, -1, 0}, +{ 12, s_0_81, 80, -1, 0}, +{ 12, s_0_82, 80, -1, 0}, +{ 6, s_0_83, 74, -1, r_CONSONANT}, +{ 9, s_0_84, 83, -1, 0}, +{ 9, s_0_85, 83, -1, 0}, +{ 9, s_0_86, 83, -1, 0}, +{ 6, s_0_87, 74, -1, r_CONSONANT}, +{ 9, s_0_88, 87, -1, 0}, +{ 9, s_0_89, 87, -1, 0}, +{ 9, s_0_90, 87, -1, 0}, +{ 3, s_0_91, -1, -1, 0}, +{ 6, s_0_92, 91, -1, 0}, +{ 6, s_0_93, 91, -1, 0}, +{ 3, s_0_94, -1, -1, 0}, +{ 3, s_0_95, -1, -1, 0}, +{ 3, s_0_96, -1, -1, 0}, +{ 3, s_0_97, -1, -1, 0}, +{ 3, s_0_98, -1, -1, 0}, +{ 6, s_0_99, 98, -1, 0}, +{ 6, s_0_100, 98, -1, 0}, +{ 9, s_0_101, 100, -1, 0}, +{ 9, s_0_102, 100, -1, 0}, +{ 6, s_0_103, 98, -1, 0}, +{ 6, s_0_104, 98, -1, 0}, +{ 3, s_0_105, -1, -1, 0}, +{ 6, s_0_106, 105, -1, 0}, +{ 6, s_0_107, 105, -1, 0}, +{ 6, s_0_108, -1, -1, r_CONSONANT}, +{ 9, s_0_109, 108, -1, 0}, +{ 9, s_0_110, 108, -1, 0}, +{ 9, s_0_111, 108, -1, 0}, +{ 3, s_0_112, -1, -1, 0}, +{ 12, s_0_113, 112, -1, 0}, +{ 12, s_0_114, 112, -1, 0}, +{ 15, s_0_115, 114, -1, 0}, +{ 15, s_0_116, 114, -1, 0}, +{ 9, s_0_117, 112, -1, 0}, +{ 9, s_0_118, 112, -1, 0}, +{ 12, s_0_119, 118, -1, 0}, +{ 12, s_0_120, 118, -1, 0}, +{ 6, s_0_121, 112, -1, r_CONSONANT}, +{ 9, s_0_122, 121, -1, 0}, +{ 9, s_0_123, 121, -1, 0}, +{ 9, s_0_124, 121, -1, 0}, +{ 6, s_0_125, 112, -1, r_CONSONANT}, +{ 9, s_0_126, 125, -1, 0}, +{ 9, s_0_127, 125, -1, 0}, +{ 9, s_0_128, 125, -1, 0}, +{ 9, s_0_129, 112, -1, 0}, +{ 9, s_0_130, 112, -1, 0}, +{ 3, s_0_131, -1, -1, 0} }; static const unsigned char g_consonant[] = { 255, 255, 255, 255, 159, 0, 0, 0, 248, 7 }; -static int r_CONSONANT(struct SN_env * z) { /* backwardmode */ - if (in_grouping_b_U(z, g_consonant, 2325, 2399, 0)) return 0; /* grouping consonant, line 129 */ +static int r_CONSONANT(struct SN_env * z) { + if (in_grouping_b_U(z, g_consonant, 2325, 2399, 0)) return 0; return 1; } -extern int hindi_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - { int c_test1 = z->c; /* test, line 132 */ - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); +extern int hindi_UTF_8_stem(struct SN_env * z) { + { int c_test1 = z->c; + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) return 0; - z->c = ret; /* next, line 132 */ + z->c = ret; } - z->I[0] = z->c; /* setmark p, line 132 */ + z->I[0] = z->c; z->c = c_test1; } - z->lb = z->c; z->c = z->l; /* backwards, line 133 */ + z->lb = z->c; z->c = z->l; - { int mlimit2; /* setlimit, line 139 */ + { int mlimit2; if (z->c < z->I[0]) return 0; mlimit2 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 139 */ - if (!(find_among_b(z, a_0, 132))) { z->lb = mlimit2; return 0; } /* substring, line 139 */ - z->bra = z->c; /* ], line 139 */ + z->ket = z->c; + if (!(find_among_b(z, a_0, 132))) { z->lb = mlimit2; return 0; } + z->bra = z->c; z->lb = mlimit2; } - { int ret = slice_del(z); /* delete, line 321 */ + { int ret = slice_del(z); if (ret < 0) return ret; } z->c = z->lb; return 1; } -extern struct SN_env * hindi_UTF_8_create_env(void) { return SN_create_env(0, 1, 0); } +extern struct SN_env * hindi_UTF_8_create_env(void) { return SN_create_env(0, 1); } extern void hindi_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_hungarian.c b/src/backend/snowball/libstemmer/stem_UTF_8_hungarian.c index 284b3230c2423..160c926519f12 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_hungarian.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_hungarian.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -46,14 +46,14 @@ static const symbol s_0_7[2] = { 'z', 's' }; static const struct among a_0[8] = { -/* 0 */ { 2, s_0_0, -1, -1, 0}, -/* 1 */ { 3, s_0_1, -1, -1, 0}, -/* 2 */ { 2, s_0_2, -1, -1, 0}, -/* 3 */ { 2, s_0_3, -1, -1, 0}, -/* 4 */ { 2, s_0_4, -1, -1, 0}, -/* 5 */ { 2, s_0_5, -1, -1, 0}, -/* 6 */ { 2, s_0_6, -1, -1, 0}, -/* 7 */ { 2, s_0_7, -1, -1, 0} +{ 2, s_0_0, -1, -1, 0}, +{ 3, s_0_1, -1, -1, 0}, +{ 2, s_0_2, -1, -1, 0}, +{ 2, s_0_3, -1, -1, 0}, +{ 2, s_0_4, -1, -1, 0}, +{ 2, s_0_5, -1, -1, 0}, +{ 2, s_0_6, -1, -1, 0}, +{ 2, s_0_7, -1, -1, 0} }; static const symbol s_1_0[2] = { 0xC3, 0xA1 }; @@ -61,8 +61,8 @@ static const symbol s_1_1[2] = { 0xC3, 0xA9 }; static const struct among a_1[2] = { -/* 0 */ { 2, s_1_0, -1, 1, 0}, -/* 1 */ { 2, s_1_1, -1, 2, 0} +{ 2, s_1_0, -1, 1, 0}, +{ 2, s_1_1, -1, 2, 0} }; static const symbol s_2_0[2] = { 'b', 'b' }; @@ -91,29 +91,29 @@ static const symbol s_2_22[2] = { 'z', 'z' }; static const struct among a_2[23] = { -/* 0 */ { 2, s_2_0, -1, -1, 0}, -/* 1 */ { 2, s_2_1, -1, -1, 0}, -/* 2 */ { 2, s_2_2, -1, -1, 0}, -/* 3 */ { 2, s_2_3, -1, -1, 0}, -/* 4 */ { 2, s_2_4, -1, -1, 0}, -/* 5 */ { 2, s_2_5, -1, -1, 0}, -/* 6 */ { 2, s_2_6, -1, -1, 0}, -/* 7 */ { 2, s_2_7, -1, -1, 0}, -/* 8 */ { 2, s_2_8, -1, -1, 0}, -/* 9 */ { 2, s_2_9, -1, -1, 0}, -/* 10 */ { 2, s_2_10, -1, -1, 0}, -/* 11 */ { 2, s_2_11, -1, -1, 0}, -/* 12 */ { 3, s_2_12, -1, -1, 0}, -/* 13 */ { 2, s_2_13, -1, -1, 0}, -/* 14 */ { 3, s_2_14, -1, -1, 0}, -/* 15 */ { 2, s_2_15, -1, -1, 0}, -/* 16 */ { 2, s_2_16, -1, -1, 0}, -/* 17 */ { 3, s_2_17, -1, -1, 0}, -/* 18 */ { 3, s_2_18, -1, -1, 0}, -/* 19 */ { 3, s_2_19, -1, -1, 0}, -/* 20 */ { 3, s_2_20, -1, -1, 0}, -/* 21 */ { 3, s_2_21, -1, -1, 0}, -/* 22 */ { 2, s_2_22, -1, -1, 0} +{ 2, s_2_0, -1, -1, 0}, +{ 2, s_2_1, -1, -1, 0}, +{ 2, s_2_2, -1, -1, 0}, +{ 2, s_2_3, -1, -1, 0}, +{ 2, s_2_4, -1, -1, 0}, +{ 2, s_2_5, -1, -1, 0}, +{ 2, s_2_6, -1, -1, 0}, +{ 2, s_2_7, -1, -1, 0}, +{ 2, s_2_8, -1, -1, 0}, +{ 2, s_2_9, -1, -1, 0}, +{ 2, s_2_10, -1, -1, 0}, +{ 2, s_2_11, -1, -1, 0}, +{ 3, s_2_12, -1, -1, 0}, +{ 2, s_2_13, -1, -1, 0}, +{ 3, s_2_14, -1, -1, 0}, +{ 2, s_2_15, -1, -1, 0}, +{ 2, s_2_16, -1, -1, 0}, +{ 3, s_2_17, -1, -1, 0}, +{ 3, s_2_18, -1, -1, 0}, +{ 3, s_2_19, -1, -1, 0}, +{ 3, s_2_20, -1, -1, 0}, +{ 3, s_2_21, -1, -1, 0}, +{ 2, s_2_22, -1, -1, 0} }; static const symbol s_3_0[2] = { 'a', 'l' }; @@ -121,8 +121,8 @@ static const symbol s_3_1[2] = { 'e', 'l' }; static const struct among a_3[2] = { -/* 0 */ { 2, s_3_0, -1, 1, 0}, -/* 1 */ { 2, s_3_1, -1, 1, 0} +{ 2, s_3_0, -1, 1, 0}, +{ 2, s_3_1, -1, 1, 0} }; static const symbol s_4_0[2] = { 'b', 'a' }; @@ -172,50 +172,50 @@ static const symbol s_4_43[3] = { 'v', 0xC3, 0xA9 }; static const struct among a_4[44] = { -/* 0 */ { 2, s_4_0, -1, -1, 0}, -/* 1 */ { 2, s_4_1, -1, -1, 0}, -/* 2 */ { 2, s_4_2, -1, -1, 0}, -/* 3 */ { 2, s_4_3, -1, -1, 0}, -/* 4 */ { 2, s_4_4, -1, -1, 0}, -/* 5 */ { 3, s_4_5, -1, -1, 0}, -/* 6 */ { 3, s_4_6, -1, -1, 0}, -/* 7 */ { 3, s_4_7, -1, -1, 0}, -/* 8 */ { 3, s_4_8, -1, -1, 0}, -/* 9 */ { 2, s_4_9, -1, -1, 0}, -/* 10 */ { 4, s_4_10, -1, -1, 0}, -/* 11 */ { 4, s_4_11, -1, -1, 0}, -/* 12 */ { 4, s_4_12, -1, -1, 0}, -/* 13 */ { 4, s_4_13, -1, -1, 0}, -/* 14 */ { 4, s_4_14, -1, -1, 0}, -/* 15 */ { 4, s_4_15, -1, -1, 0}, -/* 16 */ { 4, s_4_16, -1, -1, 0}, -/* 17 */ { 4, s_4_17, -1, -1, 0}, -/* 18 */ { 3, s_4_18, -1, -1, 0}, -/* 19 */ { 1, s_4_19, -1, -1, 0}, -/* 20 */ { 2, s_4_20, 19, -1, 0}, -/* 21 */ { 3, s_4_21, 20, -1, 0}, -/* 22 */ { 2, s_4_22, 19, -1, 0}, -/* 23 */ { 3, s_4_23, 22, -1, 0}, -/* 24 */ { 7, s_4_24, 22, -1, 0}, -/* 25 */ { 2, s_4_25, 19, -1, 0}, -/* 26 */ { 3, s_4_26, 19, -1, 0}, -/* 27 */ { 5, s_4_27, -1, -1, 0}, -/* 28 */ { 3, s_4_28, -1, -1, 0}, -/* 29 */ { 1, s_4_29, -1, -1, 0}, -/* 30 */ { 2, s_4_30, 29, -1, 0}, -/* 31 */ { 2, s_4_31, 29, -1, 0}, -/* 32 */ { 5, s_4_32, 29, -1, 0}, -/* 33 */ { 7, s_4_33, 32, -1, 0}, -/* 34 */ { 7, s_4_34, 32, -1, 0}, -/* 35 */ { 7, s_4_35, 32, -1, 0}, -/* 36 */ { 2, s_4_36, 29, -1, 0}, -/* 37 */ { 4, s_4_37, 29, -1, 0}, -/* 38 */ { 3, s_4_38, 29, -1, 0}, -/* 39 */ { 3, s_4_39, -1, -1, 0}, -/* 40 */ { 3, s_4_40, -1, -1, 0}, -/* 41 */ { 4, s_4_41, -1, -1, 0}, -/* 42 */ { 3, s_4_42, -1, -1, 0}, -/* 43 */ { 3, s_4_43, -1, -1, 0} +{ 2, s_4_0, -1, -1, 0}, +{ 2, s_4_1, -1, -1, 0}, +{ 2, s_4_2, -1, -1, 0}, +{ 2, s_4_3, -1, -1, 0}, +{ 2, s_4_4, -1, -1, 0}, +{ 3, s_4_5, -1, -1, 0}, +{ 3, s_4_6, -1, -1, 0}, +{ 3, s_4_7, -1, -1, 0}, +{ 3, s_4_8, -1, -1, 0}, +{ 2, s_4_9, -1, -1, 0}, +{ 4, s_4_10, -1, -1, 0}, +{ 4, s_4_11, -1, -1, 0}, +{ 4, s_4_12, -1, -1, 0}, +{ 4, s_4_13, -1, -1, 0}, +{ 4, s_4_14, -1, -1, 0}, +{ 4, s_4_15, -1, -1, 0}, +{ 4, s_4_16, -1, -1, 0}, +{ 4, s_4_17, -1, -1, 0}, +{ 3, s_4_18, -1, -1, 0}, +{ 1, s_4_19, -1, -1, 0}, +{ 2, s_4_20, 19, -1, 0}, +{ 3, s_4_21, 20, -1, 0}, +{ 2, s_4_22, 19, -1, 0}, +{ 3, s_4_23, 22, -1, 0}, +{ 7, s_4_24, 22, -1, 0}, +{ 2, s_4_25, 19, -1, 0}, +{ 3, s_4_26, 19, -1, 0}, +{ 5, s_4_27, -1, -1, 0}, +{ 3, s_4_28, -1, -1, 0}, +{ 1, s_4_29, -1, -1, 0}, +{ 2, s_4_30, 29, -1, 0}, +{ 2, s_4_31, 29, -1, 0}, +{ 5, s_4_32, 29, -1, 0}, +{ 7, s_4_33, 32, -1, 0}, +{ 7, s_4_34, 32, -1, 0}, +{ 7, s_4_35, 32, -1, 0}, +{ 2, s_4_36, 29, -1, 0}, +{ 4, s_4_37, 29, -1, 0}, +{ 3, s_4_38, 29, -1, 0}, +{ 3, s_4_39, -1, -1, 0}, +{ 3, s_4_40, -1, -1, 0}, +{ 4, s_4_41, -1, -1, 0}, +{ 3, s_4_42, -1, -1, 0}, +{ 3, s_4_43, -1, -1, 0} }; static const symbol s_5_0[3] = { 0xC3, 0xA1, 'n' }; @@ -224,9 +224,9 @@ static const symbol s_5_2[8] = { 0xC3, 0xA1, 'n', 'k', 0xC3, 0xA9, 'n', 't' }; static const struct among a_5[3] = { -/* 0 */ { 3, s_5_0, -1, 2, 0}, -/* 1 */ { 3, s_5_1, -1, 1, 0}, -/* 2 */ { 8, s_5_2, -1, 2, 0} +{ 3, s_5_0, -1, 2, 0}, +{ 3, s_5_1, -1, 1, 0}, +{ 8, s_5_2, -1, 2, 0} }; static const symbol s_6_0[4] = { 's', 't', 'u', 'l' }; @@ -238,12 +238,12 @@ static const symbol s_6_5[7] = { 0xC3, 0xA9, 's', 't', 0xC3, 0xBC, 'l' }; static const struct among a_6[6] = { -/* 0 */ { 4, s_6_0, -1, 1, 0}, -/* 1 */ { 5, s_6_1, 0, 1, 0}, -/* 2 */ { 6, s_6_2, 0, 2, 0}, -/* 3 */ { 5, s_6_3, -1, 1, 0}, -/* 4 */ { 6, s_6_4, 3, 1, 0}, -/* 5 */ { 7, s_6_5, 3, 3, 0} +{ 4, s_6_0, -1, 1, 0}, +{ 5, s_6_1, 0, 1, 0}, +{ 6, s_6_2, 0, 2, 0}, +{ 5, s_6_3, -1, 1, 0}, +{ 6, s_6_4, 3, 1, 0}, +{ 7, s_6_5, 3, 3, 0} }; static const symbol s_7_0[2] = { 0xC3, 0xA1 }; @@ -251,8 +251,8 @@ static const symbol s_7_1[2] = { 0xC3, 0xA9 }; static const struct among a_7[2] = { -/* 0 */ { 2, s_7_0, -1, 1, 0}, -/* 1 */ { 2, s_7_1, -1, 1, 0} +{ 2, s_7_0, -1, 1, 0}, +{ 2, s_7_1, -1, 1, 0} }; static const symbol s_8_0[1] = { 'k' }; @@ -265,13 +265,13 @@ static const symbol s_8_6[3] = { 0xC3, 0xB6, 'k' }; static const struct among a_8[7] = { -/* 0 */ { 1, s_8_0, -1, 3, 0}, -/* 1 */ { 2, s_8_1, 0, 3, 0}, -/* 2 */ { 2, s_8_2, 0, 3, 0}, -/* 3 */ { 2, s_8_3, 0, 3, 0}, -/* 4 */ { 3, s_8_4, 0, 1, 0}, -/* 5 */ { 3, s_8_5, 0, 2, 0}, -/* 6 */ { 3, s_8_6, 0, 3, 0} +{ 1, s_8_0, -1, 3, 0}, +{ 2, s_8_1, 0, 3, 0}, +{ 2, s_8_2, 0, 3, 0}, +{ 2, s_8_3, 0, 3, 0}, +{ 3, s_8_4, 0, 1, 0}, +{ 3, s_8_5, 0, 2, 0}, +{ 3, s_8_6, 0, 3, 0} }; static const symbol s_9_0[3] = { 0xC3, 0xA9, 'i' }; @@ -289,18 +289,18 @@ static const symbol s_9_11[4] = { 0xC3, 0xA9, 0xC3, 0xA9 }; static const struct among a_9[12] = { -/* 0 */ { 3, s_9_0, -1, 1, 0}, -/* 1 */ { 5, s_9_1, 0, 3, 0}, -/* 2 */ { 5, s_9_2, 0, 2, 0}, -/* 3 */ { 2, s_9_3, -1, 1, 0}, -/* 4 */ { 3, s_9_4, 3, 1, 0}, -/* 5 */ { 4, s_9_5, 4, 1, 0}, -/* 6 */ { 4, s_9_6, 4, 1, 0}, -/* 7 */ { 4, s_9_7, 4, 1, 0}, -/* 8 */ { 5, s_9_8, 4, 3, 0}, -/* 9 */ { 5, s_9_9, 4, 2, 0}, -/* 10 */ { 5, s_9_10, 4, 1, 0}, -/* 11 */ { 4, s_9_11, 3, 2, 0} +{ 3, s_9_0, -1, 1, 0}, +{ 5, s_9_1, 0, 3, 0}, +{ 5, s_9_2, 0, 2, 0}, +{ 2, s_9_3, -1, 1, 0}, +{ 3, s_9_4, 3, 1, 0}, +{ 4, s_9_5, 4, 1, 0}, +{ 4, s_9_6, 4, 1, 0}, +{ 4, s_9_7, 4, 1, 0}, +{ 5, s_9_8, 4, 3, 0}, +{ 5, s_9_9, 4, 2, 0}, +{ 5, s_9_10, 4, 1, 0}, +{ 4, s_9_11, 3, 2, 0} }; static const symbol s_10_0[1] = { 'a' }; @@ -337,37 +337,37 @@ static const symbol s_10_30[2] = { 0xC3, 0xA9 }; static const struct among a_10[31] = { -/* 0 */ { 1, s_10_0, -1, 1, 0}, -/* 1 */ { 2, s_10_1, 0, 1, 0}, -/* 2 */ { 1, s_10_2, -1, 1, 0}, -/* 3 */ { 2, s_10_3, 2, 1, 0}, -/* 4 */ { 2, s_10_4, 2, 1, 0}, -/* 5 */ { 2, s_10_5, 2, 1, 0}, -/* 6 */ { 3, s_10_6, 2, 2, 0}, -/* 7 */ { 3, s_10_7, 2, 3, 0}, -/* 8 */ { 3, s_10_8, 2, 1, 0}, -/* 9 */ { 1, s_10_9, -1, 1, 0}, -/* 10 */ { 2, s_10_10, 9, 1, 0}, -/* 11 */ { 2, s_10_11, -1, 1, 0}, -/* 12 */ { 3, s_10_12, 11, 1, 0}, -/* 13 */ { 4, s_10_13, 11, 2, 0}, -/* 14 */ { 4, s_10_14, 11, 3, 0}, -/* 15 */ { 4, s_10_15, 11, 1, 0}, -/* 16 */ { 2, s_10_16, -1, 1, 0}, -/* 17 */ { 3, s_10_17, 16, 1, 0}, -/* 18 */ { 5, s_10_18, 17, 2, 0}, -/* 19 */ { 3, s_10_19, -1, 1, 0}, -/* 20 */ { 4, s_10_20, 19, 1, 0}, -/* 21 */ { 6, s_10_21, 20, 3, 0}, -/* 22 */ { 1, s_10_22, -1, 1, 0}, -/* 23 */ { 2, s_10_23, 22, 1, 0}, -/* 24 */ { 2, s_10_24, 22, 1, 0}, -/* 25 */ { 2, s_10_25, 22, 1, 0}, -/* 26 */ { 3, s_10_26, 22, 2, 0}, -/* 27 */ { 3, s_10_27, 22, 3, 0}, -/* 28 */ { 1, s_10_28, -1, 1, 0}, -/* 29 */ { 2, s_10_29, -1, 2, 0}, -/* 30 */ { 2, s_10_30, -1, 3, 0} +{ 1, s_10_0, -1, 1, 0}, +{ 2, s_10_1, 0, 1, 0}, +{ 1, s_10_2, -1, 1, 0}, +{ 2, s_10_3, 2, 1, 0}, +{ 2, s_10_4, 2, 1, 0}, +{ 2, s_10_5, 2, 1, 0}, +{ 3, s_10_6, 2, 2, 0}, +{ 3, s_10_7, 2, 3, 0}, +{ 3, s_10_8, 2, 1, 0}, +{ 1, s_10_9, -1, 1, 0}, +{ 2, s_10_10, 9, 1, 0}, +{ 2, s_10_11, -1, 1, 0}, +{ 3, s_10_12, 11, 1, 0}, +{ 4, s_10_13, 11, 2, 0}, +{ 4, s_10_14, 11, 3, 0}, +{ 4, s_10_15, 11, 1, 0}, +{ 2, s_10_16, -1, 1, 0}, +{ 3, s_10_17, 16, 1, 0}, +{ 5, s_10_18, 17, 2, 0}, +{ 3, s_10_19, -1, 1, 0}, +{ 4, s_10_20, 19, 1, 0}, +{ 6, s_10_21, 20, 3, 0}, +{ 1, s_10_22, -1, 1, 0}, +{ 2, s_10_23, 22, 1, 0}, +{ 2, s_10_24, 22, 1, 0}, +{ 2, s_10_25, 22, 1, 0}, +{ 3, s_10_26, 22, 2, 0}, +{ 3, s_10_27, 22, 3, 0}, +{ 1, s_10_28, -1, 1, 0}, +{ 2, s_10_29, -1, 2, 0}, +{ 2, s_10_30, -1, 3, 0} }; static const symbol s_11_0[2] = { 'i', 'd' }; @@ -415,48 +415,48 @@ static const symbol s_11_41[4] = { 0xC3, 0xA9, 'i', 'm' }; static const struct among a_11[42] = { -/* 0 */ { 2, s_11_0, -1, 1, 0}, -/* 1 */ { 3, s_11_1, 0, 1, 0}, -/* 2 */ { 4, s_11_2, 1, 1, 0}, -/* 3 */ { 3, s_11_3, 0, 1, 0}, -/* 4 */ { 4, s_11_4, 3, 1, 0}, -/* 5 */ { 4, s_11_5, 0, 2, 0}, -/* 6 */ { 4, s_11_6, 0, 3, 0}, -/* 7 */ { 1, s_11_7, -1, 1, 0}, -/* 8 */ { 2, s_11_8, 7, 1, 0}, -/* 9 */ { 3, s_11_9, 8, 1, 0}, -/* 10 */ { 2, s_11_10, 7, 1, 0}, -/* 11 */ { 3, s_11_11, 10, 1, 0}, -/* 12 */ { 3, s_11_12, 7, 2, 0}, -/* 13 */ { 3, s_11_13, 7, 3, 0}, -/* 14 */ { 4, s_11_14, -1, 1, 0}, -/* 15 */ { 5, s_11_15, 14, 1, 0}, -/* 16 */ { 6, s_11_16, 15, 1, 0}, -/* 17 */ { 6, s_11_17, 14, 3, 0}, -/* 18 */ { 2, s_11_18, -1, 1, 0}, -/* 19 */ { 3, s_11_19, 18, 1, 0}, -/* 20 */ { 4, s_11_20, 19, 1, 0}, -/* 21 */ { 3, s_11_21, 18, 1, 0}, -/* 22 */ { 4, s_11_22, 21, 1, 0}, -/* 23 */ { 4, s_11_23, 18, 2, 0}, -/* 24 */ { 4, s_11_24, 18, 3, 0}, -/* 25 */ { 3, s_11_25, -1, 1, 0}, -/* 26 */ { 4, s_11_26, 25, 1, 0}, -/* 27 */ { 5, s_11_27, 26, 1, 0}, -/* 28 */ { 4, s_11_28, 25, 1, 0}, -/* 29 */ { 5, s_11_29, 28, 1, 0}, -/* 30 */ { 5, s_11_30, 25, 2, 0}, -/* 31 */ { 5, s_11_31, 25, 3, 0}, -/* 32 */ { 5, s_11_32, -1, 1, 0}, -/* 33 */ { 6, s_11_33, 32, 1, 0}, -/* 34 */ { 6, s_11_34, -1, 2, 0}, -/* 35 */ { 2, s_11_35, -1, 1, 0}, -/* 36 */ { 3, s_11_36, 35, 1, 0}, -/* 37 */ { 4, s_11_37, 36, 1, 0}, -/* 38 */ { 3, s_11_38, 35, 1, 0}, -/* 39 */ { 4, s_11_39, 38, 1, 0}, -/* 40 */ { 4, s_11_40, 35, 2, 0}, -/* 41 */ { 4, s_11_41, 35, 3, 0} +{ 2, s_11_0, -1, 1, 0}, +{ 3, s_11_1, 0, 1, 0}, +{ 4, s_11_2, 1, 1, 0}, +{ 3, s_11_3, 0, 1, 0}, +{ 4, s_11_4, 3, 1, 0}, +{ 4, s_11_5, 0, 2, 0}, +{ 4, s_11_6, 0, 3, 0}, +{ 1, s_11_7, -1, 1, 0}, +{ 2, s_11_8, 7, 1, 0}, +{ 3, s_11_9, 8, 1, 0}, +{ 2, s_11_10, 7, 1, 0}, +{ 3, s_11_11, 10, 1, 0}, +{ 3, s_11_12, 7, 2, 0}, +{ 3, s_11_13, 7, 3, 0}, +{ 4, s_11_14, -1, 1, 0}, +{ 5, s_11_15, 14, 1, 0}, +{ 6, s_11_16, 15, 1, 0}, +{ 6, s_11_17, 14, 3, 0}, +{ 2, s_11_18, -1, 1, 0}, +{ 3, s_11_19, 18, 1, 0}, +{ 4, s_11_20, 19, 1, 0}, +{ 3, s_11_21, 18, 1, 0}, +{ 4, s_11_22, 21, 1, 0}, +{ 4, s_11_23, 18, 2, 0}, +{ 4, s_11_24, 18, 3, 0}, +{ 3, s_11_25, -1, 1, 0}, +{ 4, s_11_26, 25, 1, 0}, +{ 5, s_11_27, 26, 1, 0}, +{ 4, s_11_28, 25, 1, 0}, +{ 5, s_11_29, 28, 1, 0}, +{ 5, s_11_30, 25, 2, 0}, +{ 5, s_11_31, 25, 3, 0}, +{ 5, s_11_32, -1, 1, 0}, +{ 6, s_11_33, 32, 1, 0}, +{ 6, s_11_34, -1, 2, 0}, +{ 2, s_11_35, -1, 1, 0}, +{ 3, s_11_36, 35, 1, 0}, +{ 4, s_11_37, 36, 1, 0}, +{ 3, s_11_38, 35, 1, 0}, +{ 4, s_11_39, 38, 1, 0}, +{ 4, s_11_40, 35, 2, 0}, +{ 4, s_11_41, 35, 3, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 36, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1 }; @@ -476,62 +476,62 @@ static const symbol s_11[] = { 'e' }; static const symbol s_12[] = { 'a' }; static const symbol s_13[] = { 'e' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 46 */ - { int c1 = z->c; /* or, line 51 */ - if (in_grouping_U(z, g_v, 97, 369, 0)) goto lab1; /* grouping v, line 48 */ - if (in_grouping_U(z, g_v, 97, 369, 1) < 0) goto lab1; /* goto */ /* non v, line 48 */ - { int c2 = z->c; /* or, line 49 */ - if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3; /* among, line 49 */ +static int r_mark_regions(struct SN_env * z) { + z->I[0] = z->l; + { int c1 = z->c; + if (in_grouping_U(z, g_v, 97, 369, 0)) goto lab1; + if (in_grouping_U(z, g_v, 97, 369, 1) < 0) goto lab1; + { int c2 = z->c; + if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 3 || !((101187584 >> (z->p[z->c + 1] & 0x1f)) & 1)) goto lab3; if (!(find_among(z, a_0, 8))) goto lab3; goto lab2; lab3: z->c = c2; - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab1; - z->c = ret; /* next, line 49 */ + z->c = ret; } } lab2: - z->I[0] = z->c; /* setmark p1, line 50 */ + z->I[0] = z->c; goto lab0; lab1: z->c = c1; - if (out_grouping_U(z, g_v, 97, 369, 0)) return 0; /* non v, line 53 */ - { /* gopast */ /* grouping v, line 53 */ + if (out_grouping_U(z, g_v, 97, 369, 0)) return 0; + { int ret = out_grouping_U(z, g_v, 97, 369, 1); if (ret < 0) return 0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 53 */ + z->I[0] = z->c; } lab0: return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 58 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_v_ending(struct SN_env * z) { /* backwardmode */ +static int r_v_ending(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 61 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0; /* substring, line 61 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0; among_var = find_among_b(z, a_1, 2); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 61 */ - { int ret = r_R1(z); /* call R1, line 61 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 61 */ + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_0); /* <-, line 62 */ + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_1); /* <-, line 63 */ + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } break; @@ -539,86 +539,86 @@ static int r_v_ending(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_double(struct SN_env * z) { /* backwardmode */ - { int m_test1 = z->l - z->c; /* test, line 68 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 68 */ +static int r_double(struct SN_env * z) { + { int m_test1 = z->l - z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((106790108 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_2, 23))) return 0; z->c = z->l - m_test1; } return 1; } -static int r_undouble(struct SN_env * z) { /* backwardmode */ - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); +static int r_undouble(struct SN_env * z) { + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) return 0; - z->c = ret; /* next, line 73 */ + z->c = ret; } - z->ket = z->c; /* [, line 73 */ - { int ret = skip_utf8(z->p, z->c, z->lb, z->l, - 1); /* hop, line 73 */ + z->ket = z->c; + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) return 0; z->c = ret; } - z->bra = z->c; /* ], line 73 */ - { int ret = slice_del(z); /* delete, line 73 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_instrum(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 77 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0; /* substring, line 77 */ +static int r_instrum(struct SN_env * z) { + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 108) return 0; if (!(find_among_b(z, a_3, 2))) return 0; - z->bra = z->c; /* ], line 77 */ - { int ret = r_R1(z); /* call R1, line 77 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = r_double(z); /* call double, line 78 */ + { int ret = r_double(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 81 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_undouble(z); /* call undouble, line 82 */ + { int ret = r_undouble(z); if (ret <= 0) return ret; } return 1; } -static int r_case(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 87 */ - if (!(find_among_b(z, a_4, 44))) return 0; /* substring, line 87 */ - z->bra = z->c; /* ], line 87 */ - { int ret = r_R1(z); /* call R1, line 87 */ +static int r_case(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_4, 44))) return 0; + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 111 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_v_ending(z); /* call v_ending, line 112 */ + { int ret = r_v_ending(z); if (ret <= 0) return ret; } return 1; } -static int r_case_special(struct SN_env * z) { /* backwardmode */ +static int r_case_special(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 116 */ - if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0; /* substring, line 116 */ + z->ket = z->c; + if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 110 && z->p[z->c - 1] != 116)) return 0; among_var = find_among_b(z, a_5, 3); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 116 */ - { int ret = r_R1(z); /* call R1, line 116 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 116 */ + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_2); /* <-, line 117 */ + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_3); /* <-, line 118 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } break; @@ -626,29 +626,29 @@ static int r_case_special(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_case_other(struct SN_env * z) { /* backwardmode */ +static int r_case_other(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 124 */ - if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0; /* substring, line 124 */ + z->ket = z->c; + if (z->c - 3 <= z->lb || z->p[z->c - 1] != 108) return 0; among_var = find_among_b(z, a_6, 6); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 124 */ - { int ret = r_R1(z); /* call R1, line 124 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 124 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 125 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_4); /* <-, line 127 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_5); /* <-, line 128 */ + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } break; @@ -656,49 +656,49 @@ static int r_case_other(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_factive(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 133 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0; /* substring, line 133 */ +static int r_factive(struct SN_env * z) { + z->ket = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 161 && z->p[z->c - 1] != 169)) return 0; if (!(find_among_b(z, a_7, 2))) return 0; - z->bra = z->c; /* ], line 133 */ - { int ret = r_R1(z); /* call R1, line 133 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = r_double(z); /* call double, line 134 */ + { int ret = r_double(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 137 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_undouble(z); /* call undouble, line 138 */ + { int ret = r_undouble(z); if (ret <= 0) return ret; } return 1; } -static int r_plural(struct SN_env * z) { /* backwardmode */ +static int r_plural(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 142 */ - if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0; /* substring, line 142 */ + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 107) return 0; among_var = find_among_b(z, a_8, 7); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 142 */ - { int ret = r_R1(z); /* call R1, line 142 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 142 */ + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_6); /* <-, line 143 */ + { int ret = slice_from_s(z, 1, s_6); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_7); /* <-, line 144 */ + { int ret = slice_from_s(z, 1, s_7); if (ret < 0) return ret; } break; case 3: - { int ret = slice_del(z); /* delete, line 145 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -706,29 +706,29 @@ static int r_plural(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_owned(struct SN_env * z) { /* backwardmode */ +static int r_owned(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 154 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 169)) return 0; /* substring, line 154 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 169)) return 0; among_var = find_among_b(z, a_9, 12); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 154 */ - { int ret = r_R1(z); /* call R1, line 154 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 154 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 155 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_8); /* <-, line 156 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_9); /* <-, line 157 */ + { int ret = slice_from_s(z, 1, s_9); if (ret < 0) return ret; } break; @@ -736,28 +736,28 @@ static int r_owned(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_sing_owner(struct SN_env * z) { /* backwardmode */ +static int r_sing_owner(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 168 */ - among_var = find_among_b(z, a_10, 31); /* substring, line 168 */ + z->ket = z->c; + among_var = find_among_b(z, a_10, 31); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 168 */ - { int ret = r_R1(z); /* call R1, line 168 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 168 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 169 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_10); /* <-, line 170 */ + { int ret = slice_from_s(z, 1, s_10); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_11); /* <-, line 171 */ + { int ret = slice_from_s(z, 1, s_11); if (ret < 0) return ret; } break; @@ -765,29 +765,29 @@ static int r_sing_owner(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_plur_owner(struct SN_env * z) { /* backwardmode */ +static int r_plur_owner(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 193 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 193 */ + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((10768 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_11, 42); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 193 */ - { int ret = r_R1(z); /* call R1, line 193 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 193 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 194 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_12); /* <-, line 195 */ + { int ret = slice_from_s(z, 1, s_12); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_13); /* <-, line 196 */ + { int ret = slice_from_s(z, 1, s_13); if (ret < 0) return ret; } break; @@ -795,65 +795,65 @@ static int r_plur_owner(struct SN_env * z) { /* backwardmode */ return 1; } -extern int hungarian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 229 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 229 */ +extern int hungarian_UTF_8_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_mark_regions(z); if (ret < 0) return ret; } z->c = c1; } - z->lb = z->c; z->c = z->l; /* backwards, line 230 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 231 */ - { int ret = r_instrum(z); /* call instrum, line 231 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_instrum(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 232 */ - { int ret = r_case(z); /* call case, line 232 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_case(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 233 */ - { int ret = r_case_special(z); /* call case_special, line 233 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_case_special(z); if (ret < 0) return ret; } z->c = z->l - m4; } - { int m5 = z->l - z->c; (void)m5; /* do, line 234 */ - { int ret = r_case_other(z); /* call case_other, line 234 */ + { int m5 = z->l - z->c; (void)m5; + { int ret = r_case_other(z); if (ret < 0) return ret; } z->c = z->l - m5; } - { int m6 = z->l - z->c; (void)m6; /* do, line 235 */ - { int ret = r_factive(z); /* call factive, line 235 */ + { int m6 = z->l - z->c; (void)m6; + { int ret = r_factive(z); if (ret < 0) return ret; } z->c = z->l - m6; } - { int m7 = z->l - z->c; (void)m7; /* do, line 236 */ - { int ret = r_owned(z); /* call owned, line 236 */ + { int m7 = z->l - z->c; (void)m7; + { int ret = r_owned(z); if (ret < 0) return ret; } z->c = z->l - m7; } - { int m8 = z->l - z->c; (void)m8; /* do, line 237 */ - { int ret = r_sing_owner(z); /* call sing_owner, line 237 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_sing_owner(z); if (ret < 0) return ret; } z->c = z->l - m8; } - { int m9 = z->l - z->c; (void)m9; /* do, line 238 */ - { int ret = r_plur_owner(z); /* call plur_owner, line 238 */ + { int m9 = z->l - z->c; (void)m9; + { int ret = r_plur_owner(z); if (ret < 0) return ret; } z->c = z->l - m9; } - { int m10 = z->l - z->c; (void)m10; /* do, line 239 */ - { int ret = r_plural(z); /* call plural, line 239 */ + { int m10 = z->l - z->c; (void)m10; + { int ret = r_plural(z); if (ret < 0) return ret; } z->c = z->l - m10; @@ -862,7 +862,7 @@ extern int hungarian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * hungarian_UTF_8_create_env(void) { return SN_create_env(0, 1, 0); } +extern struct SN_env * hungarian_UTF_8_create_env(void) { return SN_create_env(0, 1); } extern void hungarian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_indonesian.c b/src/backend/snowball/libstemmer/stem_UTF_8_indonesian.c index 0a4d6392bff8c..573178d8e7fdd 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_indonesian.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_indonesian.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -37,9 +37,9 @@ static const symbol s_0_2[3] = { 'p', 'u', 'n' }; static const struct among a_0[3] = { -/* 0 */ { 3, s_0_0, -1, 1, 0}, -/* 1 */ { 3, s_0_1, -1, 1, 0}, -/* 2 */ { 3, s_0_2, -1, 1, 0} +{ 3, s_0_0, -1, 1, 0}, +{ 3, s_0_1, -1, 1, 0}, +{ 3, s_0_2, -1, 1, 0} }; static const symbol s_1_0[3] = { 'n', 'y', 'a' }; @@ -48,9 +48,9 @@ static const symbol s_1_2[2] = { 'm', 'u' }; static const struct among a_1[3] = { -/* 0 */ { 3, s_1_0, -1, 1, 0}, -/* 1 */ { 2, s_1_1, -1, 1, 0}, -/* 2 */ { 2, s_1_2, -1, 1, 0} +{ 3, s_1_0, -1, 1, 0}, +{ 2, s_1_1, -1, 1, 0}, +{ 2, s_1_2, -1, 1, 0} }; static const symbol s_2_0[1] = { 'i' }; @@ -59,9 +59,9 @@ static const symbol s_2_2[3] = { 'k', 'a', 'n' }; static const struct among a_2[3] = { -/* 0 */ { 1, s_2_0, -1, 1, r_SUFFIX_I_OK}, -/* 1 */ { 2, s_2_1, -1, 1, r_SUFFIX_AN_OK}, -/* 2 */ { 3, s_2_2, 1, 1, r_SUFFIX_KAN_OK} +{ 1, s_2_0, -1, 1, r_SUFFIX_I_OK}, +{ 2, s_2_1, -1, 1, r_SUFFIX_AN_OK}, +{ 3, s_2_2, 1, 1, r_SUFFIX_KAN_OK} }; static const symbol s_3_0[2] = { 'd', 'i' }; @@ -79,18 +79,18 @@ static const symbol s_3_11[3] = { 't', 'e', 'r' }; static const struct among a_3[12] = { -/* 0 */ { 2, s_3_0, -1, 1, 0}, -/* 1 */ { 2, s_3_1, -1, 2, 0}, -/* 2 */ { 2, s_3_2, -1, 1, 0}, -/* 3 */ { 3, s_3_3, 2, 5, 0}, -/* 4 */ { 3, s_3_4, 2, 1, 0}, -/* 5 */ { 4, s_3_5, 4, 1, 0}, -/* 6 */ { 4, s_3_6, 4, 3, r_VOWEL}, -/* 7 */ { 3, s_3_7, -1, 6, 0}, -/* 8 */ { 3, s_3_8, -1, 2, 0}, -/* 9 */ { 4, s_3_9, 8, 2, 0}, -/* 10 */ { 4, s_3_10, 8, 4, r_VOWEL}, -/* 11 */ { 3, s_3_11, -1, 1, 0} +{ 2, s_3_0, -1, 1, 0}, +{ 2, s_3_1, -1, 2, 0}, +{ 2, s_3_2, -1, 1, 0}, +{ 3, s_3_3, 2, 5, 0}, +{ 3, s_3_4, 2, 1, 0}, +{ 4, s_3_5, 4, 1, 0}, +{ 4, s_3_6, 4, 3, r_VOWEL}, +{ 3, s_3_7, -1, 6, 0}, +{ 3, s_3_8, -1, 2, 0}, +{ 4, s_3_9, 8, 2, 0}, +{ 4, s_3_10, 8, 4, r_VOWEL}, +{ 3, s_3_11, -1, 1, 0} }; static const symbol s_4_0[2] = { 'b', 'e' }; @@ -102,12 +102,12 @@ static const symbol s_4_5[3] = { 'p', 'e', 'r' }; static const struct among a_4[6] = { -/* 0 */ { 2, s_4_0, -1, 3, r_KER}, -/* 1 */ { 7, s_4_1, 0, 4, 0}, -/* 2 */ { 3, s_4_2, 0, 3, 0}, -/* 3 */ { 2, s_4_3, -1, 1, 0}, -/* 4 */ { 7, s_4_4, 3, 2, 0}, -/* 5 */ { 3, s_4_5, 3, 1, 0} +{ 2, s_4_0, -1, 3, r_KER}, +{ 7, s_4_1, 0, 4, 0}, +{ 3, s_4_2, 0, 3, 0}, +{ 2, s_4_3, -1, 1, 0}, +{ 7, s_4_4, 3, 2, 0}, +{ 3, s_4_5, 3, 1, 0} }; static const unsigned char g_vowel[] = { 17, 65, 16 }; @@ -120,46 +120,46 @@ static const symbol s_4[] = { 'p' }; static const symbol s_5[] = { 'a', 'j', 'a', 'r' }; static const symbol s_6[] = { 'a', 'j', 'a', 'r' }; -static int r_remove_particle(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 51 */ - if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 104 && z->p[z->c - 1] != 110)) return 0; /* substring, line 51 */ +static int r_remove_particle(struct SN_env * z) { + z->ket = z->c; + if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 104 && z->p[z->c - 1] != 110)) return 0; if (!(find_among_b(z, a_0, 3))) return 0; - z->bra = z->c; /* ], line 51 */ - { int ret = slice_del(z); /* delete, line 52 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->I[0] -= 1; /* $measure -= , line 52 */ + z->I[1] -= 1; return 1; } -static int r_remove_possessive_pronoun(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 57 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 117)) return 0; /* substring, line 57 */ +static int r_remove_possessive_pronoun(struct SN_env * z) { + z->ket = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 117)) return 0; if (!(find_among_b(z, a_1, 3))) return 0; - z->bra = z->c; /* ], line 57 */ - { int ret = slice_del(z); /* delete, line 58 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->I[0] -= 1; /* $measure -= , line 58 */ + z->I[1] -= 1; return 1; } -static int r_SUFFIX_KAN_OK(struct SN_env * z) { /* backwardmode */ - /* and, line 85 */ - if (!(z->I[1] != 3)) return 0; /* $( != ), line 85 */ - if (!(z->I[1] != 2)) return 0; /* $( != ), line 85 */ +static int r_SUFFIX_KAN_OK(struct SN_env * z) { + + if (!(z->I[0] != 3)) return 0; + if (!(z->I[0] != 2)) return 0; return 1; } -static int r_SUFFIX_AN_OK(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] != 1)) return 0; /* $( != ), line 89 */ +static int r_SUFFIX_AN_OK(struct SN_env * z) { + if (!(z->I[0] != 1)) return 0; return 1; } -static int r_SUFFIX_I_OK(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= 2)) return 0; /* $( <= ), line 93 */ - { int m1 = z->l - z->c; (void)m1; /* not, line 128 */ - if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0; /* literal, line 128 */ +static int r_SUFFIX_I_OK(struct SN_env * z) { + if (!(z->I[0] <= 2)) return 0; + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0; z->c--; return 0; lab0: @@ -168,100 +168,100 @@ static int r_SUFFIX_I_OK(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_remove_suffix(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 132 */ - if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 110)) return 0; /* substring, line 132 */ +static int r_remove_suffix(struct SN_env * z) { + z->ket = z->c; + if (z->c <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 110)) return 0; if (!(find_among_b(z, a_2, 3))) return 0; - z->bra = z->c; /* ], line 132 */ - { int ret = slice_del(z); /* delete, line 134 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->I[0] -= 1; /* $measure -= , line 134 */ + z->I[1] -= 1; return 1; } -static int r_VOWEL(struct SN_env * z) { /* forwardmode */ - if (in_grouping_U(z, g_vowel, 97, 117, 0)) return 0; /* grouping vowel, line 141 */ +static int r_VOWEL(struct SN_env * z) { + if (in_grouping_U(z, g_vowel, 97, 117, 0)) return 0; return 1; } -static int r_KER(struct SN_env * z) { /* forwardmode */ - if (out_grouping_U(z, g_vowel, 97, 117, 0)) return 0; /* non vowel, line 143 */ - if (!(eq_s(z, 2, s_0))) return 0; /* literal, line 143 */ +static int r_KER(struct SN_env * z) { + if (out_grouping_U(z, g_vowel, 97, 117, 0)) return 0; + if (!(eq_s(z, 2, s_0))) return 0; return 1; } -static int r_remove_first_order_prefix(struct SN_env * z) { /* forwardmode */ +static int r_remove_first_order_prefix(struct SN_env * z) { int among_var; - z->bra = z->c; /* [, line 146 */ - if (z->c + 1 >= z->l || (z->p[z->c + 1] != 105 && z->p[z->c + 1] != 101)) return 0; /* substring, line 146 */ + z->bra = z->c; + if (z->c + 1 >= z->l || (z->p[z->c + 1] != 105 && z->p[z->c + 1] != 101)) return 0; among_var = find_among(z, a_3, 12); if (!(among_var)) return 0; - z->ket = z->c; /* ], line 146 */ - switch (among_var) { /* among, line 146 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 147 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->I[1] = 1; /* $prefix = , line 147 */ - z->I[0] -= 1; /* $measure -= , line 147 */ + z->I[0] = 1; + z->I[1] -= 1; break; case 2: - { int ret = slice_del(z); /* delete, line 148 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->I[1] = 3; /* $prefix = , line 148 */ - z->I[0] -= 1; /* $measure -= , line 148 */ + z->I[0] = 3; + z->I[1] -= 1; break; case 3: - z->I[1] = 1; /* $prefix = , line 149 */ - { int ret = slice_from_s(z, 1, s_1); /* <-, line 149 */ + z->I[0] = 1; + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } - z->I[0] -= 1; /* $measure -= , line 149 */ + z->I[1] -= 1; break; case 4: - z->I[1] = 3; /* $prefix = , line 150 */ - { int ret = slice_from_s(z, 1, s_2); /* <-, line 150 */ + z->I[0] = 3; + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } - z->I[0] -= 1; /* $measure -= , line 150 */ + z->I[1] -= 1; break; case 5: - z->I[1] = 1; /* $prefix = , line 151 */ - z->I[0] -= 1; /* $measure -= , line 151 */ - { int c1 = z->c; /* or, line 151 */ - { int c2 = z->c; /* and, line 151 */ - if (in_grouping_U(z, g_vowel, 97, 117, 0)) goto lab1; /* grouping vowel, line 151 */ + z->I[0] = 1; + z->I[1] -= 1; + { int c1 = z->c; + { int c2 = z->c; + if (in_grouping_U(z, g_vowel, 97, 117, 0)) goto lab1; z->c = c2; - { int ret = slice_from_s(z, 1, s_3); /* <-, line 151 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } } goto lab0; lab1: z->c = c1; - { int ret = slice_del(z); /* delete, line 151 */ + { int ret = slice_del(z); if (ret < 0) return ret; } } lab0: break; case 6: - z->I[1] = 3; /* $prefix = , line 152 */ - z->I[0] -= 1; /* $measure -= , line 152 */ - { int c3 = z->c; /* or, line 152 */ - { int c4 = z->c; /* and, line 152 */ - if (in_grouping_U(z, g_vowel, 97, 117, 0)) goto lab3; /* grouping vowel, line 152 */ + z->I[0] = 3; + z->I[1] -= 1; + { int c3 = z->c; + { int c4 = z->c; + if (in_grouping_U(z, g_vowel, 97, 117, 0)) goto lab3; z->c = c4; - { int ret = slice_from_s(z, 1, s_4); /* <-, line 152 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } } goto lab2; lab3: z->c = c3; - { int ret = slice_del(z); /* delete, line 152 */ + { int ret = slice_del(z); if (ret < 0) return ret; } } @@ -271,57 +271,56 @@ static int r_remove_first_order_prefix(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_remove_second_order_prefix(struct SN_env * z) { /* forwardmode */ +static int r_remove_second_order_prefix(struct SN_env * z) { int among_var; - z->bra = z->c; /* [, line 162 */ - if (z->c + 1 >= z->l || z->p[z->c + 1] != 101) return 0; /* substring, line 162 */ + z->bra = z->c; + if (z->c + 1 >= z->l || z->p[z->c + 1] != 101) return 0; among_var = find_among(z, a_4, 6); if (!(among_var)) return 0; - z->ket = z->c; /* ], line 162 */ - switch (among_var) { /* among, line 162 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 163 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->I[1] = 2; /* $prefix = , line 163 */ - z->I[0] -= 1; /* $measure -= , line 163 */ + z->I[0] = 2; + z->I[1] -= 1; break; case 2: - { int ret = slice_from_s(z, 4, s_5); /* <-, line 164 */ + { int ret = slice_from_s(z, 4, s_5); if (ret < 0) return ret; } - z->I[0] -= 1; /* $measure -= , line 164 */ + z->I[1] -= 1; break; case 3: - { int ret = slice_del(z); /* delete, line 165 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->I[1] = 4; /* $prefix = , line 165 */ - z->I[0] -= 1; /* $measure -= , line 165 */ + z->I[0] = 4; + z->I[1] -= 1; break; case 4: - { int ret = slice_from_s(z, 4, s_6); /* <-, line 166 */ + { int ret = slice_from_s(z, 4, s_6); if (ret < 0) return ret; } - z->I[1] = 4; /* $prefix = , line 166 */ - z->I[0] -= 1; /* $measure -= , line 166 */ + z->I[0] = 4; + z->I[1] -= 1; break; } return 1; } -extern int indonesian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - z->I[0] = 0; /* $measure = , line 172 */ - { int c1 = z->c; /* do, line 173 */ -/* repeat, line 173 */ - - while(1) { int c2 = z->c; - { /* gopast */ /* grouping vowel, line 173 */ +extern int indonesian_UTF_8_stem(struct SN_env * z) { + z->I[1] = 0; + { int c1 = z->c; + while(1) { + int c2 = z->c; + { int ret = out_grouping_U(z, g_vowel, 97, 117, 1); if (ret < 0) goto lab1; z->c += ret; } - z->I[0] += 1; /* $measure += , line 173 */ + z->I[1] += 1; continue; lab1: z->c = c2; @@ -329,45 +328,45 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ } z->c = c1; } - if (!(z->I[0] > 2)) return 0; /* $( > ), line 174 */ - z->I[1] = 0; /* $prefix = , line 175 */ - z->lb = z->c; z->c = z->l; /* backwards, line 176 */ + if (!(z->I[1] > 2)) return 0; + z->I[0] = 0; + z->lb = z->c; z->c = z->l; - { int m3 = z->l - z->c; (void)m3; /* do, line 177 */ - { int ret = r_remove_particle(z); /* call remove_particle, line 177 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_remove_particle(z); if (ret < 0) return ret; } z->c = z->l - m3; } - if (!(z->I[0] > 2)) return 0; /* $( > ), line 178 */ - { int m4 = z->l - z->c; (void)m4; /* do, line 179 */ - { int ret = r_remove_possessive_pronoun(z); /* call remove_possessive_pronoun, line 179 */ + if (!(z->I[1] > 2)) return 0; + { int m4 = z->l - z->c; (void)m4; + { int ret = r_remove_possessive_pronoun(z); if (ret < 0) return ret; } z->c = z->l - m4; } z->c = z->lb; - if (!(z->I[0] > 2)) return 0; /* $( > ), line 181 */ - { int c5 = z->c; /* or, line 188 */ - { int c_test6 = z->c; /* test, line 182 */ - { int ret = r_remove_first_order_prefix(z); /* call remove_first_order_prefix, line 183 */ + if (!(z->I[1] > 2)) return 0; + { int c5 = z->c; + { int c_test6 = z->c; + { int ret = r_remove_first_order_prefix(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } - { int c7 = z->c; /* do, line 184 */ - { int c_test8 = z->c; /* test, line 185 */ - if (!(z->I[0] > 2)) goto lab4; /* $( > ), line 185 */ - z->lb = z->c; z->c = z->l; /* backwards, line 185 */ + { int c7 = z->c; + { int c_test8 = z->c; + if (!(z->I[1] > 2)) goto lab4; + z->lb = z->c; z->c = z->l; - { int ret = r_remove_suffix(z); /* call remove_suffix, line 185 */ + { int ret = r_remove_suffix(z); if (ret == 0) goto lab4; if (ret < 0) return ret; } z->c = z->lb; z->c = c_test8; } - if (!(z->I[0] > 2)) goto lab4; /* $( > ), line 186 */ - { int ret = r_remove_second_order_prefix(z); /* call remove_second_order_prefix, line 186 */ + if (!(z->I[1] > 2)) goto lab4; + { int ret = r_remove_second_order_prefix(z); if (ret == 0) goto lab4; if (ret < 0) return ret; } @@ -379,17 +378,17 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ goto lab2; lab3: z->c = c5; - { int c9 = z->c; /* do, line 189 */ - { int ret = r_remove_second_order_prefix(z); /* call remove_second_order_prefix, line 189 */ + { int c9 = z->c; + { int ret = r_remove_second_order_prefix(z); if (ret < 0) return ret; } z->c = c9; } - { int c10 = z->c; /* do, line 190 */ - if (!(z->I[0] > 2)) goto lab5; /* $( > ), line 190 */ - z->lb = z->c; z->c = z->l; /* backwards, line 190 */ + { int c10 = z->c; + if (!(z->I[1] > 2)) goto lab5; + z->lb = z->c; z->c = z->l; - { int ret = r_remove_suffix(z); /* call remove_suffix, line 190 */ + { int ret = r_remove_suffix(z); if (ret == 0) goto lab5; if (ret < 0) return ret; } @@ -402,7 +401,7 @@ extern int indonesian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * indonesian_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); } +extern struct SN_env * indonesian_UTF_8_create_env(void) { return SN_create_env(0, 2); } extern void indonesian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_irish.c b/src/backend/snowball/libstemmer/stem_UTF_8_irish.c index 8d1f219db0b2e..b719318ce498e 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_irish.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_irish.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -56,30 +56,30 @@ static const symbol s_0_23[2] = { 't', 's' }; static const struct among a_0[24] = { -/* 0 */ { 2, s_0_0, -1, 1, 0}, -/* 1 */ { 2, s_0_1, -1, 4, 0}, -/* 2 */ { 3, s_0_2, 1, 2, 0}, -/* 3 */ { 2, s_0_3, -1, 8, 0}, -/* 4 */ { 2, s_0_4, -1, 5, 0}, -/* 5 */ { 2, s_0_5, -1, 1, 0}, -/* 6 */ { 4, s_0_6, 5, 2, 0}, -/* 7 */ { 2, s_0_7, -1, 6, 0}, -/* 8 */ { 2, s_0_8, -1, 9, 0}, -/* 9 */ { 2, s_0_9, -1, 2, 0}, -/* 10 */ { 2, s_0_10, -1, 5, 0}, -/* 11 */ { 2, s_0_11, -1, 7, 0}, -/* 12 */ { 2, s_0_12, -1, 1, 0}, -/* 13 */ { 2, s_0_13, -1, 1, 0}, -/* 14 */ { 2, s_0_14, -1, 4, 0}, -/* 15 */ { 2, s_0_15, -1, 10, 0}, -/* 16 */ { 2, s_0_16, -1, 1, 0}, -/* 17 */ { 2, s_0_17, -1, 6, 0}, -/* 18 */ { 2, s_0_18, -1, 7, 0}, -/* 19 */ { 2, s_0_19, -1, 8, 0}, -/* 20 */ { 2, s_0_20, -1, 3, 0}, -/* 21 */ { 2, s_0_21, -1, 1, 0}, -/* 22 */ { 2, s_0_22, -1, 9, 0}, -/* 23 */ { 2, s_0_23, -1, 3, 0} +{ 2, s_0_0, -1, 1, 0}, +{ 2, s_0_1, -1, 4, 0}, +{ 3, s_0_2, 1, 2, 0}, +{ 2, s_0_3, -1, 8, 0}, +{ 2, s_0_4, -1, 5, 0}, +{ 2, s_0_5, -1, 1, 0}, +{ 4, s_0_6, 5, 2, 0}, +{ 2, s_0_7, -1, 6, 0}, +{ 2, s_0_8, -1, 9, 0}, +{ 2, s_0_9, -1, 2, 0}, +{ 2, s_0_10, -1, 5, 0}, +{ 2, s_0_11, -1, 7, 0}, +{ 2, s_0_12, -1, 1, 0}, +{ 2, s_0_13, -1, 1, 0}, +{ 2, s_0_14, -1, 4, 0}, +{ 2, s_0_15, -1, 10, 0}, +{ 2, s_0_16, -1, 1, 0}, +{ 2, s_0_17, -1, 6, 0}, +{ 2, s_0_18, -1, 7, 0}, +{ 2, s_0_19, -1, 8, 0}, +{ 2, s_0_20, -1, 3, 0}, +{ 2, s_0_21, -1, 1, 0}, +{ 2, s_0_22, -1, 9, 0}, +{ 2, s_0_23, -1, 3, 0} }; static const symbol s_1_0[7] = { 0xC3, 0xAD, 'o', 'c', 'h', 't', 'a' }; @@ -101,22 +101,22 @@ static const symbol s_1_15[5] = { 'a', 'i', 'r', 0xC3, 0xAD }; static const struct among a_1[16] = { -/* 0 */ { 7, s_1_0, -1, 1, 0}, -/* 1 */ { 8, s_1_1, 0, 1, 0}, -/* 2 */ { 3, s_1_2, -1, 2, 0}, -/* 3 */ { 4, s_1_3, 2, 2, 0}, -/* 4 */ { 3, s_1_4, -1, 1, 0}, -/* 5 */ { 4, s_1_5, 4, 1, 0}, -/* 6 */ { 3, s_1_6, -1, 1, 0}, -/* 7 */ { 4, s_1_7, 6, 1, 0}, -/* 8 */ { 3, s_1_8, -1, 1, 0}, -/* 9 */ { 4, s_1_9, 8, 1, 0}, -/* 10 */ { 3, s_1_10, -1, 1, 0}, -/* 11 */ { 4, s_1_11, 10, 1, 0}, -/* 12 */ { 6, s_1_12, -1, 1, 0}, -/* 13 */ { 7, s_1_13, 12, 1, 0}, -/* 14 */ { 4, s_1_14, -1, 2, 0}, -/* 15 */ { 5, s_1_15, 14, 2, 0} +{ 7, s_1_0, -1, 1, 0}, +{ 8, s_1_1, 0, 1, 0}, +{ 3, s_1_2, -1, 2, 0}, +{ 4, s_1_3, 2, 2, 0}, +{ 3, s_1_4, -1, 1, 0}, +{ 4, s_1_5, 4, 1, 0}, +{ 3, s_1_6, -1, 1, 0}, +{ 4, s_1_7, 6, 1, 0}, +{ 3, s_1_8, -1, 1, 0}, +{ 4, s_1_9, 8, 1, 0}, +{ 3, s_1_10, -1, 1, 0}, +{ 4, s_1_11, 10, 1, 0}, +{ 6, s_1_12, -1, 1, 0}, +{ 7, s_1_13, 12, 1, 0}, +{ 4, s_1_14, -1, 2, 0}, +{ 5, s_1_15, 14, 2, 0} }; static const symbol s_2_0[9] = { 0xC3, 0xB3, 'i', 'd', 'e', 'a', 'c', 'h', 'a' }; @@ -147,31 +147,31 @@ static const symbol s_2_24[14] = { 'g', 'r', 'a', 'f', 'a', 0xC3, 0xAD, 'o', 'c' static const struct among a_2[25] = { -/* 0 */ { 9, s_2_0, -1, 6, 0}, -/* 1 */ { 7, s_2_1, -1, 5, 0}, -/* 2 */ { 5, s_2_2, -1, 1, 0}, -/* 3 */ { 8, s_2_3, 2, 2, 0}, -/* 4 */ { 6, s_2_4, 2, 1, 0}, -/* 5 */ { 12, s_2_5, -1, 4, 0}, -/* 6 */ { 5, s_2_6, -1, 5, 0}, -/* 7 */ { 3, s_2_7, -1, 1, 0}, -/* 8 */ { 4, s_2_8, 7, 1, 0}, -/* 9 */ { 8, s_2_9, 8, 6, 0}, -/* 10 */ { 7, s_2_10, 8, 3, 0}, -/* 11 */ { 6, s_2_11, 7, 5, 0}, -/* 12 */ { 10, s_2_12, -1, 4, 0}, -/* 13 */ { 7, s_2_13, -1, 5, 0}, -/* 14 */ { 7, s_2_14, -1, 6, 0}, -/* 15 */ { 8, s_2_15, -1, 1, 0}, -/* 16 */ { 9, s_2_16, 15, 1, 0}, -/* 17 */ { 6, s_2_17, -1, 3, 0}, -/* 18 */ { 5, s_2_18, -1, 3, 0}, -/* 19 */ { 4, s_2_19, -1, 1, 0}, -/* 20 */ { 7, s_2_20, 19, 2, 0}, -/* 21 */ { 5, s_2_21, 19, 1, 0}, -/* 22 */ { 11, s_2_22, -1, 4, 0}, -/* 23 */ { 10, s_2_23, -1, 2, 0}, -/* 24 */ { 14, s_2_24, -1, 4, 0} +{ 9, s_2_0, -1, 6, 0}, +{ 7, s_2_1, -1, 5, 0}, +{ 5, s_2_2, -1, 1, 0}, +{ 8, s_2_3, 2, 2, 0}, +{ 6, s_2_4, 2, 1, 0}, +{ 12, s_2_5, -1, 4, 0}, +{ 5, s_2_6, -1, 5, 0}, +{ 3, s_2_7, -1, 1, 0}, +{ 4, s_2_8, 7, 1, 0}, +{ 8, s_2_9, 8, 6, 0}, +{ 7, s_2_10, 8, 3, 0}, +{ 6, s_2_11, 7, 5, 0}, +{ 10, s_2_12, -1, 4, 0}, +{ 7, s_2_13, -1, 5, 0}, +{ 7, s_2_14, -1, 6, 0}, +{ 8, s_2_15, -1, 1, 0}, +{ 9, s_2_16, 15, 1, 0}, +{ 6, s_2_17, -1, 3, 0}, +{ 5, s_2_18, -1, 3, 0}, +{ 4, s_2_19, -1, 1, 0}, +{ 7, s_2_20, 19, 2, 0}, +{ 5, s_2_21, 19, 1, 0}, +{ 11, s_2_22, -1, 4, 0}, +{ 10, s_2_23, -1, 2, 0}, +{ 14, s_2_24, -1, 4, 0} }; static const symbol s_3_0[4] = { 'i', 'm', 'i', 'd' }; @@ -189,18 +189,18 @@ static const symbol s_3_11[3] = { 't', 'a', 'r' }; static const struct among a_3[12] = { -/* 0 */ { 4, s_3_0, -1, 1, 0}, -/* 1 */ { 5, s_3_1, 0, 1, 0}, -/* 2 */ { 5, s_3_2, -1, 1, 0}, -/* 3 */ { 6, s_3_3, 2, 1, 0}, -/* 4 */ { 3, s_3_4, -1, 2, 0}, -/* 5 */ { 4, s_3_5, 4, 2, 0}, -/* 6 */ { 5, s_3_6, -1, 1, 0}, -/* 7 */ { 4, s_3_7, -1, 1, 0}, -/* 8 */ { 4, s_3_8, -1, 2, 0}, -/* 9 */ { 3, s_3_9, -1, 2, 0}, -/* 10 */ { 4, s_3_10, -1, 2, 0}, -/* 11 */ { 3, s_3_11, -1, 2, 0} +{ 4, s_3_0, -1, 1, 0}, +{ 5, s_3_1, 0, 1, 0}, +{ 5, s_3_2, -1, 1, 0}, +{ 6, s_3_3, 2, 1, 0}, +{ 3, s_3_4, -1, 2, 0}, +{ 4, s_3_5, 4, 2, 0}, +{ 5, s_3_6, -1, 1, 0}, +{ 4, s_3_7, -1, 1, 0}, +{ 4, s_3_8, -1, 2, 0}, +{ 3, s_3_9, -1, 2, 0}, +{ 4, s_3_10, -1, 2, 0}, +{ 3, s_3_11, -1, 2, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 2 }; @@ -220,103 +220,103 @@ static const symbol s_11[] = { 'g', 'r', 'a', 'f' }; static const symbol s_12[] = { 'p', 'a', 'i', 't', 'e' }; static const symbol s_13[] = { 0xC3, 0xB3, 'i', 'd' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $pV = , line 30 */ - z->I[1] = z->l; /* $p1 = , line 31 */ - z->I[2] = z->l; /* $p2 = , line 32 */ - { int c1 = z->c; /* do, line 34 */ - { /* gopast */ /* grouping v, line 35 */ +static int r_mark_regions(struct SN_env * z) { + z->I[2] = z->l; + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int ret = out_grouping_U(z, g_v, 97, 250, 1); if (ret < 0) goto lab0; z->c += ret; } - z->I[0] = z->c; /* setmark pV, line 35 */ + z->I[2] = z->c; lab0: z->c = c1; } - { int c2 = z->c; /* do, line 37 */ - { /* gopast */ /* grouping v, line 38 */ + { int c2 = z->c; + { int ret = out_grouping_U(z, g_v, 97, 250, 1); if (ret < 0) goto lab1; z->c += ret; } - { /* gopast */ /* non v, line 38 */ + { int ret = in_grouping_U(z, g_v, 97, 250, 1); if (ret < 0) goto lab1; z->c += ret; } - z->I[1] = z->c; /* setmark p1, line 38 */ - { /* gopast */ /* grouping v, line 39 */ + z->I[1] = z->c; + { int ret = out_grouping_U(z, g_v, 97, 250, 1); if (ret < 0) goto lab1; z->c += ret; } - { /* gopast */ /* non v, line 39 */ + { int ret = in_grouping_U(z, g_v, 97, 250, 1); if (ret < 0) goto lab1; z->c += ret; } - z->I[2] = z->c; /* setmark p2, line 39 */ + z->I[0] = z->c; lab1: z->c = c2; } return 1; } -static int r_initial_morph(struct SN_env * z) { /* forwardmode */ +static int r_initial_morph(struct SN_env * z) { int among_var; - z->bra = z->c; /* [, line 44 */ - among_var = find_among(z, a_0, 24); /* substring, line 44 */ + z->bra = z->c; + among_var = find_among(z, a_0, 24); if (!(among_var)) return 0; - z->ket = z->c; /* ], line 44 */ - switch (among_var) { /* among, line 44 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 46 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_0); /* <-, line 52 */ + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_1); /* <-, line 58 */ + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 1, s_2); /* <-, line 61 */ + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 1, s_3); /* <-, line 63 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 1, s_4); /* <-, line 65 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 1, s_5); /* <-, line 69 */ + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } break; case 8: - { int ret = slice_from_s(z, 1, s_6); /* <-, line 71 */ + { int ret = slice_from_s(z, 1, s_6); if (ret < 0) return ret; } break; case 9: - { int ret = slice_from_s(z, 1, s_7); /* <-, line 75 */ + { int ret = slice_from_s(z, 1, s_7); if (ret < 0) return ret; } break; case 10: - { int ret = slice_from_s(z, 1, s_8); /* <-, line 89 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } break; @@ -324,41 +324,41 @@ static int r_initial_morph(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_RV(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 99 */ +static int r_RV(struct SN_env * z) { + if (!(z->I[2] <= z->c)) return 0; return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 100 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 101 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_noun_sfx(struct SN_env * z) { /* backwardmode */ +static int r_noun_sfx(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 104 */ - among_var = find_among_b(z, a_1, 16); /* substring, line 104 */ + z->ket = z->c; + among_var = find_among_b(z, a_1, 16); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 104 */ - switch (among_var) { /* among, line 104 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R1(z); /* call R1, line 108 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 108 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 110 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 110 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -366,43 +366,43 @@ static int r_noun_sfx(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_deriv(struct SN_env * z) { /* backwardmode */ +static int r_deriv(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 114 */ - among_var = find_among_b(z, a_2, 25); /* substring, line 114 */ + z->ket = z->c; + among_var = find_among_b(z, a_2, 25); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 114 */ - switch (among_var) { /* among, line 114 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 116 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 116 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 3, s_9); /* <-, line 118 */ + { int ret = slice_from_s(z, 3, s_9); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 3, s_10); /* <-, line 120 */ + { int ret = slice_from_s(z, 3, s_10); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 4, s_11); /* <-, line 122 */ + { int ret = slice_from_s(z, 4, s_11); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 5, s_12); /* <-, line 124 */ + { int ret = slice_from_s(z, 5, s_12); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 4, s_13); /* <-, line 126 */ + { int ret = slice_from_s(z, 4, s_13); if (ret < 0) return ret; } break; @@ -410,27 +410,27 @@ static int r_deriv(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_verb_sfx(struct SN_env * z) { /* backwardmode */ +static int r_verb_sfx(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 130 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((282896 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 130 */ + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((282896 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_3, 12); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 130 */ - switch (among_var) { /* among, line 130 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_RV(z); /* call RV, line 133 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 133 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R1(z); /* call R1, line 138 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 138 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -438,33 +438,33 @@ static int r_verb_sfx(struct SN_env * z) { /* backwardmode */ return 1; } -extern int irish_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 144 */ - { int ret = r_initial_morph(z); /* call initial_morph, line 144 */ +extern int irish_UTF_8_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_initial_morph(z); if (ret < 0) return ret; } z->c = c1; } - /* do, line 145 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 145 */ + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 146 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 147 */ - { int ret = r_noun_sfx(z); /* call noun_sfx, line 147 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_noun_sfx(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 148 */ - { int ret = r_deriv(z); /* call deriv, line 148 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_deriv(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 149 */ - { int ret = r_verb_sfx(z); /* call verb_sfx, line 149 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_verb_sfx(z); if (ret < 0) return ret; } z->c = z->l - m4; @@ -473,7 +473,7 @@ extern int irish_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * irish_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); } +extern struct SN_env * irish_UTF_8_create_env(void) { return SN_create_env(0, 3); } extern void irish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_italian.c b/src/backend/snowball/libstemmer/stem_UTF_8_italian.c index 51e47978c21af..bd68ad711c314 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_italian.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_italian.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -40,13 +40,13 @@ static const symbol s_0_6[2] = { 0xC3, 0xBA }; static const struct among a_0[7] = { -/* 0 */ { 0, 0, -1, 7, 0}, -/* 1 */ { 2, s_0_1, 0, 6, 0}, -/* 2 */ { 2, s_0_2, 0, 1, 0}, -/* 3 */ { 2, s_0_3, 0, 2, 0}, -/* 4 */ { 2, s_0_4, 0, 3, 0}, -/* 5 */ { 2, s_0_5, 0, 4, 0}, -/* 6 */ { 2, s_0_6, 0, 5, 0} +{ 0, 0, -1, 7, 0}, +{ 2, s_0_1, 0, 6, 0}, +{ 2, s_0_2, 0, 1, 0}, +{ 2, s_0_3, 0, 2, 0}, +{ 2, s_0_4, 0, 3, 0}, +{ 2, s_0_5, 0, 4, 0}, +{ 2, s_0_6, 0, 5, 0} }; static const symbol s_1_1[1] = { 'I' }; @@ -54,9 +54,9 @@ static const symbol s_1_2[1] = { 'U' }; static const struct among a_1[3] = { -/* 0 */ { 0, 0, -1, 3, 0}, -/* 1 */ { 1, s_1_1, 0, 1, 0}, -/* 2 */ { 1, s_1_2, 0, 2, 0} +{ 0, 0, -1, 3, 0}, +{ 1, s_1_1, 0, 1, 0}, +{ 1, s_1_2, 0, 2, 0} }; static const symbol s_2_0[2] = { 'l', 'a' }; @@ -99,43 +99,43 @@ static const symbol s_2_36[4] = { 'v', 'e', 'l', 'o' }; static const struct among a_2[37] = { -/* 0 */ { 2, s_2_0, -1, -1, 0}, -/* 1 */ { 4, s_2_1, 0, -1, 0}, -/* 2 */ { 6, s_2_2, 0, -1, 0}, -/* 3 */ { 4, s_2_3, 0, -1, 0}, -/* 4 */ { 4, s_2_4, 0, -1, 0}, -/* 5 */ { 4, s_2_5, 0, -1, 0}, -/* 6 */ { 2, s_2_6, -1, -1, 0}, -/* 7 */ { 4, s_2_7, 6, -1, 0}, -/* 8 */ { 6, s_2_8, 6, -1, 0}, -/* 9 */ { 4, s_2_9, 6, -1, 0}, -/* 10 */ { 4, s_2_10, 6, -1, 0}, -/* 11 */ { 4, s_2_11, 6, -1, 0}, -/* 12 */ { 2, s_2_12, -1, -1, 0}, -/* 13 */ { 4, s_2_13, 12, -1, 0}, -/* 14 */ { 6, s_2_14, 12, -1, 0}, -/* 15 */ { 4, s_2_15, 12, -1, 0}, -/* 16 */ { 4, s_2_16, 12, -1, 0}, -/* 17 */ { 4, s_2_17, 12, -1, 0}, -/* 18 */ { 4, s_2_18, 12, -1, 0}, -/* 19 */ { 2, s_2_19, -1, -1, 0}, -/* 20 */ { 2, s_2_20, -1, -1, 0}, -/* 21 */ { 4, s_2_21, 20, -1, 0}, -/* 22 */ { 6, s_2_22, 20, -1, 0}, -/* 23 */ { 4, s_2_23, 20, -1, 0}, -/* 24 */ { 4, s_2_24, 20, -1, 0}, -/* 25 */ { 4, s_2_25, 20, -1, 0}, -/* 26 */ { 3, s_2_26, 20, -1, 0}, -/* 27 */ { 2, s_2_27, -1, -1, 0}, -/* 28 */ { 2, s_2_28, -1, -1, 0}, -/* 29 */ { 2, s_2_29, -1, -1, 0}, -/* 30 */ { 2, s_2_30, -1, -1, 0}, -/* 31 */ { 2, s_2_31, -1, -1, 0}, -/* 32 */ { 4, s_2_32, 31, -1, 0}, -/* 33 */ { 6, s_2_33, 31, -1, 0}, -/* 34 */ { 4, s_2_34, 31, -1, 0}, -/* 35 */ { 4, s_2_35, 31, -1, 0}, -/* 36 */ { 4, s_2_36, 31, -1, 0} +{ 2, s_2_0, -1, -1, 0}, +{ 4, s_2_1, 0, -1, 0}, +{ 6, s_2_2, 0, -1, 0}, +{ 4, s_2_3, 0, -1, 0}, +{ 4, s_2_4, 0, -1, 0}, +{ 4, s_2_5, 0, -1, 0}, +{ 2, s_2_6, -1, -1, 0}, +{ 4, s_2_7, 6, -1, 0}, +{ 6, s_2_8, 6, -1, 0}, +{ 4, s_2_9, 6, -1, 0}, +{ 4, s_2_10, 6, -1, 0}, +{ 4, s_2_11, 6, -1, 0}, +{ 2, s_2_12, -1, -1, 0}, +{ 4, s_2_13, 12, -1, 0}, +{ 6, s_2_14, 12, -1, 0}, +{ 4, s_2_15, 12, -1, 0}, +{ 4, s_2_16, 12, -1, 0}, +{ 4, s_2_17, 12, -1, 0}, +{ 4, s_2_18, 12, -1, 0}, +{ 2, s_2_19, -1, -1, 0}, +{ 2, s_2_20, -1, -1, 0}, +{ 4, s_2_21, 20, -1, 0}, +{ 6, s_2_22, 20, -1, 0}, +{ 4, s_2_23, 20, -1, 0}, +{ 4, s_2_24, 20, -1, 0}, +{ 4, s_2_25, 20, -1, 0}, +{ 3, s_2_26, 20, -1, 0}, +{ 2, s_2_27, -1, -1, 0}, +{ 2, s_2_28, -1, -1, 0}, +{ 2, s_2_29, -1, -1, 0}, +{ 2, s_2_30, -1, -1, 0}, +{ 2, s_2_31, -1, -1, 0}, +{ 4, s_2_32, 31, -1, 0}, +{ 6, s_2_33, 31, -1, 0}, +{ 4, s_2_34, 31, -1, 0}, +{ 4, s_2_35, 31, -1, 0}, +{ 4, s_2_36, 31, -1, 0} }; static const symbol s_3_0[4] = { 'a', 'n', 'd', 'o' }; @@ -146,11 +146,11 @@ static const symbol s_3_4[2] = { 'i', 'r' }; static const struct among a_3[5] = { -/* 0 */ { 4, s_3_0, -1, 1, 0}, -/* 1 */ { 4, s_3_1, -1, 1, 0}, -/* 2 */ { 2, s_3_2, -1, 2, 0}, -/* 3 */ { 2, s_3_3, -1, 2, 0}, -/* 4 */ { 2, s_3_4, -1, 2, 0} +{ 4, s_3_0, -1, 1, 0}, +{ 4, s_3_1, -1, 1, 0}, +{ 2, s_3_2, -1, 2, 0}, +{ 2, s_3_3, -1, 2, 0}, +{ 2, s_3_4, -1, 2, 0} }; static const symbol s_4_0[2] = { 'i', 'c' }; @@ -160,10 +160,10 @@ static const symbol s_4_3[2] = { 'i', 'v' }; static const struct among a_4[4] = { -/* 0 */ { 2, s_4_0, -1, -1, 0}, -/* 1 */ { 4, s_4_1, -1, -1, 0}, -/* 2 */ { 2, s_4_2, -1, -1, 0}, -/* 3 */ { 2, s_4_3, -1, 1, 0} +{ 2, s_4_0, -1, -1, 0}, +{ 4, s_4_1, -1, -1, 0}, +{ 2, s_4_2, -1, -1, 0}, +{ 2, s_4_3, -1, 1, 0} }; static const symbol s_5_0[2] = { 'i', 'c' }; @@ -172,9 +172,9 @@ static const symbol s_5_2[2] = { 'i', 'v' }; static const struct among a_5[3] = { -/* 0 */ { 2, s_5_0, -1, 1, 0}, -/* 1 */ { 4, s_5_1, -1, 1, 0}, -/* 2 */ { 2, s_5_2, -1, 1, 0} +{ 2, s_5_0, -1, 1, 0}, +{ 4, s_5_1, -1, 1, 0}, +{ 2, s_5_2, -1, 1, 0} }; static const symbol s_6_0[3] = { 'i', 'c', 'a' }; @@ -231,57 +231,57 @@ static const symbol s_6_50[5] = { 'i', 's', 't', 0xC3, 0xAC }; static const struct among a_6[51] = { -/* 0 */ { 3, s_6_0, -1, 1, 0}, -/* 1 */ { 5, s_6_1, -1, 3, 0}, -/* 2 */ { 3, s_6_2, -1, 1, 0}, -/* 3 */ { 4, s_6_3, -1, 1, 0}, -/* 4 */ { 3, s_6_4, -1, 9, 0}, -/* 5 */ { 4, s_6_5, -1, 1, 0}, -/* 6 */ { 4, s_6_6, -1, 5, 0}, -/* 7 */ { 3, s_6_7, -1, 1, 0}, -/* 8 */ { 6, s_6_8, 7, 1, 0}, -/* 9 */ { 4, s_6_9, -1, 1, 0}, -/* 10 */ { 5, s_6_10, -1, 3, 0}, -/* 11 */ { 5, s_6_11, -1, 1, 0}, -/* 12 */ { 5, s_6_12, -1, 1, 0}, -/* 13 */ { 6, s_6_13, -1, 4, 0}, -/* 14 */ { 6, s_6_14, -1, 2, 0}, -/* 15 */ { 6, s_6_15, -1, 4, 0}, -/* 16 */ { 5, s_6_16, -1, 2, 0}, -/* 17 */ { 3, s_6_17, -1, 1, 0}, -/* 18 */ { 4, s_6_18, -1, 1, 0}, -/* 19 */ { 5, s_6_19, -1, 1, 0}, -/* 20 */ { 6, s_6_20, 19, 7, 0}, -/* 21 */ { 4, s_6_21, -1, 1, 0}, -/* 22 */ { 3, s_6_22, -1, 9, 0}, -/* 23 */ { 4, s_6_23, -1, 1, 0}, -/* 24 */ { 4, s_6_24, -1, 5, 0}, -/* 25 */ { 3, s_6_25, -1, 1, 0}, -/* 26 */ { 6, s_6_26, 25, 1, 0}, -/* 27 */ { 4, s_6_27, -1, 1, 0}, -/* 28 */ { 5, s_6_28, -1, 1, 0}, -/* 29 */ { 5, s_6_29, -1, 1, 0}, -/* 30 */ { 4, s_6_30, -1, 1, 0}, -/* 31 */ { 6, s_6_31, -1, 4, 0}, -/* 32 */ { 6, s_6_32, -1, 2, 0}, -/* 33 */ { 6, s_6_33, -1, 4, 0}, -/* 34 */ { 5, s_6_34, -1, 2, 0}, -/* 35 */ { 3, s_6_35, -1, 1, 0}, -/* 36 */ { 4, s_6_36, -1, 1, 0}, -/* 37 */ { 6, s_6_37, -1, 6, 0}, -/* 38 */ { 6, s_6_38, -1, 6, 0}, -/* 39 */ { 4, s_6_39, -1, 1, 0}, -/* 40 */ { 3, s_6_40, -1, 9, 0}, -/* 41 */ { 3, s_6_41, -1, 1, 0}, -/* 42 */ { 4, s_6_42, -1, 1, 0}, -/* 43 */ { 3, s_6_43, -1, 1, 0}, -/* 44 */ { 6, s_6_44, -1, 6, 0}, -/* 45 */ { 6, s_6_45, -1, 6, 0}, -/* 46 */ { 3, s_6_46, -1, 9, 0}, -/* 47 */ { 4, s_6_47, -1, 8, 0}, -/* 48 */ { 5, s_6_48, -1, 1, 0}, -/* 49 */ { 5, s_6_49, -1, 1, 0}, -/* 50 */ { 5, s_6_50, -1, 1, 0} +{ 3, s_6_0, -1, 1, 0}, +{ 5, s_6_1, -1, 3, 0}, +{ 3, s_6_2, -1, 1, 0}, +{ 4, s_6_3, -1, 1, 0}, +{ 3, s_6_4, -1, 9, 0}, +{ 4, s_6_5, -1, 1, 0}, +{ 4, s_6_6, -1, 5, 0}, +{ 3, s_6_7, -1, 1, 0}, +{ 6, s_6_8, 7, 1, 0}, +{ 4, s_6_9, -1, 1, 0}, +{ 5, s_6_10, -1, 3, 0}, +{ 5, s_6_11, -1, 1, 0}, +{ 5, s_6_12, -1, 1, 0}, +{ 6, s_6_13, -1, 4, 0}, +{ 6, s_6_14, -1, 2, 0}, +{ 6, s_6_15, -1, 4, 0}, +{ 5, s_6_16, -1, 2, 0}, +{ 3, s_6_17, -1, 1, 0}, +{ 4, s_6_18, -1, 1, 0}, +{ 5, s_6_19, -1, 1, 0}, +{ 6, s_6_20, 19, 7, 0}, +{ 4, s_6_21, -1, 1, 0}, +{ 3, s_6_22, -1, 9, 0}, +{ 4, s_6_23, -1, 1, 0}, +{ 4, s_6_24, -1, 5, 0}, +{ 3, s_6_25, -1, 1, 0}, +{ 6, s_6_26, 25, 1, 0}, +{ 4, s_6_27, -1, 1, 0}, +{ 5, s_6_28, -1, 1, 0}, +{ 5, s_6_29, -1, 1, 0}, +{ 4, s_6_30, -1, 1, 0}, +{ 6, s_6_31, -1, 4, 0}, +{ 6, s_6_32, -1, 2, 0}, +{ 6, s_6_33, -1, 4, 0}, +{ 5, s_6_34, -1, 2, 0}, +{ 3, s_6_35, -1, 1, 0}, +{ 4, s_6_36, -1, 1, 0}, +{ 6, s_6_37, -1, 6, 0}, +{ 6, s_6_38, -1, 6, 0}, +{ 4, s_6_39, -1, 1, 0}, +{ 3, s_6_40, -1, 9, 0}, +{ 3, s_6_41, -1, 1, 0}, +{ 4, s_6_42, -1, 1, 0}, +{ 3, s_6_43, -1, 1, 0}, +{ 6, s_6_44, -1, 6, 0}, +{ 6, s_6_45, -1, 6, 0}, +{ 3, s_6_46, -1, 9, 0}, +{ 4, s_6_47, -1, 8, 0}, +{ 5, s_6_48, -1, 1, 0}, +{ 5, s_6_49, -1, 1, 0}, +{ 5, s_6_50, -1, 1, 0} }; static const symbol s_7_0[4] = { 'i', 's', 'c', 'a' }; @@ -374,93 +374,93 @@ static const symbol s_7_86[4] = { 'i', 'r', 0xC3, 0xB2 }; static const struct among a_7[87] = { -/* 0 */ { 4, s_7_0, -1, 1, 0}, -/* 1 */ { 4, s_7_1, -1, 1, 0}, -/* 2 */ { 3, s_7_2, -1, 1, 0}, -/* 3 */ { 3, s_7_3, -1, 1, 0}, -/* 4 */ { 3, s_7_4, -1, 1, 0}, -/* 5 */ { 3, s_7_5, -1, 1, 0}, -/* 6 */ { 3, s_7_6, -1, 1, 0}, -/* 7 */ { 3, s_7_7, -1, 1, 0}, -/* 8 */ { 6, s_7_8, -1, 1, 0}, -/* 9 */ { 6, s_7_9, -1, 1, 0}, -/* 10 */ { 4, s_7_10, -1, 1, 0}, -/* 11 */ { 4, s_7_11, -1, 1, 0}, -/* 12 */ { 3, s_7_12, -1, 1, 0}, -/* 13 */ { 3, s_7_13, -1, 1, 0}, -/* 14 */ { 3, s_7_14, -1, 1, 0}, -/* 15 */ { 4, s_7_15, -1, 1, 0}, -/* 16 */ { 3, s_7_16, -1, 1, 0}, -/* 17 */ { 5, s_7_17, 16, 1, 0}, -/* 18 */ { 5, s_7_18, 16, 1, 0}, -/* 19 */ { 5, s_7_19, 16, 1, 0}, -/* 20 */ { 3, s_7_20, -1, 1, 0}, -/* 21 */ { 5, s_7_21, 20, 1, 0}, -/* 22 */ { 5, s_7_22, 20, 1, 0}, -/* 23 */ { 3, s_7_23, -1, 1, 0}, -/* 24 */ { 6, s_7_24, -1, 1, 0}, -/* 25 */ { 6, s_7_25, -1, 1, 0}, -/* 26 */ { 3, s_7_26, -1, 1, 0}, -/* 27 */ { 4, s_7_27, -1, 1, 0}, -/* 28 */ { 4, s_7_28, -1, 1, 0}, -/* 29 */ { 4, s_7_29, -1, 1, 0}, -/* 30 */ { 4, s_7_30, -1, 1, 0}, -/* 31 */ { 4, s_7_31, -1, 1, 0}, -/* 32 */ { 4, s_7_32, -1, 1, 0}, -/* 33 */ { 4, s_7_33, -1, 1, 0}, -/* 34 */ { 3, s_7_34, -1, 1, 0}, -/* 35 */ { 3, s_7_35, -1, 1, 0}, -/* 36 */ { 6, s_7_36, -1, 1, 0}, -/* 37 */ { 6, s_7_37, -1, 1, 0}, -/* 38 */ { 3, s_7_38, -1, 1, 0}, -/* 39 */ { 3, s_7_39, -1, 1, 0}, -/* 40 */ { 3, s_7_40, -1, 1, 0}, -/* 41 */ { 3, s_7_41, -1, 1, 0}, -/* 42 */ { 4, s_7_42, -1, 1, 0}, -/* 43 */ { 4, s_7_43, -1, 1, 0}, -/* 44 */ { 4, s_7_44, -1, 1, 0}, -/* 45 */ { 4, s_7_45, -1, 1, 0}, -/* 46 */ { 4, s_7_46, -1, 1, 0}, -/* 47 */ { 5, s_7_47, -1, 1, 0}, -/* 48 */ { 5, s_7_48, -1, 1, 0}, -/* 49 */ { 5, s_7_49, -1, 1, 0}, -/* 50 */ { 5, s_7_50, -1, 1, 0}, -/* 51 */ { 5, s_7_51, -1, 1, 0}, -/* 52 */ { 6, s_7_52, -1, 1, 0}, -/* 53 */ { 4, s_7_53, -1, 1, 0}, -/* 54 */ { 4, s_7_54, -1, 1, 0}, -/* 55 */ { 6, s_7_55, 54, 1, 0}, -/* 56 */ { 6, s_7_56, 54, 1, 0}, -/* 57 */ { 4, s_7_57, -1, 1, 0}, -/* 58 */ { 3, s_7_58, -1, 1, 0}, -/* 59 */ { 6, s_7_59, 58, 1, 0}, -/* 60 */ { 5, s_7_60, 58, 1, 0}, -/* 61 */ { 5, s_7_61, 58, 1, 0}, -/* 62 */ { 5, s_7_62, 58, 1, 0}, -/* 63 */ { 6, s_7_63, -1, 1, 0}, -/* 64 */ { 6, s_7_64, -1, 1, 0}, -/* 65 */ { 3, s_7_65, -1, 1, 0}, -/* 66 */ { 6, s_7_66, 65, 1, 0}, -/* 67 */ { 5, s_7_67, 65, 1, 0}, -/* 68 */ { 5, s_7_68, 65, 1, 0}, -/* 69 */ { 5, s_7_69, 65, 1, 0}, -/* 70 */ { 8, s_7_70, -1, 1, 0}, -/* 71 */ { 8, s_7_71, -1, 1, 0}, -/* 72 */ { 6, s_7_72, -1, 1, 0}, -/* 73 */ { 6, s_7_73, -1, 1, 0}, -/* 74 */ { 6, s_7_74, -1, 1, 0}, -/* 75 */ { 3, s_7_75, -1, 1, 0}, -/* 76 */ { 3, s_7_76, -1, 1, 0}, -/* 77 */ { 3, s_7_77, -1, 1, 0}, -/* 78 */ { 3, s_7_78, -1, 1, 0}, -/* 79 */ { 3, s_7_79, -1, 1, 0}, -/* 80 */ { 3, s_7_80, -1, 1, 0}, -/* 81 */ { 2, s_7_81, -1, 1, 0}, -/* 82 */ { 2, s_7_82, -1, 1, 0}, -/* 83 */ { 4, s_7_83, -1, 1, 0}, -/* 84 */ { 4, s_7_84, -1, 1, 0}, -/* 85 */ { 4, s_7_85, -1, 1, 0}, -/* 86 */ { 4, s_7_86, -1, 1, 0} +{ 4, s_7_0, -1, 1, 0}, +{ 4, s_7_1, -1, 1, 0}, +{ 3, s_7_2, -1, 1, 0}, +{ 3, s_7_3, -1, 1, 0}, +{ 3, s_7_4, -1, 1, 0}, +{ 3, s_7_5, -1, 1, 0}, +{ 3, s_7_6, -1, 1, 0}, +{ 3, s_7_7, -1, 1, 0}, +{ 6, s_7_8, -1, 1, 0}, +{ 6, s_7_9, -1, 1, 0}, +{ 4, s_7_10, -1, 1, 0}, +{ 4, s_7_11, -1, 1, 0}, +{ 3, s_7_12, -1, 1, 0}, +{ 3, s_7_13, -1, 1, 0}, +{ 3, s_7_14, -1, 1, 0}, +{ 4, s_7_15, -1, 1, 0}, +{ 3, s_7_16, -1, 1, 0}, +{ 5, s_7_17, 16, 1, 0}, +{ 5, s_7_18, 16, 1, 0}, +{ 5, s_7_19, 16, 1, 0}, +{ 3, s_7_20, -1, 1, 0}, +{ 5, s_7_21, 20, 1, 0}, +{ 5, s_7_22, 20, 1, 0}, +{ 3, s_7_23, -1, 1, 0}, +{ 6, s_7_24, -1, 1, 0}, +{ 6, s_7_25, -1, 1, 0}, +{ 3, s_7_26, -1, 1, 0}, +{ 4, s_7_27, -1, 1, 0}, +{ 4, s_7_28, -1, 1, 0}, +{ 4, s_7_29, -1, 1, 0}, +{ 4, s_7_30, -1, 1, 0}, +{ 4, s_7_31, -1, 1, 0}, +{ 4, s_7_32, -1, 1, 0}, +{ 4, s_7_33, -1, 1, 0}, +{ 3, s_7_34, -1, 1, 0}, +{ 3, s_7_35, -1, 1, 0}, +{ 6, s_7_36, -1, 1, 0}, +{ 6, s_7_37, -1, 1, 0}, +{ 3, s_7_38, -1, 1, 0}, +{ 3, s_7_39, -1, 1, 0}, +{ 3, s_7_40, -1, 1, 0}, +{ 3, s_7_41, -1, 1, 0}, +{ 4, s_7_42, -1, 1, 0}, +{ 4, s_7_43, -1, 1, 0}, +{ 4, s_7_44, -1, 1, 0}, +{ 4, s_7_45, -1, 1, 0}, +{ 4, s_7_46, -1, 1, 0}, +{ 5, s_7_47, -1, 1, 0}, +{ 5, s_7_48, -1, 1, 0}, +{ 5, s_7_49, -1, 1, 0}, +{ 5, s_7_50, -1, 1, 0}, +{ 5, s_7_51, -1, 1, 0}, +{ 6, s_7_52, -1, 1, 0}, +{ 4, s_7_53, -1, 1, 0}, +{ 4, s_7_54, -1, 1, 0}, +{ 6, s_7_55, 54, 1, 0}, +{ 6, s_7_56, 54, 1, 0}, +{ 4, s_7_57, -1, 1, 0}, +{ 3, s_7_58, -1, 1, 0}, +{ 6, s_7_59, 58, 1, 0}, +{ 5, s_7_60, 58, 1, 0}, +{ 5, s_7_61, 58, 1, 0}, +{ 5, s_7_62, 58, 1, 0}, +{ 6, s_7_63, -1, 1, 0}, +{ 6, s_7_64, -1, 1, 0}, +{ 3, s_7_65, -1, 1, 0}, +{ 6, s_7_66, 65, 1, 0}, +{ 5, s_7_67, 65, 1, 0}, +{ 5, s_7_68, 65, 1, 0}, +{ 5, s_7_69, 65, 1, 0}, +{ 8, s_7_70, -1, 1, 0}, +{ 8, s_7_71, -1, 1, 0}, +{ 6, s_7_72, -1, 1, 0}, +{ 6, s_7_73, -1, 1, 0}, +{ 6, s_7_74, -1, 1, 0}, +{ 3, s_7_75, -1, 1, 0}, +{ 3, s_7_76, -1, 1, 0}, +{ 3, s_7_77, -1, 1, 0}, +{ 3, s_7_78, -1, 1, 0}, +{ 3, s_7_79, -1, 1, 0}, +{ 3, s_7_80, -1, 1, 0}, +{ 2, s_7_81, -1, 1, 0}, +{ 2, s_7_82, -1, 1, 0}, +{ 4, s_7_83, -1, 1, 0}, +{ 4, s_7_84, -1, 1, 0}, +{ 4, s_7_85, -1, 1, 0}, +{ 4, s_7_86, -1, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 }; @@ -488,51 +488,50 @@ static const symbol s_15[] = { 'a', 't' }; static const symbol s_16[] = { 'a', 't' }; static const symbol s_17[] = { 'i', 'c' }; -static int r_prelude(struct SN_env * z) { /* forwardmode */ +static int r_prelude(struct SN_env * z) { int among_var; - { int c_test1 = z->c; /* test, line 35 */ -/* repeat, line 35 */ - - while(1) { int c2 = z->c; - z->bra = z->c; /* [, line 36 */ - among_var = find_among(z, a_0, 7); /* substring, line 36 */ + { int c_test1 = z->c; + while(1) { + int c2 = z->c; + z->bra = z->c; + among_var = find_among(z, a_0, 7); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 36 */ - switch (among_var) { /* among, line 36 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 2, s_0); /* <-, line 37 */ + { int ret = slice_from_s(z, 2, s_0); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 2, s_1); /* <-, line 38 */ + { int ret = slice_from_s(z, 2, s_1); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 2, s_2); /* <-, line 39 */ + { int ret = slice_from_s(z, 2, s_2); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 2, s_3); /* <-, line 40 */ + { int ret = slice_from_s(z, 2, s_3); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 2, s_4); /* <-, line 41 */ + { int ret = slice_from_s(z, 2, s_4); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 2, s_5); /* <-, line 42 */ + { int ret = slice_from_s(z, 2, s_5); if (ret < 0) return ret; } break; case 7: - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 43 */ + z->c = ret; } break; } @@ -543,29 +542,28 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ } z->c = c_test1; } -/* repeat, line 46 */ - - while(1) { int c3 = z->c; - while(1) { /* goto, line 46 */ + while(1) { + int c3 = z->c; + while(1) { int c4 = z->c; - if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 47 */ - z->bra = z->c; /* [, line 47 */ - { int c5 = z->c; /* or, line 47 */ - if (z->c == z->l || z->p[z->c] != 'u') goto lab4; /* literal, line 47 */ + if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2; + z->bra = z->c; + { int c5 = z->c; + if (z->c == z->l || z->p[z->c] != 'u') goto lab4; z->c++; - z->ket = z->c; /* ], line 47 */ - if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab4; /* grouping v, line 47 */ - { int ret = slice_from_s(z, 1, s_6); /* <-, line 47 */ + z->ket = z->c; + if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab4; + { int ret = slice_from_s(z, 1, s_6); if (ret < 0) return ret; } goto lab3; lab4: z->c = c5; - if (z->c == z->l || z->p[z->c] != 'i') goto lab2; /* literal, line 48 */ + if (z->c == z->l || z->p[z->c] != 'i') goto lab2; z->c++; - z->ket = z->c; /* ], line 48 */ - if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 48 */ - { int ret = slice_from_s(z, 1, s_7); /* <-, line 48 */ + z->ket = z->c; + if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2; + { int ret = slice_from_s(z, 1, s_7); if (ret < 0) return ret; } } @@ -574,9 +572,9 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ break; lab2: z->c = c4; - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab1; - z->c = ret; /* goto, line 46 */ + z->c = ret; } } continue; @@ -587,16 +585,16 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $pV = , line 54 */ - z->I[1] = z->l; /* $p1 = , line 55 */ - z->I[2] = z->l; /* $p2 = , line 56 */ - { int c1 = z->c; /* do, line 58 */ - { int c2 = z->c; /* or, line 60 */ - if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 59 */ - { int c3 = z->c; /* or, line 59 */ - if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab4; /* non v, line 59 */ - { /* gopast */ /* grouping v, line 59 */ +static int r_mark_regions(struct SN_env * z) { + z->I[2] = z->l; + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int c2 = z->c; + if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2; + { int c3 = z->c; + if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab4; + { int ret = out_grouping_U(z, g_v, 97, 249, 1); if (ret < 0) goto lab4; z->c += ret; @@ -604,8 +602,8 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab3; lab4: z->c = c3; - if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2; /* grouping v, line 59 */ - { /* gopast */ /* non v, line 59 */ + if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab2; + { int ret = in_grouping_U(z, g_v, 97, 249, 1); if (ret < 0) goto lab2; z->c += ret; @@ -615,10 +613,10 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab1; lab2: z->c = c2; - if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab0; /* non v, line 61 */ - { int c4 = z->c; /* or, line 61 */ - if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab6; /* non v, line 61 */ - { /* gopast */ /* grouping v, line 61 */ + if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab0; + { int c4 = z->c; + if (out_grouping_U(z, g_v, 97, 249, 0)) goto lab6; + { int ret = out_grouping_U(z, g_v, 97, 249, 1); if (ret < 0) goto lab6; z->c += ret; @@ -626,74 +624,73 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab5; lab6: z->c = c4; - if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab0; /* grouping v, line 61 */ - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (in_grouping_U(z, g_v, 97, 249, 0)) goto lab0; + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 61 */ + z->c = ret; } } lab5: ; } lab1: - z->I[0] = z->c; /* setmark pV, line 62 */ + z->I[2] = z->c; lab0: z->c = c1; } - { int c5 = z->c; /* do, line 64 */ - { /* gopast */ /* grouping v, line 65 */ + { int c5 = z->c; + { int ret = out_grouping_U(z, g_v, 97, 249, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 65 */ + { int ret = in_grouping_U(z, g_v, 97, 249, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[1] = z->c; /* setmark p1, line 65 */ - { /* gopast */ /* grouping v, line 66 */ + z->I[1] = z->c; + { int ret = out_grouping_U(z, g_v, 97, 249, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 66 */ + { int ret = in_grouping_U(z, g_v, 97, 249, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[2] = z->c; /* setmark p2, line 66 */ + z->I[0] = z->c; lab7: z->c = c5; } return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ +static int r_postlude(struct SN_env * z) { int among_var; -/* repeat, line 70 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 72 */ - if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else /* substring, line 72 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else among_var = find_among(z, a_1, 3); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 72 */ - switch (among_var) { /* among, line 72 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_8); /* <-, line 73 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_9); /* <-, line 74 */ + { int ret = slice_from_s(z, 1, s_9); if (ret < 0) return ret; } break; case 3: - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 75 */ + z->c = ret; } break; } @@ -705,41 +702,41 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_RV(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 82 */ +static int r_RV(struct SN_env * z) { + if (!(z->I[2] <= z->c)) return 0; return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 83 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 84 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */ +static int r_attached_pronoun(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 87 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 87 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((33314 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_2, 37))) return 0; - z->bra = z->c; /* ], line 87 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0; /* among, line 97 */ + z->bra = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0; among_var = find_among_b(z, a_3, 5); if (!(among_var)) return 0; - { int ret = r_RV(z); /* call RV, line 97 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 97 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 98 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_10); /* <-, line 99 */ + { int ret = slice_from_s(z, 1, s_10); if (ret < 0) return ret; } break; @@ -747,37 +744,37 @@ static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ +static int r_standard_suffix(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 104 */ - among_var = find_among_b(z, a_6, 51); /* substring, line 104 */ + z->ket = z->c; + among_var = find_among_b(z, a_6, 51); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 104 */ - switch (among_var) { /* among, line 104 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 111 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 111 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 113 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 113 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m1 = z->l - z->c; (void)m1; /* try, line 114 */ - z->ket = z->c; /* [, line 114 */ - if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m1; goto lab0; } /* literal, line 114 */ - z->bra = z->c; /* ], line 114 */ - { int ret = r_R2(z); /* call R2, line 114 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m1; goto lab0; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m1; goto lab0; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 114 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: @@ -785,67 +782,67 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 3: - { int ret = r_R2(z); /* call R2, line 117 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_12); /* <-, line 117 */ + { int ret = slice_from_s(z, 3, s_12); if (ret < 0) return ret; } break; case 4: - { int ret = r_R2(z); /* call R2, line 119 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 1, s_13); /* <-, line 119 */ + { int ret = slice_from_s(z, 1, s_13); if (ret < 0) return ret; } break; case 5: - { int ret = r_R2(z); /* call R2, line 121 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 4, s_14); /* <-, line 121 */ + { int ret = slice_from_s(z, 4, s_14); if (ret < 0) return ret; } break; case 6: - { int ret = r_RV(z); /* call RV, line 123 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 123 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 7: - { int ret = r_R1(z); /* call R1, line 125 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 125 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m2 = z->l - z->c; (void)m2; /* try, line 126 */ - z->ket = z->c; /* [, line 127 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; } /* substring, line 127 */ + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4722696 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; } among_var = find_among_b(z, a_4, 4); if (!(among_var)) { z->c = z->l - m2; goto lab1; } - z->bra = z->c; /* ], line 127 */ - { int ret = r_R2(z); /* call R2, line 127 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m2; goto lab1; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 127 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - switch (among_var) { /* among, line 127 */ + switch (among_var) { case 1: - z->ket = z->c; /* [, line 128 */ - if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m2; goto lab1; } /* literal, line 128 */ - z->bra = z->c; /* ], line 128 */ - { int ret = r_R2(z); /* call R2, line 128 */ + z->ket = z->c; + if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m2; goto lab1; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m2; goto lab1; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 128 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -855,22 +852,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 8: - { int ret = r_R2(z); /* call R2, line 134 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 134 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m3 = z->l - z->c; (void)m3; /* try, line 135 */ - z->ket = z->c; /* [, line 136 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; } /* substring, line 136 */ + { int m3 = z->l - z->c; (void)m3; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; } if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m3; goto lab2; } - z->bra = z->c; /* ], line 136 */ - { int ret = r_R2(z); /* call R2, line 137 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m3; goto lab2; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 137 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab2: @@ -878,31 +875,31 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 9: - { int ret = r_R2(z); /* call R2, line 142 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 142 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m4 = z->l - z->c; (void)m4; /* try, line 143 */ - z->ket = z->c; /* [, line 143 */ - if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m4; goto lab3; } /* literal, line 143 */ - z->bra = z->c; /* ], line 143 */ - { int ret = r_R2(z); /* call R2, line 143 */ + { int m4 = z->l - z->c; (void)m4; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_16))) { z->c = z->l - m4; goto lab3; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m4; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 143 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 143 */ - if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m4; goto lab3; } /* literal, line 143 */ - z->bra = z->c; /* ], line 143 */ - { int ret = r_R2(z); /* call R2, line 143 */ + z->ket = z->c; + if (!(eq_s_b(z, 2, s_17))) { z->c = z->l - m4; goto lab3; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m4; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 143 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab3: @@ -913,15 +910,15 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ +static int r_verb_suffix(struct SN_env * z) { - { int mlimit1; /* setlimit, line 148 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 149 */ - if (!(find_among_b(z, a_7, 87))) { z->lb = mlimit1; return 0; } /* substring, line 149 */ - z->bra = z->c; /* ], line 149 */ - { int ret = slice_del(z); /* delete, line 163 */ + { int mlimit1; + if (z->c < z->I[2]) return 0; + mlimit1 = z->lb; z->lb = z->I[2]; + z->ket = z->c; + if (!(find_among_b(z, a_7, 87))) { z->lb = mlimit1; return 0; } + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } z->lb = mlimit1; @@ -929,43 +926,43 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */ - { int m1 = z->l - z->c; (void)m1; /* try, line 171 */ - z->ket = z->c; /* [, line 172 */ - if (in_grouping_b_U(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m1; goto lab0; } /* grouping AEIO, line 172 */ - z->bra = z->c; /* ], line 172 */ - { int ret = r_RV(z); /* call RV, line 172 */ +static int r_vowel_suffix(struct SN_env * z) { + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (in_grouping_b_U(z, g_AEIO, 97, 242, 0)) { z->c = z->l - m1; goto lab0; } + z->bra = z->c; + { int ret = r_RV(z); if (ret == 0) { z->c = z->l - m1; goto lab0; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 172 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 173 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'i') { z->c = z->l - m1; goto lab0; } /* literal, line 173 */ + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'i') { z->c = z->l - m1; goto lab0; } z->c--; - z->bra = z->c; /* ], line 173 */ - { int ret = r_RV(z); /* call RV, line 173 */ + z->bra = z->c; + { int ret = r_RV(z); if (ret == 0) { z->c = z->l - m1; goto lab0; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 173 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: ; } - { int m2 = z->l - z->c; (void)m2; /* try, line 175 */ - z->ket = z->c; /* [, line 176 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'h') { z->c = z->l - m2; goto lab1; } /* literal, line 176 */ + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'h') { z->c = z->l - m2; goto lab1; } z->c--; - z->bra = z->c; /* ], line 176 */ - if (in_grouping_b_U(z, g_CG, 99, 103, 0)) { z->c = z->l - m2; goto lab1; } /* grouping CG, line 176 */ - { int ret = r_RV(z); /* call RV, line 176 */ + z->bra = z->c; + if (in_grouping_b_U(z, g_CG, 99, 103, 0)) { z->c = z->l - m2; goto lab1; } + { int ret = r_RV(z); if (ret == 0) { z->c = z->l - m2; goto lab1; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 176 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab1: @@ -974,35 +971,35 @@ static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -extern int italian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 182 */ - { int ret = r_prelude(z); /* call prelude, line 182 */ +extern int italian_UTF_8_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_prelude(z); if (ret < 0) return ret; } z->c = c1; } - /* do, line 183 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 183 */ + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 184 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 185 */ - { int ret = r_attached_pronoun(z); /* call attached_pronoun, line 185 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_attached_pronoun(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 186 */ - { int m4 = z->l - z->c; (void)m4; /* or, line 186 */ - { int ret = r_standard_suffix(z); /* call standard_suffix, line 186 */ + { int m3 = z->l - z->c; (void)m3; + { int m4 = z->l - z->c; (void)m4; + { int ret = r_standard_suffix(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } goto lab1; lab2: z->c = z->l - m4; - { int ret = r_verb_suffix(z); /* call verb_suffix, line 186 */ + { int ret = r_verb_suffix(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -1011,15 +1008,15 @@ extern int italian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ lab0: z->c = z->l - m3; } - { int m5 = z->l - z->c; (void)m5; /* do, line 187 */ - { int ret = r_vowel_suffix(z); /* call vowel_suffix, line 187 */ + { int m5 = z->l - z->c; (void)m5; + { int ret = r_vowel_suffix(z); if (ret < 0) return ret; } z->c = z->l - m5; } z->c = z->lb; - { int c6 = z->c; /* do, line 189 */ - { int ret = r_postlude(z); /* call postlude, line 189 */ + { int c6 = z->c; + { int ret = r_postlude(z); if (ret < 0) return ret; } z->c = c6; @@ -1027,7 +1024,7 @@ extern int italian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * italian_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); } +extern struct SN_env * italian_UTF_8_create_env(void) { return SN_create_env(0, 3); } extern void italian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_lithuanian.c b/src/backend/snowball/libstemmer/stem_UTF_8_lithuanian.c index f876e8fc236bd..58f7d78f40f28 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_lithuanian.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_lithuanian.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -234,210 +234,210 @@ static const symbol s_0_203[4] = { 'e', 'r', 0xC5, 0xB3 }; static const struct among a_0[204] = { -/* 0 */ { 1, s_0_0, -1, -1, 0}, -/* 1 */ { 2, s_0_1, 0, -1, 0}, -/* 2 */ { 4, s_0_2, 1, -1, 0}, -/* 3 */ { 4, s_0_3, 0, -1, 0}, -/* 4 */ { 5, s_0_4, 3, -1, 0}, -/* 5 */ { 5, s_0_5, 3, -1, 0}, -/* 6 */ { 6, s_0_6, 5, -1, 0}, -/* 7 */ { 4, s_0_7, 0, -1, 0}, -/* 8 */ { 5, s_0_8, 0, -1, 0}, -/* 9 */ { 1, s_0_9, -1, -1, 0}, -/* 10 */ { 2, s_0_10, 9, -1, 0}, -/* 11 */ { 4, s_0_11, 10, -1, 0}, -/* 12 */ { 4, s_0_12, 10, -1, 0}, -/* 13 */ { 3, s_0_13, 9, -1, 0}, -/* 14 */ { 4, s_0_14, 13, -1, 0}, -/* 15 */ { 3, s_0_15, 9, -1, 0}, -/* 16 */ { 4, s_0_16, 15, -1, 0}, -/* 17 */ { 3, s_0_17, 9, -1, 0}, -/* 18 */ { 5, s_0_18, 17, -1, 0}, -/* 19 */ { 5, s_0_19, 17, -1, 0}, -/* 20 */ { 4, s_0_20, 9, -1, 0}, -/* 21 */ { 3, s_0_21, 9, -1, 0}, -/* 22 */ { 4, s_0_22, 21, -1, 0}, -/* 23 */ { 4, s_0_23, 9, -1, 0}, -/* 24 */ { 3, s_0_24, 9, -1, 0}, -/* 25 */ { 4, s_0_25, 9, -1, 0}, -/* 26 */ { 7, s_0_26, 25, -1, 0}, -/* 27 */ { 3, s_0_27, 9, -1, 0}, -/* 28 */ { 4, s_0_28, 27, -1, 0}, -/* 29 */ { 4, s_0_29, 27, -1, 0}, -/* 30 */ { 5, s_0_30, 29, -1, 0}, -/* 31 */ { 3, s_0_31, 9, -1, 0}, -/* 32 */ { 5, s_0_32, 31, -1, 0}, -/* 33 */ { 5, s_0_33, 31, -1, 0}, -/* 34 */ { 4, s_0_34, 9, -1, 0}, -/* 35 */ { 3, s_0_35, 9, -1, 0}, -/* 36 */ { 4, s_0_36, 35, -1, 0}, -/* 37 */ { 3, s_0_37, 9, -1, 0}, -/* 38 */ { 4, s_0_38, 37, -1, 0}, -/* 39 */ { 4, s_0_39, 37, -1, 0}, -/* 40 */ { 3, s_0_40, 9, -1, 0}, -/* 41 */ { 4, s_0_41, 9, -1, 0}, -/* 42 */ { 4, s_0_42, 9, -1, 0}, -/* 43 */ { 7, s_0_43, 42, -1, 0}, -/* 44 */ { 1, s_0_44, -1, -1, 0}, -/* 45 */ { 2, s_0_45, 44, -1, 0}, -/* 46 */ { 3, s_0_46, 45, -1, 0}, -/* 47 */ { 5, s_0_47, 46, -1, 0}, -/* 48 */ { 2, s_0_48, 44, -1, 0}, -/* 49 */ { 5, s_0_49, 48, -1, 0}, -/* 50 */ { 2, s_0_50, 44, -1, 0}, -/* 51 */ { 3, s_0_51, 44, -1, 0}, -/* 52 */ { 5, s_0_52, 51, -1, 0}, -/* 53 */ { 3, s_0_53, 44, -1, 0}, -/* 54 */ { 4, s_0_54, 53, -1, 0}, -/* 55 */ { 2, s_0_55, 44, -1, 0}, -/* 56 */ { 3, s_0_56, 55, -1, 0}, -/* 57 */ { 4, s_0_57, 56, -1, 0}, -/* 58 */ { 3, s_0_58, 55, -1, 0}, -/* 59 */ { 4, s_0_59, 58, -1, 0}, -/* 60 */ { 5, s_0_60, 59, -1, 0}, -/* 61 */ { 3, s_0_61, 55, -1, 0}, -/* 62 */ { 4, s_0_62, 61, -1, 0}, -/* 63 */ { 4, s_0_63, 61, -1, 0}, -/* 64 */ { 7, s_0_64, 63, -1, 0}, -/* 65 */ { 4, s_0_65, 61, -1, 0}, -/* 66 */ { 3, s_0_66, 55, -1, 0}, -/* 67 */ { 6, s_0_67, 66, -1, 0}, -/* 68 */ { 4, s_0_68, 66, -1, 0}, -/* 69 */ { 5, s_0_69, 68, -1, 0}, -/* 70 */ { 6, s_0_70, 69, -1, 0}, -/* 71 */ { 3, s_0_71, 55, -1, 0}, -/* 72 */ { 4, s_0_72, 71, -1, 0}, -/* 73 */ { 7, s_0_73, 72, -1, 0}, -/* 74 */ { 4, s_0_74, 55, -1, 0}, -/* 75 */ { 4, s_0_75, 55, -1, 0}, -/* 76 */ { 4, s_0_76, 55, -1, 0}, -/* 77 */ { 5, s_0_77, 76, -1, 0}, -/* 78 */ { 2, s_0_78, 44, -1, 0}, -/* 79 */ { 4, s_0_79, 78, -1, 0}, -/* 80 */ { 4, s_0_80, 78, -1, 0}, -/* 81 */ { 3, s_0_81, 78, -1, 0}, -/* 82 */ { 4, s_0_82, 81, -1, 0}, -/* 83 */ { 4, s_0_83, 81, -1, 0}, -/* 84 */ { 5, s_0_84, 83, -1, 0}, -/* 85 */ { 4, s_0_85, 78, -1, 0}, -/* 86 */ { 5, s_0_86, 85, -1, 0}, -/* 87 */ { 3, s_0_87, 78, -1, 0}, -/* 88 */ { 4, s_0_88, 78, -1, 0}, -/* 89 */ { 7, s_0_89, 88, -1, 0}, -/* 90 */ { 6, s_0_90, 88, -1, 0}, -/* 91 */ { 7, s_0_91, 88, -1, 0}, -/* 92 */ { 2, s_0_92, 44, -1, 0}, -/* 93 */ { 3, s_0_93, 92, -1, 0}, -/* 94 */ { 5, s_0_94, 93, -1, 0}, -/* 95 */ { 2, s_0_95, -1, -1, 0}, -/* 96 */ { 3, s_0_96, -1, -1, 0}, -/* 97 */ { 1, s_0_97, -1, -1, 0}, -/* 98 */ { 2, s_0_98, -1, -1, 0}, -/* 99 */ { 3, s_0_99, 98, -1, 0}, -/*100 */ { 3, s_0_100, -1, -1, 0}, -/*101 */ { 2, s_0_101, -1, -1, 0}, -/*102 */ { 3, s_0_102, 101, -1, 0}, -/*103 */ { 2, s_0_103, -1, -1, 0}, -/*104 */ { 3, s_0_104, -1, -1, 0}, -/*105 */ { 3, s_0_105, -1, -1, 0}, -/*106 */ { 6, s_0_106, 105, -1, 0}, -/*107 */ { 2, s_0_107, -1, -1, 0}, -/*108 */ { 2, s_0_108, -1, -1, 0}, -/*109 */ { 3, s_0_109, 108, -1, 0}, -/*110 */ { 2, s_0_110, -1, -1, 0}, -/*111 */ { 3, s_0_111, 110, -1, 0}, -/*112 */ { 3, s_0_112, -1, -1, 0}, -/*113 */ { 1, s_0_113, -1, -1, 0}, -/*114 */ { 2, s_0_114, 113, -1, 0}, -/*115 */ { 4, s_0_115, 114, -1, 0}, -/*116 */ { 4, s_0_116, 113, -1, 0}, -/*117 */ { 2, s_0_117, 113, -1, 0}, -/*118 */ { 1, s_0_118, -1, -1, 0}, -/*119 */ { 2, s_0_119, 118, -1, 0}, -/*120 */ { 3, s_0_120, 119, -1, 0}, -/*121 */ { 2, s_0_121, 118, -1, 0}, -/*122 */ { 3, s_0_122, 121, -1, 0}, -/*123 */ { 2, s_0_123, 118, -1, 0}, -/*124 */ { 3, s_0_124, 123, -1, 0}, -/*125 */ { 4, s_0_125, 124, -1, 0}, -/*126 */ { 6, s_0_126, 123, -1, 0}, -/*127 */ { 4, s_0_127, 123, -1, 0}, -/*128 */ { 6, s_0_128, 127, -1, 0}, -/*129 */ { 4, s_0_129, 123, -1, 0}, -/*130 */ { 5, s_0_130, 129, -1, 0}, -/*131 */ { 4, s_0_131, 123, -1, 0}, -/*132 */ { 5, s_0_132, 123, -1, 0}, -/*133 */ { 4, s_0_133, 123, -1, 0}, -/*134 */ { 4, s_0_134, 123, -1, 0}, -/*135 */ { 4, s_0_135, 123, -1, 0}, -/*136 */ { 3, s_0_136, 118, -1, 0}, -/*137 */ { 4, s_0_137, 136, -1, 0}, -/*138 */ { 4, s_0_138, 118, -1, 0}, -/*139 */ { 3, s_0_139, 118, -1, 0}, -/*140 */ { 5, s_0_140, 139, -1, 0}, -/*141 */ { 5, s_0_141, 139, -1, 0}, -/*142 */ { 3, s_0_142, 118, -1, 0}, -/*143 */ { 4, s_0_143, 142, -1, 0}, -/*144 */ { 3, s_0_144, 118, -1, 0}, -/*145 */ { 4, s_0_145, 118, -1, 0}, -/*146 */ { 3, s_0_146, 118, -1, 0}, -/*147 */ { 2, s_0_147, 118, -1, 0}, -/*148 */ { 3, s_0_148, 147, -1, 0}, -/*149 */ { 3, s_0_149, 147, -1, 0}, -/*150 */ { 4, s_0_150, 149, -1, 0}, -/*151 */ { 3, s_0_151, 118, -1, 0}, -/*152 */ { 2, s_0_152, 118, -1, 0}, -/*153 */ { 3, s_0_153, 152, -1, 0}, -/*154 */ { 4, s_0_154, 153, -1, 0}, -/*155 */ { 3, s_0_155, 152, -1, 0}, -/*156 */ { 2, s_0_156, 118, -1, 0}, -/*157 */ { 4, s_0_157, 156, -1, 0}, -/*158 */ { 4, s_0_158, 156, -1, 0}, -/*159 */ { 3, s_0_159, 118, -1, 0}, -/*160 */ { 4, s_0_160, 159, -1, 0}, -/*161 */ { 3, s_0_161, 118, -1, 0}, -/*162 */ { 5, s_0_162, 161, -1, 0}, -/*163 */ { 6, s_0_163, 162, -1, 0}, -/*164 */ { 5, s_0_164, 161, -1, 0}, -/*165 */ { 6, s_0_165, 164, -1, 0}, -/*166 */ { 6, s_0_166, 164, -1, 0}, -/*167 */ { 5, s_0_167, 161, -1, 0}, -/*168 */ { 6, s_0_168, 161, -1, 0}, -/*169 */ { 9, s_0_169, 168, -1, 0}, -/*170 */ { 5, s_0_170, 161, -1, 0}, -/*171 */ { 6, s_0_171, 170, -1, 0}, -/*172 */ { 6, s_0_172, 161, -1, 0}, -/*173 */ { 5, s_0_173, 161, -1, 0}, -/*174 */ { 6, s_0_174, 161, -1, 0}, -/*175 */ { 9, s_0_175, 174, -1, 0}, -/*176 */ { 3, s_0_176, 118, -1, 0}, -/*177 */ { 3, s_0_177, 118, -1, 0}, -/*178 */ { 4, s_0_178, 118, -1, 0}, -/*179 */ { 2, s_0_179, -1, -1, 0}, -/*180 */ { 3, s_0_180, 179, -1, 0}, -/*181 */ { 2, s_0_181, -1, -1, 0}, -/*182 */ { 3, s_0_182, 181, -1, 0}, -/*183 */ { 2, s_0_183, -1, -1, 0}, -/*184 */ { 3, s_0_184, -1, -1, 0}, -/*185 */ { 6, s_0_185, 184, -1, 0}, -/*186 */ { 1, s_0_186, -1, -1, 0}, -/*187 */ { 2, s_0_187, 186, -1, 0}, -/*188 */ { 3, s_0_188, 187, -1, 0}, -/*189 */ { 5, s_0_189, 188, -1, 0}, -/*190 */ { 2, s_0_190, 186, -1, 0}, -/*191 */ { 4, s_0_191, 190, -1, 0}, -/*192 */ { 3, s_0_192, 190, -1, 0}, -/*193 */ { 1, s_0_193, -1, -1, 0}, -/*194 */ { 2, s_0_194, -1, -1, 0}, -/*195 */ { 3, s_0_195, 194, -1, 0}, -/*196 */ { 2, s_0_196, -1, -1, 0}, -/*197 */ { 2, s_0_197, -1, -1, 0}, -/*198 */ { 2, s_0_198, -1, -1, 0}, -/*199 */ { 4, s_0_199, 198, -1, 0}, -/*200 */ { 4, s_0_200, 198, -1, 0}, -/*201 */ { 2, s_0_201, -1, -1, 0}, -/*202 */ { 3, s_0_202, 201, -1, 0}, -/*203 */ { 4, s_0_203, 201, -1, 0} +{ 1, s_0_0, -1, -1, 0}, +{ 2, s_0_1, 0, -1, 0}, +{ 4, s_0_2, 1, -1, 0}, +{ 4, s_0_3, 0, -1, 0}, +{ 5, s_0_4, 3, -1, 0}, +{ 5, s_0_5, 3, -1, 0}, +{ 6, s_0_6, 5, -1, 0}, +{ 4, s_0_7, 0, -1, 0}, +{ 5, s_0_8, 0, -1, 0}, +{ 1, s_0_9, -1, -1, 0}, +{ 2, s_0_10, 9, -1, 0}, +{ 4, s_0_11, 10, -1, 0}, +{ 4, s_0_12, 10, -1, 0}, +{ 3, s_0_13, 9, -1, 0}, +{ 4, s_0_14, 13, -1, 0}, +{ 3, s_0_15, 9, -1, 0}, +{ 4, s_0_16, 15, -1, 0}, +{ 3, s_0_17, 9, -1, 0}, +{ 5, s_0_18, 17, -1, 0}, +{ 5, s_0_19, 17, -1, 0}, +{ 4, s_0_20, 9, -1, 0}, +{ 3, s_0_21, 9, -1, 0}, +{ 4, s_0_22, 21, -1, 0}, +{ 4, s_0_23, 9, -1, 0}, +{ 3, s_0_24, 9, -1, 0}, +{ 4, s_0_25, 9, -1, 0}, +{ 7, s_0_26, 25, -1, 0}, +{ 3, s_0_27, 9, -1, 0}, +{ 4, s_0_28, 27, -1, 0}, +{ 4, s_0_29, 27, -1, 0}, +{ 5, s_0_30, 29, -1, 0}, +{ 3, s_0_31, 9, -1, 0}, +{ 5, s_0_32, 31, -1, 0}, +{ 5, s_0_33, 31, -1, 0}, +{ 4, s_0_34, 9, -1, 0}, +{ 3, s_0_35, 9, -1, 0}, +{ 4, s_0_36, 35, -1, 0}, +{ 3, s_0_37, 9, -1, 0}, +{ 4, s_0_38, 37, -1, 0}, +{ 4, s_0_39, 37, -1, 0}, +{ 3, s_0_40, 9, -1, 0}, +{ 4, s_0_41, 9, -1, 0}, +{ 4, s_0_42, 9, -1, 0}, +{ 7, s_0_43, 42, -1, 0}, +{ 1, s_0_44, -1, -1, 0}, +{ 2, s_0_45, 44, -1, 0}, +{ 3, s_0_46, 45, -1, 0}, +{ 5, s_0_47, 46, -1, 0}, +{ 2, s_0_48, 44, -1, 0}, +{ 5, s_0_49, 48, -1, 0}, +{ 2, s_0_50, 44, -1, 0}, +{ 3, s_0_51, 44, -1, 0}, +{ 5, s_0_52, 51, -1, 0}, +{ 3, s_0_53, 44, -1, 0}, +{ 4, s_0_54, 53, -1, 0}, +{ 2, s_0_55, 44, -1, 0}, +{ 3, s_0_56, 55, -1, 0}, +{ 4, s_0_57, 56, -1, 0}, +{ 3, s_0_58, 55, -1, 0}, +{ 4, s_0_59, 58, -1, 0}, +{ 5, s_0_60, 59, -1, 0}, +{ 3, s_0_61, 55, -1, 0}, +{ 4, s_0_62, 61, -1, 0}, +{ 4, s_0_63, 61, -1, 0}, +{ 7, s_0_64, 63, -1, 0}, +{ 4, s_0_65, 61, -1, 0}, +{ 3, s_0_66, 55, -1, 0}, +{ 6, s_0_67, 66, -1, 0}, +{ 4, s_0_68, 66, -1, 0}, +{ 5, s_0_69, 68, -1, 0}, +{ 6, s_0_70, 69, -1, 0}, +{ 3, s_0_71, 55, -1, 0}, +{ 4, s_0_72, 71, -1, 0}, +{ 7, s_0_73, 72, -1, 0}, +{ 4, s_0_74, 55, -1, 0}, +{ 4, s_0_75, 55, -1, 0}, +{ 4, s_0_76, 55, -1, 0}, +{ 5, s_0_77, 76, -1, 0}, +{ 2, s_0_78, 44, -1, 0}, +{ 4, s_0_79, 78, -1, 0}, +{ 4, s_0_80, 78, -1, 0}, +{ 3, s_0_81, 78, -1, 0}, +{ 4, s_0_82, 81, -1, 0}, +{ 4, s_0_83, 81, -1, 0}, +{ 5, s_0_84, 83, -1, 0}, +{ 4, s_0_85, 78, -1, 0}, +{ 5, s_0_86, 85, -1, 0}, +{ 3, s_0_87, 78, -1, 0}, +{ 4, s_0_88, 78, -1, 0}, +{ 7, s_0_89, 88, -1, 0}, +{ 6, s_0_90, 88, -1, 0}, +{ 7, s_0_91, 88, -1, 0}, +{ 2, s_0_92, 44, -1, 0}, +{ 3, s_0_93, 92, -1, 0}, +{ 5, s_0_94, 93, -1, 0}, +{ 2, s_0_95, -1, -1, 0}, +{ 3, s_0_96, -1, -1, 0}, +{ 1, s_0_97, -1, -1, 0}, +{ 2, s_0_98, -1, -1, 0}, +{ 3, s_0_99, 98, -1, 0}, +{ 3, s_0_100, -1, -1, 0}, +{ 2, s_0_101, -1, -1, 0}, +{ 3, s_0_102, 101, -1, 0}, +{ 2, s_0_103, -1, -1, 0}, +{ 3, s_0_104, -1, -1, 0}, +{ 3, s_0_105, -1, -1, 0}, +{ 6, s_0_106, 105, -1, 0}, +{ 2, s_0_107, -1, -1, 0}, +{ 2, s_0_108, -1, -1, 0}, +{ 3, s_0_109, 108, -1, 0}, +{ 2, s_0_110, -1, -1, 0}, +{ 3, s_0_111, 110, -1, 0}, +{ 3, s_0_112, -1, -1, 0}, +{ 1, s_0_113, -1, -1, 0}, +{ 2, s_0_114, 113, -1, 0}, +{ 4, s_0_115, 114, -1, 0}, +{ 4, s_0_116, 113, -1, 0}, +{ 2, s_0_117, 113, -1, 0}, +{ 1, s_0_118, -1, -1, 0}, +{ 2, s_0_119, 118, -1, 0}, +{ 3, s_0_120, 119, -1, 0}, +{ 2, s_0_121, 118, -1, 0}, +{ 3, s_0_122, 121, -1, 0}, +{ 2, s_0_123, 118, -1, 0}, +{ 3, s_0_124, 123, -1, 0}, +{ 4, s_0_125, 124, -1, 0}, +{ 6, s_0_126, 123, -1, 0}, +{ 4, s_0_127, 123, -1, 0}, +{ 6, s_0_128, 127, -1, 0}, +{ 4, s_0_129, 123, -1, 0}, +{ 5, s_0_130, 129, -1, 0}, +{ 4, s_0_131, 123, -1, 0}, +{ 5, s_0_132, 123, -1, 0}, +{ 4, s_0_133, 123, -1, 0}, +{ 4, s_0_134, 123, -1, 0}, +{ 4, s_0_135, 123, -1, 0}, +{ 3, s_0_136, 118, -1, 0}, +{ 4, s_0_137, 136, -1, 0}, +{ 4, s_0_138, 118, -1, 0}, +{ 3, s_0_139, 118, -1, 0}, +{ 5, s_0_140, 139, -1, 0}, +{ 5, s_0_141, 139, -1, 0}, +{ 3, s_0_142, 118, -1, 0}, +{ 4, s_0_143, 142, -1, 0}, +{ 3, s_0_144, 118, -1, 0}, +{ 4, s_0_145, 118, -1, 0}, +{ 3, s_0_146, 118, -1, 0}, +{ 2, s_0_147, 118, -1, 0}, +{ 3, s_0_148, 147, -1, 0}, +{ 3, s_0_149, 147, -1, 0}, +{ 4, s_0_150, 149, -1, 0}, +{ 3, s_0_151, 118, -1, 0}, +{ 2, s_0_152, 118, -1, 0}, +{ 3, s_0_153, 152, -1, 0}, +{ 4, s_0_154, 153, -1, 0}, +{ 3, s_0_155, 152, -1, 0}, +{ 2, s_0_156, 118, -1, 0}, +{ 4, s_0_157, 156, -1, 0}, +{ 4, s_0_158, 156, -1, 0}, +{ 3, s_0_159, 118, -1, 0}, +{ 4, s_0_160, 159, -1, 0}, +{ 3, s_0_161, 118, -1, 0}, +{ 5, s_0_162, 161, -1, 0}, +{ 6, s_0_163, 162, -1, 0}, +{ 5, s_0_164, 161, -1, 0}, +{ 6, s_0_165, 164, -1, 0}, +{ 6, s_0_166, 164, -1, 0}, +{ 5, s_0_167, 161, -1, 0}, +{ 6, s_0_168, 161, -1, 0}, +{ 9, s_0_169, 168, -1, 0}, +{ 5, s_0_170, 161, -1, 0}, +{ 6, s_0_171, 170, -1, 0}, +{ 6, s_0_172, 161, -1, 0}, +{ 5, s_0_173, 161, -1, 0}, +{ 6, s_0_174, 161, -1, 0}, +{ 9, s_0_175, 174, -1, 0}, +{ 3, s_0_176, 118, -1, 0}, +{ 3, s_0_177, 118, -1, 0}, +{ 4, s_0_178, 118, -1, 0}, +{ 2, s_0_179, -1, -1, 0}, +{ 3, s_0_180, 179, -1, 0}, +{ 2, s_0_181, -1, -1, 0}, +{ 3, s_0_182, 181, -1, 0}, +{ 2, s_0_183, -1, -1, 0}, +{ 3, s_0_184, -1, -1, 0}, +{ 6, s_0_185, 184, -1, 0}, +{ 1, s_0_186, -1, -1, 0}, +{ 2, s_0_187, 186, -1, 0}, +{ 3, s_0_188, 187, -1, 0}, +{ 5, s_0_189, 188, -1, 0}, +{ 2, s_0_190, 186, -1, 0}, +{ 4, s_0_191, 190, -1, 0}, +{ 3, s_0_192, 190, -1, 0}, +{ 1, s_0_193, -1, -1, 0}, +{ 2, s_0_194, -1, -1, 0}, +{ 3, s_0_195, 194, -1, 0}, +{ 2, s_0_196, -1, -1, 0}, +{ 2, s_0_197, -1, -1, 0}, +{ 2, s_0_198, -1, -1, 0}, +{ 4, s_0_199, 198, -1, 0}, +{ 4, s_0_200, 198, -1, 0}, +{ 2, s_0_201, -1, -1, 0}, +{ 3, s_0_202, 201, -1, 0}, +{ 4, s_0_203, 201, -1, 0} }; static const symbol s_1_0[3] = { 'i', 'n', 'g' }; @@ -505,68 +505,68 @@ static const symbol s_1_61[5] = { 0xC4, 0x97, 'j', 0xC4, 0x99 }; static const struct among a_1[62] = { -/* 0 */ { 3, s_1_0, -1, -1, 0}, -/* 1 */ { 2, s_1_1, -1, -1, 0}, -/* 2 */ { 3, s_1_2, 1, -1, 0}, -/* 3 */ { 3, s_1_3, -1, -1, 0}, -/* 4 */ { 2, s_1_4, -1, -1, 0}, -/* 5 */ { 3, s_1_5, 4, -1, 0}, -/* 6 */ { 3, s_1_6, 4, -1, 0}, -/* 7 */ { 4, s_1_7, 6, -1, 0}, -/* 8 */ { 3, s_1_8, -1, -1, 0}, -/* 9 */ { 3, s_1_9, -1, -1, 0}, -/* 10 */ { 4, s_1_10, 9, -1, 0}, -/* 11 */ { 3, s_1_11, -1, -1, 0}, -/* 12 */ { 3, s_1_12, -1, -1, 0}, -/* 13 */ { 4, s_1_13, 12, -1, 0}, -/* 14 */ { 2, s_1_14, -1, -1, 0}, -/* 15 */ { 3, s_1_15, 14, -1, 0}, -/* 16 */ { 3, s_1_16, -1, -1, 0}, -/* 17 */ { 5, s_1_17, 16, -1, 0}, -/* 18 */ { 6, s_1_18, 16, -1, 0}, -/* 19 */ { 4, s_1_19, -1, -1, 0}, -/* 20 */ { 3, s_1_20, -1, -1, 0}, -/* 21 */ { 2, s_1_21, -1, -1, 0}, -/* 22 */ { 3, s_1_22, -1, -1, 0}, -/* 23 */ { 2, s_1_23, -1, -1, 0}, -/* 24 */ { 3, s_1_24, 23, -1, 0}, -/* 25 */ { 3, s_1_25, 23, -1, 0}, -/* 26 */ { 4, s_1_26, -1, -1, 0}, -/* 27 */ { 3, s_1_27, -1, -1, 0}, -/* 28 */ { 3, s_1_28, -1, -1, 0}, -/* 29 */ { 2, s_1_29, -1, -1, 0}, -/* 30 */ { 3, s_1_30, 29, -1, 0}, -/* 31 */ { 3, s_1_31, -1, -1, 0}, -/* 32 */ { 3, s_1_32, -1, -1, 0}, -/* 33 */ { 3, s_1_33, -1, -1, 0}, -/* 34 */ { 4, s_1_34, 33, -1, 0}, -/* 35 */ { 2, s_1_35, -1, -1, 0}, -/* 36 */ { 3, s_1_36, 35, -1, 0}, -/* 37 */ { 3, s_1_37, 35, -1, 0}, -/* 38 */ { 4, s_1_38, 37, -1, 0}, -/* 39 */ { 3, s_1_39, -1, -1, 0}, -/* 40 */ { 4, s_1_40, 39, -1, 0}, -/* 41 */ { 3, s_1_41, -1, -1, 0}, -/* 42 */ { 4, s_1_42, 41, -1, 0}, -/* 43 */ { 3, s_1_43, -1, -1, 0}, -/* 44 */ { 7, s_1_44, -1, -1, 0}, -/* 45 */ { 3, s_1_45, -1, -1, 0}, -/* 46 */ { 4, s_1_46, 45, -1, 0}, -/* 47 */ { 5, s_1_47, 46, -1, 0}, -/* 48 */ { 3, s_1_48, -1, -1, 0}, -/* 49 */ { 2, s_1_49, -1, -1, 0}, -/* 50 */ { 3, s_1_50, 49, -1, 0}, -/* 51 */ { 4, s_1_51, 50, -1, 0}, -/* 52 */ { 2, s_1_52, -1, -1, 0}, -/* 53 */ { 3, s_1_53, -1, -1, 0}, -/* 54 */ { 5, s_1_54, -1, -1, 0}, -/* 55 */ { 3, s_1_55, -1, -1, 0}, -/* 56 */ { 3, s_1_56, -1, -1, 0}, -/* 57 */ { 2, s_1_57, -1, -1, 0}, -/* 58 */ { 3, s_1_58, -1, -1, 0}, -/* 59 */ { 6, s_1_59, -1, -1, 0}, -/* 60 */ { 2, s_1_60, -1, -1, 0}, -/* 61 */ { 5, s_1_61, 60, -1, 0} +{ 3, s_1_0, -1, -1, 0}, +{ 2, s_1_1, -1, -1, 0}, +{ 3, s_1_2, 1, -1, 0}, +{ 3, s_1_3, -1, -1, 0}, +{ 2, s_1_4, -1, -1, 0}, +{ 3, s_1_5, 4, -1, 0}, +{ 3, s_1_6, 4, -1, 0}, +{ 4, s_1_7, 6, -1, 0}, +{ 3, s_1_8, -1, -1, 0}, +{ 3, s_1_9, -1, -1, 0}, +{ 4, s_1_10, 9, -1, 0}, +{ 3, s_1_11, -1, -1, 0}, +{ 3, s_1_12, -1, -1, 0}, +{ 4, s_1_13, 12, -1, 0}, +{ 2, s_1_14, -1, -1, 0}, +{ 3, s_1_15, 14, -1, 0}, +{ 3, s_1_16, -1, -1, 0}, +{ 5, s_1_17, 16, -1, 0}, +{ 6, s_1_18, 16, -1, 0}, +{ 4, s_1_19, -1, -1, 0}, +{ 3, s_1_20, -1, -1, 0}, +{ 2, s_1_21, -1, -1, 0}, +{ 3, s_1_22, -1, -1, 0}, +{ 2, s_1_23, -1, -1, 0}, +{ 3, s_1_24, 23, -1, 0}, +{ 3, s_1_25, 23, -1, 0}, +{ 4, s_1_26, -1, -1, 0}, +{ 3, s_1_27, -1, -1, 0}, +{ 3, s_1_28, -1, -1, 0}, +{ 2, s_1_29, -1, -1, 0}, +{ 3, s_1_30, 29, -1, 0}, +{ 3, s_1_31, -1, -1, 0}, +{ 3, s_1_32, -1, -1, 0}, +{ 3, s_1_33, -1, -1, 0}, +{ 4, s_1_34, 33, -1, 0}, +{ 2, s_1_35, -1, -1, 0}, +{ 3, s_1_36, 35, -1, 0}, +{ 3, s_1_37, 35, -1, 0}, +{ 4, s_1_38, 37, -1, 0}, +{ 3, s_1_39, -1, -1, 0}, +{ 4, s_1_40, 39, -1, 0}, +{ 3, s_1_41, -1, -1, 0}, +{ 4, s_1_42, 41, -1, 0}, +{ 3, s_1_43, -1, -1, 0}, +{ 7, s_1_44, -1, -1, 0}, +{ 3, s_1_45, -1, -1, 0}, +{ 4, s_1_46, 45, -1, 0}, +{ 5, s_1_47, 46, -1, 0}, +{ 3, s_1_48, -1, -1, 0}, +{ 2, s_1_49, -1, -1, 0}, +{ 3, s_1_50, 49, -1, 0}, +{ 4, s_1_51, 50, -1, 0}, +{ 2, s_1_52, -1, -1, 0}, +{ 3, s_1_53, -1, -1, 0}, +{ 5, s_1_54, -1, -1, 0}, +{ 3, s_1_55, -1, -1, 0}, +{ 3, s_1_56, -1, -1, 0}, +{ 2, s_1_57, -1, -1, 0}, +{ 3, s_1_58, -1, -1, 0}, +{ 6, s_1_59, -1, -1, 0}, +{ 2, s_1_60, -1, -1, 0}, +{ 5, s_1_61, 60, -1, 0} }; static const symbol s_2_0[5] = { 'o', 'j', 'i', 'm', 'e' }; @@ -583,17 +583,17 @@ static const symbol s_2_10[4] = { 'e', 's', 'i', 'u' }; static const struct among a_2[11] = { -/* 0 */ { 5, s_2_0, -1, 7, 0}, -/* 1 */ { 6, s_2_1, -1, 3, 0}, -/* 2 */ { 5, s_2_2, -1, 6, 0}, -/* 3 */ { 5, s_2_3, -1, 8, 0}, -/* 4 */ { 4, s_2_4, -1, 1, 0}, -/* 5 */ { 4, s_2_5, -1, 2, 0}, -/* 6 */ { 5, s_2_6, -1, 5, 0}, -/* 7 */ { 7, s_2_7, -1, 8, 0}, -/* 8 */ { 6, s_2_8, -1, 1, 0}, -/* 9 */ { 6, s_2_9, -1, 2, 0}, -/* 10 */ { 4, s_2_10, -1, 4, 0} +{ 5, s_2_0, -1, 7, 0}, +{ 6, s_2_1, -1, 3, 0}, +{ 5, s_2_2, -1, 6, 0}, +{ 5, s_2_3, -1, 8, 0}, +{ 4, s_2_4, -1, 1, 0}, +{ 4, s_2_5, -1, 2, 0}, +{ 5, s_2_6, -1, 5, 0}, +{ 7, s_2_7, -1, 8, 0}, +{ 6, s_2_8, -1, 1, 0}, +{ 6, s_2_9, -1, 2, 0}, +{ 4, s_2_10, -1, 4, 0} }; static const symbol s_3_0[2] = { 0xC4, 0x8D }; @@ -601,15 +601,15 @@ static const symbol s_3_1[3] = { 'd', 0xC5, 0xBE }; static const struct among a_3[2] = { -/* 0 */ { 2, s_3_0, -1, 1, 0}, -/* 1 */ { 3, s_3_1, -1, 2, 0} +{ 2, s_3_0, -1, 1, 0}, +{ 3, s_3_1, -1, 2, 0} }; static const symbol s_4_0[2] = { 'g', 'd' }; static const struct among a_4[1] = { -/* 0 */ { 2, s_4_0, -1, 1, 0} +{ 2, s_4_0, -1, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 64, 1, 0, 64, 0, 0, 0, 0, 0, 0, 0, 4, 4 }; @@ -626,44 +626,43 @@ static const symbol s_8[] = { 't' }; static const symbol s_9[] = { 'd' }; static const symbol s_10[] = { 'g' }; -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 43 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_step1(struct SN_env * z) { /* backwardmode */ +static int r_step1(struct SN_env * z) { - { int mlimit1; /* setlimit, line 45 */ + { int mlimit1; if (z->c < z->I[0]) return 0; mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 45 */ - if (!(find_among_b(z, a_0, 204))) { z->lb = mlimit1; return 0; } /* substring, line 45 */ - z->bra = z->c; /* ], line 45 */ + z->ket = z->c; + if (!(find_among_b(z, a_0, 204))) { z->lb = mlimit1; return 0; } + z->bra = z->c; z->lb = mlimit1; } - { int ret = r_R1(z); /* call R1, line 45 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 229 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_step2(struct SN_env * z) { /* backwardmode */ -/* repeat, line 232 */ +static int r_step2(struct SN_env * z) { + while(1) { + int m1 = z->l - z->c; (void)m1; - while(1) { int m1 = z->l - z->c; (void)m1; - - { int mlimit2; /* setlimit, line 233 */ + { int mlimit2; if (z->c < z->I[0]) goto lab0; mlimit2 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 233 */ - if (!(find_among_b(z, a_1, 62))) { z->lb = mlimit2; goto lab0; } /* substring, line 233 */ - z->bra = z->c; /* ], line 233 */ + z->ket = z->c; + if (!(find_among_b(z, a_1, 62))) { z->lb = mlimit2; goto lab0; } + z->bra = z->c; z->lb = mlimit2; } - { int ret = slice_del(z); /* delete, line 303 */ + { int ret = slice_del(z); if (ret < 0) return ret; } continue; @@ -674,51 +673,51 @@ static int r_step2(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_fix_conflicts(struct SN_env * z) { /* backwardmode */ +static int r_fix_conflicts(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 307 */ - if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2621472 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 307 */ + z->ket = z->c; + if (z->c - 3 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2621472 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_2, 11); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 307 */ - switch (among_var) { /* among, line 307 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 5, s_0); /* <-, line 309 */ + { int ret = slice_from_s(z, 5, s_0); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 5, s_1); /* <-, line 314 */ + { int ret = slice_from_s(z, 5, s_1); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 7, s_2); /* <-, line 319 */ + { int ret = slice_from_s(z, 7, s_2); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 4, s_3); /* <-, line 322 */ + { int ret = slice_from_s(z, 4, s_3); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 4, s_4); /* <-, line 324 */ + { int ret = slice_from_s(z, 4, s_4); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 6, s_5); /* <-, line 327 */ + { int ret = slice_from_s(z, 6, s_5); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 6, s_6); /* <-, line 328 */ + { int ret = slice_from_s(z, 6, s_6); if (ret < 0) return ret; } break; case 8: - { int ret = slice_from_s(z, 6, s_7); /* <-, line 331 */ + { int ret = slice_from_s(z, 6, s_7); if (ret < 0) return ret; } break; @@ -726,21 +725,21 @@ static int r_fix_conflicts(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_fix_chdz(struct SN_env * z) { /* backwardmode */ +static int r_fix_chdz(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 338 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 190)) return 0; /* substring, line 338 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 190)) return 0; among_var = find_among_b(z, a_3, 2); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 338 */ - switch (among_var) { /* among, line 338 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_8); /* <-, line 339 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_9); /* <-, line 340 */ + { int ret = slice_from_s(z, 1, s_9); if (ret < 0) return ret; } break; @@ -748,82 +747,82 @@ static int r_fix_chdz(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_fix_gd(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 345 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 100) return 0; /* substring, line 345 */ +static int r_fix_gd(struct SN_env * z) { + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 100) return 0; if (!(find_among_b(z, a_4, 1))) return 0; - z->bra = z->c; /* ], line 345 */ - { int ret = slice_from_s(z, 1, s_10); /* <-, line 346 */ + z->bra = z->c; + { int ret = slice_from_s(z, 1, s_10); if (ret < 0) return ret; } return 1; } -extern int lithuanian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 355 */ - { int c1 = z->c; /* do, line 357 */ - { int c2 = z->c; /* try, line 359 */ - { int c_test3 = z->c; /* test, line 359 */ - if (z->c == z->l || z->p[z->c] != 'a') { z->c = c2; goto lab1; } /* literal, line 359 */ +extern int lithuanian_UTF_8_stem(struct SN_env * z) { + z->I[0] = z->l; + { int c1 = z->c; + { int c2 = z->c; + { int c_test3 = z->c; + if (z->c == z->l || z->p[z->c] != 'a') { z->c = c2; goto lab1; } z->c++; z->c = c_test3; } - if (!(len_utf8(z->p) > 6)) { z->c = c2; goto lab1; } /* $( > ), line 359 */ - { int ret = skip_utf8(z->p, z->c, 0, z->l, + 1); /* hop, line 359 */ + if (!(len_utf8(z->p) > 6)) { z->c = c2; goto lab1; } + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) { z->c = c2; goto lab1; } z->c = ret; } lab1: ; } - { /* gopast */ /* grouping v, line 361 */ + { int ret = out_grouping_U(z, g_v, 97, 371, 1); if (ret < 0) goto lab0; z->c += ret; } - { /* gopast */ /* non v, line 361 */ + { int ret = in_grouping_U(z, g_v, 97, 371, 1); if (ret < 0) goto lab0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 361 */ + z->I[0] = z->c; lab0: z->c = c1; } - z->lb = z->c; z->c = z->l; /* backwards, line 364 */ + z->lb = z->c; z->c = z->l; - { int m4 = z->l - z->c; (void)m4; /* do, line 365 */ - { int ret = r_fix_conflicts(z); /* call fix_conflicts, line 365 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_fix_conflicts(z); if (ret < 0) return ret; } z->c = z->l - m4; } - { int m5 = z->l - z->c; (void)m5; /* do, line 366 */ - { int ret = r_step1(z); /* call step1, line 366 */ + { int m5 = z->l - z->c; (void)m5; + { int ret = r_step1(z); if (ret < 0) return ret; } z->c = z->l - m5; } - { int m6 = z->l - z->c; (void)m6; /* do, line 367 */ - { int ret = r_fix_chdz(z); /* call fix_chdz, line 367 */ + { int m6 = z->l - z->c; (void)m6; + { int ret = r_fix_chdz(z); if (ret < 0) return ret; } z->c = z->l - m6; } - { int m7 = z->l - z->c; (void)m7; /* do, line 368 */ - { int ret = r_step2(z); /* call step2, line 368 */ + { int m7 = z->l - z->c; (void)m7; + { int ret = r_step2(z); if (ret < 0) return ret; } z->c = z->l - m7; } - { int m8 = z->l - z->c; (void)m8; /* do, line 369 */ - { int ret = r_fix_chdz(z); /* call fix_chdz, line 369 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_fix_chdz(z); if (ret < 0) return ret; } z->c = z->l - m8; } - { int m9 = z->l - z->c; (void)m9; /* do, line 370 */ - { int ret = r_fix_gd(z); /* call fix_gd, line 370 */ + { int m9 = z->l - z->c; (void)m9; + { int ret = r_fix_gd(z); if (ret < 0) return ret; } z->c = z->l - m9; @@ -832,7 +831,7 @@ extern int lithuanian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * lithuanian_UTF_8_create_env(void) { return SN_create_env(0, 1, 0); } +extern struct SN_env * lithuanian_UTF_8_create_env(void) { return SN_create_env(0, 1); } extern void lithuanian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_nepali.c b/src/backend/snowball/libstemmer/stem_UTF_8_nepali.c index 7927e66803e5b..0c9ff0830fbfb 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_nepali.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_nepali.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -45,23 +45,23 @@ static const symbol s_0_16[9] = { 0xE0, 0xA4, 0xAA, 0xE0, 0xA4, 0x9B, 0xE0, 0xA4 static const struct among a_0[17] = { -/* 0 */ { 6, s_0_0, -1, 2, 0}, -/* 1 */ { 9, s_0_1, -1, 1, 0}, -/* 2 */ { 6, s_0_2, -1, 1, 0}, -/* 3 */ { 9, s_0_3, -1, 1, 0}, -/* 4 */ { 6, s_0_4, -1, 2, 0}, -/* 5 */ { 12, s_0_5, -1, 1, 0}, -/* 6 */ { 6, s_0_6, -1, 1, 0}, -/* 7 */ { 6, s_0_7, -1, 2, 0}, -/* 8 */ { 9, s_0_8, -1, 1, 0}, -/* 9 */ { 9, s_0_9, -1, 1, 0}, -/* 10 */ { 18, s_0_10, -1, 1, 0}, -/* 11 */ { 6, s_0_11, -1, 1, 0}, -/* 12 */ { 6, s_0_12, -1, 2, 0}, -/* 13 */ { 6, s_0_13, -1, 1, 0}, -/* 14 */ { 18, s_0_14, -1, 1, 0}, -/* 15 */ { 6, s_0_15, -1, 2, 0}, -/* 16 */ { 9, s_0_16, -1, 1, 0} +{ 6, s_0_0, -1, 2, 0}, +{ 9, s_0_1, -1, 1, 0}, +{ 6, s_0_2, -1, 1, 0}, +{ 9, s_0_3, -1, 1, 0}, +{ 6, s_0_4, -1, 2, 0}, +{ 12, s_0_5, -1, 1, 0}, +{ 6, s_0_6, -1, 1, 0}, +{ 6, s_0_7, -1, 2, 0}, +{ 9, s_0_8, -1, 1, 0}, +{ 9, s_0_9, -1, 1, 0}, +{ 18, s_0_10, -1, 1, 0}, +{ 6, s_0_11, -1, 1, 0}, +{ 6, s_0_12, -1, 2, 0}, +{ 6, s_0_13, -1, 1, 0}, +{ 18, s_0_14, -1, 1, 0}, +{ 6, s_0_15, -1, 2, 0}, +{ 9, s_0_16, -1, 1, 0} }; static const symbol s_1_0[3] = { 0xE0, 0xA4, 0x81 }; @@ -70,9 +70,9 @@ static const symbol s_1_2[3] = { 0xE0, 0xA5, 0x88 }; static const struct among a_1[3] = { -/* 0 */ { 3, s_1_0, -1, -1, 0}, -/* 1 */ { 3, s_1_1, -1, -1, 0}, -/* 2 */ { 3, s_1_2, -1, -1, 0} +{ 3, s_1_0, -1, -1, 0}, +{ 3, s_1_1, -1, -1, 0}, +{ 3, s_1_2, -1, -1, 0} }; static const symbol s_2_0[3] = { 0xE0, 0xA4, 0x81 }; @@ -81,9 +81,9 @@ static const symbol s_2_2[3] = { 0xE0, 0xA5, 0x88 }; static const struct among a_2[3] = { -/* 0 */ { 3, s_2_0, -1, 1, 0}, -/* 1 */ { 3, s_2_1, -1, 1, 0}, -/* 2 */ { 3, s_2_2, -1, 2, 0} +{ 3, s_2_0, -1, 1, 0}, +{ 3, s_2_1, -1, 1, 0}, +{ 3, s_2_2, -1, 2, 0} }; static const symbol s_3_0[9] = { 0xE0, 0xA5, 0x87, 0xE0, 0xA4, 0x95, 0xE0, 0xA5, 0x80 }; @@ -180,97 +180,97 @@ static const symbol s_3_90[12] = { 0xE0, 0xA4, 0xAE, 0xE0, 0xA4, 0xBE, 0xE0, 0xA static const struct among a_3[91] = { -/* 0 */ { 9, s_3_0, -1, 1, 0}, -/* 1 */ { 9, s_3_1, -1, 1, 0}, -/* 2 */ { 12, s_3_2, 1, 1, 0}, -/* 3 */ { 12, s_3_3, 1, 1, 0}, -/* 4 */ { 12, s_3_4, -1, 1, 0}, -/* 5 */ { 6, s_3_5, -1, 1, 0}, -/* 6 */ { 6, s_3_6, -1, 1, 0}, -/* 7 */ { 6, s_3_7, -1, 1, 0}, -/* 8 */ { 9, s_3_8, 7, 1, 0}, -/* 9 */ { 12, s_3_9, 8, 1, 0}, -/* 10 */ { 9, s_3_10, 7, 1, 0}, -/* 11 */ { 6, s_3_11, -1, 1, 0}, -/* 12 */ { 9, s_3_12, -1, 1, 0}, -/* 13 */ { 9, s_3_13, -1, 1, 0}, -/* 14 */ { 6, s_3_14, -1, 1, 0}, -/* 15 */ { 6, s_3_15, -1, 1, 0}, -/* 16 */ { 6, s_3_16, -1, 1, 0}, -/* 17 */ { 9, s_3_17, -1, 1, 0}, -/* 18 */ { 12, s_3_18, 17, 1, 0}, -/* 19 */ { 9, s_3_19, -1, 1, 0}, -/* 20 */ { 6, s_3_20, -1, 1, 0}, -/* 21 */ { 9, s_3_21, 20, 1, 0}, -/* 22 */ { 9, s_3_22, 20, 1, 0}, -/* 23 */ { 9, s_3_23, -1, 1, 0}, -/* 24 */ { 12, s_3_24, 23, 1, 0}, -/* 25 */ { 9, s_3_25, -1, 1, 0}, -/* 26 */ { 12, s_3_26, 25, 1, 0}, -/* 27 */ { 12, s_3_27, 25, 1, 0}, -/* 28 */ { 6, s_3_28, -1, 1, 0}, -/* 29 */ { 9, s_3_29, 28, 1, 0}, -/* 30 */ { 9, s_3_30, 28, 1, 0}, -/* 31 */ { 6, s_3_31, -1, 1, 0}, -/* 32 */ { 9, s_3_32, 31, 1, 0}, -/* 33 */ { 12, s_3_33, 31, 1, 0}, -/* 34 */ { 9, s_3_34, 31, 1, 0}, -/* 35 */ { 9, s_3_35, 31, 1, 0}, -/* 36 */ { 12, s_3_36, 35, 1, 0}, -/* 37 */ { 12, s_3_37, 35, 1, 0}, -/* 38 */ { 6, s_3_38, -1, 1, 0}, -/* 39 */ { 9, s_3_39, 38, 1, 0}, -/* 40 */ { 9, s_3_40, 38, 1, 0}, -/* 41 */ { 12, s_3_41, 40, 1, 0}, -/* 42 */ { 9, s_3_42, 38, 1, 0}, -/* 43 */ { 9, s_3_43, 38, 1, 0}, -/* 44 */ { 6, s_3_44, -1, 1, 0}, -/* 45 */ { 12, s_3_45, 44, 1, 0}, -/* 46 */ { 12, s_3_46, 44, 1, 0}, -/* 47 */ { 12, s_3_47, 44, 1, 0}, -/* 48 */ { 9, s_3_48, -1, 1, 0}, -/* 49 */ { 12, s_3_49, 48, 1, 0}, -/* 50 */ { 12, s_3_50, 48, 1, 0}, -/* 51 */ { 15, s_3_51, 50, 1, 0}, -/* 52 */ { 12, s_3_52, 48, 1, 0}, -/* 53 */ { 12, s_3_53, 48, 1, 0}, -/* 54 */ { 12, s_3_54, -1, 1, 0}, -/* 55 */ { 12, s_3_55, -1, 1, 0}, -/* 56 */ { 12, s_3_56, -1, 1, 0}, -/* 57 */ { 9, s_3_57, -1, 1, 0}, -/* 58 */ { 9, s_3_58, -1, 1, 0}, -/* 59 */ { 15, s_3_59, 58, 1, 0}, -/* 60 */ { 12, s_3_60, -1, 1, 0}, -/* 61 */ { 12, s_3_61, -1, 1, 0}, -/* 62 */ { 9, s_3_62, -1, 1, 0}, -/* 63 */ { 12, s_3_63, 62, 1, 0}, -/* 64 */ { 12, s_3_64, 62, 1, 0}, -/* 65 */ { 15, s_3_65, 64, 1, 0}, -/* 66 */ { 12, s_3_66, 62, 1, 0}, -/* 67 */ { 12, s_3_67, 62, 1, 0}, -/* 68 */ { 9, s_3_68, -1, 1, 0}, -/* 69 */ { 12, s_3_69, 68, 1, 0}, -/* 70 */ { 9, s_3_70, -1, 1, 0}, -/* 71 */ { 3, s_3_71, -1, 1, 0}, -/* 72 */ { 6, s_3_72, 71, 1, 0}, -/* 73 */ { 6, s_3_73, 71, 1, 0}, -/* 74 */ { 9, s_3_74, 73, 1, 0}, -/* 75 */ { 15, s_3_75, 74, 1, 0}, -/* 76 */ { 15, s_3_76, 71, 1, 0}, -/* 77 */ { 12, s_3_77, 71, 1, 0}, -/* 78 */ { 12, s_3_78, 71, 1, 0}, -/* 79 */ { 6, s_3_79, 71, 1, 0}, -/* 80 */ { 6, s_3_80, 71, 1, 0}, -/* 81 */ { 9, s_3_81, -1, 1, 0}, -/* 82 */ { 12, s_3_82, 81, 1, 0}, -/* 83 */ { 9, s_3_83, -1, 1, 0}, -/* 84 */ { 12, s_3_84, 83, 1, 0}, -/* 85 */ { 12, s_3_85, 83, 1, 0}, -/* 86 */ { 6, s_3_86, -1, 1, 0}, -/* 87 */ { 9, s_3_87, 86, 1, 0}, -/* 88 */ { 9, s_3_88, 86, 1, 0}, -/* 89 */ { 12, s_3_89, -1, 1, 0}, -/* 90 */ { 12, s_3_90, -1, 1, 0} +{ 9, s_3_0, -1, 1, 0}, +{ 9, s_3_1, -1, 1, 0}, +{ 12, s_3_2, 1, 1, 0}, +{ 12, s_3_3, 1, 1, 0}, +{ 12, s_3_4, -1, 1, 0}, +{ 6, s_3_5, -1, 1, 0}, +{ 6, s_3_6, -1, 1, 0}, +{ 6, s_3_7, -1, 1, 0}, +{ 9, s_3_8, 7, 1, 0}, +{ 12, s_3_9, 8, 1, 0}, +{ 9, s_3_10, 7, 1, 0}, +{ 6, s_3_11, -1, 1, 0}, +{ 9, s_3_12, -1, 1, 0}, +{ 9, s_3_13, -1, 1, 0}, +{ 6, s_3_14, -1, 1, 0}, +{ 6, s_3_15, -1, 1, 0}, +{ 6, s_3_16, -1, 1, 0}, +{ 9, s_3_17, -1, 1, 0}, +{ 12, s_3_18, 17, 1, 0}, +{ 9, s_3_19, -1, 1, 0}, +{ 6, s_3_20, -1, 1, 0}, +{ 9, s_3_21, 20, 1, 0}, +{ 9, s_3_22, 20, 1, 0}, +{ 9, s_3_23, -1, 1, 0}, +{ 12, s_3_24, 23, 1, 0}, +{ 9, s_3_25, -1, 1, 0}, +{ 12, s_3_26, 25, 1, 0}, +{ 12, s_3_27, 25, 1, 0}, +{ 6, s_3_28, -1, 1, 0}, +{ 9, s_3_29, 28, 1, 0}, +{ 9, s_3_30, 28, 1, 0}, +{ 6, s_3_31, -1, 1, 0}, +{ 9, s_3_32, 31, 1, 0}, +{ 12, s_3_33, 31, 1, 0}, +{ 9, s_3_34, 31, 1, 0}, +{ 9, s_3_35, 31, 1, 0}, +{ 12, s_3_36, 35, 1, 0}, +{ 12, s_3_37, 35, 1, 0}, +{ 6, s_3_38, -1, 1, 0}, +{ 9, s_3_39, 38, 1, 0}, +{ 9, s_3_40, 38, 1, 0}, +{ 12, s_3_41, 40, 1, 0}, +{ 9, s_3_42, 38, 1, 0}, +{ 9, s_3_43, 38, 1, 0}, +{ 6, s_3_44, -1, 1, 0}, +{ 12, s_3_45, 44, 1, 0}, +{ 12, s_3_46, 44, 1, 0}, +{ 12, s_3_47, 44, 1, 0}, +{ 9, s_3_48, -1, 1, 0}, +{ 12, s_3_49, 48, 1, 0}, +{ 12, s_3_50, 48, 1, 0}, +{ 15, s_3_51, 50, 1, 0}, +{ 12, s_3_52, 48, 1, 0}, +{ 12, s_3_53, 48, 1, 0}, +{ 12, s_3_54, -1, 1, 0}, +{ 12, s_3_55, -1, 1, 0}, +{ 12, s_3_56, -1, 1, 0}, +{ 9, s_3_57, -1, 1, 0}, +{ 9, s_3_58, -1, 1, 0}, +{ 15, s_3_59, 58, 1, 0}, +{ 12, s_3_60, -1, 1, 0}, +{ 12, s_3_61, -1, 1, 0}, +{ 9, s_3_62, -1, 1, 0}, +{ 12, s_3_63, 62, 1, 0}, +{ 12, s_3_64, 62, 1, 0}, +{ 15, s_3_65, 64, 1, 0}, +{ 12, s_3_66, 62, 1, 0}, +{ 12, s_3_67, 62, 1, 0}, +{ 9, s_3_68, -1, 1, 0}, +{ 12, s_3_69, 68, 1, 0}, +{ 9, s_3_70, -1, 1, 0}, +{ 3, s_3_71, -1, 1, 0}, +{ 6, s_3_72, 71, 1, 0}, +{ 6, s_3_73, 71, 1, 0}, +{ 9, s_3_74, 73, 1, 0}, +{ 15, s_3_75, 74, 1, 0}, +{ 15, s_3_76, 71, 1, 0}, +{ 12, s_3_77, 71, 1, 0}, +{ 12, s_3_78, 71, 1, 0}, +{ 6, s_3_79, 71, 1, 0}, +{ 6, s_3_80, 71, 1, 0}, +{ 9, s_3_81, -1, 1, 0}, +{ 12, s_3_82, 81, 1, 0}, +{ 9, s_3_83, -1, 1, 0}, +{ 12, s_3_84, 83, 1, 0}, +{ 12, s_3_85, 83, 1, 0}, +{ 6, s_3_86, -1, 1, 0}, +{ 9, s_3_87, 86, 1, 0}, +{ 9, s_3_88, 86, 1, 0}, +{ 12, s_3_89, -1, 1, 0}, +{ 12, s_3_90, -1, 1, 0} }; static const symbol s_0[] = { 0xE0, 0xA4, 0x8F }; @@ -281,32 +281,32 @@ static const symbol s_4[] = { 0xE0, 0xA4, 0xA8, 0xE0, 0xA5, 0x8C }; static const symbol s_5[] = { 0xE0, 0xA4, 0xA5, 0xE0, 0xA5, 0x87 }; static const symbol s_6[] = { 0xE0, 0xA4, 0xA4, 0xE0, 0xA5, 0x8D, 0xE0, 0xA4, 0xB0 }; -static int r_remove_category_1(struct SN_env * z) { /* backwardmode */ +static int r_remove_category_1(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 54 */ - among_var = find_among_b(z, a_0, 17); /* substring, line 54 */ + z->ket = z->c; + among_var = find_among_b(z, a_0, 17); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 54 */ - switch (among_var) { /* among, line 54 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 58 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int m1 = z->l - z->c; (void)m1; /* or, line 59 */ - { int m2 = z->l - z->c; (void)m2; /* or, line 59 */ - if (!(eq_s_b(z, 3, s_0))) goto lab3; /* literal, line 59 */ + { int m1 = z->l - z->c; (void)m1; + { int m2 = z->l - z->c; (void)m2; + if (!(eq_s_b(z, 3, s_0))) goto lab3; goto lab2; lab3: z->c = z->l - m2; - if (!(eq_s_b(z, 3, s_1))) goto lab1; /* literal, line 59 */ + if (!(eq_s_b(z, 3, s_1))) goto lab1; } lab2: goto lab0; lab1: z->c = z->l - m1; - { int ret = slice_del(z); /* delete, line 59 */ + { int ret = slice_del(z); if (ret < 0) return ret; } } @@ -316,46 +316,46 @@ static int r_remove_category_1(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_check_category_2(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 64 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((262 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 64 */ +static int r_check_category_2(struct SN_env * z) { + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((262 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_1, 3))) return 0; - z->bra = z->c; /* ], line 64 */ + z->bra = z->c; return 1; } -static int r_remove_category_2(struct SN_env * z) { /* backwardmode */ +static int r_remove_category_2(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 70 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((262 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 70 */ + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((262 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_2, 3); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 70 */ - switch (among_var) { /* among, line 70 */ + z->bra = z->c; + switch (among_var) { case 1: - { int m1 = z->l - z->c; (void)m1; /* or, line 71 */ - if (!(eq_s_b(z, 6, s_2))) goto lab1; /* literal, line 71 */ + { int m1 = z->l - z->c; (void)m1; + if (!(eq_s_b(z, 6, s_2))) goto lab1; goto lab0; lab1: z->c = z->l - m1; - if (!(eq_s_b(z, 6, s_3))) goto lab2; /* literal, line 71 */ + if (!(eq_s_b(z, 6, s_3))) goto lab2; goto lab0; lab2: z->c = z->l - m1; - if (!(eq_s_b(z, 6, s_4))) goto lab3; /* literal, line 71 */ + if (!(eq_s_b(z, 6, s_4))) goto lab3; goto lab0; lab3: z->c = z->l - m1; - if (!(eq_s_b(z, 6, s_5))) return 0; /* literal, line 71 */ + if (!(eq_s_b(z, 6, s_5))) return 0; } lab0: - { int ret = slice_del(z); /* delete, line 71 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (!(eq_s_b(z, 9, s_6))) return 0; /* literal, line 72 */ - { int ret = slice_del(z); /* delete, line 72 */ + if (!(eq_s_b(z, 9, s_6))) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -363,37 +363,36 @@ static int r_remove_category_2(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_remove_category_3(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 77 */ - if (!(find_among_b(z, a_3, 91))) return 0; /* substring, line 77 */ - z->bra = z->c; /* ], line 77 */ - { int ret = slice_del(z); /* delete, line 79 */ +static int r_remove_category_3(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_3, 91))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -extern int nepali_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - z->lb = z->c; z->c = z->l; /* backwards, line 86 */ +extern int nepali_UTF_8_stem(struct SN_env * z) { + z->lb = z->c; z->c = z->l; - { int m1 = z->l - z->c; (void)m1; /* do, line 87 */ - { int ret = r_remove_category_1(z); /* call remove_category_1, line 87 */ + { int m1 = z->l - z->c; (void)m1; + { int ret = r_remove_category_1(z); if (ret < 0) return ret; } z->c = z->l - m1; } - { int m2 = z->l - z->c; (void)m2; /* do, line 88 */ -/* repeat, line 89 */ - - while(1) { int m3 = z->l - z->c; (void)m3; - { int m4 = z->l - z->c; (void)m4; /* do, line 89 */ - { int m5 = z->l - z->c; (void)m5; /* and, line 89 */ - { int ret = r_check_category_2(z); /* call check_category_2, line 89 */ + { int m2 = z->l - z->c; (void)m2; + while(1) { + int m3 = z->l - z->c; (void)m3; + { int m4 = z->l - z->c; (void)m4; + { int m5 = z->l - z->c; (void)m5; + { int ret = r_check_category_2(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } z->c = z->l - m5; - { int ret = r_remove_category_2(z); /* call remove_category_2, line 89 */ + { int ret = r_remove_category_2(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } @@ -401,7 +400,7 @@ extern int nepali_UTF_8_stem(struct SN_env * z) { /* forwardmode */ lab2: z->c = z->l - m4; } - { int ret = r_remove_category_3(z); /* call remove_category_3, line 89 */ + { int ret = r_remove_category_3(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } @@ -416,7 +415,7 @@ extern int nepali_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * nepali_UTF_8_create_env(void) { return SN_create_env(0, 0, 0); } +extern struct SN_env * nepali_UTF_8_create_env(void) { return SN_create_env(0, 0); } extern void nepali_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_norwegian.c b/src/backend/snowball/libstemmer/stem_UTF_8_norwegian.c index e333b1dfffe3b..73c840878fb4b 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_norwegian.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_norwegian.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -57,35 +57,35 @@ static const symbol s_0_28[3] = { 'a', 's', 't' }; static const struct among a_0[29] = { -/* 0 */ { 1, s_0_0, -1, 1, 0}, -/* 1 */ { 1, s_0_1, -1, 1, 0}, -/* 2 */ { 3, s_0_2, 1, 1, 0}, -/* 3 */ { 4, s_0_3, 1, 1, 0}, -/* 4 */ { 4, s_0_4, 1, 1, 0}, -/* 5 */ { 3, s_0_5, 1, 1, 0}, -/* 6 */ { 3, s_0_6, 1, 1, 0}, -/* 7 */ { 6, s_0_7, 6, 1, 0}, -/* 8 */ { 4, s_0_8, 1, 3, 0}, -/* 9 */ { 2, s_0_9, -1, 1, 0}, -/* 10 */ { 5, s_0_10, 9, 1, 0}, -/* 11 */ { 2, s_0_11, -1, 1, 0}, -/* 12 */ { 2, s_0_12, -1, 1, 0}, -/* 13 */ { 5, s_0_13, 12, 1, 0}, -/* 14 */ { 1, s_0_14, -1, 2, 0}, -/* 15 */ { 2, s_0_15, 14, 1, 0}, -/* 16 */ { 2, s_0_16, 14, 1, 0}, -/* 17 */ { 4, s_0_17, 16, 1, 0}, -/* 18 */ { 5, s_0_18, 16, 1, 0}, -/* 19 */ { 4, s_0_19, 16, 1, 0}, -/* 20 */ { 7, s_0_20, 19, 1, 0}, -/* 21 */ { 3, s_0_21, 14, 1, 0}, -/* 22 */ { 6, s_0_22, 21, 1, 0}, -/* 23 */ { 3, s_0_23, 14, 1, 0}, -/* 24 */ { 3, s_0_24, 14, 1, 0}, -/* 25 */ { 2, s_0_25, -1, 1, 0}, -/* 26 */ { 3, s_0_26, 25, 1, 0}, -/* 27 */ { 3, s_0_27, -1, 3, 0}, -/* 28 */ { 3, s_0_28, -1, 1, 0} +{ 1, s_0_0, -1, 1, 0}, +{ 1, s_0_1, -1, 1, 0}, +{ 3, s_0_2, 1, 1, 0}, +{ 4, s_0_3, 1, 1, 0}, +{ 4, s_0_4, 1, 1, 0}, +{ 3, s_0_5, 1, 1, 0}, +{ 3, s_0_6, 1, 1, 0}, +{ 6, s_0_7, 6, 1, 0}, +{ 4, s_0_8, 1, 3, 0}, +{ 2, s_0_9, -1, 1, 0}, +{ 5, s_0_10, 9, 1, 0}, +{ 2, s_0_11, -1, 1, 0}, +{ 2, s_0_12, -1, 1, 0}, +{ 5, s_0_13, 12, 1, 0}, +{ 1, s_0_14, -1, 2, 0}, +{ 2, s_0_15, 14, 1, 0}, +{ 2, s_0_16, 14, 1, 0}, +{ 4, s_0_17, 16, 1, 0}, +{ 5, s_0_18, 16, 1, 0}, +{ 4, s_0_19, 16, 1, 0}, +{ 7, s_0_20, 19, 1, 0}, +{ 3, s_0_21, 14, 1, 0}, +{ 6, s_0_22, 21, 1, 0}, +{ 3, s_0_23, 14, 1, 0}, +{ 3, s_0_24, 14, 1, 0}, +{ 2, s_0_25, -1, 1, 0}, +{ 3, s_0_26, 25, 1, 0}, +{ 3, s_0_27, -1, 3, 0}, +{ 3, s_0_28, -1, 1, 0} }; static const symbol s_1_0[2] = { 'd', 't' }; @@ -93,8 +93,8 @@ static const symbol s_1_1[2] = { 'v', 't' }; static const struct among a_1[2] = { -/* 0 */ { 2, s_1_0, -1, -1, 0}, -/* 1 */ { 2, s_1_1, -1, -1, 0} +{ 2, s_1_0, -1, -1, 0}, +{ 2, s_1_1, -1, -1, 0} }; static const symbol s_2_0[3] = { 'l', 'e', 'g' }; @@ -111,17 +111,17 @@ static const symbol s_2_10[7] = { 'h', 'e', 't', 's', 'l', 'o', 'v' }; static const struct among a_2[11] = { -/* 0 */ { 3, s_2_0, -1, 1, 0}, -/* 1 */ { 4, s_2_1, 0, 1, 0}, -/* 2 */ { 2, s_2_2, -1, 1, 0}, -/* 3 */ { 3, s_2_3, 2, 1, 0}, -/* 4 */ { 3, s_2_4, 2, 1, 0}, -/* 5 */ { 4, s_2_5, 4, 1, 0}, -/* 6 */ { 3, s_2_6, -1, 1, 0}, -/* 7 */ { 3, s_2_7, -1, 1, 0}, -/* 8 */ { 4, s_2_8, 7, 1, 0}, -/* 9 */ { 4, s_2_9, 7, 1, 0}, -/* 10 */ { 7, s_2_10, 9, 1, 0} +{ 3, s_2_0, -1, 1, 0}, +{ 4, s_2_1, 0, 1, 0}, +{ 2, s_2_2, -1, 1, 0}, +{ 3, s_2_3, 2, 1, 0}, +{ 3, s_2_4, 2, 1, 0}, +{ 4, s_2_5, 4, 1, 0}, +{ 3, s_2_6, -1, 1, 0}, +{ 3, s_2_7, -1, 1, 0}, +{ 4, s_2_8, 7, 1, 0}, +{ 4, s_2_9, 7, 1, 0}, +{ 7, s_2_10, 9, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 }; @@ -130,66 +130,66 @@ static const unsigned char g_s_ending[] = { 119, 125, 149, 1 }; static const symbol s_0[] = { 'e', 'r' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 28 */ - { int c_test1 = z->c; /* test, line 30 */ - { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 30 */ +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + { int c_test1 = z->c; + { int ret = skip_utf8(z->p, z->c, z->l, 3); if (ret < 0) return 0; z->c = ret; } - z->I[1] = z->c; /* setmark x, line 30 */ + z->I[0] = z->c; z->c = c_test1; } - if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0; /* goto */ /* grouping v, line 31 */ - { /* gopast */ /* non v, line 31 */ + if (out_grouping_U(z, g_v, 97, 248, 1) < 0) return 0; + { int ret = in_grouping_U(z, g_v, 97, 248, 1); if (ret < 0) return 0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 31 */ - /* try, line 32 */ - if (!(z->I[0] < z->I[1])) goto lab0; /* $( < ), line 32 */ - z->I[0] = z->I[1]; /* $p1 = , line 32 */ + z->I[1] = z->c; + + if (!(z->I[1] < z->I[0])) goto lab0; + z->I[1] = z->I[0]; lab0: return 1; } -static int r_main_suffix(struct SN_env * z) { /* backwardmode */ +static int r_main_suffix(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 38 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 38 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 38 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851426 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } among_var = find_among_b(z, a_0, 29); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 38 */ + z->bra = z->c; z->lb = mlimit1; } - switch (among_var) { /* among, line 39 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 44 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int m2 = z->l - z->c; (void)m2; /* or, line 46 */ - if (in_grouping_b_U(z, g_s_ending, 98, 122, 0)) goto lab1; /* grouping s_ending, line 46 */ + { int m2 = z->l - z->c; (void)m2; + if (in_grouping_b_U(z, g_s_ending, 98, 122, 0)) goto lab1; goto lab0; lab1: z->c = z->l - m2; - if (z->c <= z->lb || z->p[z->c - 1] != 'k') return 0; /* literal, line 46 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'k') return 0; z->c--; - if (out_grouping_b_U(z, g_v, 97, 248, 0)) return 0; /* non v, line 46 */ + if (out_grouping_b_U(z, g_v, 97, 248, 0)) return 0; } lab0: - { int ret = slice_del(z); /* delete, line 46 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 2, s_0); /* <-, line 48 */ + { int ret = slice_from_s(z, 2, s_0); if (ret < 0) return ret; } break; @@ -197,71 +197,71 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_consonant_pair(struct SN_env * z) { /* backwardmode */ - { int m_test1 = z->l - z->c; /* test, line 53 */ +static int r_consonant_pair(struct SN_env * z) { + { int m_test1 = z->l - z->c; - { int mlimit2; /* setlimit, line 54 */ - if (z->c < z->I[0]) return 0; - mlimit2 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 54 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; } /* substring, line 54 */ + { int mlimit2; + if (z->c < z->I[1]) return 0; + mlimit2 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 116) { z->lb = mlimit2; return 0; } if (!(find_among_b(z, a_1, 2))) { z->lb = mlimit2; return 0; } - z->bra = z->c; /* ], line 54 */ + z->bra = z->c; z->lb = mlimit2; } z->c = z->l - m_test1; } - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) return 0; - z->c = ret; /* next, line 59 */ + z->c = ret; } - z->bra = z->c; /* ], line 59 */ - { int ret = slice_del(z); /* delete, line 59 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_other_suffix(struct SN_env * z) { /* backwardmode */ +static int r_other_suffix(struct SN_env * z) { - { int mlimit1; /* setlimit, line 63 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 63 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 63 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718720 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } if (!(find_among_b(z, a_2, 11))) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 63 */ + z->bra = z->c; z->lb = mlimit1; } - { int ret = slice_del(z); /* delete, line 67 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -extern int norwegian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 74 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 74 */ +extern int norwegian_UTF_8_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_mark_regions(z); if (ret < 0) return ret; } z->c = c1; } - z->lb = z->c; z->c = z->l; /* backwards, line 75 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 76 */ - { int ret = r_main_suffix(z); /* call main_suffix, line 76 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_main_suffix(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 77 */ - { int ret = r_consonant_pair(z); /* call consonant_pair, line 77 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_consonant_pair(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 78 */ - { int ret = r_other_suffix(z); /* call other_suffix, line 78 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_other_suffix(z); if (ret < 0) return ret; } z->c = z->l - m4; @@ -270,7 +270,7 @@ extern int norwegian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * norwegian_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); } +extern struct SN_env * norwegian_UTF_8_create_env(void) { return SN_create_env(0, 2); } extern void norwegian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_porter.c b/src/backend/snowball/libstemmer/stem_UTF_8_porter.c index 961a06cbf92d6..f42aa161fb4d8 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_porter.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_porter.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -39,10 +39,10 @@ static const symbol s_0_3[2] = { 's', 's' }; static const struct among a_0[4] = { -/* 0 */ { 1, s_0_0, -1, 3, 0}, -/* 1 */ { 3, s_0_1, 0, 2, 0}, -/* 2 */ { 4, s_0_2, 0, 1, 0}, -/* 3 */ { 2, s_0_3, 0, -1, 0} +{ 1, s_0_0, -1, 3, 0}, +{ 3, s_0_1, 0, 2, 0}, +{ 4, s_0_2, 0, 1, 0}, +{ 2, s_0_3, 0, -1, 0} }; static const symbol s_1_1[2] = { 'b', 'b' }; @@ -60,19 +60,19 @@ static const symbol s_1_12[2] = { 'i', 'z' }; static const struct among a_1[13] = { -/* 0 */ { 0, 0, -1, 3, 0}, -/* 1 */ { 2, s_1_1, 0, 2, 0}, -/* 2 */ { 2, s_1_2, 0, 2, 0}, -/* 3 */ { 2, s_1_3, 0, 2, 0}, -/* 4 */ { 2, s_1_4, 0, 2, 0}, -/* 5 */ { 2, s_1_5, 0, 1, 0}, -/* 6 */ { 2, s_1_6, 0, 2, 0}, -/* 7 */ { 2, s_1_7, 0, 2, 0}, -/* 8 */ { 2, s_1_8, 0, 2, 0}, -/* 9 */ { 2, s_1_9, 0, 2, 0}, -/* 10 */ { 2, s_1_10, 0, 1, 0}, -/* 11 */ { 2, s_1_11, 0, 2, 0}, -/* 12 */ { 2, s_1_12, 0, 1, 0} +{ 0, 0, -1, 3, 0}, +{ 2, s_1_1, 0, 2, 0}, +{ 2, s_1_2, 0, 2, 0}, +{ 2, s_1_3, 0, 2, 0}, +{ 2, s_1_4, 0, 2, 0}, +{ 2, s_1_5, 0, 1, 0}, +{ 2, s_1_6, 0, 2, 0}, +{ 2, s_1_7, 0, 2, 0}, +{ 2, s_1_8, 0, 2, 0}, +{ 2, s_1_9, 0, 2, 0}, +{ 2, s_1_10, 0, 1, 0}, +{ 2, s_1_11, 0, 2, 0}, +{ 2, s_1_12, 0, 1, 0} }; static const symbol s_2_0[2] = { 'e', 'd' }; @@ -81,9 +81,9 @@ static const symbol s_2_2[3] = { 'i', 'n', 'g' }; static const struct among a_2[3] = { -/* 0 */ { 2, s_2_0, -1, 2, 0}, -/* 1 */ { 3, s_2_1, 0, 1, 0}, -/* 2 */ { 3, s_2_2, -1, 2, 0} +{ 2, s_2_0, -1, 2, 0}, +{ 3, s_2_1, 0, 1, 0}, +{ 3, s_2_2, -1, 2, 0} }; static const symbol s_3_0[4] = { 'a', 'n', 'c', 'i' }; @@ -109,26 +109,26 @@ static const symbol s_3_19[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' }; static const struct among a_3[20] = { -/* 0 */ { 4, s_3_0, -1, 3, 0}, -/* 1 */ { 4, s_3_1, -1, 2, 0}, -/* 2 */ { 4, s_3_2, -1, 4, 0}, -/* 3 */ { 3, s_3_3, -1, 6, 0}, -/* 4 */ { 4, s_3_4, -1, 9, 0}, -/* 5 */ { 5, s_3_5, -1, 11, 0}, -/* 6 */ { 5, s_3_6, -1, 5, 0}, -/* 7 */ { 5, s_3_7, -1, 9, 0}, -/* 8 */ { 6, s_3_8, -1, 13, 0}, -/* 9 */ { 5, s_3_9, -1, 12, 0}, -/* 10 */ { 6, s_3_10, -1, 1, 0}, -/* 11 */ { 7, s_3_11, 10, 8, 0}, -/* 12 */ { 5, s_3_12, -1, 9, 0}, -/* 13 */ { 5, s_3_13, -1, 8, 0}, -/* 14 */ { 7, s_3_14, 13, 7, 0}, -/* 15 */ { 4, s_3_15, -1, 7, 0}, -/* 16 */ { 4, s_3_16, -1, 8, 0}, -/* 17 */ { 7, s_3_17, -1, 12, 0}, -/* 18 */ { 7, s_3_18, -1, 10, 0}, -/* 19 */ { 7, s_3_19, -1, 11, 0} +{ 4, s_3_0, -1, 3, 0}, +{ 4, s_3_1, -1, 2, 0}, +{ 4, s_3_2, -1, 4, 0}, +{ 3, s_3_3, -1, 6, 0}, +{ 4, s_3_4, -1, 9, 0}, +{ 5, s_3_5, -1, 11, 0}, +{ 5, s_3_6, -1, 5, 0}, +{ 5, s_3_7, -1, 9, 0}, +{ 6, s_3_8, -1, 13, 0}, +{ 5, s_3_9, -1, 12, 0}, +{ 6, s_3_10, -1, 1, 0}, +{ 7, s_3_11, 10, 8, 0}, +{ 5, s_3_12, -1, 9, 0}, +{ 5, s_3_13, -1, 8, 0}, +{ 7, s_3_14, 13, 7, 0}, +{ 4, s_3_15, -1, 7, 0}, +{ 4, s_3_16, -1, 8, 0}, +{ 7, s_3_17, -1, 12, 0}, +{ 7, s_3_18, -1, 10, 0}, +{ 7, s_3_19, -1, 11, 0} }; static const symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' }; @@ -141,13 +141,13 @@ static const symbol s_4_6[4] = { 'n', 'e', 's', 's' }; static const struct among a_4[7] = { -/* 0 */ { 5, s_4_0, -1, 2, 0}, -/* 1 */ { 5, s_4_1, -1, 3, 0}, -/* 2 */ { 5, s_4_2, -1, 1, 0}, -/* 3 */ { 5, s_4_3, -1, 2, 0}, -/* 4 */ { 4, s_4_4, -1, 2, 0}, -/* 5 */ { 3, s_4_5, -1, 3, 0}, -/* 6 */ { 4, s_4_6, -1, 3, 0} +{ 5, s_4_0, -1, 2, 0}, +{ 5, s_4_1, -1, 3, 0}, +{ 5, s_4_2, -1, 1, 0}, +{ 5, s_4_3, -1, 2, 0}, +{ 4, s_4_4, -1, 2, 0}, +{ 3, s_4_5, -1, 3, 0}, +{ 4, s_4_6, -1, 3, 0} }; static const symbol s_5_0[2] = { 'i', 'c' }; @@ -172,25 +172,25 @@ static const symbol s_5_18[2] = { 'o', 'u' }; static const struct among a_5[19] = { -/* 0 */ { 2, s_5_0, -1, 1, 0}, -/* 1 */ { 4, s_5_1, -1, 1, 0}, -/* 2 */ { 4, s_5_2, -1, 1, 0}, -/* 3 */ { 4, s_5_3, -1, 1, 0}, -/* 4 */ { 4, s_5_4, -1, 1, 0}, -/* 5 */ { 3, s_5_5, -1, 1, 0}, -/* 6 */ { 3, s_5_6, -1, 1, 0}, -/* 7 */ { 3, s_5_7, -1, 1, 0}, -/* 8 */ { 3, s_5_8, -1, 1, 0}, -/* 9 */ { 2, s_5_9, -1, 1, 0}, -/* 10 */ { 3, s_5_10, -1, 1, 0}, -/* 11 */ { 3, s_5_11, -1, 2, 0}, -/* 12 */ { 2, s_5_12, -1, 1, 0}, -/* 13 */ { 3, s_5_13, -1, 1, 0}, -/* 14 */ { 3, s_5_14, -1, 1, 0}, -/* 15 */ { 3, s_5_15, -1, 1, 0}, -/* 16 */ { 4, s_5_16, 15, 1, 0}, -/* 17 */ { 5, s_5_17, 16, 1, 0}, -/* 18 */ { 2, s_5_18, -1, 1, 0} +{ 2, s_5_0, -1, 1, 0}, +{ 4, s_5_1, -1, 1, 0}, +{ 4, s_5_2, -1, 1, 0}, +{ 4, s_5_3, -1, 1, 0}, +{ 4, s_5_4, -1, 1, 0}, +{ 3, s_5_5, -1, 1, 0}, +{ 3, s_5_6, -1, 1, 0}, +{ 3, s_5_7, -1, 1, 0}, +{ 3, s_5_8, -1, 1, 0}, +{ 2, s_5_9, -1, 1, 0}, +{ 3, s_5_10, -1, 1, 0}, +{ 3, s_5_11, -1, 2, 0}, +{ 2, s_5_12, -1, 1, 0}, +{ 3, s_5_13, -1, 1, 0}, +{ 3, s_5_14, -1, 1, 0}, +{ 3, s_5_15, -1, 1, 0}, +{ 4, s_5_16, 15, 1, 0}, +{ 5, s_5_17, 16, 1, 0}, +{ 2, s_5_18, -1, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 1 }; @@ -222,43 +222,43 @@ static const symbol s_21[] = { 'Y' }; static const symbol s_22[] = { 'Y' }; static const symbol s_23[] = { 'y' }; -static int r_shortv(struct SN_env * z) { /* backwardmode */ - if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) return 0; /* non v_WXY, line 19 */ - if (in_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* grouping v, line 19 */ - if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0; /* non v, line 19 */ +static int r_shortv(struct SN_env * z) { + if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) return 0; + if (in_grouping_b_U(z, g_v, 97, 121, 0)) return 0; + if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0; return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 21 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 22 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_Step_1a(struct SN_env * z) { /* backwardmode */ +static int r_Step_1a(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 25 */ - if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0; /* substring, line 25 */ + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0; among_var = find_among_b(z, a_0, 4); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 25 */ - switch (among_var) { /* among, line 25 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 2, s_0); /* <-, line 26 */ + { int ret = slice_from_s(z, 2, s_0); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_1); /* <-, line 27 */ + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } break; case 3: - { int ret = slice_del(z); /* delete, line 29 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -266,72 +266,72 @@ static int r_Step_1a(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_1b(struct SN_env * z) { /* backwardmode */ +static int r_Step_1b(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 34 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; /* substring, line 34 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0; among_var = find_among_b(z, a_2, 3); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 34 */ - switch (among_var) { /* among, line 34 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R1(z); /* call R1, line 35 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 2, s_2); /* <-, line 35 */ + { int ret = slice_from_s(z, 2, s_2); if (ret < 0) return ret; } break; case 2: - { int m_test1 = z->l - z->c; /* test, line 38 */ - { /* gopast */ /* grouping v, line 38 */ + { int m_test1 = z->l - z->c; + { int ret = out_grouping_b_U(z, g_v, 97, 121, 1); if (ret < 0) return 0; z->c -= ret; } z->c = z->l - m_test1; } - { int ret = slice_del(z); /* delete, line 38 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m_test2 = z->l - z->c; /* test, line 39 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else /* substring, line 39 */ + { int m_test2 = z->l - z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else among_var = find_among_b(z, a_1, 13); if (!(among_var)) return 0; z->c = z->l - m_test2; } - switch (among_var) { /* among, line 39 */ + switch (among_var) { case 1: { int ret; { int saved_c = z->c; - ret = insert_s(z, z->c, z->c, 1, s_3); /* <+, line 41 */ + ret = insert_s(z, z->c, z->c, 1, s_3); z->c = saved_c; } if (ret < 0) return ret; } break; case 2: - z->ket = z->c; /* [, line 44 */ - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + z->ket = z->c; + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) return 0; - z->c = ret; /* next, line 44 */ + z->c = ret; } - z->bra = z->c; /* ], line 44 */ - { int ret = slice_del(z); /* delete, line 44 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - if (z->c != z->I[0]) return 0; /* atmark, line 45 */ - { int m_test3 = z->l - z->c; /* test, line 45 */ - { int ret = r_shortv(z); /* call shortv, line 45 */ + if (z->c != z->I[1]) return 0; + { int m_test3 = z->l - z->c; + { int ret = r_shortv(z); if (ret <= 0) return ret; } z->c = z->l - m_test3; } { int ret; { int saved_c = z->c; - ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */ + ret = insert_s(z, z->c, z->c, 1, s_4); z->c = saved_c; } if (ret < 0) return ret; @@ -343,103 +343,103 @@ static int r_Step_1b(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_1c(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 52 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 52 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 52 */ +static int r_Step_1c(struct SN_env * z) { + z->ket = z->c; + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; z->c--; goto lab0; lab1: z->c = z->l - m1; - if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; /* literal, line 52 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0; z->c--; } lab0: - z->bra = z->c; /* ], line 52 */ - { /* gopast */ /* grouping v, line 53 */ + z->bra = z->c; + { int ret = out_grouping_b_U(z, g_v, 97, 121, 1); if (ret < 0) return 0; z->c -= ret; } - { int ret = slice_from_s(z, 1, s_5); /* <-, line 54 */ + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } return 1; } -static int r_Step_2(struct SN_env * z) { /* backwardmode */ +static int r_Step_2(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 58 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 58 */ + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_3, 20); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 58 */ - { int ret = r_R1(z); /* call R1, line 58 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 58 */ + switch (among_var) { case 1: - { int ret = slice_from_s(z, 4, s_6); /* <-, line 59 */ + { int ret = slice_from_s(z, 4, s_6); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 4, s_7); /* <-, line 60 */ + { int ret = slice_from_s(z, 4, s_7); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 4, s_8); /* <-, line 61 */ + { int ret = slice_from_s(z, 4, s_8); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 4, s_9); /* <-, line 62 */ + { int ret = slice_from_s(z, 4, s_9); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 3, s_10); /* <-, line 63 */ + { int ret = slice_from_s(z, 3, s_10); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 1, s_11); /* <-, line 64 */ + { int ret = slice_from_s(z, 1, s_11); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 3, s_12); /* <-, line 66 */ + { int ret = slice_from_s(z, 3, s_12); if (ret < 0) return ret; } break; case 8: - { int ret = slice_from_s(z, 3, s_13); /* <-, line 68 */ + { int ret = slice_from_s(z, 3, s_13); if (ret < 0) return ret; } break; case 9: - { int ret = slice_from_s(z, 2, s_14); /* <-, line 69 */ + { int ret = slice_from_s(z, 2, s_14); if (ret < 0) return ret; } break; case 10: - { int ret = slice_from_s(z, 3, s_15); /* <-, line 72 */ + { int ret = slice_from_s(z, 3, s_15); if (ret < 0) return ret; } break; case 11: - { int ret = slice_from_s(z, 3, s_16); /* <-, line 74 */ + { int ret = slice_from_s(z, 3, s_16); if (ret < 0) return ret; } break; case 12: - { int ret = slice_from_s(z, 3, s_17); /* <-, line 76 */ + { int ret = slice_from_s(z, 3, s_17); if (ret < 0) return ret; } break; case 13: - { int ret = slice_from_s(z, 3, s_18); /* <-, line 77 */ + { int ret = slice_from_s(z, 3, s_18); if (ret < 0) return ret; } break; @@ -447,29 +447,29 @@ static int r_Step_2(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_3(struct SN_env * z) { /* backwardmode */ +static int r_Step_3(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 82 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 82 */ + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_4, 7); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 82 */ - { int ret = r_R1(z); /* call R1, line 82 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 82 */ + switch (among_var) { case 1: - { int ret = slice_from_s(z, 2, s_19); /* <-, line 83 */ + { int ret = slice_from_s(z, 2, s_19); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 2, s_20); /* <-, line 85 */ + { int ret = slice_from_s(z, 2, s_20); if (ret < 0) return ret; } break; case 3: - { int ret = slice_del(z); /* delete, line 87 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -477,34 +477,34 @@ static int r_Step_3(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_4(struct SN_env * z) { /* backwardmode */ +static int r_Step_4(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 92 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 92 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_5, 19); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 92 */ - { int ret = r_R2(z); /* call R2, line 92 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 92 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 95 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int m1 = z->l - z->c; (void)m1; /* or, line 96 */ - if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 96 */ + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; z->c--; goto lab0; lab1: z->c = z->l - m1; - if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; /* literal, line 96 */ + if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0; z->c--; } lab0: - { int ret = slice_del(z); /* delete, line 96 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -512,24 +512,24 @@ static int r_Step_4(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_Step_5a(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 101 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 101 */ +static int r_Step_5a(struct SN_env * z) { + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; z->c--; - z->bra = z->c; /* ], line 101 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 102 */ - { int ret = r_R2(z); /* call R2, line 102 */ + z->bra = z->c; + { int m1 = z->l - z->c; (void)m1; + { int ret = r_R2(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m1; - { int ret = r_R1(z); /* call R1, line 102 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int m2 = z->l - z->c; (void)m2; /* not, line 102 */ - { int ret = r_shortv(z); /* call shortv, line 102 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_shortv(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } @@ -539,66 +539,65 @@ static int r_Step_5a(struct SN_env * z) { /* backwardmode */ } } lab0: - { int ret = slice_del(z); /* delete, line 103 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_Step_5b(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 107 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 107 */ +static int r_Step_5b(struct SN_env * z) { + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; z->c--; - z->bra = z->c; /* ], line 107 */ - { int ret = r_R2(z); /* call R2, line 108 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret <= 0) return ret; } - if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; /* literal, line 108 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0; z->c--; - { int ret = slice_del(z); /* delete, line 109 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -extern int porter_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - z->B[0] = 0; /* unset Y_found, line 115 */ - { int c1 = z->c; /* do, line 116 */ - z->bra = z->c; /* [, line 116 */ - if (z->c == z->l || z->p[z->c] != 'y') goto lab0; /* literal, line 116 */ +extern int porter_UTF_8_stem(struct SN_env * z) { + z->I[2] = 0; + { int c1 = z->c; + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'y') goto lab0; z->c++; - z->ket = z->c; /* ], line 116 */ - { int ret = slice_from_s(z, 1, s_21); /* <-, line 116 */ + z->ket = z->c; + { int ret = slice_from_s(z, 1, s_21); if (ret < 0) return ret; } - z->B[0] = 1; /* set Y_found, line 116 */ + z->I[2] = 1; lab0: z->c = c1; } - { int c2 = z->c; /* do, line 117 */ -/* repeat, line 117 */ - - while(1) { int c3 = z->c; - while(1) { /* goto, line 117 */ + { int c2 = z->c; + while(1) { + int c3 = z->c; + while(1) { int c4 = z->c; - if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab3; /* grouping v, line 117 */ - z->bra = z->c; /* [, line 117 */ - if (z->c == z->l || z->p[z->c] != 'y') goto lab3; /* literal, line 117 */ + if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab3; + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'y') goto lab3; z->c++; - z->ket = z->c; /* ], line 117 */ + z->ket = z->c; z->c = c4; break; lab3: z->c = c4; - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab2; - z->c = ret; /* goto, line 117 */ + z->c = ret; } } - { int ret = slice_from_s(z, 1, s_22); /* <-, line 117 */ + { int ret = slice_from_s(z, 1, s_22); if (ret < 0) return ret; } - z->B[0] = 1; /* set Y_found, line 117 */ + z->I[2] = 1; continue; lab2: z->c = c3; @@ -606,106 +605,105 @@ extern int porter_UTF_8_stem(struct SN_env * z) { /* forwardmode */ } z->c = c2; } - z->I[0] = z->l; /* $p1 = , line 119 */ - z->I[1] = z->l; /* $p2 = , line 120 */ - { int c5 = z->c; /* do, line 121 */ - { /* gopast */ /* grouping v, line 122 */ + z->I[1] = z->l; + z->I[0] = z->l; + { int c5 = z->c; + { int ret = out_grouping_U(z, g_v, 97, 121, 1); if (ret < 0) goto lab4; z->c += ret; } - { /* gopast */ /* non v, line 122 */ + { int ret = in_grouping_U(z, g_v, 97, 121, 1); if (ret < 0) goto lab4; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 122 */ - { /* gopast */ /* grouping v, line 123 */ + z->I[1] = z->c; + { int ret = out_grouping_U(z, g_v, 97, 121, 1); if (ret < 0) goto lab4; z->c += ret; } - { /* gopast */ /* non v, line 123 */ + { int ret = in_grouping_U(z, g_v, 97, 121, 1); if (ret < 0) goto lab4; z->c += ret; } - z->I[1] = z->c; /* setmark p2, line 123 */ + z->I[0] = z->c; lab4: z->c = c5; } - z->lb = z->c; z->c = z->l; /* backwards, line 126 */ + z->lb = z->c; z->c = z->l; - { int m6 = z->l - z->c; (void)m6; /* do, line 127 */ - { int ret = r_Step_1a(z); /* call Step_1a, line 127 */ + { int m6 = z->l - z->c; (void)m6; + { int ret = r_Step_1a(z); if (ret < 0) return ret; } z->c = z->l - m6; } - { int m7 = z->l - z->c; (void)m7; /* do, line 128 */ - { int ret = r_Step_1b(z); /* call Step_1b, line 128 */ + { int m7 = z->l - z->c; (void)m7; + { int ret = r_Step_1b(z); if (ret < 0) return ret; } z->c = z->l - m7; } - { int m8 = z->l - z->c; (void)m8; /* do, line 129 */ - { int ret = r_Step_1c(z); /* call Step_1c, line 129 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_Step_1c(z); if (ret < 0) return ret; } z->c = z->l - m8; } - { int m9 = z->l - z->c; (void)m9; /* do, line 130 */ - { int ret = r_Step_2(z); /* call Step_2, line 130 */ + { int m9 = z->l - z->c; (void)m9; + { int ret = r_Step_2(z); if (ret < 0) return ret; } z->c = z->l - m9; } - { int m10 = z->l - z->c; (void)m10; /* do, line 131 */ - { int ret = r_Step_3(z); /* call Step_3, line 131 */ + { int m10 = z->l - z->c; (void)m10; + { int ret = r_Step_3(z); if (ret < 0) return ret; } z->c = z->l - m10; } - { int m11 = z->l - z->c; (void)m11; /* do, line 132 */ - { int ret = r_Step_4(z); /* call Step_4, line 132 */ + { int m11 = z->l - z->c; (void)m11; + { int ret = r_Step_4(z); if (ret < 0) return ret; } z->c = z->l - m11; } - { int m12 = z->l - z->c; (void)m12; /* do, line 133 */ - { int ret = r_Step_5a(z); /* call Step_5a, line 133 */ + { int m12 = z->l - z->c; (void)m12; + { int ret = r_Step_5a(z); if (ret < 0) return ret; } z->c = z->l - m12; } - { int m13 = z->l - z->c; (void)m13; /* do, line 134 */ - { int ret = r_Step_5b(z); /* call Step_5b, line 134 */ + { int m13 = z->l - z->c; (void)m13; + { int ret = r_Step_5b(z); if (ret < 0) return ret; } z->c = z->l - m13; } z->c = z->lb; - { int c14 = z->c; /* do, line 137 */ - if (!(z->B[0])) goto lab5; /* Boolean test Y_found, line 137 */ -/* repeat, line 137 */ - - while(1) { int c15 = z->c; - while(1) { /* goto, line 137 */ + { int c14 = z->c; + if (!(z->I[2])) goto lab5; + while(1) { + int c15 = z->c; + while(1) { int c16 = z->c; - z->bra = z->c; /* [, line 137 */ - if (z->c == z->l || z->p[z->c] != 'Y') goto lab7; /* literal, line 137 */ + z->bra = z->c; + if (z->c == z->l || z->p[z->c] != 'Y') goto lab7; z->c++; - z->ket = z->c; /* ], line 137 */ + z->ket = z->c; z->c = c16; break; lab7: z->c = c16; - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab6; - z->c = ret; /* goto, line 137 */ + z->c = ret; } } - { int ret = slice_from_s(z, 1, s_23); /* <-, line 137 */ + { int ret = slice_from_s(z, 1, s_23); if (ret < 0) return ret; } continue; @@ -719,7 +717,7 @@ extern int porter_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * porter_UTF_8_create_env(void) { return SN_create_env(0, 2, 1); } +extern struct SN_env * porter_UTF_8_create_env(void) { return SN_create_env(0, 3); } extern void porter_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_portuguese.c b/src/backend/snowball/libstemmer/stem_UTF_8_portuguese.c index 278fdff8d9a2e..33b8852cb9101 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_portuguese.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_portuguese.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -36,9 +36,9 @@ static const symbol s_0_2[2] = { 0xC3, 0xB5 }; static const struct among a_0[3] = { -/* 0 */ { 0, 0, -1, 3, 0}, -/* 1 */ { 2, s_0_1, 0, 1, 0}, -/* 2 */ { 2, s_0_2, 0, 2, 0} +{ 0, 0, -1, 3, 0}, +{ 2, s_0_1, 0, 1, 0}, +{ 2, s_0_2, 0, 2, 0} }; static const symbol s_1_1[2] = { 'a', '~' }; @@ -46,9 +46,9 @@ static const symbol s_1_2[2] = { 'o', '~' }; static const struct among a_1[3] = { -/* 0 */ { 0, 0, -1, 3, 0}, -/* 1 */ { 2, s_1_1, 0, 1, 0}, -/* 2 */ { 2, s_1_2, 0, 2, 0} +{ 0, 0, -1, 3, 0}, +{ 2, s_1_1, 0, 1, 0}, +{ 2, s_1_2, 0, 2, 0} }; static const symbol s_2_0[2] = { 'i', 'c' }; @@ -58,10 +58,10 @@ static const symbol s_2_3[2] = { 'i', 'v' }; static const struct among a_2[4] = { -/* 0 */ { 2, s_2_0, -1, -1, 0}, -/* 1 */ { 2, s_2_1, -1, -1, 0}, -/* 2 */ { 2, s_2_2, -1, -1, 0}, -/* 3 */ { 2, s_2_3, -1, 1, 0} +{ 2, s_2_0, -1, -1, 0}, +{ 2, s_2_1, -1, -1, 0}, +{ 2, s_2_2, -1, -1, 0}, +{ 2, s_2_3, -1, 1, 0} }; static const symbol s_3_0[4] = { 'a', 'n', 't', 'e' }; @@ -70,9 +70,9 @@ static const symbol s_3_2[5] = { 0xC3, 0xAD, 'v', 'e', 'l' }; static const struct among a_3[3] = { -/* 0 */ { 4, s_3_0, -1, 1, 0}, -/* 1 */ { 4, s_3_1, -1, 1, 0}, -/* 2 */ { 5, s_3_2, -1, 1, 0} +{ 4, s_3_0, -1, 1, 0}, +{ 4, s_3_1, -1, 1, 0}, +{ 5, s_3_2, -1, 1, 0} }; static const symbol s_4_0[2] = { 'i', 'c' }; @@ -81,9 +81,9 @@ static const symbol s_4_2[2] = { 'i', 'v' }; static const struct among a_4[3] = { -/* 0 */ { 2, s_4_0, -1, 1, 0}, -/* 1 */ { 4, s_4_1, -1, 1, 0}, -/* 2 */ { 2, s_4_2, -1, 1, 0} +{ 2, s_4_0, -1, 1, 0}, +{ 4, s_4_1, -1, 1, 0}, +{ 2, s_4_2, -1, 1, 0} }; static const symbol s_5_0[3] = { 'i', 'c', 'a' }; @@ -134,51 +134,51 @@ static const symbol s_5_44[4] = { 'i', 'v', 'o', 's' }; static const struct among a_5[45] = { -/* 0 */ { 3, s_5_0, -1, 1, 0}, -/* 1 */ { 6, s_5_1, -1, 1, 0}, -/* 2 */ { 6, s_5_2, -1, 4, 0}, -/* 3 */ { 5, s_5_3, -1, 2, 0}, -/* 4 */ { 3, s_5_4, -1, 9, 0}, -/* 5 */ { 5, s_5_5, -1, 1, 0}, -/* 6 */ { 3, s_5_6, -1, 1, 0}, -/* 7 */ { 4, s_5_7, -1, 1, 0}, -/* 8 */ { 3, s_5_8, -1, 8, 0}, -/* 9 */ { 3, s_5_9, -1, 1, 0}, -/* 10 */ { 5, s_5_10, -1, 7, 0}, -/* 11 */ { 4, s_5_11, -1, 1, 0}, -/* 12 */ { 5, s_5_12, -1, 6, 0}, -/* 13 */ { 6, s_5_13, 12, 5, 0}, -/* 14 */ { 5, s_5_14, -1, 1, 0}, -/* 15 */ { 5, s_5_15, -1, 1, 0}, -/* 16 */ { 3, s_5_16, -1, 1, 0}, -/* 17 */ { 4, s_5_17, -1, 1, 0}, -/* 18 */ { 3, s_5_18, -1, 1, 0}, -/* 19 */ { 6, s_5_19, -1, 1, 0}, -/* 20 */ { 6, s_5_20, -1, 1, 0}, -/* 21 */ { 3, s_5_21, -1, 8, 0}, -/* 22 */ { 6, s_5_22, -1, 1, 0}, -/* 23 */ { 6, s_5_23, -1, 3, 0}, -/* 24 */ { 4, s_5_24, -1, 1, 0}, -/* 25 */ { 4, s_5_25, -1, 1, 0}, -/* 26 */ { 7, s_5_26, -1, 4, 0}, -/* 27 */ { 6, s_5_27, -1, 2, 0}, -/* 28 */ { 4, s_5_28, -1, 9, 0}, -/* 29 */ { 6, s_5_29, -1, 1, 0}, -/* 30 */ { 4, s_5_30, -1, 1, 0}, -/* 31 */ { 5, s_5_31, -1, 1, 0}, -/* 32 */ { 4, s_5_32, -1, 8, 0}, -/* 33 */ { 4, s_5_33, -1, 1, 0}, -/* 34 */ { 6, s_5_34, -1, 7, 0}, -/* 35 */ { 6, s_5_35, -1, 1, 0}, -/* 36 */ { 5, s_5_36, -1, 1, 0}, -/* 37 */ { 7, s_5_37, -1, 1, 0}, -/* 38 */ { 7, s_5_38, -1, 3, 0}, -/* 39 */ { 4, s_5_39, -1, 1, 0}, -/* 40 */ { 5, s_5_40, -1, 1, 0}, -/* 41 */ { 4, s_5_41, -1, 1, 0}, -/* 42 */ { 7, s_5_42, -1, 1, 0}, -/* 43 */ { 7, s_5_43, -1, 1, 0}, -/* 44 */ { 4, s_5_44, -1, 8, 0} +{ 3, s_5_0, -1, 1, 0}, +{ 6, s_5_1, -1, 1, 0}, +{ 6, s_5_2, -1, 4, 0}, +{ 5, s_5_3, -1, 2, 0}, +{ 3, s_5_4, -1, 9, 0}, +{ 5, s_5_5, -1, 1, 0}, +{ 3, s_5_6, -1, 1, 0}, +{ 4, s_5_7, -1, 1, 0}, +{ 3, s_5_8, -1, 8, 0}, +{ 3, s_5_9, -1, 1, 0}, +{ 5, s_5_10, -1, 7, 0}, +{ 4, s_5_11, -1, 1, 0}, +{ 5, s_5_12, -1, 6, 0}, +{ 6, s_5_13, 12, 5, 0}, +{ 5, s_5_14, -1, 1, 0}, +{ 5, s_5_15, -1, 1, 0}, +{ 3, s_5_16, -1, 1, 0}, +{ 4, s_5_17, -1, 1, 0}, +{ 3, s_5_18, -1, 1, 0}, +{ 6, s_5_19, -1, 1, 0}, +{ 6, s_5_20, -1, 1, 0}, +{ 3, s_5_21, -1, 8, 0}, +{ 6, s_5_22, -1, 1, 0}, +{ 6, s_5_23, -1, 3, 0}, +{ 4, s_5_24, -1, 1, 0}, +{ 4, s_5_25, -1, 1, 0}, +{ 7, s_5_26, -1, 4, 0}, +{ 6, s_5_27, -1, 2, 0}, +{ 4, s_5_28, -1, 9, 0}, +{ 6, s_5_29, -1, 1, 0}, +{ 4, s_5_30, -1, 1, 0}, +{ 5, s_5_31, -1, 1, 0}, +{ 4, s_5_32, -1, 8, 0}, +{ 4, s_5_33, -1, 1, 0}, +{ 6, s_5_34, -1, 7, 0}, +{ 6, s_5_35, -1, 1, 0}, +{ 5, s_5_36, -1, 1, 0}, +{ 7, s_5_37, -1, 1, 0}, +{ 7, s_5_38, -1, 3, 0}, +{ 4, s_5_39, -1, 1, 0}, +{ 5, s_5_40, -1, 1, 0}, +{ 4, s_5_41, -1, 1, 0}, +{ 7, s_5_42, -1, 1, 0}, +{ 7, s_5_43, -1, 1, 0}, +{ 4, s_5_44, -1, 8, 0} }; static const symbol s_6_0[3] = { 'a', 'd', 'a' }; @@ -304,126 +304,126 @@ static const symbol s_6_119[4] = { 'i', 'r', 0xC3, 0xA1 }; static const struct among a_6[120] = { -/* 0 */ { 3, s_6_0, -1, 1, 0}, -/* 1 */ { 3, s_6_1, -1, 1, 0}, -/* 2 */ { 2, s_6_2, -1, 1, 0}, -/* 3 */ { 4, s_6_3, 2, 1, 0}, -/* 4 */ { 4, s_6_4, 2, 1, 0}, -/* 5 */ { 4, s_6_5, 2, 1, 0}, -/* 6 */ { 3, s_6_6, -1, 1, 0}, -/* 7 */ { 3, s_6_7, -1, 1, 0}, -/* 8 */ { 3, s_6_8, -1, 1, 0}, -/* 9 */ { 3, s_6_9, -1, 1, 0}, -/* 10 */ { 4, s_6_10, -1, 1, 0}, -/* 11 */ { 4, s_6_11, -1, 1, 0}, -/* 12 */ { 4, s_6_12, -1, 1, 0}, -/* 13 */ { 4, s_6_13, -1, 1, 0}, -/* 14 */ { 4, s_6_14, -1, 1, 0}, -/* 15 */ { 4, s_6_15, -1, 1, 0}, -/* 16 */ { 2, s_6_16, -1, 1, 0}, -/* 17 */ { 4, s_6_17, 16, 1, 0}, -/* 18 */ { 4, s_6_18, 16, 1, 0}, -/* 19 */ { 4, s_6_19, 16, 1, 0}, -/* 20 */ { 2, s_6_20, -1, 1, 0}, -/* 21 */ { 3, s_6_21, 20, 1, 0}, -/* 22 */ { 5, s_6_22, 21, 1, 0}, -/* 23 */ { 5, s_6_23, 21, 1, 0}, -/* 24 */ { 5, s_6_24, 21, 1, 0}, -/* 25 */ { 4, s_6_25, 20, 1, 0}, -/* 26 */ { 4, s_6_26, 20, 1, 0}, -/* 27 */ { 4, s_6_27, 20, 1, 0}, -/* 28 */ { 4, s_6_28, 20, 1, 0}, -/* 29 */ { 2, s_6_29, -1, 1, 0}, -/* 30 */ { 4, s_6_30, 29, 1, 0}, -/* 31 */ { 4, s_6_31, 29, 1, 0}, -/* 32 */ { 4, s_6_32, 29, 1, 0}, -/* 33 */ { 5, s_6_33, 29, 1, 0}, -/* 34 */ { 5, s_6_34, 29, 1, 0}, -/* 35 */ { 5, s_6_35, 29, 1, 0}, -/* 36 */ { 3, s_6_36, -1, 1, 0}, -/* 37 */ { 3, s_6_37, -1, 1, 0}, -/* 38 */ { 4, s_6_38, -1, 1, 0}, -/* 39 */ { 4, s_6_39, -1, 1, 0}, -/* 40 */ { 4, s_6_40, -1, 1, 0}, -/* 41 */ { 5, s_6_41, -1, 1, 0}, -/* 42 */ { 5, s_6_42, -1, 1, 0}, -/* 43 */ { 5, s_6_43, -1, 1, 0}, -/* 44 */ { 2, s_6_44, -1, 1, 0}, -/* 45 */ { 2, s_6_45, -1, 1, 0}, -/* 46 */ { 2, s_6_46, -1, 1, 0}, -/* 47 */ { 2, s_6_47, -1, 1, 0}, -/* 48 */ { 4, s_6_48, 47, 1, 0}, -/* 49 */ { 4, s_6_49, 47, 1, 0}, -/* 50 */ { 3, s_6_50, 47, 1, 0}, -/* 51 */ { 5, s_6_51, 50, 1, 0}, -/* 52 */ { 5, s_6_52, 50, 1, 0}, -/* 53 */ { 5, s_6_53, 50, 1, 0}, -/* 54 */ { 4, s_6_54, 47, 1, 0}, -/* 55 */ { 4, s_6_55, 47, 1, 0}, -/* 56 */ { 4, s_6_56, 47, 1, 0}, -/* 57 */ { 4, s_6_57, 47, 1, 0}, -/* 58 */ { 2, s_6_58, -1, 1, 0}, -/* 59 */ { 5, s_6_59, 58, 1, 0}, -/* 60 */ { 5, s_6_60, 58, 1, 0}, -/* 61 */ { 5, s_6_61, 58, 1, 0}, -/* 62 */ { 4, s_6_62, 58, 1, 0}, -/* 63 */ { 4, s_6_63, 58, 1, 0}, -/* 64 */ { 4, s_6_64, 58, 1, 0}, -/* 65 */ { 5, s_6_65, 58, 1, 0}, -/* 66 */ { 5, s_6_66, 58, 1, 0}, -/* 67 */ { 5, s_6_67, 58, 1, 0}, -/* 68 */ { 5, s_6_68, 58, 1, 0}, -/* 69 */ { 5, s_6_69, 58, 1, 0}, -/* 70 */ { 5, s_6_70, 58, 1, 0}, -/* 71 */ { 2, s_6_71, -1, 1, 0}, -/* 72 */ { 3, s_6_72, 71, 1, 0}, -/* 73 */ { 3, s_6_73, 71, 1, 0}, -/* 74 */ { 5, s_6_74, 73, 1, 0}, -/* 75 */ { 5, s_6_75, 73, 1, 0}, -/* 76 */ { 5, s_6_76, 73, 1, 0}, -/* 77 */ { 6, s_6_77, 73, 1, 0}, -/* 78 */ { 6, s_6_78, 73, 1, 0}, -/* 79 */ { 6, s_6_79, 73, 1, 0}, -/* 80 */ { 7, s_6_80, 73, 1, 0}, -/* 81 */ { 7, s_6_81, 73, 1, 0}, -/* 82 */ { 7, s_6_82, 73, 1, 0}, -/* 83 */ { 6, s_6_83, 73, 1, 0}, -/* 84 */ { 5, s_6_84, 73, 1, 0}, -/* 85 */ { 7, s_6_85, 84, 1, 0}, -/* 86 */ { 7, s_6_86, 84, 1, 0}, -/* 87 */ { 7, s_6_87, 84, 1, 0}, -/* 88 */ { 4, s_6_88, -1, 1, 0}, -/* 89 */ { 4, s_6_89, -1, 1, 0}, -/* 90 */ { 4, s_6_90, -1, 1, 0}, -/* 91 */ { 7, s_6_91, 90, 1, 0}, -/* 92 */ { 7, s_6_92, 90, 1, 0}, -/* 93 */ { 7, s_6_93, 90, 1, 0}, -/* 94 */ { 7, s_6_94, 90, 1, 0}, -/* 95 */ { 6, s_6_95, 90, 1, 0}, -/* 96 */ { 8, s_6_96, 95, 1, 0}, -/* 97 */ { 8, s_6_97, 95, 1, 0}, -/* 98 */ { 8, s_6_98, 95, 1, 0}, -/* 99 */ { 4, s_6_99, -1, 1, 0}, -/*100 */ { 6, s_6_100, 99, 1, 0}, -/*101 */ { 6, s_6_101, 99, 1, 0}, -/*102 */ { 6, s_6_102, 99, 1, 0}, -/*103 */ { 8, s_6_103, 99, 1, 0}, -/*104 */ { 8, s_6_104, 99, 1, 0}, -/*105 */ { 8, s_6_105, 99, 1, 0}, -/*106 */ { 4, s_6_106, -1, 1, 0}, -/*107 */ { 5, s_6_107, -1, 1, 0}, -/*108 */ { 5, s_6_108, -1, 1, 0}, -/*109 */ { 5, s_6_109, -1, 1, 0}, -/*110 */ { 5, s_6_110, -1, 1, 0}, -/*111 */ { 5, s_6_111, -1, 1, 0}, -/*112 */ { 5, s_6_112, -1, 1, 0}, -/*113 */ { 5, s_6_113, -1, 1, 0}, -/*114 */ { 2, s_6_114, -1, 1, 0}, -/*115 */ { 2, s_6_115, -1, 1, 0}, -/*116 */ { 2, s_6_116, -1, 1, 0}, -/*117 */ { 4, s_6_117, -1, 1, 0}, -/*118 */ { 4, s_6_118, -1, 1, 0}, -/*119 */ { 4, s_6_119, -1, 1, 0} +{ 3, s_6_0, -1, 1, 0}, +{ 3, s_6_1, -1, 1, 0}, +{ 2, s_6_2, -1, 1, 0}, +{ 4, s_6_3, 2, 1, 0}, +{ 4, s_6_4, 2, 1, 0}, +{ 4, s_6_5, 2, 1, 0}, +{ 3, s_6_6, -1, 1, 0}, +{ 3, s_6_7, -1, 1, 0}, +{ 3, s_6_8, -1, 1, 0}, +{ 3, s_6_9, -1, 1, 0}, +{ 4, s_6_10, -1, 1, 0}, +{ 4, s_6_11, -1, 1, 0}, +{ 4, s_6_12, -1, 1, 0}, +{ 4, s_6_13, -1, 1, 0}, +{ 4, s_6_14, -1, 1, 0}, +{ 4, s_6_15, -1, 1, 0}, +{ 2, s_6_16, -1, 1, 0}, +{ 4, s_6_17, 16, 1, 0}, +{ 4, s_6_18, 16, 1, 0}, +{ 4, s_6_19, 16, 1, 0}, +{ 2, s_6_20, -1, 1, 0}, +{ 3, s_6_21, 20, 1, 0}, +{ 5, s_6_22, 21, 1, 0}, +{ 5, s_6_23, 21, 1, 0}, +{ 5, s_6_24, 21, 1, 0}, +{ 4, s_6_25, 20, 1, 0}, +{ 4, s_6_26, 20, 1, 0}, +{ 4, s_6_27, 20, 1, 0}, +{ 4, s_6_28, 20, 1, 0}, +{ 2, s_6_29, -1, 1, 0}, +{ 4, s_6_30, 29, 1, 0}, +{ 4, s_6_31, 29, 1, 0}, +{ 4, s_6_32, 29, 1, 0}, +{ 5, s_6_33, 29, 1, 0}, +{ 5, s_6_34, 29, 1, 0}, +{ 5, s_6_35, 29, 1, 0}, +{ 3, s_6_36, -1, 1, 0}, +{ 3, s_6_37, -1, 1, 0}, +{ 4, s_6_38, -1, 1, 0}, +{ 4, s_6_39, -1, 1, 0}, +{ 4, s_6_40, -1, 1, 0}, +{ 5, s_6_41, -1, 1, 0}, +{ 5, s_6_42, -1, 1, 0}, +{ 5, s_6_43, -1, 1, 0}, +{ 2, s_6_44, -1, 1, 0}, +{ 2, s_6_45, -1, 1, 0}, +{ 2, s_6_46, -1, 1, 0}, +{ 2, s_6_47, -1, 1, 0}, +{ 4, s_6_48, 47, 1, 0}, +{ 4, s_6_49, 47, 1, 0}, +{ 3, s_6_50, 47, 1, 0}, +{ 5, s_6_51, 50, 1, 0}, +{ 5, s_6_52, 50, 1, 0}, +{ 5, s_6_53, 50, 1, 0}, +{ 4, s_6_54, 47, 1, 0}, +{ 4, s_6_55, 47, 1, 0}, +{ 4, s_6_56, 47, 1, 0}, +{ 4, s_6_57, 47, 1, 0}, +{ 2, s_6_58, -1, 1, 0}, +{ 5, s_6_59, 58, 1, 0}, +{ 5, s_6_60, 58, 1, 0}, +{ 5, s_6_61, 58, 1, 0}, +{ 4, s_6_62, 58, 1, 0}, +{ 4, s_6_63, 58, 1, 0}, +{ 4, s_6_64, 58, 1, 0}, +{ 5, s_6_65, 58, 1, 0}, +{ 5, s_6_66, 58, 1, 0}, +{ 5, s_6_67, 58, 1, 0}, +{ 5, s_6_68, 58, 1, 0}, +{ 5, s_6_69, 58, 1, 0}, +{ 5, s_6_70, 58, 1, 0}, +{ 2, s_6_71, -1, 1, 0}, +{ 3, s_6_72, 71, 1, 0}, +{ 3, s_6_73, 71, 1, 0}, +{ 5, s_6_74, 73, 1, 0}, +{ 5, s_6_75, 73, 1, 0}, +{ 5, s_6_76, 73, 1, 0}, +{ 6, s_6_77, 73, 1, 0}, +{ 6, s_6_78, 73, 1, 0}, +{ 6, s_6_79, 73, 1, 0}, +{ 7, s_6_80, 73, 1, 0}, +{ 7, s_6_81, 73, 1, 0}, +{ 7, s_6_82, 73, 1, 0}, +{ 6, s_6_83, 73, 1, 0}, +{ 5, s_6_84, 73, 1, 0}, +{ 7, s_6_85, 84, 1, 0}, +{ 7, s_6_86, 84, 1, 0}, +{ 7, s_6_87, 84, 1, 0}, +{ 4, s_6_88, -1, 1, 0}, +{ 4, s_6_89, -1, 1, 0}, +{ 4, s_6_90, -1, 1, 0}, +{ 7, s_6_91, 90, 1, 0}, +{ 7, s_6_92, 90, 1, 0}, +{ 7, s_6_93, 90, 1, 0}, +{ 7, s_6_94, 90, 1, 0}, +{ 6, s_6_95, 90, 1, 0}, +{ 8, s_6_96, 95, 1, 0}, +{ 8, s_6_97, 95, 1, 0}, +{ 8, s_6_98, 95, 1, 0}, +{ 4, s_6_99, -1, 1, 0}, +{ 6, s_6_100, 99, 1, 0}, +{ 6, s_6_101, 99, 1, 0}, +{ 6, s_6_102, 99, 1, 0}, +{ 8, s_6_103, 99, 1, 0}, +{ 8, s_6_104, 99, 1, 0}, +{ 8, s_6_105, 99, 1, 0}, +{ 4, s_6_106, -1, 1, 0}, +{ 5, s_6_107, -1, 1, 0}, +{ 5, s_6_108, -1, 1, 0}, +{ 5, s_6_109, -1, 1, 0}, +{ 5, s_6_110, -1, 1, 0}, +{ 5, s_6_111, -1, 1, 0}, +{ 5, s_6_112, -1, 1, 0}, +{ 5, s_6_113, -1, 1, 0}, +{ 2, s_6_114, -1, 1, 0}, +{ 2, s_6_115, -1, 1, 0}, +{ 2, s_6_116, -1, 1, 0}, +{ 4, s_6_117, -1, 1, 0}, +{ 4, s_6_118, -1, 1, 0}, +{ 4, s_6_119, -1, 1, 0} }; static const symbol s_7_0[1] = { 'a' }; @@ -436,13 +436,13 @@ static const symbol s_7_6[2] = { 0xC3, 0xB3 }; static const struct among a_7[7] = { -/* 0 */ { 1, s_7_0, -1, 1, 0}, -/* 1 */ { 1, s_7_1, -1, 1, 0}, -/* 2 */ { 1, s_7_2, -1, 1, 0}, -/* 3 */ { 2, s_7_3, -1, 1, 0}, -/* 4 */ { 2, s_7_4, -1, 1, 0}, -/* 5 */ { 2, s_7_5, -1, 1, 0}, -/* 6 */ { 2, s_7_6, -1, 1, 0} +{ 1, s_7_0, -1, 1, 0}, +{ 1, s_7_1, -1, 1, 0}, +{ 1, s_7_2, -1, 1, 0}, +{ 2, s_7_3, -1, 1, 0}, +{ 2, s_7_4, -1, 1, 0}, +{ 2, s_7_5, -1, 1, 0}, +{ 2, s_7_6, -1, 1, 0} }; static const symbol s_8_0[1] = { 'e' }; @@ -452,10 +452,10 @@ static const symbol s_8_3[2] = { 0xC3, 0xAA }; static const struct among a_8[4] = { -/* 0 */ { 1, s_8_0, -1, 1, 0}, -/* 1 */ { 2, s_8_1, -1, 2, 0}, -/* 2 */ { 2, s_8_2, -1, 1, 0}, -/* 3 */ { 2, s_8_3, -1, 1, 0} +{ 1, s_8_0, -1, 1, 0}, +{ 2, s_8_1, -1, 2, 0}, +{ 2, s_8_2, -1, 1, 0}, +{ 2, s_8_3, -1, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 }; @@ -472,31 +472,30 @@ static const symbol s_8[] = { 'a', 't' }; static const symbol s_9[] = { 'i', 'r' }; static const symbol s_10[] = { 'c' }; -static int r_prelude(struct SN_env * z) { /* forwardmode */ +static int r_prelude(struct SN_env * z) { int among_var; -/* repeat, line 36 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 37 */ - if (z->c + 1 >= z->l || (z->p[z->c + 1] != 163 && z->p[z->c + 1] != 181)) among_var = 3; else /* substring, line 37 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + if (z->c + 1 >= z->l || (z->p[z->c + 1] != 163 && z->p[z->c + 1] != 181)) among_var = 3; else among_var = find_among(z, a_0, 3); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 37 */ - switch (among_var) { /* among, line 37 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 2, s_0); /* <-, line 38 */ + { int ret = slice_from_s(z, 2, s_0); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 2, s_1); /* <-, line 39 */ + { int ret = slice_from_s(z, 2, s_1); if (ret < 0) return ret; } break; case 3: - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 40 */ + z->c = ret; } break; } @@ -508,16 +507,16 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $pV = , line 46 */ - z->I[1] = z->l; /* $p1 = , line 47 */ - z->I[2] = z->l; /* $p2 = , line 48 */ - { int c1 = z->c; /* do, line 50 */ - { int c2 = z->c; /* or, line 52 */ - if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2; /* grouping v, line 51 */ - { int c3 = z->c; /* or, line 51 */ - if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab4; /* non v, line 51 */ - { /* gopast */ /* grouping v, line 51 */ +static int r_mark_regions(struct SN_env * z) { + z->I[2] = z->l; + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int c2 = z->c; + if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2; + { int c3 = z->c; + if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab4; + { int ret = out_grouping_U(z, g_v, 97, 250, 1); if (ret < 0) goto lab4; z->c += ret; @@ -525,8 +524,8 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab3; lab4: z->c = c3; - if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2; /* grouping v, line 51 */ - { /* gopast */ /* non v, line 51 */ + if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2; + { int ret = in_grouping_U(z, g_v, 97, 250, 1); if (ret < 0) goto lab2; z->c += ret; @@ -536,10 +535,10 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab1; lab2: z->c = c2; - if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab0; /* non v, line 53 */ - { int c4 = z->c; /* or, line 53 */ - if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab6; /* non v, line 53 */ - { /* gopast */ /* grouping v, line 53 */ + if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab0; + { int c4 = z->c; + if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab6; + { int ret = out_grouping_U(z, g_v, 97, 250, 1); if (ret < 0) goto lab6; z->c += ret; @@ -547,74 +546,73 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab5; lab6: z->c = c4; - if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab0; /* grouping v, line 53 */ - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab0; + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 53 */ + z->c = ret; } } lab5: ; } lab1: - z->I[0] = z->c; /* setmark pV, line 54 */ + z->I[2] = z->c; lab0: z->c = c1; } - { int c5 = z->c; /* do, line 56 */ - { /* gopast */ /* grouping v, line 57 */ + { int c5 = z->c; + { int ret = out_grouping_U(z, g_v, 97, 250, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 57 */ + { int ret = in_grouping_U(z, g_v, 97, 250, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[1] = z->c; /* setmark p1, line 57 */ - { /* gopast */ /* grouping v, line 58 */ + z->I[1] = z->c; + { int ret = out_grouping_U(z, g_v, 97, 250, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 58 */ + { int ret = in_grouping_U(z, g_v, 97, 250, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[2] = z->c; /* setmark p2, line 58 */ + z->I[0] = z->c; lab7: z->c = c5; } return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ +static int r_postlude(struct SN_env * z) { int among_var; -/* repeat, line 62 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 63 */ - if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else /* substring, line 63 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else among_var = find_among(z, a_1, 3); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 63 */ - switch (among_var) { /* among, line 63 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 2, s_2); /* <-, line 64 */ + { int ret = slice_from_s(z, 2, s_2); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 2, s_3); /* <-, line 65 */ + { int ret = slice_from_s(z, 2, s_3); if (ret < 0) return ret; } break; case 3: - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 66 */ + z->c = ret; } break; } @@ -626,91 +624,91 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_RV(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 72 */ +static int r_RV(struct SN_env * z) { + if (!(z->I[2] <= z->c)) return 0; return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 73 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 74 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ +static int r_standard_suffix(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 77 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((823330 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 77 */ + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((823330 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_5, 45); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 77 */ - switch (among_var) { /* among, line 77 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 93 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 93 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 98 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_4); /* <-, line 98 */ + { int ret = slice_from_s(z, 3, s_4); if (ret < 0) return ret; } break; case 3: - { int ret = r_R2(z); /* call R2, line 102 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 1, s_5); /* <-, line 102 */ + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } break; case 4: - { int ret = r_R2(z); /* call R2, line 106 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 4, s_6); /* <-, line 106 */ + { int ret = slice_from_s(z, 4, s_6); if (ret < 0) return ret; } break; case 5: - { int ret = r_R1(z); /* call R1, line 110 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 110 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m1 = z->l - z->c; (void)m1; /* try, line 111 */ - z->ket = z->c; /* [, line 112 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; } /* substring, line 112 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; } among_var = find_among_b(z, a_2, 4); if (!(among_var)) { z->c = z->l - m1; goto lab0; } - z->bra = z->c; /* ], line 112 */ - { int ret = r_R2(z); /* call R2, line 112 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m1; goto lab0; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 112 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - switch (among_var) { /* among, line 112 */ + switch (among_var) { case 1: - z->ket = z->c; /* [, line 113 */ - if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m1; goto lab0; } /* literal, line 113 */ - z->bra = z->c; /* ], line 113 */ - { int ret = r_R2(z); /* call R2, line 113 */ + z->ket = z->c; + if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m1; goto lab0; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m1; goto lab0; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 113 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -720,22 +718,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 6: - { int ret = r_R2(z); /* call R2, line 122 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 122 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m2 = z->l - z->c; (void)m2; /* try, line 123 */ - z->ket = z->c; /* [, line 124 */ - if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m2; goto lab1; } /* substring, line 124 */ + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m2; goto lab1; } if (!(find_among_b(z, a_3, 3))) { z->c = z->l - m2; goto lab1; } - z->bra = z->c; /* ], line 124 */ - { int ret = r_R2(z); /* call R2, line 127 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m2; goto lab1; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 127 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab1: @@ -743,22 +741,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 7: - { int ret = r_R2(z); /* call R2, line 134 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 134 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m3 = z->l - z->c; (void)m3; /* try, line 135 */ - z->ket = z->c; /* [, line 136 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; } /* substring, line 136 */ + { int m3 = z->l - z->c; (void)m3; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m3; goto lab2; } if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; } - z->bra = z->c; /* ], line 136 */ - { int ret = r_R2(z); /* call R2, line 139 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m3; goto lab2; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 139 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab2: @@ -766,21 +764,21 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 8: - { int ret = r_R2(z); /* call R2, line 146 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 146 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m4 = z->l - z->c; (void)m4; /* try, line 147 */ - z->ket = z->c; /* [, line 148 */ - if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m4; goto lab3; } /* literal, line 148 */ - z->bra = z->c; /* ], line 148 */ - { int ret = r_R2(z); /* call R2, line 148 */ + { int m4 = z->l - z->c; (void)m4; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m4; goto lab3; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m4; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 148 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab3: @@ -788,12 +786,12 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 9: - { int ret = r_RV(z); /* call RV, line 153 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; /* literal, line 153 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0; z->c--; - { int ret = slice_from_s(z, 2, s_9); /* <-, line 154 */ + { int ret = slice_from_s(z, 2, s_9); if (ret < 0) return ret; } break; @@ -801,15 +799,15 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ +static int r_verb_suffix(struct SN_env * z) { - { int mlimit1; /* setlimit, line 159 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 160 */ - if (!(find_among_b(z, a_6, 120))) { z->lb = mlimit1; return 0; } /* substring, line 160 */ - z->bra = z->c; /* ], line 160 */ - { int ret = slice_del(z); /* delete, line 179 */ + { int mlimit1; + if (z->c < z->I[2]) return 0; + mlimit1 = z->lb; z->lb = z->I[2]; + z->ket = z->c; + if (!(find_among_b(z, a_6, 120))) { z->lb = mlimit1; return 0; } + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } z->lb = mlimit1; @@ -817,65 +815,65 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 184 */ - if (!(find_among_b(z, a_7, 7))) return 0; /* substring, line 184 */ - z->bra = z->c; /* ], line 184 */ - { int ret = r_RV(z); /* call RV, line 187 */ +static int r_residual_suffix(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_7, 7))) return 0; + z->bra = z->c; + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 187 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_residual_form(struct SN_env * z) { /* backwardmode */ +static int r_residual_form(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 192 */ - among_var = find_among_b(z, a_8, 4); /* substring, line 192 */ + z->ket = z->c; + among_var = find_among_b(z, a_8, 4); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 192 */ - switch (among_var) { /* among, line 192 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_RV(z); /* call RV, line 194 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 194 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 194 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 194 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab1; /* literal, line 194 */ + z->ket = z->c; + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab1; z->c--; - z->bra = z->c; /* ], line 194 */ - { int m_test2 = z->l - z->c; /* test, line 194 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'g') goto lab1; /* literal, line 194 */ + z->bra = z->c; + { int m_test2 = z->l - z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'g') goto lab1; z->c--; z->c = z->l - m_test2; } goto lab0; lab1: z->c = z->l - m1; - if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; /* literal, line 195 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'i') return 0; z->c--; - z->bra = z->c; /* ], line 195 */ - { int m_test3 = z->l - z->c; /* test, line 195 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'c') return 0; /* literal, line 195 */ + z->bra = z->c; + { int m_test3 = z->l - z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'c') return 0; z->c--; z->c = z->l - m_test3; } } lab0: - { int ret = r_RV(z); /* call RV, line 195 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 195 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_10); /* <-, line 196 */ + { int ret = slice_from_s(z, 1, s_10); if (ret < 0) return ret; } break; @@ -883,52 +881,52 @@ static int r_residual_form(struct SN_env * z) { /* backwardmode */ return 1; } -extern int portuguese_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 202 */ - { int ret = r_prelude(z); /* call prelude, line 202 */ +extern int portuguese_UTF_8_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_prelude(z); if (ret < 0) return ret; } z->c = c1; } - /* do, line 203 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 203 */ + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 204 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 205 */ - { int m3 = z->l - z->c; (void)m3; /* or, line 209 */ - { int m4 = z->l - z->c; (void)m4; /* and, line 207 */ - { int m5 = z->l - z->c; (void)m5; /* or, line 206 */ - { int ret = r_standard_suffix(z); /* call standard_suffix, line 206 */ + { int m2 = z->l - z->c; (void)m2; + { int m3 = z->l - z->c; (void)m3; + { int m4 = z->l - z->c; (void)m4; + { int m5 = z->l - z->c; (void)m5; + { int ret = r_standard_suffix(z); if (ret == 0) goto lab4; if (ret < 0) return ret; } goto lab3; lab4: z->c = z->l - m5; - { int ret = r_verb_suffix(z); /* call verb_suffix, line 206 */ + { int ret = r_verb_suffix(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } } lab3: z->c = z->l - m4; - { int m6 = z->l - z->c; (void)m6; /* do, line 207 */ - z->ket = z->c; /* [, line 207 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab5; /* literal, line 207 */ + { int m6 = z->l - z->c; (void)m6; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab5; z->c--; - z->bra = z->c; /* ], line 207 */ - { int m_test7 = z->l - z->c; /* test, line 207 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab5; /* literal, line 207 */ + z->bra = z->c; + { int m_test7 = z->l - z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab5; z->c--; z->c = z->l - m_test7; } - { int ret = r_RV(z); /* call RV, line 207 */ + { int ret = r_RV(z); if (ret == 0) goto lab5; if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 207 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab5: @@ -938,7 +936,7 @@ extern int portuguese_UTF_8_stem(struct SN_env * z) { /* forwardmode */ goto lab1; lab2: z->c = z->l - m3; - { int ret = r_residual_suffix(z); /* call residual_suffix, line 209 */ + { int ret = r_residual_suffix(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -947,15 +945,15 @@ extern int portuguese_UTF_8_stem(struct SN_env * z) { /* forwardmode */ lab0: z->c = z->l - m2; } - { int m8 = z->l - z->c; (void)m8; /* do, line 211 */ - { int ret = r_residual_form(z); /* call residual_form, line 211 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_residual_form(z); if (ret < 0) return ret; } z->c = z->l - m8; } z->c = z->lb; - { int c9 = z->c; /* do, line 213 */ - { int ret = r_postlude(z); /* call postlude, line 213 */ + { int c9 = z->c; + { int ret = r_postlude(z); if (ret < 0) return ret; } z->c = c9; @@ -963,7 +961,7 @@ extern int portuguese_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * portuguese_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); } +extern struct SN_env * portuguese_UTF_8_create_env(void) { return SN_create_env(0, 3); } extern void portuguese_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_romanian.c b/src/backend/snowball/libstemmer/stem_UTF_8_romanian.c index d9594d5cd7c5e..55e99f617bcca 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_romanian.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_romanian.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -37,9 +37,9 @@ static const symbol s_0_2[1] = { 'U' }; static const struct among a_0[3] = { -/* 0 */ { 0, 0, -1, 3, 0}, -/* 1 */ { 1, s_0_1, 0, 1, 0}, -/* 2 */ { 1, s_0_2, 0, 2, 0} +{ 0, 0, -1, 3, 0}, +{ 1, s_0_1, 0, 1, 0}, +{ 1, s_0_2, 0, 2, 0} }; static const symbol s_1_0[2] = { 'e', 'a' }; @@ -61,22 +61,22 @@ static const symbol s_1_15[5] = { 'i', 'i', 'l', 'o', 'r' }; static const struct among a_1[16] = { -/* 0 */ { 2, s_1_0, -1, 3, 0}, -/* 1 */ { 5, s_1_1, -1, 7, 0}, -/* 2 */ { 3, s_1_2, -1, 2, 0}, -/* 3 */ { 3, s_1_3, -1, 4, 0}, -/* 4 */ { 5, s_1_4, -1, 7, 0}, -/* 5 */ { 3, s_1_5, -1, 3, 0}, -/* 6 */ { 3, s_1_6, -1, 5, 0}, -/* 7 */ { 4, s_1_7, 6, 4, 0}, -/* 8 */ { 3, s_1_8, -1, 4, 0}, -/* 9 */ { 4, s_1_9, -1, 6, 0}, -/* 10 */ { 2, s_1_10, -1, 4, 0}, -/* 11 */ { 4, s_1_11, -1, 1, 0}, -/* 12 */ { 2, s_1_12, -1, 1, 0}, -/* 13 */ { 4, s_1_13, -1, 3, 0}, -/* 14 */ { 4, s_1_14, -1, 4, 0}, -/* 15 */ { 5, s_1_15, 14, 4, 0} +{ 2, s_1_0, -1, 3, 0}, +{ 5, s_1_1, -1, 7, 0}, +{ 3, s_1_2, -1, 2, 0}, +{ 3, s_1_3, -1, 4, 0}, +{ 5, s_1_4, -1, 7, 0}, +{ 3, s_1_5, -1, 3, 0}, +{ 3, s_1_6, -1, 5, 0}, +{ 4, s_1_7, 6, 4, 0}, +{ 3, s_1_8, -1, 4, 0}, +{ 4, s_1_9, -1, 6, 0}, +{ 2, s_1_10, -1, 4, 0}, +{ 4, s_1_11, -1, 1, 0}, +{ 2, s_1_12, -1, 1, 0}, +{ 4, s_1_13, -1, 3, 0}, +{ 4, s_1_14, -1, 4, 0}, +{ 5, s_1_15, 14, 4, 0} }; static const symbol s_2_0[5] = { 'i', 'c', 'a', 'l', 'a' }; @@ -128,52 +128,52 @@ static const symbol s_2_45[6] = { 'i', 't', 'i', 'v', 0xC4, 0x83 }; static const struct among a_2[46] = { -/* 0 */ { 5, s_2_0, -1, 4, 0}, -/* 1 */ { 5, s_2_1, -1, 4, 0}, -/* 2 */ { 5, s_2_2, -1, 5, 0}, -/* 3 */ { 5, s_2_3, -1, 6, 0}, -/* 4 */ { 5, s_2_4, -1, 4, 0}, -/* 5 */ { 7, s_2_5, -1, 5, 0}, -/* 6 */ { 7, s_2_6, -1, 6, 0}, -/* 7 */ { 6, s_2_7, -1, 5, 0}, -/* 8 */ { 6, s_2_8, -1, 6, 0}, -/* 9 */ { 7, s_2_9, -1, 5, 0}, -/* 10 */ { 7, s_2_10, -1, 4, 0}, -/* 11 */ { 9, s_2_11, -1, 1, 0}, -/* 12 */ { 9, s_2_12, -1, 2, 0}, -/* 13 */ { 7, s_2_13, -1, 3, 0}, -/* 14 */ { 5, s_2_14, -1, 4, 0}, -/* 15 */ { 5, s_2_15, -1, 5, 0}, -/* 16 */ { 5, s_2_16, -1, 6, 0}, -/* 17 */ { 5, s_2_17, -1, 4, 0}, -/* 18 */ { 5, s_2_18, -1, 5, 0}, -/* 19 */ { 7, s_2_19, 18, 4, 0}, -/* 20 */ { 5, s_2_20, -1, 6, 0}, -/* 21 */ { 6, s_2_21, -1, 5, 0}, -/* 22 */ { 7, s_2_22, -1, 4, 0}, -/* 23 */ { 9, s_2_23, -1, 1, 0}, -/* 24 */ { 7, s_2_24, -1, 3, 0}, -/* 25 */ { 5, s_2_25, -1, 4, 0}, -/* 26 */ { 5, s_2_26, -1, 5, 0}, -/* 27 */ { 5, s_2_27, -1, 6, 0}, -/* 28 */ { 7, s_2_28, -1, 4, 0}, -/* 29 */ { 9, s_2_29, -1, 1, 0}, -/* 30 */ { 7, s_2_30, -1, 3, 0}, -/* 31 */ { 9, s_2_31, -1, 4, 0}, -/* 32 */ { 11, s_2_32, -1, 1, 0}, -/* 33 */ { 9, s_2_33, -1, 3, 0}, -/* 34 */ { 4, s_2_34, -1, 4, 0}, -/* 35 */ { 4, s_2_35, -1, 5, 0}, -/* 36 */ { 6, s_2_36, 35, 4, 0}, -/* 37 */ { 4, s_2_37, -1, 6, 0}, -/* 38 */ { 5, s_2_38, -1, 5, 0}, -/* 39 */ { 4, s_2_39, -1, 4, 0}, -/* 40 */ { 4, s_2_40, -1, 5, 0}, -/* 41 */ { 4, s_2_41, -1, 6, 0}, -/* 42 */ { 6, s_2_42, -1, 4, 0}, -/* 43 */ { 6, s_2_43, -1, 4, 0}, -/* 44 */ { 6, s_2_44, -1, 5, 0}, -/* 45 */ { 6, s_2_45, -1, 6, 0} +{ 5, s_2_0, -1, 4, 0}, +{ 5, s_2_1, -1, 4, 0}, +{ 5, s_2_2, -1, 5, 0}, +{ 5, s_2_3, -1, 6, 0}, +{ 5, s_2_4, -1, 4, 0}, +{ 7, s_2_5, -1, 5, 0}, +{ 7, s_2_6, -1, 6, 0}, +{ 6, s_2_7, -1, 5, 0}, +{ 6, s_2_8, -1, 6, 0}, +{ 7, s_2_9, -1, 5, 0}, +{ 7, s_2_10, -1, 4, 0}, +{ 9, s_2_11, -1, 1, 0}, +{ 9, s_2_12, -1, 2, 0}, +{ 7, s_2_13, -1, 3, 0}, +{ 5, s_2_14, -1, 4, 0}, +{ 5, s_2_15, -1, 5, 0}, +{ 5, s_2_16, -1, 6, 0}, +{ 5, s_2_17, -1, 4, 0}, +{ 5, s_2_18, -1, 5, 0}, +{ 7, s_2_19, 18, 4, 0}, +{ 5, s_2_20, -1, 6, 0}, +{ 6, s_2_21, -1, 5, 0}, +{ 7, s_2_22, -1, 4, 0}, +{ 9, s_2_23, -1, 1, 0}, +{ 7, s_2_24, -1, 3, 0}, +{ 5, s_2_25, -1, 4, 0}, +{ 5, s_2_26, -1, 5, 0}, +{ 5, s_2_27, -1, 6, 0}, +{ 7, s_2_28, -1, 4, 0}, +{ 9, s_2_29, -1, 1, 0}, +{ 7, s_2_30, -1, 3, 0}, +{ 9, s_2_31, -1, 4, 0}, +{ 11, s_2_32, -1, 1, 0}, +{ 9, s_2_33, -1, 3, 0}, +{ 4, s_2_34, -1, 4, 0}, +{ 4, s_2_35, -1, 5, 0}, +{ 6, s_2_36, 35, 4, 0}, +{ 4, s_2_37, -1, 6, 0}, +{ 5, s_2_38, -1, 5, 0}, +{ 4, s_2_39, -1, 4, 0}, +{ 4, s_2_40, -1, 5, 0}, +{ 4, s_2_41, -1, 6, 0}, +{ 6, s_2_42, -1, 4, 0}, +{ 6, s_2_43, -1, 4, 0}, +{ 6, s_2_44, -1, 5, 0}, +{ 6, s_2_45, -1, 6, 0} }; static const symbol s_3_0[3] = { 'i', 'c', 'a' }; @@ -241,68 +241,68 @@ static const symbol s_3_61[4] = { 'i', 'v', 0xC4, 0x83 }; static const struct among a_3[62] = { -/* 0 */ { 3, s_3_0, -1, 1, 0}, -/* 1 */ { 5, s_3_1, -1, 1, 0}, -/* 2 */ { 5, s_3_2, -1, 1, 0}, -/* 3 */ { 4, s_3_3, -1, 1, 0}, -/* 4 */ { 3, s_3_4, -1, 1, 0}, -/* 5 */ { 3, s_3_5, -1, 1, 0}, -/* 6 */ { 4, s_3_6, -1, 1, 0}, -/* 7 */ { 4, s_3_7, -1, 3, 0}, -/* 8 */ { 3, s_3_8, -1, 1, 0}, -/* 9 */ { 3, s_3_9, -1, 1, 0}, -/* 10 */ { 2, s_3_10, -1, 1, 0}, -/* 11 */ { 3, s_3_11, -1, 1, 0}, -/* 12 */ { 5, s_3_12, -1, 1, 0}, -/* 13 */ { 5, s_3_13, -1, 1, 0}, -/* 14 */ { 4, s_3_14, -1, 3, 0}, -/* 15 */ { 4, s_3_15, -1, 2, 0}, -/* 16 */ { 4, s_3_16, -1, 1, 0}, -/* 17 */ { 3, s_3_17, -1, 1, 0}, -/* 18 */ { 5, s_3_18, 17, 1, 0}, -/* 19 */ { 3, s_3_19, -1, 1, 0}, -/* 20 */ { 4, s_3_20, -1, 1, 0}, -/* 21 */ { 4, s_3_21, -1, 3, 0}, -/* 22 */ { 3, s_3_22, -1, 1, 0}, -/* 23 */ { 3, s_3_23, -1, 1, 0}, -/* 24 */ { 3, s_3_24, -1, 1, 0}, -/* 25 */ { 5, s_3_25, -1, 1, 0}, -/* 26 */ { 5, s_3_26, -1, 1, 0}, -/* 27 */ { 4, s_3_27, -1, 2, 0}, -/* 28 */ { 5, s_3_28, -1, 1, 0}, -/* 29 */ { 3, s_3_29, -1, 1, 0}, -/* 30 */ { 3, s_3_30, -1, 1, 0}, -/* 31 */ { 5, s_3_31, 30, 1, 0}, -/* 32 */ { 3, s_3_32, -1, 1, 0}, -/* 33 */ { 4, s_3_33, -1, 1, 0}, -/* 34 */ { 4, s_3_34, -1, 3, 0}, -/* 35 */ { 3, s_3_35, -1, 1, 0}, -/* 36 */ { 5, s_3_36, -1, 3, 0}, -/* 37 */ { 3, s_3_37, -1, 1, 0}, -/* 38 */ { 5, s_3_38, -1, 1, 0}, -/* 39 */ { 4, s_3_39, -1, 1, 0}, -/* 40 */ { 7, s_3_40, -1, 1, 0}, -/* 41 */ { 4, s_3_41, -1, 1, 0}, -/* 42 */ { 4, s_3_42, -1, 1, 0}, -/* 43 */ { 3, s_3_43, -1, 3, 0}, -/* 44 */ { 4, s_3_44, -1, 1, 0}, -/* 45 */ { 2, s_3_45, -1, 1, 0}, -/* 46 */ { 2, s_3_46, -1, 1, 0}, -/* 47 */ { 2, s_3_47, -1, 1, 0}, -/* 48 */ { 3, s_3_48, -1, 1, 0}, -/* 49 */ { 3, s_3_49, -1, 3, 0}, -/* 50 */ { 2, s_3_50, -1, 1, 0}, -/* 51 */ { 2, s_3_51, -1, 1, 0}, -/* 52 */ { 4, s_3_52, -1, 1, 0}, -/* 53 */ { 6, s_3_53, -1, 1, 0}, -/* 54 */ { 6, s_3_54, -1, 1, 0}, -/* 55 */ { 5, s_3_55, -1, 1, 0}, -/* 56 */ { 4, s_3_56, -1, 1, 0}, -/* 57 */ { 4, s_3_57, -1, 1, 0}, -/* 58 */ { 5, s_3_58, -1, 1, 0}, -/* 59 */ { 5, s_3_59, -1, 3, 0}, -/* 60 */ { 4, s_3_60, -1, 1, 0}, -/* 61 */ { 4, s_3_61, -1, 1, 0} +{ 3, s_3_0, -1, 1, 0}, +{ 5, s_3_1, -1, 1, 0}, +{ 5, s_3_2, -1, 1, 0}, +{ 4, s_3_3, -1, 1, 0}, +{ 3, s_3_4, -1, 1, 0}, +{ 3, s_3_5, -1, 1, 0}, +{ 4, s_3_6, -1, 1, 0}, +{ 4, s_3_7, -1, 3, 0}, +{ 3, s_3_8, -1, 1, 0}, +{ 3, s_3_9, -1, 1, 0}, +{ 2, s_3_10, -1, 1, 0}, +{ 3, s_3_11, -1, 1, 0}, +{ 5, s_3_12, -1, 1, 0}, +{ 5, s_3_13, -1, 1, 0}, +{ 4, s_3_14, -1, 3, 0}, +{ 4, s_3_15, -1, 2, 0}, +{ 4, s_3_16, -1, 1, 0}, +{ 3, s_3_17, -1, 1, 0}, +{ 5, s_3_18, 17, 1, 0}, +{ 3, s_3_19, -1, 1, 0}, +{ 4, s_3_20, -1, 1, 0}, +{ 4, s_3_21, -1, 3, 0}, +{ 3, s_3_22, -1, 1, 0}, +{ 3, s_3_23, -1, 1, 0}, +{ 3, s_3_24, -1, 1, 0}, +{ 5, s_3_25, -1, 1, 0}, +{ 5, s_3_26, -1, 1, 0}, +{ 4, s_3_27, -1, 2, 0}, +{ 5, s_3_28, -1, 1, 0}, +{ 3, s_3_29, -1, 1, 0}, +{ 3, s_3_30, -1, 1, 0}, +{ 5, s_3_31, 30, 1, 0}, +{ 3, s_3_32, -1, 1, 0}, +{ 4, s_3_33, -1, 1, 0}, +{ 4, s_3_34, -1, 3, 0}, +{ 3, s_3_35, -1, 1, 0}, +{ 5, s_3_36, -1, 3, 0}, +{ 3, s_3_37, -1, 1, 0}, +{ 5, s_3_38, -1, 1, 0}, +{ 4, s_3_39, -1, 1, 0}, +{ 7, s_3_40, -1, 1, 0}, +{ 4, s_3_41, -1, 1, 0}, +{ 4, s_3_42, -1, 1, 0}, +{ 3, s_3_43, -1, 3, 0}, +{ 4, s_3_44, -1, 1, 0}, +{ 2, s_3_45, -1, 1, 0}, +{ 2, s_3_46, -1, 1, 0}, +{ 2, s_3_47, -1, 1, 0}, +{ 3, s_3_48, -1, 1, 0}, +{ 3, s_3_49, -1, 3, 0}, +{ 2, s_3_50, -1, 1, 0}, +{ 2, s_3_51, -1, 1, 0}, +{ 4, s_3_52, -1, 1, 0}, +{ 6, s_3_53, -1, 1, 0}, +{ 6, s_3_54, -1, 1, 0}, +{ 5, s_3_55, -1, 1, 0}, +{ 4, s_3_56, -1, 1, 0}, +{ 4, s_3_57, -1, 1, 0}, +{ 5, s_3_58, -1, 1, 0}, +{ 5, s_3_59, -1, 3, 0}, +{ 4, s_3_60, -1, 1, 0}, +{ 4, s_3_61, -1, 1, 0} }; static const symbol s_4_0[2] = { 'e', 'a' }; @@ -402,100 +402,100 @@ static const symbol s_4_93[5] = { 'e', 'a', 'z', 0xC4, 0x83 }; static const struct among a_4[94] = { -/* 0 */ { 2, s_4_0, -1, 1, 0}, -/* 1 */ { 2, s_4_1, -1, 1, 0}, -/* 2 */ { 3, s_4_2, -1, 1, 0}, -/* 3 */ { 4, s_4_3, -1, 1, 0}, -/* 4 */ { 3, s_4_4, -1, 1, 0}, -/* 5 */ { 4, s_4_5, -1, 1, 0}, -/* 6 */ { 3, s_4_6, -1, 1, 0}, -/* 7 */ { 3, s_4_7, -1, 1, 0}, -/* 8 */ { 3, s_4_8, -1, 1, 0}, -/* 9 */ { 4, s_4_9, -1, 1, 0}, -/* 10 */ { 2, s_4_10, -1, 2, 0}, -/* 11 */ { 3, s_4_11, 10, 1, 0}, -/* 12 */ { 4, s_4_12, 10, 2, 0}, -/* 13 */ { 3, s_4_13, 10, 1, 0}, -/* 14 */ { 3, s_4_14, 10, 1, 0}, -/* 15 */ { 4, s_4_15, 10, 1, 0}, -/* 16 */ { 5, s_4_16, -1, 1, 0}, -/* 17 */ { 6, s_4_17, -1, 1, 0}, -/* 18 */ { 3, s_4_18, -1, 1, 0}, -/* 19 */ { 2, s_4_19, -1, 1, 0}, -/* 20 */ { 3, s_4_20, 19, 1, 0}, -/* 21 */ { 3, s_4_21, 19, 1, 0}, -/* 22 */ { 3, s_4_22, -1, 2, 0}, -/* 23 */ { 5, s_4_23, -1, 1, 0}, -/* 24 */ { 6, s_4_24, -1, 1, 0}, -/* 25 */ { 2, s_4_25, -1, 1, 0}, -/* 26 */ { 3, s_4_26, -1, 1, 0}, -/* 27 */ { 4, s_4_27, -1, 1, 0}, -/* 28 */ { 5, s_4_28, -1, 2, 0}, -/* 29 */ { 6, s_4_29, 28, 1, 0}, -/* 30 */ { 7, s_4_30, 28, 2, 0}, -/* 31 */ { 6, s_4_31, 28, 1, 0}, -/* 32 */ { 6, s_4_32, 28, 1, 0}, -/* 33 */ { 7, s_4_33, 28, 1, 0}, -/* 34 */ { 4, s_4_34, -1, 1, 0}, -/* 35 */ { 4, s_4_35, -1, 1, 0}, -/* 36 */ { 5, s_4_36, -1, 1, 0}, -/* 37 */ { 3, s_4_37, -1, 1, 0}, -/* 38 */ { 4, s_4_38, -1, 2, 0}, -/* 39 */ { 5, s_4_39, 38, 1, 0}, -/* 40 */ { 5, s_4_40, 38, 1, 0}, -/* 41 */ { 4, s_4_41, -1, 2, 0}, -/* 42 */ { 4, s_4_42, -1, 2, 0}, -/* 43 */ { 7, s_4_43, -1, 1, 0}, -/* 44 */ { 8, s_4_44, -1, 2, 0}, -/* 45 */ { 9, s_4_45, 44, 1, 0}, -/* 46 */ { 10, s_4_46, 44, 2, 0}, -/* 47 */ { 9, s_4_47, 44, 1, 0}, -/* 48 */ { 9, s_4_48, 44, 1, 0}, -/* 49 */ { 10, s_4_49, 44, 1, 0}, -/* 50 */ { 7, s_4_50, -1, 1, 0}, -/* 51 */ { 7, s_4_51, -1, 1, 0}, -/* 52 */ { 8, s_4_52, -1, 1, 0}, -/* 53 */ { 5, s_4_53, -1, 2, 0}, -/* 54 */ { 2, s_4_54, -1, 1, 0}, -/* 55 */ { 3, s_4_55, 54, 1, 0}, -/* 56 */ { 3, s_4_56, 54, 1, 0}, -/* 57 */ { 2, s_4_57, -1, 2, 0}, -/* 58 */ { 4, s_4_58, 57, 1, 0}, -/* 59 */ { 5, s_4_59, 57, 2, 0}, -/* 60 */ { 4, s_4_60, 57, 1, 0}, -/* 61 */ { 4, s_4_61, 57, 1, 0}, -/* 62 */ { 5, s_4_62, 57, 1, 0}, -/* 63 */ { 2, s_4_63, -1, 2, 0}, -/* 64 */ { 3, s_4_64, -1, 2, 0}, -/* 65 */ { 5, s_4_65, 64, 1, 0}, -/* 66 */ { 6, s_4_66, 64, 2, 0}, -/* 67 */ { 7, s_4_67, 66, 1, 0}, -/* 68 */ { 8, s_4_68, 66, 2, 0}, -/* 69 */ { 7, s_4_69, 66, 1, 0}, -/* 70 */ { 7, s_4_70, 66, 1, 0}, -/* 71 */ { 8, s_4_71, 66, 1, 0}, -/* 72 */ { 5, s_4_72, 64, 1, 0}, -/* 73 */ { 5, s_4_73, 64, 1, 0}, -/* 74 */ { 6, s_4_74, 64, 1, 0}, -/* 75 */ { 3, s_4_75, -1, 2, 0}, -/* 76 */ { 2, s_4_76, -1, 1, 0}, -/* 77 */ { 3, s_4_77, 76, 1, 0}, -/* 78 */ { 3, s_4_78, 76, 1, 0}, -/* 79 */ { 4, s_4_79, -1, 1, 0}, -/* 80 */ { 5, s_4_80, -1, 1, 0}, -/* 81 */ { 2, s_4_81, -1, 1, 0}, -/* 82 */ { 6, s_4_82, -1, 1, 0}, -/* 83 */ { 4, s_4_83, -1, 1, 0}, -/* 84 */ { 5, s_4_84, -1, 2, 0}, -/* 85 */ { 6, s_4_85, 84, 1, 0}, -/* 86 */ { 7, s_4_86, 84, 2, 0}, -/* 87 */ { 6, s_4_87, 84, 1, 0}, -/* 88 */ { 6, s_4_88, 84, 1, 0}, -/* 89 */ { 7, s_4_89, 84, 1, 0}, -/* 90 */ { 4, s_4_90, -1, 1, 0}, -/* 91 */ { 4, s_4_91, -1, 1, 0}, -/* 92 */ { 5, s_4_92, -1, 1, 0}, -/* 93 */ { 5, s_4_93, -1, 1, 0} +{ 2, s_4_0, -1, 1, 0}, +{ 2, s_4_1, -1, 1, 0}, +{ 3, s_4_2, -1, 1, 0}, +{ 4, s_4_3, -1, 1, 0}, +{ 3, s_4_4, -1, 1, 0}, +{ 4, s_4_5, -1, 1, 0}, +{ 3, s_4_6, -1, 1, 0}, +{ 3, s_4_7, -1, 1, 0}, +{ 3, s_4_8, -1, 1, 0}, +{ 4, s_4_9, -1, 1, 0}, +{ 2, s_4_10, -1, 2, 0}, +{ 3, s_4_11, 10, 1, 0}, +{ 4, s_4_12, 10, 2, 0}, +{ 3, s_4_13, 10, 1, 0}, +{ 3, s_4_14, 10, 1, 0}, +{ 4, s_4_15, 10, 1, 0}, +{ 5, s_4_16, -1, 1, 0}, +{ 6, s_4_17, -1, 1, 0}, +{ 3, s_4_18, -1, 1, 0}, +{ 2, s_4_19, -1, 1, 0}, +{ 3, s_4_20, 19, 1, 0}, +{ 3, s_4_21, 19, 1, 0}, +{ 3, s_4_22, -1, 2, 0}, +{ 5, s_4_23, -1, 1, 0}, +{ 6, s_4_24, -1, 1, 0}, +{ 2, s_4_25, -1, 1, 0}, +{ 3, s_4_26, -1, 1, 0}, +{ 4, s_4_27, -1, 1, 0}, +{ 5, s_4_28, -1, 2, 0}, +{ 6, s_4_29, 28, 1, 0}, +{ 7, s_4_30, 28, 2, 0}, +{ 6, s_4_31, 28, 1, 0}, +{ 6, s_4_32, 28, 1, 0}, +{ 7, s_4_33, 28, 1, 0}, +{ 4, s_4_34, -1, 1, 0}, +{ 4, s_4_35, -1, 1, 0}, +{ 5, s_4_36, -1, 1, 0}, +{ 3, s_4_37, -1, 1, 0}, +{ 4, s_4_38, -1, 2, 0}, +{ 5, s_4_39, 38, 1, 0}, +{ 5, s_4_40, 38, 1, 0}, +{ 4, s_4_41, -1, 2, 0}, +{ 4, s_4_42, -1, 2, 0}, +{ 7, s_4_43, -1, 1, 0}, +{ 8, s_4_44, -1, 2, 0}, +{ 9, s_4_45, 44, 1, 0}, +{ 10, s_4_46, 44, 2, 0}, +{ 9, s_4_47, 44, 1, 0}, +{ 9, s_4_48, 44, 1, 0}, +{ 10, s_4_49, 44, 1, 0}, +{ 7, s_4_50, -1, 1, 0}, +{ 7, s_4_51, -1, 1, 0}, +{ 8, s_4_52, -1, 1, 0}, +{ 5, s_4_53, -1, 2, 0}, +{ 2, s_4_54, -1, 1, 0}, +{ 3, s_4_55, 54, 1, 0}, +{ 3, s_4_56, 54, 1, 0}, +{ 2, s_4_57, -1, 2, 0}, +{ 4, s_4_58, 57, 1, 0}, +{ 5, s_4_59, 57, 2, 0}, +{ 4, s_4_60, 57, 1, 0}, +{ 4, s_4_61, 57, 1, 0}, +{ 5, s_4_62, 57, 1, 0}, +{ 2, s_4_63, -1, 2, 0}, +{ 3, s_4_64, -1, 2, 0}, +{ 5, s_4_65, 64, 1, 0}, +{ 6, s_4_66, 64, 2, 0}, +{ 7, s_4_67, 66, 1, 0}, +{ 8, s_4_68, 66, 2, 0}, +{ 7, s_4_69, 66, 1, 0}, +{ 7, s_4_70, 66, 1, 0}, +{ 8, s_4_71, 66, 1, 0}, +{ 5, s_4_72, 64, 1, 0}, +{ 5, s_4_73, 64, 1, 0}, +{ 6, s_4_74, 64, 1, 0}, +{ 3, s_4_75, -1, 2, 0}, +{ 2, s_4_76, -1, 1, 0}, +{ 3, s_4_77, 76, 1, 0}, +{ 3, s_4_78, 76, 1, 0}, +{ 4, s_4_79, -1, 1, 0}, +{ 5, s_4_80, -1, 1, 0}, +{ 2, s_4_81, -1, 1, 0}, +{ 6, s_4_82, -1, 1, 0}, +{ 4, s_4_83, -1, 1, 0}, +{ 5, s_4_84, -1, 2, 0}, +{ 6, s_4_85, 84, 1, 0}, +{ 7, s_4_86, 84, 2, 0}, +{ 6, s_4_87, 84, 1, 0}, +{ 6, s_4_88, 84, 1, 0}, +{ 7, s_4_89, 84, 1, 0}, +{ 4, s_4_90, -1, 1, 0}, +{ 4, s_4_91, -1, 1, 0}, +{ 5, s_4_92, -1, 1, 0}, +{ 5, s_4_93, -1, 1, 0} }; static const symbol s_5_0[1] = { 'a' }; @@ -506,11 +506,11 @@ static const symbol s_5_4[2] = { 0xC4, 0x83 }; static const struct among a_5[5] = { -/* 0 */ { 1, s_5_0, -1, 1, 0}, -/* 1 */ { 1, s_5_1, -1, 1, 0}, -/* 2 */ { 2, s_5_2, 1, 1, 0}, -/* 3 */ { 1, s_5_3, -1, 1, 0}, -/* 4 */ { 2, s_5_4, -1, 1, 0} +{ 1, s_5_0, -1, 1, 0}, +{ 1, s_5_1, -1, 1, 0}, +{ 2, s_5_2, 1, 1, 0}, +{ 1, s_5_3, -1, 1, 0}, +{ 2, s_5_4, -1, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 4 }; @@ -536,30 +536,29 @@ static const symbol s_17[] = { 0xC5, 0xA3 }; static const symbol s_18[] = { 't' }; static const symbol s_19[] = { 'i', 's', 't' }; -static int r_prelude(struct SN_env * z) { /* forwardmode */ -/* repeat, line 32 */ - - while(1) { int c1 = z->c; - while(1) { /* goto, line 32 */ +static int r_prelude(struct SN_env * z) { + while(1) { + int c1 = z->c; + while(1) { int c2 = z->c; - if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab1; /* grouping v, line 33 */ - z->bra = z->c; /* [, line 33 */ - { int c3 = z->c; /* or, line 33 */ - if (z->c == z->l || z->p[z->c] != 'u') goto lab3; /* literal, line 33 */ + if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab1; + z->bra = z->c; + { int c3 = z->c; + if (z->c == z->l || z->p[z->c] != 'u') goto lab3; z->c++; - z->ket = z->c; /* ], line 33 */ - if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab3; /* grouping v, line 33 */ - { int ret = slice_from_s(z, 1, s_0); /* <-, line 33 */ + z->ket = z->c; + if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab3; + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } goto lab2; lab3: z->c = c3; - if (z->c == z->l || z->p[z->c] != 'i') goto lab1; /* literal, line 34 */ + if (z->c == z->l || z->p[z->c] != 'i') goto lab1; z->c++; - z->ket = z->c; /* ], line 34 */ - if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab1; /* grouping v, line 34 */ - { int ret = slice_from_s(z, 1, s_1); /* <-, line 34 */ + z->ket = z->c; + if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab1; + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } } @@ -568,9 +567,9 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ break; lab1: z->c = c2; - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* goto, line 32 */ + z->c = ret; } } continue; @@ -581,16 +580,16 @@ static int r_prelude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $pV = , line 40 */ - z->I[1] = z->l; /* $p1 = , line 41 */ - z->I[2] = z->l; /* $p2 = , line 42 */ - { int c1 = z->c; /* do, line 44 */ - { int c2 = z->c; /* or, line 46 */ - if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab2; /* grouping v, line 45 */ - { int c3 = z->c; /* or, line 45 */ - if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab4; /* non v, line 45 */ - { /* gopast */ /* grouping v, line 45 */ +static int r_mark_regions(struct SN_env * z) { + z->I[2] = z->l; + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int c2 = z->c; + if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab2; + { int c3 = z->c; + if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab4; + { int ret = out_grouping_U(z, g_v, 97, 259, 1); if (ret < 0) goto lab4; z->c += ret; @@ -598,8 +597,8 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab3; lab4: z->c = c3; - if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab2; /* grouping v, line 45 */ - { /* gopast */ /* non v, line 45 */ + if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab2; + { int ret = in_grouping_U(z, g_v, 97, 259, 1); if (ret < 0) goto lab2; z->c += ret; @@ -609,10 +608,10 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab1; lab2: z->c = c2; - if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab0; /* non v, line 47 */ - { int c4 = z->c; /* or, line 47 */ - if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab6; /* non v, line 47 */ - { /* gopast */ /* grouping v, line 47 */ + if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab0; + { int c4 = z->c; + if (out_grouping_U(z, g_v, 97, 259, 0)) goto lab6; + { int ret = out_grouping_U(z, g_v, 97, 259, 1); if (ret < 0) goto lab6; z->c += ret; @@ -620,74 +619,73 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab5; lab6: z->c = c4; - if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab0; /* grouping v, line 47 */ - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (in_grouping_U(z, g_v, 97, 259, 0)) goto lab0; + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 47 */ + z->c = ret; } } lab5: ; } lab1: - z->I[0] = z->c; /* setmark pV, line 48 */ + z->I[2] = z->c; lab0: z->c = c1; } - { int c5 = z->c; /* do, line 50 */ - { /* gopast */ /* grouping v, line 51 */ + { int c5 = z->c; + { int ret = out_grouping_U(z, g_v, 97, 259, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 51 */ + { int ret = in_grouping_U(z, g_v, 97, 259, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[1] = z->c; /* setmark p1, line 51 */ - { /* gopast */ /* grouping v, line 52 */ + z->I[1] = z->c; + { int ret = out_grouping_U(z, g_v, 97, 259, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 52 */ + { int ret = in_grouping_U(z, g_v, 97, 259, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[2] = z->c; /* setmark p2, line 52 */ + z->I[0] = z->c; lab7: z->c = c5; } return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ +static int r_postlude(struct SN_env * z) { int among_var; -/* repeat, line 56 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 58 */ - if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else /* substring, line 58 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 85)) among_var = 3; else among_var = find_among(z, a_0, 3); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 58 */ - switch (among_var) { /* among, line 58 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_2); /* <-, line 59 */ + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_3); /* <-, line 60 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } break; case 3: - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 61 */ + z->c = ret; } break; } @@ -699,70 +697,70 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_RV(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 68 */ +static int r_RV(struct SN_env * z) { + if (!(z->I[2] <= z->c)) return 0; return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 69 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 70 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_step_0(struct SN_env * z) { /* backwardmode */ +static int r_step_0(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 73 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((266786 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 73 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((266786 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_1, 16); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 73 */ - { int ret = r_R1(z); /* call R1, line 73 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 73 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 75 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_4); /* <-, line 77 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_5); /* <-, line 79 */ + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 1, s_6); /* <-, line 81 */ + { int ret = slice_from_s(z, 1, s_6); if (ret < 0) return ret; } break; case 5: - { int m1 = z->l - z->c; (void)m1; /* not, line 83 */ - if (!(eq_s_b(z, 2, s_7))) goto lab0; /* literal, line 83 */ + { int m1 = z->l - z->c; (void)m1; + if (!(eq_s_b(z, 2, s_7))) goto lab0; return 0; lab0: z->c = z->l - m1; } - { int ret = slice_from_s(z, 1, s_8); /* <-, line 83 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 2, s_9); /* <-, line 85 */ + { int ret = slice_from_s(z, 2, s_9); if (ret < 0) return ret; } break; case 7: - { int ret = slice_from_s(z, 4, s_10); /* <-, line 87 */ + { int ret = slice_from_s(z, 4, s_10); if (ret < 0) return ret; } break; @@ -770,61 +768,60 @@ static int r_step_0(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_combo_suffix(struct SN_env * z) { /* backwardmode */ +static int r_combo_suffix(struct SN_env * z) { int among_var; - { int m_test1 = z->l - z->c; /* test, line 91 */ - z->ket = z->c; /* [, line 92 */ - among_var = find_among_b(z, a_2, 46); /* substring, line 92 */ + { int m_test1 = z->l - z->c; + z->ket = z->c; + among_var = find_among_b(z, a_2, 46); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 92 */ - { int ret = r_R1(z); /* call R1, line 92 */ + z->bra = z->c; + { int ret = r_R1(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 93 */ + switch (among_var) { case 1: - { int ret = slice_from_s(z, 4, s_11); /* <-, line 101 */ + { int ret = slice_from_s(z, 4, s_11); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 4, s_12); /* <-, line 104 */ + { int ret = slice_from_s(z, 4, s_12); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 2, s_13); /* <-, line 107 */ + { int ret = slice_from_s(z, 2, s_13); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 2, s_14); /* <-, line 113 */ + { int ret = slice_from_s(z, 2, s_14); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 2, s_15); /* <-, line 118 */ + { int ret = slice_from_s(z, 2, s_15); if (ret < 0) return ret; } break; case 6: - { int ret = slice_from_s(z, 2, s_16); /* <-, line 122 */ + { int ret = slice_from_s(z, 2, s_16); if (ret < 0) return ret; } break; } - z->B[0] = 1; /* set standard_suffix_removed, line 125 */ + z->I[3] = 1; z->c = z->l - m_test1; } return 1; } -static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ +static int r_standard_suffix(struct SN_env * z) { int among_var; - z->B[0] = 0; /* unset standard_suffix_removed, line 130 */ -/* repeat, line 131 */ - - while(1) { int m1 = z->l - z->c; (void)m1; - { int ret = r_combo_suffix(z); /* call combo_suffix, line 131 */ + z->I[3] = 0; + while(1) { + int m1 = z->l - z->c; (void)m1; + { int ret = r_combo_suffix(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -833,63 +830,63 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ z->c = z->l - m1; break; } - z->ket = z->c; /* [, line 132 */ - among_var = find_among_b(z, a_3, 62); /* substring, line 132 */ + z->ket = z->c; + among_var = find_among_b(z, a_3, 62); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 132 */ - { int ret = r_R2(z); /* call R2, line 132 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 133 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 149 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (!(eq_s_b(z, 2, s_17))) return 0; /* literal, line 152 */ - z->bra = z->c; /* ], line 152 */ - { int ret = slice_from_s(z, 1, s_18); /* <-, line 152 */ + if (!(eq_s_b(z, 2, s_17))) return 0; + z->bra = z->c; + { int ret = slice_from_s(z, 1, s_18); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 3, s_19); /* <-, line 156 */ + { int ret = slice_from_s(z, 3, s_19); if (ret < 0) return ret; } break; } - z->B[0] = 1; /* set standard_suffix_removed, line 160 */ + z->I[3] = 1; return 1; } -static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ +static int r_verb_suffix(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 164 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 165 */ - among_var = find_among_b(z, a_4, 94); /* substring, line 165 */ + { int mlimit1; + if (z->c < z->I[2]) return 0; + mlimit1 = z->lb; z->lb = z->I[2]; + z->ket = z->c; + among_var = find_among_b(z, a_4, 94); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 165 */ - switch (among_var) { /* among, line 165 */ + z->bra = z->c; + switch (among_var) { case 1: - { int m2 = z->l - z->c; (void)m2; /* or, line 200 */ - if (out_grouping_b_U(z, g_v, 97, 259, 0)) goto lab1; /* non v, line 200 */ + { int m2 = z->l - z->c; (void)m2; + if (out_grouping_b_U(z, g_v, 97, 259, 0)) goto lab1; goto lab0; lab1: z->c = z->l - m2; - if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->lb = mlimit1; return 0; } /* literal, line 200 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->lb = mlimit1; return 0; } z->c--; } lab0: - { int ret = slice_del(z); /* delete, line 200 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_del(z); /* delete, line 214 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -899,51 +896,51 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_vowel_suffix(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 219 */ - if (!(find_among_b(z, a_5, 5))) return 0; /* substring, line 219 */ - z->bra = z->c; /* ], line 219 */ - { int ret = r_RV(z); /* call RV, line 219 */ +static int r_vowel_suffix(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_5, 5))) return 0; + z->bra = z->c; + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 220 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -extern int romanian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 226 */ - { int ret = r_prelude(z); /* call prelude, line 226 */ +extern int romanian_UTF_8_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_prelude(z); if (ret < 0) return ret; } z->c = c1; } - /* do, line 227 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 227 */ + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 228 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 229 */ - { int ret = r_step_0(z); /* call step_0, line 229 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_step_0(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 230 */ - { int ret = r_standard_suffix(z); /* call standard_suffix, line 230 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_standard_suffix(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 231 */ - { int m5 = z->l - z->c; (void)m5; /* or, line 231 */ - if (!(z->B[0])) goto lab2; /* Boolean test standard_suffix_removed, line 231 */ + { int m4 = z->l - z->c; (void)m4; + { int m5 = z->l - z->c; (void)m5; + if (!(z->I[3])) goto lab2; goto lab1; lab2: z->c = z->l - m5; - { int ret = r_verb_suffix(z); /* call verb_suffix, line 231 */ + { int ret = r_verb_suffix(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -952,15 +949,15 @@ extern int romanian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ lab0: z->c = z->l - m4; } - { int m6 = z->l - z->c; (void)m6; /* do, line 232 */ - { int ret = r_vowel_suffix(z); /* call vowel_suffix, line 232 */ + { int m6 = z->l - z->c; (void)m6; + { int ret = r_vowel_suffix(z); if (ret < 0) return ret; } z->c = z->l - m6; } z->c = z->lb; - { int c7 = z->c; /* do, line 234 */ - { int ret = r_postlude(z); /* call postlude, line 234 */ + { int c7 = z->c; + { int ret = r_postlude(z); if (ret < 0) return ret; } z->c = c7; @@ -968,7 +965,7 @@ extern int romanian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * romanian_UTF_8_create_env(void) { return SN_create_env(0, 3, 1); } +extern struct SN_env * romanian_UTF_8_create_env(void) { return SN_create_env(0, 4); } extern void romanian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_russian.c b/src/backend/snowball/libstemmer/stem_UTF_8_russian.c index fb69a847cf4e5..2bbf14441c937 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_russian.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_russian.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -43,15 +43,15 @@ static const symbol s_0_8[8] = { 0xD0, 0xB8, 0xD0, 0xB2, 0xD1, 0x88, 0xD0, 0xB8 static const struct among a_0[9] = { -/* 0 */ { 10, s_0_0, -1, 1, 0}, -/* 1 */ { 12, s_0_1, 0, 2, 0}, -/* 2 */ { 12, s_0_2, 0, 2, 0}, -/* 3 */ { 2, s_0_3, -1, 1, 0}, -/* 4 */ { 4, s_0_4, 3, 2, 0}, -/* 5 */ { 4, s_0_5, 3, 2, 0}, -/* 6 */ { 6, s_0_6, -1, 1, 0}, -/* 7 */ { 8, s_0_7, 6, 2, 0}, -/* 8 */ { 8, s_0_8, 6, 2, 0} +{ 10, s_0_0, -1, 1, 0}, +{ 12, s_0_1, 0, 2, 0}, +{ 12, s_0_2, 0, 2, 0}, +{ 2, s_0_3, -1, 1, 0}, +{ 4, s_0_4, 3, 2, 0}, +{ 4, s_0_5, 3, 2, 0}, +{ 6, s_0_6, -1, 1, 0}, +{ 8, s_0_7, 6, 2, 0}, +{ 8, s_0_8, 6, 2, 0} }; static const symbol s_1_0[6] = { 0xD0, 0xB5, 0xD0, 0xBC, 0xD1, 0x83 }; @@ -83,32 +83,32 @@ static const symbol s_1_25[6] = { 0xD0, 0xBE, 0xD0, 0xB3, 0xD0, 0xBE }; static const struct among a_1[26] = { -/* 0 */ { 6, s_1_0, -1, 1, 0}, -/* 1 */ { 6, s_1_1, -1, 1, 0}, -/* 2 */ { 4, s_1_2, -1, 1, 0}, -/* 3 */ { 4, s_1_3, -1, 1, 0}, -/* 4 */ { 4, s_1_4, -1, 1, 0}, -/* 5 */ { 4, s_1_5, -1, 1, 0}, -/* 6 */ { 4, s_1_6, -1, 1, 0}, -/* 7 */ { 4, s_1_7, -1, 1, 0}, -/* 8 */ { 4, s_1_8, -1, 1, 0}, -/* 9 */ { 4, s_1_9, -1, 1, 0}, -/* 10 */ { 4, s_1_10, -1, 1, 0}, -/* 11 */ { 4, s_1_11, -1, 1, 0}, -/* 12 */ { 4, s_1_12, -1, 1, 0}, -/* 13 */ { 4, s_1_13, -1, 1, 0}, -/* 14 */ { 6, s_1_14, -1, 1, 0}, -/* 15 */ { 6, s_1_15, -1, 1, 0}, -/* 16 */ { 4, s_1_16, -1, 1, 0}, -/* 17 */ { 4, s_1_17, -1, 1, 0}, -/* 18 */ { 4, s_1_18, -1, 1, 0}, -/* 19 */ { 4, s_1_19, -1, 1, 0}, -/* 20 */ { 4, s_1_20, -1, 1, 0}, -/* 21 */ { 4, s_1_21, -1, 1, 0}, -/* 22 */ { 4, s_1_22, -1, 1, 0}, -/* 23 */ { 4, s_1_23, -1, 1, 0}, -/* 24 */ { 6, s_1_24, -1, 1, 0}, -/* 25 */ { 6, s_1_25, -1, 1, 0} +{ 6, s_1_0, -1, 1, 0}, +{ 6, s_1_1, -1, 1, 0}, +{ 4, s_1_2, -1, 1, 0}, +{ 4, s_1_3, -1, 1, 0}, +{ 4, s_1_4, -1, 1, 0}, +{ 4, s_1_5, -1, 1, 0}, +{ 4, s_1_6, -1, 1, 0}, +{ 4, s_1_7, -1, 1, 0}, +{ 4, s_1_8, -1, 1, 0}, +{ 4, s_1_9, -1, 1, 0}, +{ 4, s_1_10, -1, 1, 0}, +{ 4, s_1_11, -1, 1, 0}, +{ 4, s_1_12, -1, 1, 0}, +{ 4, s_1_13, -1, 1, 0}, +{ 6, s_1_14, -1, 1, 0}, +{ 6, s_1_15, -1, 1, 0}, +{ 4, s_1_16, -1, 1, 0}, +{ 4, s_1_17, -1, 1, 0}, +{ 4, s_1_18, -1, 1, 0}, +{ 4, s_1_19, -1, 1, 0}, +{ 4, s_1_20, -1, 1, 0}, +{ 4, s_1_21, -1, 1, 0}, +{ 4, s_1_22, -1, 1, 0}, +{ 4, s_1_23, -1, 1, 0}, +{ 6, s_1_24, -1, 1, 0}, +{ 6, s_1_25, -1, 1, 0} }; static const symbol s_2_0[4] = { 0xD0, 0xB2, 0xD1, 0x88 }; @@ -122,14 +122,14 @@ static const symbol s_2_7[4] = { 0xD0, 0xBD, 0xD0, 0xBD }; static const struct among a_2[8] = { -/* 0 */ { 4, s_2_0, -1, 1, 0}, -/* 1 */ { 6, s_2_1, 0, 2, 0}, -/* 2 */ { 6, s_2_2, 0, 2, 0}, -/* 3 */ { 2, s_2_3, -1, 1, 0}, -/* 4 */ { 4, s_2_4, 3, 1, 0}, -/* 5 */ { 6, s_2_5, 4, 2, 0}, -/* 6 */ { 4, s_2_6, -1, 1, 0}, -/* 7 */ { 4, s_2_7, -1, 1, 0} +{ 4, s_2_0, -1, 1, 0}, +{ 6, s_2_1, 0, 2, 0}, +{ 6, s_2_2, 0, 2, 0}, +{ 2, s_2_3, -1, 1, 0}, +{ 4, s_2_4, 3, 1, 0}, +{ 6, s_2_5, 4, 2, 0}, +{ 4, s_2_6, -1, 1, 0}, +{ 4, s_2_7, -1, 1, 0} }; static const symbol s_3_0[4] = { 0xD1, 0x81, 0xD1, 0x8C }; @@ -137,8 +137,8 @@ static const symbol s_3_1[4] = { 0xD1, 0x81, 0xD1, 0x8F }; static const struct among a_3[2] = { -/* 0 */ { 4, s_3_0, -1, 1, 0}, -/* 1 */ { 4, s_3_1, -1, 1, 0} +{ 4, s_3_0, -1, 1, 0}, +{ 4, s_3_1, -1, 1, 0} }; static const symbol s_4_0[4] = { 0xD1, 0x8B, 0xD1, 0x82 }; @@ -190,52 +190,52 @@ static const symbol s_4_45[6] = { 0xD0, 0xBD, 0xD0, 0xBD, 0xD0, 0xBE }; static const struct among a_4[46] = { -/* 0 */ { 4, s_4_0, -1, 2, 0}, -/* 1 */ { 4, s_4_1, -1, 1, 0}, -/* 2 */ { 6, s_4_2, 1, 2, 0}, -/* 3 */ { 4, s_4_3, -1, 2, 0}, -/* 4 */ { 4, s_4_4, -1, 1, 0}, -/* 5 */ { 6, s_4_5, 4, 2, 0}, -/* 6 */ { 4, s_4_6, -1, 2, 0}, -/* 7 */ { 4, s_4_7, -1, 1, 0}, -/* 8 */ { 6, s_4_8, 7, 2, 0}, -/* 9 */ { 4, s_4_9, -1, 1, 0}, -/* 10 */ { 6, s_4_10, 9, 2, 0}, -/* 11 */ { 6, s_4_11, 9, 2, 0}, -/* 12 */ { 6, s_4_12, -1, 1, 0}, -/* 13 */ { 6, s_4_13, -1, 2, 0}, -/* 14 */ { 2, s_4_14, -1, 2, 0}, -/* 15 */ { 4, s_4_15, 14, 2, 0}, -/* 16 */ { 4, s_4_16, -1, 1, 0}, -/* 17 */ { 6, s_4_17, 16, 2, 0}, -/* 18 */ { 6, s_4_18, 16, 2, 0}, -/* 19 */ { 4, s_4_19, -1, 1, 0}, -/* 20 */ { 6, s_4_20, 19, 2, 0}, -/* 21 */ { 6, s_4_21, -1, 1, 0}, -/* 22 */ { 6, s_4_22, -1, 2, 0}, -/* 23 */ { 6, s_4_23, -1, 1, 0}, -/* 24 */ { 8, s_4_24, 23, 2, 0}, -/* 25 */ { 8, s_4_25, 23, 2, 0}, -/* 26 */ { 4, s_4_26, -1, 1, 0}, -/* 27 */ { 6, s_4_27, 26, 2, 0}, -/* 28 */ { 6, s_4_28, 26, 2, 0}, -/* 29 */ { 2, s_4_29, -1, 1, 0}, -/* 30 */ { 4, s_4_30, 29, 2, 0}, -/* 31 */ { 4, s_4_31, 29, 2, 0}, -/* 32 */ { 2, s_4_32, -1, 1, 0}, -/* 33 */ { 4, s_4_33, 32, 2, 0}, -/* 34 */ { 4, s_4_34, 32, 2, 0}, -/* 35 */ { 4, s_4_35, -1, 2, 0}, -/* 36 */ { 4, s_4_36, -1, 1, 0}, -/* 37 */ { 4, s_4_37, -1, 2, 0}, -/* 38 */ { 2, s_4_38, -1, 1, 0}, -/* 39 */ { 4, s_4_39, 38, 2, 0}, -/* 40 */ { 4, s_4_40, -1, 1, 0}, -/* 41 */ { 6, s_4_41, 40, 2, 0}, -/* 42 */ { 6, s_4_42, 40, 2, 0}, -/* 43 */ { 4, s_4_43, -1, 1, 0}, -/* 44 */ { 6, s_4_44, 43, 2, 0}, -/* 45 */ { 6, s_4_45, 43, 1, 0} +{ 4, s_4_0, -1, 2, 0}, +{ 4, s_4_1, -1, 1, 0}, +{ 6, s_4_2, 1, 2, 0}, +{ 4, s_4_3, -1, 2, 0}, +{ 4, s_4_4, -1, 1, 0}, +{ 6, s_4_5, 4, 2, 0}, +{ 4, s_4_6, -1, 2, 0}, +{ 4, s_4_7, -1, 1, 0}, +{ 6, s_4_8, 7, 2, 0}, +{ 4, s_4_9, -1, 1, 0}, +{ 6, s_4_10, 9, 2, 0}, +{ 6, s_4_11, 9, 2, 0}, +{ 6, s_4_12, -1, 1, 0}, +{ 6, s_4_13, -1, 2, 0}, +{ 2, s_4_14, -1, 2, 0}, +{ 4, s_4_15, 14, 2, 0}, +{ 4, s_4_16, -1, 1, 0}, +{ 6, s_4_17, 16, 2, 0}, +{ 6, s_4_18, 16, 2, 0}, +{ 4, s_4_19, -1, 1, 0}, +{ 6, s_4_20, 19, 2, 0}, +{ 6, s_4_21, -1, 1, 0}, +{ 6, s_4_22, -1, 2, 0}, +{ 6, s_4_23, -1, 1, 0}, +{ 8, s_4_24, 23, 2, 0}, +{ 8, s_4_25, 23, 2, 0}, +{ 4, s_4_26, -1, 1, 0}, +{ 6, s_4_27, 26, 2, 0}, +{ 6, s_4_28, 26, 2, 0}, +{ 2, s_4_29, -1, 1, 0}, +{ 4, s_4_30, 29, 2, 0}, +{ 4, s_4_31, 29, 2, 0}, +{ 2, s_4_32, -1, 1, 0}, +{ 4, s_4_33, 32, 2, 0}, +{ 4, s_4_34, 32, 2, 0}, +{ 4, s_4_35, -1, 2, 0}, +{ 4, s_4_36, -1, 1, 0}, +{ 4, s_4_37, -1, 2, 0}, +{ 2, s_4_38, -1, 1, 0}, +{ 4, s_4_39, 38, 2, 0}, +{ 4, s_4_40, -1, 1, 0}, +{ 6, s_4_41, 40, 2, 0}, +{ 6, s_4_42, 40, 2, 0}, +{ 4, s_4_43, -1, 1, 0}, +{ 6, s_4_44, 43, 2, 0}, +{ 6, s_4_45, 43, 1, 0} }; static const symbol s_5_0[2] = { 0xD1, 0x83 }; @@ -277,42 +277,42 @@ static const symbol s_5_35[2] = { 0xD0, 0xBE }; static const struct among a_5[36] = { -/* 0 */ { 2, s_5_0, -1, 1, 0}, -/* 1 */ { 4, s_5_1, -1, 1, 0}, -/* 2 */ { 6, s_5_2, 1, 1, 0}, -/* 3 */ { 4, s_5_3, -1, 1, 0}, -/* 4 */ { 2, s_5_4, -1, 1, 0}, -/* 5 */ { 2, s_5_5, -1, 1, 0}, -/* 6 */ { 2, s_5_6, -1, 1, 0}, -/* 7 */ { 4, s_5_7, 6, 1, 0}, -/* 8 */ { 4, s_5_8, 6, 1, 0}, -/* 9 */ { 2, s_5_9, -1, 1, 0}, -/* 10 */ { 4, s_5_10, 9, 1, 0}, -/* 11 */ { 4, s_5_11, 9, 1, 0}, -/* 12 */ { 2, s_5_12, -1, 1, 0}, -/* 13 */ { 4, s_5_13, -1, 1, 0}, -/* 14 */ { 4, s_5_14, -1, 1, 0}, -/* 15 */ { 2, s_5_15, -1, 1, 0}, -/* 16 */ { 4, s_5_16, 15, 1, 0}, -/* 17 */ { 4, s_5_17, 15, 1, 0}, -/* 18 */ { 2, s_5_18, -1, 1, 0}, -/* 19 */ { 4, s_5_19, 18, 1, 0}, -/* 20 */ { 4, s_5_20, 18, 1, 0}, -/* 21 */ { 6, s_5_21, 18, 1, 0}, -/* 22 */ { 8, s_5_22, 21, 1, 0}, -/* 23 */ { 6, s_5_23, 18, 1, 0}, -/* 24 */ { 2, s_5_24, -1, 1, 0}, -/* 25 */ { 4, s_5_25, 24, 1, 0}, -/* 26 */ { 6, s_5_26, 25, 1, 0}, -/* 27 */ { 4, s_5_27, 24, 1, 0}, -/* 28 */ { 4, s_5_28, 24, 1, 0}, -/* 29 */ { 4, s_5_29, -1, 1, 0}, -/* 30 */ { 6, s_5_30, 29, 1, 0}, -/* 31 */ { 4, s_5_31, -1, 1, 0}, -/* 32 */ { 4, s_5_32, -1, 1, 0}, -/* 33 */ { 6, s_5_33, 32, 1, 0}, -/* 34 */ { 4, s_5_34, -1, 1, 0}, -/* 35 */ { 2, s_5_35, -1, 1, 0} +{ 2, s_5_0, -1, 1, 0}, +{ 4, s_5_1, -1, 1, 0}, +{ 6, s_5_2, 1, 1, 0}, +{ 4, s_5_3, -1, 1, 0}, +{ 2, s_5_4, -1, 1, 0}, +{ 2, s_5_5, -1, 1, 0}, +{ 2, s_5_6, -1, 1, 0}, +{ 4, s_5_7, 6, 1, 0}, +{ 4, s_5_8, 6, 1, 0}, +{ 2, s_5_9, -1, 1, 0}, +{ 4, s_5_10, 9, 1, 0}, +{ 4, s_5_11, 9, 1, 0}, +{ 2, s_5_12, -1, 1, 0}, +{ 4, s_5_13, -1, 1, 0}, +{ 4, s_5_14, -1, 1, 0}, +{ 2, s_5_15, -1, 1, 0}, +{ 4, s_5_16, 15, 1, 0}, +{ 4, s_5_17, 15, 1, 0}, +{ 2, s_5_18, -1, 1, 0}, +{ 4, s_5_19, 18, 1, 0}, +{ 4, s_5_20, 18, 1, 0}, +{ 6, s_5_21, 18, 1, 0}, +{ 8, s_5_22, 21, 1, 0}, +{ 6, s_5_23, 18, 1, 0}, +{ 2, s_5_24, -1, 1, 0}, +{ 4, s_5_25, 24, 1, 0}, +{ 6, s_5_26, 25, 1, 0}, +{ 4, s_5_27, 24, 1, 0}, +{ 4, s_5_28, 24, 1, 0}, +{ 4, s_5_29, -1, 1, 0}, +{ 6, s_5_30, 29, 1, 0}, +{ 4, s_5_31, -1, 1, 0}, +{ 4, s_5_32, -1, 1, 0}, +{ 6, s_5_33, 32, 1, 0}, +{ 4, s_5_34, -1, 1, 0}, +{ 2, s_5_35, -1, 1, 0} }; static const symbol s_6_0[6] = { 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82 }; @@ -320,8 +320,8 @@ static const symbol s_6_1[8] = { 0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x82, 0xD1, 0x8C static const struct among a_6[2] = { -/* 0 */ { 6, s_6_0, -1, 1, 0}, -/* 1 */ { 8, s_6_1, -1, 1, 0} +{ 6, s_6_0, -1, 1, 0}, +{ 8, s_6_1, -1, 1, 0} }; static const symbol s_7_0[6] = { 0xD0, 0xB5, 0xD0, 0xB9, 0xD1, 0x88 }; @@ -331,10 +331,10 @@ static const symbol s_7_3[2] = { 0xD0, 0xBD }; static const struct among a_7[4] = { -/* 0 */ { 6, s_7_0, -1, 1, 0}, -/* 1 */ { 2, s_7_1, -1, 3, 0}, -/* 2 */ { 8, s_7_2, -1, 1, 0}, -/* 3 */ { 2, s_7_3, -1, 2, 0} +{ 6, s_7_0, -1, 1, 0}, +{ 2, s_7_1, -1, 3, 0}, +{ 8, s_7_2, -1, 1, 0}, +{ 2, s_7_3, -1, 2, 0} }; static const unsigned char g_v[] = { 33, 65, 8, 232 }; @@ -352,65 +352,65 @@ static const symbol s_9[] = { 0xD1, 0x91 }; static const symbol s_10[] = { 0xD0, 0xB5 }; static const symbol s_11[] = { 0xD0, 0xB8 }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $pV = , line 61 */ - z->I[1] = z->l; /* $p2 = , line 62 */ - { int c1 = z->c; /* do, line 63 */ - { /* gopast */ /* grouping v, line 64 */ +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int ret = out_grouping_U(z, g_v, 1072, 1103, 1); if (ret < 0) goto lab0; z->c += ret; } - z->I[0] = z->c; /* setmark pV, line 64 */ - { /* gopast */ /* non v, line 64 */ + z->I[1] = z->c; + { int ret = in_grouping_U(z, g_v, 1072, 1103, 1); if (ret < 0) goto lab0; z->c += ret; } - { /* gopast */ /* grouping v, line 65 */ + { int ret = out_grouping_U(z, g_v, 1072, 1103, 1); if (ret < 0) goto lab0; z->c += ret; } - { /* gopast */ /* non v, line 65 */ + { int ret = in_grouping_U(z, g_v, 1072, 1103, 1); if (ret < 0) goto lab0; z->c += ret; } - z->I[1] = z->c; /* setmark p2, line 65 */ + z->I[0] = z->c; lab0: z->c = c1; } return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 71 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_perfective_gerund(struct SN_env * z) { /* backwardmode */ +static int r_perfective_gerund(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 74 */ - among_var = find_among_b(z, a_0, 9); /* substring, line 74 */ + z->ket = z->c; + among_var = find_among_b(z, a_0, 9); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 74 */ - switch (among_var) { /* among, line 74 */ + z->bra = z->c; + switch (among_var) { case 1: - { int m1 = z->l - z->c; (void)m1; /* or, line 78 */ - if (!(eq_s_b(z, 2, s_0))) goto lab1; /* literal, line 78 */ + { int m1 = z->l - z->c; (void)m1; + if (!(eq_s_b(z, 2, s_0))) goto lab1; goto lab0; lab1: z->c = z->l - m1; - if (!(eq_s_b(z, 2, s_1))) return 0; /* literal, line 78 */ + if (!(eq_s_b(z, 2, s_1))) return 0; } lab0: - { int ret = slice_del(z); /* delete, line 78 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_del(z); /* delete, line 85 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -418,42 +418,42 @@ static int r_perfective_gerund(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_adjective(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 90 */ - if (!(find_among_b(z, a_1, 26))) return 0; /* substring, line 90 */ - z->bra = z->c; /* ], line 90 */ - { int ret = slice_del(z); /* delete, line 99 */ +static int r_adjective(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_1, 26))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_adjectival(struct SN_env * z) { /* backwardmode */ +static int r_adjectival(struct SN_env * z) { int among_var; - { int ret = r_adjective(z); /* call adjective, line 104 */ + { int ret = r_adjective(z); if (ret <= 0) return ret; } - { int m1 = z->l - z->c; (void)m1; /* try, line 111 */ - z->ket = z->c; /* [, line 112 */ - among_var = find_among_b(z, a_2, 8); /* substring, line 112 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + among_var = find_among_b(z, a_2, 8); if (!(among_var)) { z->c = z->l - m1; goto lab0; } - z->bra = z->c; /* ], line 112 */ - switch (among_var) { /* among, line 112 */ + z->bra = z->c; + switch (among_var) { case 1: - { int m2 = z->l - z->c; (void)m2; /* or, line 117 */ - if (!(eq_s_b(z, 2, s_2))) goto lab2; /* literal, line 117 */ + { int m2 = z->l - z->c; (void)m2; + if (!(eq_s_b(z, 2, s_2))) goto lab2; goto lab1; lab2: z->c = z->l - m2; - if (!(eq_s_b(z, 2, s_3))) { z->c = z->l - m1; goto lab0; } /* literal, line 117 */ + if (!(eq_s_b(z, 2, s_3))) { z->c = z->l - m1; goto lab0; } } lab1: - { int ret = slice_del(z); /* delete, line 117 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_del(z); /* delete, line 124 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -464,39 +464,39 @@ static int r_adjectival(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_reflexive(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 131 */ - if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 140 && z->p[z->c - 1] != 143)) return 0; /* substring, line 131 */ +static int r_reflexive(struct SN_env * z) { + z->ket = z->c; + if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 140 && z->p[z->c - 1] != 143)) return 0; if (!(find_among_b(z, a_3, 2))) return 0; - z->bra = z->c; /* ], line 131 */ - { int ret = slice_del(z); /* delete, line 134 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_verb(struct SN_env * z) { /* backwardmode */ +static int r_verb(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 139 */ - among_var = find_among_b(z, a_4, 46); /* substring, line 139 */ + z->ket = z->c; + among_var = find_among_b(z, a_4, 46); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 139 */ - switch (among_var) { /* among, line 139 */ + z->bra = z->c; + switch (among_var) { case 1: - { int m1 = z->l - z->c; (void)m1; /* or, line 145 */ - if (!(eq_s_b(z, 2, s_4))) goto lab1; /* literal, line 145 */ + { int m1 = z->l - z->c; (void)m1; + if (!(eq_s_b(z, 2, s_4))) goto lab1; goto lab0; lab1: z->c = z->l - m1; - if (!(eq_s_b(z, 2, s_5))) return 0; /* literal, line 145 */ + if (!(eq_s_b(z, 2, s_5))) return 0; } lab0: - { int ret = slice_del(z); /* delete, line 145 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_del(z); /* delete, line 153 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -504,57 +504,57 @@ static int r_verb(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_noun(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 162 */ - if (!(find_among_b(z, a_5, 36))) return 0; /* substring, line 162 */ - z->bra = z->c; /* ], line 162 */ - { int ret = slice_del(z); /* delete, line 169 */ +static int r_noun(struct SN_env * z) { + z->ket = z->c; + if (!(find_among_b(z, a_5, 36))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_derivational(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 178 */ - if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 130 && z->p[z->c - 1] != 140)) return 0; /* substring, line 178 */ +static int r_derivational(struct SN_env * z) { + z->ket = z->c; + if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 130 && z->p[z->c - 1] != 140)) return 0; if (!(find_among_b(z, a_6, 2))) return 0; - z->bra = z->c; /* ], line 178 */ - { int ret = r_R2(z); /* call R2, line 178 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 181 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_tidy_up(struct SN_env * z) { /* backwardmode */ +static int r_tidy_up(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 186 */ - among_var = find_among_b(z, a_7, 4); /* substring, line 186 */ + z->ket = z->c; + among_var = find_among_b(z, a_7, 4); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 186 */ - switch (among_var) { /* among, line 186 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 190 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 191 */ - if (!(eq_s_b(z, 2, s_6))) return 0; /* literal, line 191 */ - z->bra = z->c; /* ], line 191 */ - if (!(eq_s_b(z, 2, s_7))) return 0; /* literal, line 191 */ - { int ret = slice_del(z); /* delete, line 191 */ + z->ket = z->c; + if (!(eq_s_b(z, 2, s_6))) return 0; + z->bra = z->c; + if (!(eq_s_b(z, 2, s_7))) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (!(eq_s_b(z, 2, s_8))) return 0; /* literal, line 194 */ - { int ret = slice_del(z); /* delete, line 194 */ + if (!(eq_s_b(z, 2, s_8))) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 3: - { int ret = slice_del(z); /* delete, line 196 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -562,26 +562,25 @@ static int r_tidy_up(struct SN_env * z) { /* backwardmode */ return 1; } -extern int russian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 205 */ -/* repeat, line 205 */ - - while(1) { int c2 = z->c; - while(1) { /* goto, line 205 */ +extern int russian_UTF_8_stem(struct SN_env * z) { + { int c1 = z->c; + while(1) { + int c2 = z->c; + while(1) { int c3 = z->c; - z->bra = z->c; /* [, line 205 */ - if (!(eq_s(z, 2, s_9))) goto lab2; /* literal, line 205 */ - z->ket = z->c; /* ], line 205 */ + z->bra = z->c; + if (!(eq_s(z, 2, s_9))) goto lab2; + z->ket = z->c; z->c = c3; break; lab2: z->c = c3; - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab1; - z->c = ret; /* goto, line 205 */ + z->c = ret; } } - { int ret = slice_from_s(z, 2, s_10); /* <-, line 205 */ + { int ret = slice_from_s(z, 2, s_10); if (ret < 0) return ret; } continue; @@ -591,49 +590,49 @@ extern int russian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ } z->c = c1; } - /* do, line 207 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 207 */ + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 208 */ + z->lb = z->c; z->c = z->l; - { int mlimit4; /* setlimit, line 208 */ - if (z->c < z->I[0]) return 0; - mlimit4 = z->lb; z->lb = z->I[0]; - { int m5 = z->l - z->c; (void)m5; /* do, line 209 */ - { int m6 = z->l - z->c; (void)m6; /* or, line 210 */ - { int ret = r_perfective_gerund(z); /* call perfective_gerund, line 210 */ + { int mlimit4; + if (z->c < z->I[1]) return 0; + mlimit4 = z->lb; z->lb = z->I[1]; + { int m5 = z->l - z->c; (void)m5; + { int m6 = z->l - z->c; (void)m6; + { int ret = r_perfective_gerund(z); if (ret == 0) goto lab5; if (ret < 0) return ret; } goto lab4; lab5: z->c = z->l - m6; - { int m7 = z->l - z->c; (void)m7; /* try, line 211 */ - { int ret = r_reflexive(z); /* call reflexive, line 211 */ + { int m7 = z->l - z->c; (void)m7; + { int ret = r_reflexive(z); if (ret == 0) { z->c = z->l - m7; goto lab6; } if (ret < 0) return ret; } lab6: ; } - { int m8 = z->l - z->c; (void)m8; /* or, line 212 */ - { int ret = r_adjectival(z); /* call adjectival, line 212 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_adjectival(z); if (ret == 0) goto lab8; if (ret < 0) return ret; } goto lab7; lab8: z->c = z->l - m8; - { int ret = r_verb(z); /* call verb, line 212 */ + { int ret = r_verb(z); if (ret == 0) goto lab9; if (ret < 0) return ret; } goto lab7; lab9: z->c = z->l - m8; - { int ret = r_noun(z); /* call noun, line 212 */ + { int ret = r_noun(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } @@ -645,24 +644,24 @@ extern int russian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ lab3: z->c = z->l - m5; } - { int m9 = z->l - z->c; (void)m9; /* try, line 215 */ - z->ket = z->c; /* [, line 215 */ - if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m9; goto lab10; } /* literal, line 215 */ - z->bra = z->c; /* ], line 215 */ - { int ret = slice_del(z); /* delete, line 215 */ + { int m9 = z->l - z->c; (void)m9; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m9; goto lab10; } + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } lab10: ; } - { int m10 = z->l - z->c; (void)m10; /* do, line 218 */ - { int ret = r_derivational(z); /* call derivational, line 218 */ + { int m10 = z->l - z->c; (void)m10; + { int ret = r_derivational(z); if (ret < 0) return ret; } z->c = z->l - m10; } - { int m11 = z->l - z->c; (void)m11; /* do, line 219 */ - { int ret = r_tidy_up(z); /* call tidy_up, line 219 */ + { int m11 = z->l - z->c; (void)m11; + { int ret = r_tidy_up(z); if (ret < 0) return ret; } z->c = z->l - m11; @@ -673,7 +672,7 @@ extern int russian_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * russian_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); } +extern struct SN_env * russian_UTF_8_create_env(void) { return SN_create_env(0, 2); } extern void russian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_serbian.c b/src/backend/snowball/libstemmer/stem_UTF_8_serbian.c new file mode 100644 index 0000000000000..5b1ea9ad46a37 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_serbian.c @@ -0,0 +1,6543 @@ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ + +#include "header.h" + +#ifdef __cplusplus +extern "C" { +#endif +extern int serbian_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_Step_3(struct SN_env * z); +static int r_Step_2(struct SN_env * z); +static int r_Step_1(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_prelude(struct SN_env * z); +static int r_cyr_to_lat(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * serbian_UTF_8_create_env(void); +extern void serbian_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[2] = { 0xD0, 0xB0 }; +static const symbol s_0_1[2] = { 0xD0, 0xB1 }; +static const symbol s_0_2[2] = { 0xD0, 0xB2 }; +static const symbol s_0_3[2] = { 0xD0, 0xB3 }; +static const symbol s_0_4[2] = { 0xD0, 0xB4 }; +static const symbol s_0_5[2] = { 0xD0, 0xB5 }; +static const symbol s_0_6[2] = { 0xD0, 0xB6 }; +static const symbol s_0_7[2] = { 0xD0, 0xB7 }; +static const symbol s_0_8[2] = { 0xD0, 0xB8 }; +static const symbol s_0_9[2] = { 0xD0, 0xBA }; +static const symbol s_0_10[2] = { 0xD0, 0xBB }; +static const symbol s_0_11[2] = { 0xD0, 0xBC }; +static const symbol s_0_12[2] = { 0xD0, 0xBD }; +static const symbol s_0_13[2] = { 0xD0, 0xBE }; +static const symbol s_0_14[2] = { 0xD0, 0xBF }; +static const symbol s_0_15[2] = { 0xD1, 0x80 }; +static const symbol s_0_16[2] = { 0xD1, 0x81 }; +static const symbol s_0_17[2] = { 0xD1, 0x82 }; +static const symbol s_0_18[2] = { 0xD1, 0x83 }; +static const symbol s_0_19[2] = { 0xD1, 0x84 }; +static const symbol s_0_20[2] = { 0xD1, 0x85 }; +static const symbol s_0_21[2] = { 0xD1, 0x86 }; +static const symbol s_0_22[2] = { 0xD1, 0x87 }; +static const symbol s_0_23[2] = { 0xD1, 0x88 }; +static const symbol s_0_24[2] = { 0xD1, 0x92 }; +static const symbol s_0_25[2] = { 0xD1, 0x98 }; +static const symbol s_0_26[2] = { 0xD1, 0x99 }; +static const symbol s_0_27[2] = { 0xD1, 0x9A }; +static const symbol s_0_28[2] = { 0xD1, 0x9B }; +static const symbol s_0_29[2] = { 0xD1, 0x9F }; + +static const struct among a_0[30] = +{ +{ 2, s_0_0, -1, 1, 0}, +{ 2, s_0_1, -1, 2, 0}, +{ 2, s_0_2, -1, 3, 0}, +{ 2, s_0_3, -1, 4, 0}, +{ 2, s_0_4, -1, 5, 0}, +{ 2, s_0_5, -1, 7, 0}, +{ 2, s_0_6, -1, 8, 0}, +{ 2, s_0_7, -1, 9, 0}, +{ 2, s_0_8, -1, 10, 0}, +{ 2, s_0_9, -1, 12, 0}, +{ 2, s_0_10, -1, 13, 0}, +{ 2, s_0_11, -1, 15, 0}, +{ 2, s_0_12, -1, 16, 0}, +{ 2, s_0_13, -1, 18, 0}, +{ 2, s_0_14, -1, 19, 0}, +{ 2, s_0_15, -1, 20, 0}, +{ 2, s_0_16, -1, 21, 0}, +{ 2, s_0_17, -1, 22, 0}, +{ 2, s_0_18, -1, 24, 0}, +{ 2, s_0_19, -1, 25, 0}, +{ 2, s_0_20, -1, 26, 0}, +{ 2, s_0_21, -1, 27, 0}, +{ 2, s_0_22, -1, 28, 0}, +{ 2, s_0_23, -1, 30, 0}, +{ 2, s_0_24, -1, 6, 0}, +{ 2, s_0_25, -1, 11, 0}, +{ 2, s_0_26, -1, 14, 0}, +{ 2, s_0_27, -1, 17, 0}, +{ 2, s_0_28, -1, 23, 0}, +{ 2, s_0_29, -1, 29, 0} +}; + +static const symbol s_1_0[4] = { 'd', 'a', 'b', 'a' }; +static const symbol s_1_1[5] = { 'a', 'j', 'a', 'c', 'a' }; +static const symbol s_1_2[5] = { 'e', 'j', 'a', 'c', 'a' }; +static const symbol s_1_3[5] = { 'l', 'j', 'a', 'c', 'a' }; +static const symbol s_1_4[5] = { 'n', 'j', 'a', 'c', 'a' }; +static const symbol s_1_5[5] = { 'o', 'j', 'a', 'c', 'a' }; +static const symbol s_1_6[5] = { 'a', 'l', 'a', 'c', 'a' }; +static const symbol s_1_7[5] = { 'e', 'l', 'a', 'c', 'a' }; +static const symbol s_1_8[5] = { 'o', 'l', 'a', 'c', 'a' }; +static const symbol s_1_9[4] = { 'm', 'a', 'c', 'a' }; +static const symbol s_1_10[4] = { 'n', 'a', 'c', 'a' }; +static const symbol s_1_11[4] = { 'r', 'a', 'c', 'a' }; +static const symbol s_1_12[4] = { 's', 'a', 'c', 'a' }; +static const symbol s_1_13[4] = { 'v', 'a', 'c', 'a' }; +static const symbol s_1_14[5] = { 0xC5, 0xA1, 'a', 'c', 'a' }; +static const symbol s_1_15[4] = { 'a', 'o', 'c', 'a' }; +static const symbol s_1_16[5] = { 'a', 'c', 'a', 'k', 'a' }; +static const symbol s_1_17[5] = { 'a', 'j', 'a', 'k', 'a' }; +static const symbol s_1_18[5] = { 'o', 'j', 'a', 'k', 'a' }; +static const symbol s_1_19[5] = { 'a', 'n', 'a', 'k', 'a' }; +static const symbol s_1_20[5] = { 'a', 't', 'a', 'k', 'a' }; +static const symbol s_1_21[5] = { 'e', 't', 'a', 'k', 'a' }; +static const symbol s_1_22[5] = { 'i', 't', 'a', 'k', 'a' }; +static const symbol s_1_23[5] = { 'o', 't', 'a', 'k', 'a' }; +static const symbol s_1_24[5] = { 'u', 't', 'a', 'k', 'a' }; +static const symbol s_1_25[6] = { 'a', 0xC4, 0x8D, 'a', 'k', 'a' }; +static const symbol s_1_26[5] = { 'e', 's', 'a', 'm', 'a' }; +static const symbol s_1_27[5] = { 'i', 'z', 'a', 'm', 'a' }; +static const symbol s_1_28[6] = { 'j', 'a', 'c', 'i', 'm', 'a' }; +static const symbol s_1_29[6] = { 'n', 'i', 'c', 'i', 'm', 'a' }; +static const symbol s_1_30[6] = { 't', 'i', 'c', 'i', 'm', 'a' }; +static const symbol s_1_31[8] = { 't', 'e', 't', 'i', 'c', 'i', 'm', 'a' }; +static const symbol s_1_32[6] = { 'z', 'i', 'c', 'i', 'm', 'a' }; +static const symbol s_1_33[6] = { 'a', 't', 'c', 'i', 'm', 'a' }; +static const symbol s_1_34[6] = { 'u', 't', 'c', 'i', 'm', 'a' }; +static const symbol s_1_35[6] = { 0xC4, 0x8D, 'c', 'i', 'm', 'a' }; +static const symbol s_1_36[6] = { 'p', 'e', 's', 'i', 'm', 'a' }; +static const symbol s_1_37[6] = { 'i', 'n', 'z', 'i', 'm', 'a' }; +static const symbol s_1_38[6] = { 'l', 'o', 'z', 'i', 'm', 'a' }; +static const symbol s_1_39[6] = { 'm', 'e', 't', 'a', 'r', 'a' }; +static const symbol s_1_40[7] = { 'c', 'e', 'n', 't', 'a', 'r', 'a' }; +static const symbol s_1_41[6] = { 'i', 's', 't', 'a', 'r', 'a' }; +static const symbol s_1_42[5] = { 'e', 'k', 'a', 't', 'a' }; +static const symbol s_1_43[5] = { 'a', 'n', 'a', 't', 'a' }; +static const symbol s_1_44[6] = { 'n', 's', 't', 'a', 'v', 'a' }; +static const symbol s_1_45[7] = { 'k', 'u', 's', 't', 'a', 'v', 'a' }; +static const symbol s_1_46[4] = { 'a', 'j', 'a', 'c' }; +static const symbol s_1_47[4] = { 'e', 'j', 'a', 'c' }; +static const symbol s_1_48[4] = { 'l', 'j', 'a', 'c' }; +static const symbol s_1_49[4] = { 'n', 'j', 'a', 'c' }; +static const symbol s_1_50[5] = { 'a', 'n', 'j', 'a', 'c' }; +static const symbol s_1_51[4] = { 'o', 'j', 'a', 'c' }; +static const symbol s_1_52[4] = { 'a', 'l', 'a', 'c' }; +static const symbol s_1_53[4] = { 'e', 'l', 'a', 'c' }; +static const symbol s_1_54[4] = { 'o', 'l', 'a', 'c' }; +static const symbol s_1_55[3] = { 'm', 'a', 'c' }; +static const symbol s_1_56[3] = { 'n', 'a', 'c' }; +static const symbol s_1_57[3] = { 'r', 'a', 'c' }; +static const symbol s_1_58[3] = { 's', 'a', 'c' }; +static const symbol s_1_59[3] = { 'v', 'a', 'c' }; +static const symbol s_1_60[4] = { 0xC5, 0xA1, 'a', 'c' }; +static const symbol s_1_61[4] = { 'j', 'e', 'b', 'e' }; +static const symbol s_1_62[4] = { 'o', 'l', 'c', 'e' }; +static const symbol s_1_63[4] = { 'k', 'u', 's', 'e' }; +static const symbol s_1_64[4] = { 'r', 'a', 'v', 'e' }; +static const symbol s_1_65[4] = { 's', 'a', 'v', 'e' }; +static const symbol s_1_66[5] = { 0xC5, 0xA1, 'a', 'v', 'e' }; +static const symbol s_1_67[4] = { 'b', 'a', 'c', 'i' }; +static const symbol s_1_68[4] = { 'j', 'a', 'c', 'i' }; +static const symbol s_1_69[7] = { 't', 'v', 'e', 'n', 'i', 'c', 'i' }; +static const symbol s_1_70[5] = { 's', 'n', 'i', 'c', 'i' }; +static const symbol s_1_71[6] = { 't', 'e', 't', 'i', 'c', 'i' }; +static const symbol s_1_72[5] = { 'b', 'o', 'j', 'c', 'i' }; +static const symbol s_1_73[5] = { 'v', 'o', 'j', 'c', 'i' }; +static const symbol s_1_74[5] = { 'o', 'j', 's', 'c', 'i' }; +static const symbol s_1_75[4] = { 'a', 't', 'c', 'i' }; +static const symbol s_1_76[4] = { 'i', 't', 'c', 'i' }; +static const symbol s_1_77[4] = { 'u', 't', 'c', 'i' }; +static const symbol s_1_78[4] = { 0xC4, 0x8D, 'c', 'i' }; +static const symbol s_1_79[4] = { 'p', 'e', 's', 'i' }; +static const symbol s_1_80[4] = { 'i', 'n', 'z', 'i' }; +static const symbol s_1_81[4] = { 'l', 'o', 'z', 'i' }; +static const symbol s_1_82[4] = { 'a', 'c', 'a', 'k' }; +static const symbol s_1_83[4] = { 'u', 's', 'a', 'k' }; +static const symbol s_1_84[4] = { 'a', 't', 'a', 'k' }; +static const symbol s_1_85[4] = { 'e', 't', 'a', 'k' }; +static const symbol s_1_86[4] = { 'i', 't', 'a', 'k' }; +static const symbol s_1_87[4] = { 'o', 't', 'a', 'k' }; +static const symbol s_1_88[4] = { 'u', 't', 'a', 'k' }; +static const symbol s_1_89[5] = { 'a', 0xC4, 0x8D, 'a', 'k' }; +static const symbol s_1_90[5] = { 'u', 0xC5, 0xA1, 'a', 'k' }; +static const symbol s_1_91[4] = { 'i', 'z', 'a', 'm' }; +static const symbol s_1_92[5] = { 't', 'i', 'c', 'a', 'n' }; +static const symbol s_1_93[5] = { 'c', 'a', 'j', 'a', 'n' }; +static const symbol s_1_94[6] = { 0xC4, 0x8D, 'a', 'j', 'a', 'n' }; +static const symbol s_1_95[6] = { 'v', 'o', 'l', 'j', 'a', 'n' }; +static const symbol s_1_96[5] = { 'e', 's', 'k', 'a', 'n' }; +static const symbol s_1_97[4] = { 'a', 'l', 'a', 'n' }; +static const symbol s_1_98[5] = { 'b', 'i', 'l', 'a', 'n' }; +static const symbol s_1_99[5] = { 'g', 'i', 'l', 'a', 'n' }; +static const symbol s_1_100[5] = { 'n', 'i', 'l', 'a', 'n' }; +static const symbol s_1_101[5] = { 'r', 'i', 'l', 'a', 'n' }; +static const symbol s_1_102[5] = { 's', 'i', 'l', 'a', 'n' }; +static const symbol s_1_103[5] = { 't', 'i', 'l', 'a', 'n' }; +static const symbol s_1_104[6] = { 'a', 'v', 'i', 'l', 'a', 'n' }; +static const symbol s_1_105[5] = { 'l', 'a', 'r', 'a', 'n' }; +static const symbol s_1_106[4] = { 'e', 'r', 'a', 'n' }; +static const symbol s_1_107[4] = { 'a', 's', 'a', 'n' }; +static const symbol s_1_108[4] = { 'e', 's', 'a', 'n' }; +static const symbol s_1_109[5] = { 'd', 'u', 's', 'a', 'n' }; +static const symbol s_1_110[5] = { 'k', 'u', 's', 'a', 'n' }; +static const symbol s_1_111[4] = { 'a', 't', 'a', 'n' }; +static const symbol s_1_112[6] = { 'p', 'l', 'e', 't', 'a', 'n' }; +static const symbol s_1_113[5] = { 't', 'e', 't', 'a', 'n' }; +static const symbol s_1_114[5] = { 'a', 'n', 't', 'a', 'n' }; +static const symbol s_1_115[6] = { 'p', 'r', 'a', 'v', 'a', 'n' }; +static const symbol s_1_116[6] = { 's', 't', 'a', 'v', 'a', 'n' }; +static const symbol s_1_117[5] = { 's', 'i', 'v', 'a', 'n' }; +static const symbol s_1_118[5] = { 't', 'i', 'v', 'a', 'n' }; +static const symbol s_1_119[4] = { 'o', 'z', 'a', 'n' }; +static const symbol s_1_120[6] = { 't', 'i', 0xC4, 0x8D, 'a', 'n' }; +static const symbol s_1_121[5] = { 'a', 0xC5, 0xA1, 'a', 'n' }; +static const symbol s_1_122[6] = { 'd', 'u', 0xC5, 0xA1, 'a', 'n' }; +static const symbol s_1_123[5] = { 'm', 'e', 't', 'a', 'r' }; +static const symbol s_1_124[6] = { 'c', 'e', 'n', 't', 'a', 'r' }; +static const symbol s_1_125[5] = { 'i', 's', 't', 'a', 'r' }; +static const symbol s_1_126[4] = { 'e', 'k', 'a', 't' }; +static const symbol s_1_127[4] = { 'e', 'n', 'a', 't' }; +static const symbol s_1_128[4] = { 'o', 's', 'c', 'u' }; +static const symbol s_1_129[6] = { 'o', 0xC5, 0xA1, 0xC4, 0x87, 'u' }; + +static const struct among a_1[130] = +{ +{ 4, s_1_0, -1, 73, 0}, +{ 5, s_1_1, -1, 12, 0}, +{ 5, s_1_2, -1, 14, 0}, +{ 5, s_1_3, -1, 13, 0}, +{ 5, s_1_4, -1, 85, 0}, +{ 5, s_1_5, -1, 15, 0}, +{ 5, s_1_6, -1, 82, 0}, +{ 5, s_1_7, -1, 83, 0}, +{ 5, s_1_8, -1, 84, 0}, +{ 4, s_1_9, -1, 75, 0}, +{ 4, s_1_10, -1, 76, 0}, +{ 4, s_1_11, -1, 81, 0}, +{ 4, s_1_12, -1, 80, 0}, +{ 4, s_1_13, -1, 79, 0}, +{ 5, s_1_14, -1, 18, 0}, +{ 4, s_1_15, -1, 82, 0}, +{ 5, s_1_16, -1, 55, 0}, +{ 5, s_1_17, -1, 16, 0}, +{ 5, s_1_18, -1, 17, 0}, +{ 5, s_1_19, -1, 78, 0}, +{ 5, s_1_20, -1, 58, 0}, +{ 5, s_1_21, -1, 59, 0}, +{ 5, s_1_22, -1, 60, 0}, +{ 5, s_1_23, -1, 61, 0}, +{ 5, s_1_24, -1, 62, 0}, +{ 6, s_1_25, -1, 54, 0}, +{ 5, s_1_26, -1, 67, 0}, +{ 5, s_1_27, -1, 87, 0}, +{ 6, s_1_28, -1, 5, 0}, +{ 6, s_1_29, -1, 23, 0}, +{ 6, s_1_30, -1, 24, 0}, +{ 8, s_1_31, 30, 21, 0}, +{ 6, s_1_32, -1, 25, 0}, +{ 6, s_1_33, -1, 58, 0}, +{ 6, s_1_34, -1, 62, 0}, +{ 6, s_1_35, -1, 74, 0}, +{ 6, s_1_36, -1, 2, 0}, +{ 6, s_1_37, -1, 19, 0}, +{ 6, s_1_38, -1, 1, 0}, +{ 6, s_1_39, -1, 68, 0}, +{ 7, s_1_40, -1, 69, 0}, +{ 6, s_1_41, -1, 70, 0}, +{ 5, s_1_42, -1, 86, 0}, +{ 5, s_1_43, -1, 53, 0}, +{ 6, s_1_44, -1, 22, 0}, +{ 7, s_1_45, -1, 29, 0}, +{ 4, s_1_46, -1, 12, 0}, +{ 4, s_1_47, -1, 14, 0}, +{ 4, s_1_48, -1, 13, 0}, +{ 4, s_1_49, -1, 85, 0}, +{ 5, s_1_50, 49, 11, 0}, +{ 4, s_1_51, -1, 15, 0}, +{ 4, s_1_52, -1, 82, 0}, +{ 4, s_1_53, -1, 83, 0}, +{ 4, s_1_54, -1, 84, 0}, +{ 3, s_1_55, -1, 75, 0}, +{ 3, s_1_56, -1, 76, 0}, +{ 3, s_1_57, -1, 81, 0}, +{ 3, s_1_58, -1, 80, 0}, +{ 3, s_1_59, -1, 79, 0}, +{ 4, s_1_60, -1, 18, 0}, +{ 4, s_1_61, -1, 88, 0}, +{ 4, s_1_62, -1, 84, 0}, +{ 4, s_1_63, -1, 27, 0}, +{ 4, s_1_64, -1, 42, 0}, +{ 4, s_1_65, -1, 52, 0}, +{ 5, s_1_66, -1, 51, 0}, +{ 4, s_1_67, -1, 89, 0}, +{ 4, s_1_68, -1, 5, 0}, +{ 7, s_1_69, -1, 20, 0}, +{ 5, s_1_70, -1, 26, 0}, +{ 6, s_1_71, -1, 21, 0}, +{ 5, s_1_72, -1, 4, 0}, +{ 5, s_1_73, -1, 3, 0}, +{ 5, s_1_74, -1, 66, 0}, +{ 4, s_1_75, -1, 58, 0}, +{ 4, s_1_76, -1, 60, 0}, +{ 4, s_1_77, -1, 62, 0}, +{ 4, s_1_78, -1, 74, 0}, +{ 4, s_1_79, -1, 2, 0}, +{ 4, s_1_80, -1, 19, 0}, +{ 4, s_1_81, -1, 1, 0}, +{ 4, s_1_82, -1, 55, 0}, +{ 4, s_1_83, -1, 57, 0}, +{ 4, s_1_84, -1, 58, 0}, +{ 4, s_1_85, -1, 59, 0}, +{ 4, s_1_86, -1, 60, 0}, +{ 4, s_1_87, -1, 61, 0}, +{ 4, s_1_88, -1, 62, 0}, +{ 5, s_1_89, -1, 54, 0}, +{ 5, s_1_90, -1, 56, 0}, +{ 4, s_1_91, -1, 87, 0}, +{ 5, s_1_92, -1, 65, 0}, +{ 5, s_1_93, -1, 7, 0}, +{ 6, s_1_94, -1, 6, 0}, +{ 6, s_1_95, -1, 77, 0}, +{ 5, s_1_96, -1, 63, 0}, +{ 4, s_1_97, -1, 40, 0}, +{ 5, s_1_98, -1, 33, 0}, +{ 5, s_1_99, -1, 37, 0}, +{ 5, s_1_100, -1, 39, 0}, +{ 5, s_1_101, -1, 38, 0}, +{ 5, s_1_102, -1, 36, 0}, +{ 5, s_1_103, -1, 34, 0}, +{ 6, s_1_104, -1, 35, 0}, +{ 5, s_1_105, -1, 9, 0}, +{ 4, s_1_106, -1, 8, 0}, +{ 4, s_1_107, -1, 91, 0}, +{ 4, s_1_108, -1, 10, 0}, +{ 5, s_1_109, -1, 31, 0}, +{ 5, s_1_110, -1, 28, 0}, +{ 4, s_1_111, -1, 47, 0}, +{ 6, s_1_112, -1, 50, 0}, +{ 5, s_1_113, -1, 49, 0}, +{ 5, s_1_114, -1, 32, 0}, +{ 6, s_1_115, -1, 44, 0}, +{ 6, s_1_116, -1, 43, 0}, +{ 5, s_1_117, -1, 46, 0}, +{ 5, s_1_118, -1, 45, 0}, +{ 4, s_1_119, -1, 41, 0}, +{ 6, s_1_120, -1, 64, 0}, +{ 5, s_1_121, -1, 90, 0}, +{ 6, s_1_122, -1, 30, 0}, +{ 5, s_1_123, -1, 68, 0}, +{ 6, s_1_124, -1, 69, 0}, +{ 5, s_1_125, -1, 70, 0}, +{ 4, s_1_126, -1, 86, 0}, +{ 4, s_1_127, -1, 48, 0}, +{ 4, s_1_128, -1, 72, 0}, +{ 6, s_1_129, -1, 71, 0} +}; + +static const symbol s_2_0[3] = { 'a', 'c', 'a' }; +static const symbol s_2_1[3] = { 'e', 'c', 'a' }; +static const symbol s_2_2[3] = { 'u', 'c', 'a' }; +static const symbol s_2_3[2] = { 'g', 'a' }; +static const symbol s_2_4[5] = { 'a', 'c', 'e', 'g', 'a' }; +static const symbol s_2_5[5] = { 'e', 'c', 'e', 'g', 'a' }; +static const symbol s_2_6[5] = { 'u', 'c', 'e', 'g', 'a' }; +static const symbol s_2_7[8] = { 'a', 'n', 'j', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_8[8] = { 'e', 'n', 'j', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_9[8] = { 's', 'n', 'j', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_10[9] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_11[6] = { 'k', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_12[7] = { 's', 'k', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_13[8] = { 0xC5, 0xA1, 'k', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_14[7] = { 'e', 'l', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_15[6] = { 'n', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_16[7] = { 'o', 's', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_17[7] = { 'a', 't', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_18[9] = { 'e', 'v', 'i', 't', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_19[9] = { 'o', 'v', 'i', 't', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_20[8] = { 'a', 's', 't', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_21[7] = { 'a', 'v', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_22[7] = { 'e', 'v', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_23[7] = { 'i', 'v', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_24[7] = { 'o', 'v', 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_25[8] = { 'o', 0xC5, 0xA1, 'i', 'j', 'e', 'g', 'a' }; +static const symbol s_2_26[6] = { 'a', 'n', 'j', 'e', 'g', 'a' }; +static const symbol s_2_27[6] = { 'e', 'n', 'j', 'e', 'g', 'a' }; +static const symbol s_2_28[6] = { 's', 'n', 'j', 'e', 'g', 'a' }; +static const symbol s_2_29[7] = { 0xC5, 0xA1, 'n', 'j', 'e', 'g', 'a' }; +static const symbol s_2_30[4] = { 'k', 'e', 'g', 'a' }; +static const symbol s_2_31[5] = { 's', 'k', 'e', 'g', 'a' }; +static const symbol s_2_32[6] = { 0xC5, 0xA1, 'k', 'e', 'g', 'a' }; +static const symbol s_2_33[5] = { 'e', 'l', 'e', 'g', 'a' }; +static const symbol s_2_34[4] = { 'n', 'e', 'g', 'a' }; +static const symbol s_2_35[5] = { 'a', 'n', 'e', 'g', 'a' }; +static const symbol s_2_36[5] = { 'e', 'n', 'e', 'g', 'a' }; +static const symbol s_2_37[5] = { 's', 'n', 'e', 'g', 'a' }; +static const symbol s_2_38[6] = { 0xC5, 0xA1, 'n', 'e', 'g', 'a' }; +static const symbol s_2_39[5] = { 'o', 's', 'e', 'g', 'a' }; +static const symbol s_2_40[5] = { 'a', 't', 'e', 'g', 'a' }; +static const symbol s_2_41[7] = { 'e', 'v', 'i', 't', 'e', 'g', 'a' }; +static const symbol s_2_42[7] = { 'o', 'v', 'i', 't', 'e', 'g', 'a' }; +static const symbol s_2_43[6] = { 'a', 's', 't', 'e', 'g', 'a' }; +static const symbol s_2_44[5] = { 'a', 'v', 'e', 'g', 'a' }; +static const symbol s_2_45[5] = { 'e', 'v', 'e', 'g', 'a' }; +static const symbol s_2_46[5] = { 'i', 'v', 'e', 'g', 'a' }; +static const symbol s_2_47[5] = { 'o', 'v', 'e', 'g', 'a' }; +static const symbol s_2_48[6] = { 'a', 0xC4, 0x87, 'e', 'g', 'a' }; +static const symbol s_2_49[6] = { 'e', 0xC4, 0x87, 'e', 'g', 'a' }; +static const symbol s_2_50[6] = { 'u', 0xC4, 0x87, 'e', 'g', 'a' }; +static const symbol s_2_51[6] = { 'o', 0xC5, 0xA1, 'e', 'g', 'a' }; +static const symbol s_2_52[5] = { 'a', 'c', 'o', 'g', 'a' }; +static const symbol s_2_53[5] = { 'e', 'c', 'o', 'g', 'a' }; +static const symbol s_2_54[5] = { 'u', 'c', 'o', 'g', 'a' }; +static const symbol s_2_55[6] = { 'a', 'n', 'j', 'o', 'g', 'a' }; +static const symbol s_2_56[6] = { 'e', 'n', 'j', 'o', 'g', 'a' }; +static const symbol s_2_57[6] = { 's', 'n', 'j', 'o', 'g', 'a' }; +static const symbol s_2_58[7] = { 0xC5, 0xA1, 'n', 'j', 'o', 'g', 'a' }; +static const symbol s_2_59[4] = { 'k', 'o', 'g', 'a' }; +static const symbol s_2_60[5] = { 's', 'k', 'o', 'g', 'a' }; +static const symbol s_2_61[6] = { 0xC5, 0xA1, 'k', 'o', 'g', 'a' }; +static const symbol s_2_62[4] = { 'l', 'o', 'g', 'a' }; +static const symbol s_2_63[5] = { 'e', 'l', 'o', 'g', 'a' }; +static const symbol s_2_64[4] = { 'n', 'o', 'g', 'a' }; +static const symbol s_2_65[6] = { 'c', 'i', 'n', 'o', 'g', 'a' }; +static const symbol s_2_66[7] = { 0xC4, 0x8D, 'i', 'n', 'o', 'g', 'a' }; +static const symbol s_2_67[5] = { 'o', 's', 'o', 'g', 'a' }; +static const symbol s_2_68[5] = { 'a', 't', 'o', 'g', 'a' }; +static const symbol s_2_69[7] = { 'e', 'v', 'i', 't', 'o', 'g', 'a' }; +static const symbol s_2_70[7] = { 'o', 'v', 'i', 't', 'o', 'g', 'a' }; +static const symbol s_2_71[6] = { 'a', 's', 't', 'o', 'g', 'a' }; +static const symbol s_2_72[5] = { 'a', 'v', 'o', 'g', 'a' }; +static const symbol s_2_73[5] = { 'e', 'v', 'o', 'g', 'a' }; +static const symbol s_2_74[5] = { 'i', 'v', 'o', 'g', 'a' }; +static const symbol s_2_75[5] = { 'o', 'v', 'o', 'g', 'a' }; +static const symbol s_2_76[6] = { 'a', 0xC4, 0x87, 'o', 'g', 'a' }; +static const symbol s_2_77[6] = { 'e', 0xC4, 0x87, 'o', 'g', 'a' }; +static const symbol s_2_78[6] = { 'u', 0xC4, 0x87, 'o', 'g', 'a' }; +static const symbol s_2_79[6] = { 'o', 0xC5, 0xA1, 'o', 'g', 'a' }; +static const symbol s_2_80[3] = { 'u', 'g', 'a' }; +static const symbol s_2_81[3] = { 'a', 'j', 'a' }; +static const symbol s_2_82[4] = { 'c', 'a', 'j', 'a' }; +static const symbol s_2_83[4] = { 'l', 'a', 'j', 'a' }; +static const symbol s_2_84[4] = { 'r', 'a', 'j', 'a' }; +static const symbol s_2_85[5] = { 0xC4, 0x87, 'a', 'j', 'a' }; +static const symbol s_2_86[5] = { 0xC4, 0x8D, 'a', 'j', 'a' }; +static const symbol s_2_87[5] = { 0xC4, 0x91, 'a', 'j', 'a' }; +static const symbol s_2_88[4] = { 'b', 'i', 'j', 'a' }; +static const symbol s_2_89[4] = { 'c', 'i', 'j', 'a' }; +static const symbol s_2_90[4] = { 'd', 'i', 'j', 'a' }; +static const symbol s_2_91[4] = { 'f', 'i', 'j', 'a' }; +static const symbol s_2_92[4] = { 'g', 'i', 'j', 'a' }; +static const symbol s_2_93[6] = { 'a', 'n', 'j', 'i', 'j', 'a' }; +static const symbol s_2_94[6] = { 'e', 'n', 'j', 'i', 'j', 'a' }; +static const symbol s_2_95[6] = { 's', 'n', 'j', 'i', 'j', 'a' }; +static const symbol s_2_96[7] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'a' }; +static const symbol s_2_97[4] = { 'k', 'i', 'j', 'a' }; +static const symbol s_2_98[5] = { 's', 'k', 'i', 'j', 'a' }; +static const symbol s_2_99[6] = { 0xC5, 0xA1, 'k', 'i', 'j', 'a' }; +static const symbol s_2_100[4] = { 'l', 'i', 'j', 'a' }; +static const symbol s_2_101[5] = { 'e', 'l', 'i', 'j', 'a' }; +static const symbol s_2_102[4] = { 'm', 'i', 'j', 'a' }; +static const symbol s_2_103[4] = { 'n', 'i', 'j', 'a' }; +static const symbol s_2_104[6] = { 'g', 'a', 'n', 'i', 'j', 'a' }; +static const symbol s_2_105[6] = { 'm', 'a', 'n', 'i', 'j', 'a' }; +static const symbol s_2_106[6] = { 'p', 'a', 'n', 'i', 'j', 'a' }; +static const symbol s_2_107[6] = { 'r', 'a', 'n', 'i', 'j', 'a' }; +static const symbol s_2_108[6] = { 't', 'a', 'n', 'i', 'j', 'a' }; +static const symbol s_2_109[4] = { 'p', 'i', 'j', 'a' }; +static const symbol s_2_110[4] = { 'r', 'i', 'j', 'a' }; +static const symbol s_2_111[6] = { 'r', 'a', 'r', 'i', 'j', 'a' }; +static const symbol s_2_112[4] = { 's', 'i', 'j', 'a' }; +static const symbol s_2_113[5] = { 'o', 's', 'i', 'j', 'a' }; +static const symbol s_2_114[4] = { 't', 'i', 'j', 'a' }; +static const symbol s_2_115[5] = { 'a', 't', 'i', 'j', 'a' }; +static const symbol s_2_116[7] = { 'e', 'v', 'i', 't', 'i', 'j', 'a' }; +static const symbol s_2_117[7] = { 'o', 'v', 'i', 't', 'i', 'j', 'a' }; +static const symbol s_2_118[5] = { 'o', 't', 'i', 'j', 'a' }; +static const symbol s_2_119[6] = { 'a', 's', 't', 'i', 'j', 'a' }; +static const symbol s_2_120[5] = { 'a', 'v', 'i', 'j', 'a' }; +static const symbol s_2_121[5] = { 'e', 'v', 'i', 'j', 'a' }; +static const symbol s_2_122[5] = { 'i', 'v', 'i', 'j', 'a' }; +static const symbol s_2_123[5] = { 'o', 'v', 'i', 'j', 'a' }; +static const symbol s_2_124[4] = { 'z', 'i', 'j', 'a' }; +static const symbol s_2_125[6] = { 'o', 0xC5, 0xA1, 'i', 'j', 'a' }; +static const symbol s_2_126[5] = { 0xC5, 0xBE, 'i', 'j', 'a' }; +static const symbol s_2_127[4] = { 'a', 'n', 'j', 'a' }; +static const symbol s_2_128[4] = { 'e', 'n', 'j', 'a' }; +static const symbol s_2_129[4] = { 's', 'n', 'j', 'a' }; +static const symbol s_2_130[5] = { 0xC5, 0xA1, 'n', 'j', 'a' }; +static const symbol s_2_131[2] = { 'k', 'a' }; +static const symbol s_2_132[3] = { 's', 'k', 'a' }; +static const symbol s_2_133[4] = { 0xC5, 0xA1, 'k', 'a' }; +static const symbol s_2_134[3] = { 'a', 'l', 'a' }; +static const symbol s_2_135[5] = { 'a', 'c', 'a', 'l', 'a' }; +static const symbol s_2_136[8] = { 'a', 's', 't', 'a', 'j', 'a', 'l', 'a' }; +static const symbol s_2_137[8] = { 'i', 's', 't', 'a', 'j', 'a', 'l', 'a' }; +static const symbol s_2_138[8] = { 'o', 's', 't', 'a', 'j', 'a', 'l', 'a' }; +static const symbol s_2_139[5] = { 'i', 'j', 'a', 'l', 'a' }; +static const symbol s_2_140[6] = { 'i', 'n', 'j', 'a', 'l', 'a' }; +static const symbol s_2_141[4] = { 'n', 'a', 'l', 'a' }; +static const symbol s_2_142[5] = { 'i', 'r', 'a', 'l', 'a' }; +static const symbol s_2_143[5] = { 'u', 'r', 'a', 'l', 'a' }; +static const symbol s_2_144[4] = { 't', 'a', 'l', 'a' }; +static const symbol s_2_145[6] = { 'a', 's', 't', 'a', 'l', 'a' }; +static const symbol s_2_146[6] = { 'i', 's', 't', 'a', 'l', 'a' }; +static const symbol s_2_147[6] = { 'o', 's', 't', 'a', 'l', 'a' }; +static const symbol s_2_148[5] = { 'a', 'v', 'a', 'l', 'a' }; +static const symbol s_2_149[5] = { 'e', 'v', 'a', 'l', 'a' }; +static const symbol s_2_150[5] = { 'i', 'v', 'a', 'l', 'a' }; +static const symbol s_2_151[5] = { 'o', 'v', 'a', 'l', 'a' }; +static const symbol s_2_152[5] = { 'u', 'v', 'a', 'l', 'a' }; +static const symbol s_2_153[6] = { 'a', 0xC4, 0x8D, 'a', 'l', 'a' }; +static const symbol s_2_154[3] = { 'e', 'l', 'a' }; +static const symbol s_2_155[3] = { 'i', 'l', 'a' }; +static const symbol s_2_156[5] = { 'a', 'c', 'i', 'l', 'a' }; +static const symbol s_2_157[6] = { 'l', 'u', 'c', 'i', 'l', 'a' }; +static const symbol s_2_158[4] = { 'n', 'i', 'l', 'a' }; +static const symbol s_2_159[8] = { 'a', 's', 't', 'a', 'n', 'i', 'l', 'a' }; +static const symbol s_2_160[8] = { 'i', 's', 't', 'a', 'n', 'i', 'l', 'a' }; +static const symbol s_2_161[8] = { 'o', 's', 't', 'a', 'n', 'i', 'l', 'a' }; +static const symbol s_2_162[6] = { 'r', 'o', 's', 'i', 'l', 'a' }; +static const symbol s_2_163[6] = { 'j', 'e', 't', 'i', 'l', 'a' }; +static const symbol s_2_164[5] = { 'o', 'z', 'i', 'l', 'a' }; +static const symbol s_2_165[6] = { 'a', 0xC4, 0x8D, 'i', 'l', 'a' }; +static const symbol s_2_166[7] = { 'l', 'u', 0xC4, 0x8D, 'i', 'l', 'a' }; +static const symbol s_2_167[7] = { 'r', 'o', 0xC5, 0xA1, 'i', 'l', 'a' }; +static const symbol s_2_168[3] = { 'o', 'l', 'a' }; +static const symbol s_2_169[4] = { 'a', 's', 'l', 'a' }; +static const symbol s_2_170[4] = { 'n', 'u', 'l', 'a' }; +static const symbol s_2_171[4] = { 'g', 'a', 'm', 'a' }; +static const symbol s_2_172[6] = { 'l', 'o', 'g', 'a', 'm', 'a' }; +static const symbol s_2_173[5] = { 'u', 'g', 'a', 'm', 'a' }; +static const symbol s_2_174[5] = { 'a', 'j', 'a', 'm', 'a' }; +static const symbol s_2_175[6] = { 'c', 'a', 'j', 'a', 'm', 'a' }; +static const symbol s_2_176[6] = { 'l', 'a', 'j', 'a', 'm', 'a' }; +static const symbol s_2_177[6] = { 'r', 'a', 'j', 'a', 'm', 'a' }; +static const symbol s_2_178[7] = { 0xC4, 0x87, 'a', 'j', 'a', 'm', 'a' }; +static const symbol s_2_179[7] = { 0xC4, 0x8D, 'a', 'j', 'a', 'm', 'a' }; +static const symbol s_2_180[7] = { 0xC4, 0x91, 'a', 'j', 'a', 'm', 'a' }; +static const symbol s_2_181[6] = { 'b', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_182[6] = { 'c', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_183[6] = { 'd', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_184[6] = { 'f', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_185[6] = { 'g', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_186[6] = { 'l', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_187[6] = { 'm', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_188[6] = { 'n', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_189[8] = { 'g', 'a', 'n', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_190[8] = { 'm', 'a', 'n', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_191[8] = { 'p', 'a', 'n', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_192[8] = { 'r', 'a', 'n', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_193[8] = { 't', 'a', 'n', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_194[6] = { 'p', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_195[6] = { 'r', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_196[6] = { 's', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_197[6] = { 't', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_198[6] = { 'z', 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_199[7] = { 0xC5, 0xBE, 'i', 'j', 'a', 'm', 'a' }; +static const symbol s_2_200[5] = { 'a', 'l', 'a', 'm', 'a' }; +static const symbol s_2_201[7] = { 'i', 'j', 'a', 'l', 'a', 'm', 'a' }; +static const symbol s_2_202[6] = { 'n', 'a', 'l', 'a', 'm', 'a' }; +static const symbol s_2_203[5] = { 'e', 'l', 'a', 'm', 'a' }; +static const symbol s_2_204[5] = { 'i', 'l', 'a', 'm', 'a' }; +static const symbol s_2_205[6] = { 'r', 'a', 'm', 'a', 'm', 'a' }; +static const symbol s_2_206[6] = { 'l', 'e', 'm', 'a', 'm', 'a' }; +static const symbol s_2_207[5] = { 'i', 'n', 'a', 'm', 'a' }; +static const symbol s_2_208[6] = { 'c', 'i', 'n', 'a', 'm', 'a' }; +static const symbol s_2_209[7] = { 0xC4, 0x8D, 'i', 'n', 'a', 'm', 'a' }; +static const symbol s_2_210[4] = { 'r', 'a', 'm', 'a' }; +static const symbol s_2_211[5] = { 'a', 'r', 'a', 'm', 'a' }; +static const symbol s_2_212[5] = { 'd', 'r', 'a', 'm', 'a' }; +static const symbol s_2_213[5] = { 'e', 'r', 'a', 'm', 'a' }; +static const symbol s_2_214[5] = { 'o', 'r', 'a', 'm', 'a' }; +static const symbol s_2_215[6] = { 'b', 'a', 's', 'a', 'm', 'a' }; +static const symbol s_2_216[6] = { 'g', 'a', 's', 'a', 'm', 'a' }; +static const symbol s_2_217[6] = { 'j', 'a', 's', 'a', 'm', 'a' }; +static const symbol s_2_218[6] = { 'k', 'a', 's', 'a', 'm', 'a' }; +static const symbol s_2_219[6] = { 'n', 'a', 's', 'a', 'm', 'a' }; +static const symbol s_2_220[6] = { 't', 'a', 's', 'a', 'm', 'a' }; +static const symbol s_2_221[6] = { 'v', 'a', 's', 'a', 'm', 'a' }; +static const symbol s_2_222[5] = { 'e', 's', 'a', 'm', 'a' }; +static const symbol s_2_223[5] = { 'i', 's', 'a', 'm', 'a' }; +static const symbol s_2_224[5] = { 'e', 't', 'a', 'm', 'a' }; +static const symbol s_2_225[6] = { 'e', 's', 't', 'a', 'm', 'a' }; +static const symbol s_2_226[6] = { 'i', 's', 't', 'a', 'm', 'a' }; +static const symbol s_2_227[6] = { 'k', 's', 't', 'a', 'm', 'a' }; +static const symbol s_2_228[6] = { 'o', 's', 't', 'a', 'm', 'a' }; +static const symbol s_2_229[5] = { 'a', 'v', 'a', 'm', 'a' }; +static const symbol s_2_230[5] = { 'e', 'v', 'a', 'm', 'a' }; +static const symbol s_2_231[5] = { 'i', 'v', 'a', 'm', 'a' }; +static const symbol s_2_232[7] = { 'b', 'a', 0xC5, 0xA1, 'a', 'm', 'a' }; +static const symbol s_2_233[7] = { 'g', 'a', 0xC5, 0xA1, 'a', 'm', 'a' }; +static const symbol s_2_234[7] = { 'j', 'a', 0xC5, 0xA1, 'a', 'm', 'a' }; +static const symbol s_2_235[7] = { 'k', 'a', 0xC5, 0xA1, 'a', 'm', 'a' }; +static const symbol s_2_236[7] = { 'n', 'a', 0xC5, 0xA1, 'a', 'm', 'a' }; +static const symbol s_2_237[7] = { 't', 'a', 0xC5, 0xA1, 'a', 'm', 'a' }; +static const symbol s_2_238[7] = { 'v', 'a', 0xC5, 0xA1, 'a', 'm', 'a' }; +static const symbol s_2_239[6] = { 'e', 0xC5, 0xA1, 'a', 'm', 'a' }; +static const symbol s_2_240[6] = { 'i', 0xC5, 0xA1, 'a', 'm', 'a' }; +static const symbol s_2_241[4] = { 'l', 'e', 'm', 'a' }; +static const symbol s_2_242[5] = { 'a', 'c', 'i', 'm', 'a' }; +static const symbol s_2_243[5] = { 'e', 'c', 'i', 'm', 'a' }; +static const symbol s_2_244[5] = { 'u', 'c', 'i', 'm', 'a' }; +static const symbol s_2_245[5] = { 'a', 'j', 'i', 'm', 'a' }; +static const symbol s_2_246[6] = { 'c', 'a', 'j', 'i', 'm', 'a' }; +static const symbol s_2_247[6] = { 'l', 'a', 'j', 'i', 'm', 'a' }; +static const symbol s_2_248[6] = { 'r', 'a', 'j', 'i', 'm', 'a' }; +static const symbol s_2_249[7] = { 0xC4, 0x87, 'a', 'j', 'i', 'm', 'a' }; +static const symbol s_2_250[7] = { 0xC4, 0x8D, 'a', 'j', 'i', 'm', 'a' }; +static const symbol s_2_251[7] = { 0xC4, 0x91, 'a', 'j', 'i', 'm', 'a' }; +static const symbol s_2_252[6] = { 'b', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_253[6] = { 'c', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_254[6] = { 'd', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_255[6] = { 'f', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_256[6] = { 'g', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_257[8] = { 'a', 'n', 'j', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_258[8] = { 'e', 'n', 'j', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_259[8] = { 's', 'n', 'j', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_260[9] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_261[6] = { 'k', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_262[7] = { 's', 'k', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_263[8] = { 0xC5, 0xA1, 'k', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_264[6] = { 'l', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_265[7] = { 'e', 'l', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_266[6] = { 'm', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_267[6] = { 'n', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_268[8] = { 'g', 'a', 'n', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_269[8] = { 'm', 'a', 'n', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_270[8] = { 'p', 'a', 'n', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_271[8] = { 'r', 'a', 'n', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_272[8] = { 't', 'a', 'n', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_273[6] = { 'p', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_274[6] = { 'r', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_275[6] = { 's', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_276[7] = { 'o', 's', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_277[6] = { 't', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_278[7] = { 'a', 't', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_279[9] = { 'e', 'v', 'i', 't', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_280[9] = { 'o', 'v', 'i', 't', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_281[8] = { 'a', 's', 't', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_282[7] = { 'a', 'v', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_283[7] = { 'e', 'v', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_284[7] = { 'i', 'v', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_285[7] = { 'o', 'v', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_286[6] = { 'z', 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_287[8] = { 'o', 0xC5, 0xA1, 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_288[7] = { 0xC5, 0xBE, 'i', 'j', 'i', 'm', 'a' }; +static const symbol s_2_289[6] = { 'a', 'n', 'j', 'i', 'm', 'a' }; +static const symbol s_2_290[6] = { 'e', 'n', 'j', 'i', 'm', 'a' }; +static const symbol s_2_291[6] = { 's', 'n', 'j', 'i', 'm', 'a' }; +static const symbol s_2_292[7] = { 0xC5, 0xA1, 'n', 'j', 'i', 'm', 'a' }; +static const symbol s_2_293[4] = { 'k', 'i', 'm', 'a' }; +static const symbol s_2_294[5] = { 's', 'k', 'i', 'm', 'a' }; +static const symbol s_2_295[6] = { 0xC5, 0xA1, 'k', 'i', 'm', 'a' }; +static const symbol s_2_296[5] = { 'a', 'l', 'i', 'm', 'a' }; +static const symbol s_2_297[7] = { 'i', 'j', 'a', 'l', 'i', 'm', 'a' }; +static const symbol s_2_298[6] = { 'n', 'a', 'l', 'i', 'm', 'a' }; +static const symbol s_2_299[5] = { 'e', 'l', 'i', 'm', 'a' }; +static const symbol s_2_300[5] = { 'i', 'l', 'i', 'm', 'a' }; +static const symbol s_2_301[7] = { 'o', 'z', 'i', 'l', 'i', 'm', 'a' }; +static const symbol s_2_302[5] = { 'o', 'l', 'i', 'm', 'a' }; +static const symbol s_2_303[6] = { 'l', 'e', 'm', 'i', 'm', 'a' }; +static const symbol s_2_304[4] = { 'n', 'i', 'm', 'a' }; +static const symbol s_2_305[5] = { 'a', 'n', 'i', 'm', 'a' }; +static const symbol s_2_306[5] = { 'i', 'n', 'i', 'm', 'a' }; +static const symbol s_2_307[6] = { 'c', 'i', 'n', 'i', 'm', 'a' }; +static const symbol s_2_308[7] = { 0xC4, 0x8D, 'i', 'n', 'i', 'm', 'a' }; +static const symbol s_2_309[5] = { 'o', 'n', 'i', 'm', 'a' }; +static const symbol s_2_310[5] = { 'a', 'r', 'i', 'm', 'a' }; +static const symbol s_2_311[5] = { 'd', 'r', 'i', 'm', 'a' }; +static const symbol s_2_312[5] = { 'e', 'r', 'i', 'm', 'a' }; +static const symbol s_2_313[5] = { 'o', 'r', 'i', 'm', 'a' }; +static const symbol s_2_314[6] = { 'b', 'a', 's', 'i', 'm', 'a' }; +static const symbol s_2_315[6] = { 'g', 'a', 's', 'i', 'm', 'a' }; +static const symbol s_2_316[6] = { 'j', 'a', 's', 'i', 'm', 'a' }; +static const symbol s_2_317[6] = { 'k', 'a', 's', 'i', 'm', 'a' }; +static const symbol s_2_318[6] = { 'n', 'a', 's', 'i', 'm', 'a' }; +static const symbol s_2_319[6] = { 't', 'a', 's', 'i', 'm', 'a' }; +static const symbol s_2_320[6] = { 'v', 'a', 's', 'i', 'm', 'a' }; +static const symbol s_2_321[5] = { 'e', 's', 'i', 'm', 'a' }; +static const symbol s_2_322[5] = { 'i', 's', 'i', 'm', 'a' }; +static const symbol s_2_323[5] = { 'o', 's', 'i', 'm', 'a' }; +static const symbol s_2_324[5] = { 'a', 't', 'i', 'm', 'a' }; +static const symbol s_2_325[7] = { 'i', 'k', 'a', 't', 'i', 'm', 'a' }; +static const symbol s_2_326[6] = { 'l', 'a', 't', 'i', 'm', 'a' }; +static const symbol s_2_327[5] = { 'e', 't', 'i', 'm', 'a' }; +static const symbol s_2_328[7] = { 'e', 'v', 'i', 't', 'i', 'm', 'a' }; +static const symbol s_2_329[7] = { 'o', 'v', 'i', 't', 'i', 'm', 'a' }; +static const symbol s_2_330[6] = { 'a', 's', 't', 'i', 'm', 'a' }; +static const symbol s_2_331[6] = { 'e', 's', 't', 'i', 'm', 'a' }; +static const symbol s_2_332[6] = { 'i', 's', 't', 'i', 'm', 'a' }; +static const symbol s_2_333[6] = { 'k', 's', 't', 'i', 'm', 'a' }; +static const symbol s_2_334[6] = { 'o', 's', 't', 'i', 'm', 'a' }; +static const symbol s_2_335[7] = { 'i', 0xC5, 0xA1, 't', 'i', 'm', 'a' }; +static const symbol s_2_336[5] = { 'a', 'v', 'i', 'm', 'a' }; +static const symbol s_2_337[5] = { 'e', 'v', 'i', 'm', 'a' }; +static const symbol s_2_338[7] = { 'a', 'j', 'e', 'v', 'i', 'm', 'a' }; +static const symbol s_2_339[8] = { 'c', 'a', 'j', 'e', 'v', 'i', 'm', 'a' }; +static const symbol s_2_340[8] = { 'l', 'a', 'j', 'e', 'v', 'i', 'm', 'a' }; +static const symbol s_2_341[8] = { 'r', 'a', 'j', 'e', 'v', 'i', 'm', 'a' }; +static const symbol s_2_342[9] = { 0xC4, 0x87, 'a', 'j', 'e', 'v', 'i', 'm', 'a' }; +static const symbol s_2_343[9] = { 0xC4, 0x8D, 'a', 'j', 'e', 'v', 'i', 'm', 'a' }; +static const symbol s_2_344[9] = { 0xC4, 0x91, 'a', 'j', 'e', 'v', 'i', 'm', 'a' }; +static const symbol s_2_345[5] = { 'i', 'v', 'i', 'm', 'a' }; +static const symbol s_2_346[5] = { 'o', 'v', 'i', 'm', 'a' }; +static const symbol s_2_347[6] = { 'g', 'o', 'v', 'i', 'm', 'a' }; +static const symbol s_2_348[7] = { 'u', 'g', 'o', 'v', 'i', 'm', 'a' }; +static const symbol s_2_349[6] = { 'l', 'o', 'v', 'i', 'm', 'a' }; +static const symbol s_2_350[7] = { 'o', 'l', 'o', 'v', 'i', 'm', 'a' }; +static const symbol s_2_351[6] = { 'm', 'o', 'v', 'i', 'm', 'a' }; +static const symbol s_2_352[7] = { 'o', 'n', 'o', 'v', 'i', 'm', 'a' }; +static const symbol s_2_353[6] = { 's', 't', 'v', 'i', 'm', 'a' }; +static const symbol s_2_354[7] = { 0xC5, 0xA1, 't', 'v', 'i', 'm', 'a' }; +static const symbol s_2_355[6] = { 'a', 0xC4, 0x87, 'i', 'm', 'a' }; +static const symbol s_2_356[6] = { 'e', 0xC4, 0x87, 'i', 'm', 'a' }; +static const symbol s_2_357[6] = { 'u', 0xC4, 0x87, 'i', 'm', 'a' }; +static const symbol s_2_358[7] = { 'b', 'a', 0xC5, 0xA1, 'i', 'm', 'a' }; +static const symbol s_2_359[7] = { 'g', 'a', 0xC5, 0xA1, 'i', 'm', 'a' }; +static const symbol s_2_360[7] = { 'j', 'a', 0xC5, 0xA1, 'i', 'm', 'a' }; +static const symbol s_2_361[7] = { 'k', 'a', 0xC5, 0xA1, 'i', 'm', 'a' }; +static const symbol s_2_362[7] = { 'n', 'a', 0xC5, 0xA1, 'i', 'm', 'a' }; +static const symbol s_2_363[7] = { 't', 'a', 0xC5, 0xA1, 'i', 'm', 'a' }; +static const symbol s_2_364[7] = { 'v', 'a', 0xC5, 0xA1, 'i', 'm', 'a' }; +static const symbol s_2_365[6] = { 'e', 0xC5, 0xA1, 'i', 'm', 'a' }; +static const symbol s_2_366[6] = { 'i', 0xC5, 0xA1, 'i', 'm', 'a' }; +static const symbol s_2_367[6] = { 'o', 0xC5, 0xA1, 'i', 'm', 'a' }; +static const symbol s_2_368[2] = { 'n', 'a' }; +static const symbol s_2_369[3] = { 'a', 'n', 'a' }; +static const symbol s_2_370[5] = { 'a', 'c', 'a', 'n', 'a' }; +static const symbol s_2_371[5] = { 'u', 'r', 'a', 'n', 'a' }; +static const symbol s_2_372[4] = { 't', 'a', 'n', 'a' }; +static const symbol s_2_373[5] = { 'a', 'v', 'a', 'n', 'a' }; +static const symbol s_2_374[5] = { 'e', 'v', 'a', 'n', 'a' }; +static const symbol s_2_375[5] = { 'i', 'v', 'a', 'n', 'a' }; +static const symbol s_2_376[5] = { 'u', 'v', 'a', 'n', 'a' }; +static const symbol s_2_377[6] = { 'a', 0xC4, 0x8D, 'a', 'n', 'a' }; +static const symbol s_2_378[5] = { 'a', 'c', 'e', 'n', 'a' }; +static const symbol s_2_379[6] = { 'l', 'u', 'c', 'e', 'n', 'a' }; +static const symbol s_2_380[6] = { 'a', 0xC4, 0x8D, 'e', 'n', 'a' }; +static const symbol s_2_381[7] = { 'l', 'u', 0xC4, 0x8D, 'e', 'n', 'a' }; +static const symbol s_2_382[3] = { 'i', 'n', 'a' }; +static const symbol s_2_383[4] = { 'c', 'i', 'n', 'a' }; +static const symbol s_2_384[5] = { 'a', 'n', 'i', 'n', 'a' }; +static const symbol s_2_385[5] = { 0xC4, 0x8D, 'i', 'n', 'a' }; +static const symbol s_2_386[3] = { 'o', 'n', 'a' }; +static const symbol s_2_387[3] = { 'a', 'r', 'a' }; +static const symbol s_2_388[3] = { 'd', 'r', 'a' }; +static const symbol s_2_389[3] = { 'e', 'r', 'a' }; +static const symbol s_2_390[3] = { 'o', 'r', 'a' }; +static const symbol s_2_391[4] = { 'b', 'a', 's', 'a' }; +static const symbol s_2_392[4] = { 'g', 'a', 's', 'a' }; +static const symbol s_2_393[4] = { 'j', 'a', 's', 'a' }; +static const symbol s_2_394[4] = { 'k', 'a', 's', 'a' }; +static const symbol s_2_395[4] = { 'n', 'a', 's', 'a' }; +static const symbol s_2_396[4] = { 't', 'a', 's', 'a' }; +static const symbol s_2_397[4] = { 'v', 'a', 's', 'a' }; +static const symbol s_2_398[3] = { 'e', 's', 'a' }; +static const symbol s_2_399[3] = { 'i', 's', 'a' }; +static const symbol s_2_400[3] = { 'o', 's', 'a' }; +static const symbol s_2_401[3] = { 'a', 't', 'a' }; +static const symbol s_2_402[5] = { 'i', 'k', 'a', 't', 'a' }; +static const symbol s_2_403[4] = { 'l', 'a', 't', 'a' }; +static const symbol s_2_404[3] = { 'e', 't', 'a' }; +static const symbol s_2_405[5] = { 'e', 'v', 'i', 't', 'a' }; +static const symbol s_2_406[5] = { 'o', 'v', 'i', 't', 'a' }; +static const symbol s_2_407[4] = { 'a', 's', 't', 'a' }; +static const symbol s_2_408[4] = { 'e', 's', 't', 'a' }; +static const symbol s_2_409[4] = { 'i', 's', 't', 'a' }; +static const symbol s_2_410[4] = { 'k', 's', 't', 'a' }; +static const symbol s_2_411[4] = { 'o', 's', 't', 'a' }; +static const symbol s_2_412[4] = { 'n', 'u', 't', 'a' }; +static const symbol s_2_413[5] = { 'i', 0xC5, 0xA1, 't', 'a' }; +static const symbol s_2_414[3] = { 'a', 'v', 'a' }; +static const symbol s_2_415[3] = { 'e', 'v', 'a' }; +static const symbol s_2_416[5] = { 'a', 'j', 'e', 'v', 'a' }; +static const symbol s_2_417[6] = { 'c', 'a', 'j', 'e', 'v', 'a' }; +static const symbol s_2_418[6] = { 'l', 'a', 'j', 'e', 'v', 'a' }; +static const symbol s_2_419[6] = { 'r', 'a', 'j', 'e', 'v', 'a' }; +static const symbol s_2_420[7] = { 0xC4, 0x87, 'a', 'j', 'e', 'v', 'a' }; +static const symbol s_2_421[7] = { 0xC4, 0x8D, 'a', 'j', 'e', 'v', 'a' }; +static const symbol s_2_422[7] = { 0xC4, 0x91, 'a', 'j', 'e', 'v', 'a' }; +static const symbol s_2_423[3] = { 'i', 'v', 'a' }; +static const symbol s_2_424[3] = { 'o', 'v', 'a' }; +static const symbol s_2_425[4] = { 'g', 'o', 'v', 'a' }; +static const symbol s_2_426[5] = { 'u', 'g', 'o', 'v', 'a' }; +static const symbol s_2_427[4] = { 'l', 'o', 'v', 'a' }; +static const symbol s_2_428[5] = { 'o', 'l', 'o', 'v', 'a' }; +static const symbol s_2_429[4] = { 'm', 'o', 'v', 'a' }; +static const symbol s_2_430[5] = { 'o', 'n', 'o', 'v', 'a' }; +static const symbol s_2_431[4] = { 's', 't', 'v', 'a' }; +static const symbol s_2_432[5] = { 0xC5, 0xA1, 't', 'v', 'a' }; +static const symbol s_2_433[4] = { 'a', 0xC4, 0x87, 'a' }; +static const symbol s_2_434[4] = { 'e', 0xC4, 0x87, 'a' }; +static const symbol s_2_435[4] = { 'u', 0xC4, 0x87, 'a' }; +static const symbol s_2_436[5] = { 'b', 'a', 0xC5, 0xA1, 'a' }; +static const symbol s_2_437[5] = { 'g', 'a', 0xC5, 0xA1, 'a' }; +static const symbol s_2_438[5] = { 'j', 'a', 0xC5, 0xA1, 'a' }; +static const symbol s_2_439[5] = { 'k', 'a', 0xC5, 0xA1, 'a' }; +static const symbol s_2_440[5] = { 'n', 'a', 0xC5, 0xA1, 'a' }; +static const symbol s_2_441[5] = { 't', 'a', 0xC5, 0xA1, 'a' }; +static const symbol s_2_442[5] = { 'v', 'a', 0xC5, 0xA1, 'a' }; +static const symbol s_2_443[4] = { 'e', 0xC5, 0xA1, 'a' }; +static const symbol s_2_444[4] = { 'i', 0xC5, 0xA1, 'a' }; +static const symbol s_2_445[4] = { 'o', 0xC5, 0xA1, 'a' }; +static const symbol s_2_446[3] = { 'a', 'c', 'e' }; +static const symbol s_2_447[3] = { 'e', 'c', 'e' }; +static const symbol s_2_448[3] = { 'u', 'c', 'e' }; +static const symbol s_2_449[4] = { 'l', 'u', 'c', 'e' }; +static const symbol s_2_450[6] = { 'a', 's', 't', 'a', 'd', 'e' }; +static const symbol s_2_451[6] = { 'i', 's', 't', 'a', 'd', 'e' }; +static const symbol s_2_452[6] = { 'o', 's', 't', 'a', 'd', 'e' }; +static const symbol s_2_453[2] = { 'g', 'e' }; +static const symbol s_2_454[4] = { 'l', 'o', 'g', 'e' }; +static const symbol s_2_455[3] = { 'u', 'g', 'e' }; +static const symbol s_2_456[3] = { 'a', 'j', 'e' }; +static const symbol s_2_457[4] = { 'c', 'a', 'j', 'e' }; +static const symbol s_2_458[4] = { 'l', 'a', 'j', 'e' }; +static const symbol s_2_459[4] = { 'r', 'a', 'j', 'e' }; +static const symbol s_2_460[6] = { 'a', 's', 't', 'a', 'j', 'e' }; +static const symbol s_2_461[6] = { 'i', 's', 't', 'a', 'j', 'e' }; +static const symbol s_2_462[6] = { 'o', 's', 't', 'a', 'j', 'e' }; +static const symbol s_2_463[5] = { 0xC4, 0x87, 'a', 'j', 'e' }; +static const symbol s_2_464[5] = { 0xC4, 0x8D, 'a', 'j', 'e' }; +static const symbol s_2_465[5] = { 0xC4, 0x91, 'a', 'j', 'e' }; +static const symbol s_2_466[3] = { 'i', 'j', 'e' }; +static const symbol s_2_467[4] = { 'b', 'i', 'j', 'e' }; +static const symbol s_2_468[4] = { 'c', 'i', 'j', 'e' }; +static const symbol s_2_469[4] = { 'd', 'i', 'j', 'e' }; +static const symbol s_2_470[4] = { 'f', 'i', 'j', 'e' }; +static const symbol s_2_471[4] = { 'g', 'i', 'j', 'e' }; +static const symbol s_2_472[6] = { 'a', 'n', 'j', 'i', 'j', 'e' }; +static const symbol s_2_473[6] = { 'e', 'n', 'j', 'i', 'j', 'e' }; +static const symbol s_2_474[6] = { 's', 'n', 'j', 'i', 'j', 'e' }; +static const symbol s_2_475[7] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'e' }; +static const symbol s_2_476[4] = { 'k', 'i', 'j', 'e' }; +static const symbol s_2_477[5] = { 's', 'k', 'i', 'j', 'e' }; +static const symbol s_2_478[6] = { 0xC5, 0xA1, 'k', 'i', 'j', 'e' }; +static const symbol s_2_479[4] = { 'l', 'i', 'j', 'e' }; +static const symbol s_2_480[5] = { 'e', 'l', 'i', 'j', 'e' }; +static const symbol s_2_481[4] = { 'm', 'i', 'j', 'e' }; +static const symbol s_2_482[4] = { 'n', 'i', 'j', 'e' }; +static const symbol s_2_483[6] = { 'g', 'a', 'n', 'i', 'j', 'e' }; +static const symbol s_2_484[6] = { 'm', 'a', 'n', 'i', 'j', 'e' }; +static const symbol s_2_485[6] = { 'p', 'a', 'n', 'i', 'j', 'e' }; +static const symbol s_2_486[6] = { 'r', 'a', 'n', 'i', 'j', 'e' }; +static const symbol s_2_487[6] = { 't', 'a', 'n', 'i', 'j', 'e' }; +static const symbol s_2_488[4] = { 'p', 'i', 'j', 'e' }; +static const symbol s_2_489[4] = { 'r', 'i', 'j', 'e' }; +static const symbol s_2_490[4] = { 's', 'i', 'j', 'e' }; +static const symbol s_2_491[5] = { 'o', 's', 'i', 'j', 'e' }; +static const symbol s_2_492[4] = { 't', 'i', 'j', 'e' }; +static const symbol s_2_493[5] = { 'a', 't', 'i', 'j', 'e' }; +static const symbol s_2_494[7] = { 'e', 'v', 'i', 't', 'i', 'j', 'e' }; +static const symbol s_2_495[7] = { 'o', 'v', 'i', 't', 'i', 'j', 'e' }; +static const symbol s_2_496[6] = { 'a', 's', 't', 'i', 'j', 'e' }; +static const symbol s_2_497[5] = { 'a', 'v', 'i', 'j', 'e' }; +static const symbol s_2_498[5] = { 'e', 'v', 'i', 'j', 'e' }; +static const symbol s_2_499[5] = { 'i', 'v', 'i', 'j', 'e' }; +static const symbol s_2_500[5] = { 'o', 'v', 'i', 'j', 'e' }; +static const symbol s_2_501[4] = { 'z', 'i', 'j', 'e' }; +static const symbol s_2_502[6] = { 'o', 0xC5, 0xA1, 'i', 'j', 'e' }; +static const symbol s_2_503[5] = { 0xC5, 0xBE, 'i', 'j', 'e' }; +static const symbol s_2_504[4] = { 'a', 'n', 'j', 'e' }; +static const symbol s_2_505[4] = { 'e', 'n', 'j', 'e' }; +static const symbol s_2_506[4] = { 's', 'n', 'j', 'e' }; +static const symbol s_2_507[5] = { 0xC5, 0xA1, 'n', 'j', 'e' }; +static const symbol s_2_508[3] = { 'u', 'j', 'e' }; +static const symbol s_2_509[6] = { 'l', 'u', 'c', 'u', 'j', 'e' }; +static const symbol s_2_510[5] = { 'i', 'r', 'u', 'j', 'e' }; +static const symbol s_2_511[7] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 'e' }; +static const symbol s_2_512[2] = { 'k', 'e' }; +static const symbol s_2_513[3] = { 's', 'k', 'e' }; +static const symbol s_2_514[4] = { 0xC5, 0xA1, 'k', 'e' }; +static const symbol s_2_515[3] = { 'a', 'l', 'e' }; +static const symbol s_2_516[5] = { 'a', 'c', 'a', 'l', 'e' }; +static const symbol s_2_517[8] = { 'a', 's', 't', 'a', 'j', 'a', 'l', 'e' }; +static const symbol s_2_518[8] = { 'i', 's', 't', 'a', 'j', 'a', 'l', 'e' }; +static const symbol s_2_519[8] = { 'o', 's', 't', 'a', 'j', 'a', 'l', 'e' }; +static const symbol s_2_520[5] = { 'i', 'j', 'a', 'l', 'e' }; +static const symbol s_2_521[6] = { 'i', 'n', 'j', 'a', 'l', 'e' }; +static const symbol s_2_522[4] = { 'n', 'a', 'l', 'e' }; +static const symbol s_2_523[5] = { 'i', 'r', 'a', 'l', 'e' }; +static const symbol s_2_524[5] = { 'u', 'r', 'a', 'l', 'e' }; +static const symbol s_2_525[4] = { 't', 'a', 'l', 'e' }; +static const symbol s_2_526[6] = { 'a', 's', 't', 'a', 'l', 'e' }; +static const symbol s_2_527[6] = { 'i', 's', 't', 'a', 'l', 'e' }; +static const symbol s_2_528[6] = { 'o', 's', 't', 'a', 'l', 'e' }; +static const symbol s_2_529[5] = { 'a', 'v', 'a', 'l', 'e' }; +static const symbol s_2_530[5] = { 'e', 'v', 'a', 'l', 'e' }; +static const symbol s_2_531[5] = { 'i', 'v', 'a', 'l', 'e' }; +static const symbol s_2_532[5] = { 'o', 'v', 'a', 'l', 'e' }; +static const symbol s_2_533[5] = { 'u', 'v', 'a', 'l', 'e' }; +static const symbol s_2_534[6] = { 'a', 0xC4, 0x8D, 'a', 'l', 'e' }; +static const symbol s_2_535[3] = { 'e', 'l', 'e' }; +static const symbol s_2_536[3] = { 'i', 'l', 'e' }; +static const symbol s_2_537[5] = { 'a', 'c', 'i', 'l', 'e' }; +static const symbol s_2_538[6] = { 'l', 'u', 'c', 'i', 'l', 'e' }; +static const symbol s_2_539[4] = { 'n', 'i', 'l', 'e' }; +static const symbol s_2_540[6] = { 'r', 'o', 's', 'i', 'l', 'e' }; +static const symbol s_2_541[6] = { 'j', 'e', 't', 'i', 'l', 'e' }; +static const symbol s_2_542[5] = { 'o', 'z', 'i', 'l', 'e' }; +static const symbol s_2_543[6] = { 'a', 0xC4, 0x8D, 'i', 'l', 'e' }; +static const symbol s_2_544[7] = { 'l', 'u', 0xC4, 0x8D, 'i', 'l', 'e' }; +static const symbol s_2_545[7] = { 'r', 'o', 0xC5, 0xA1, 'i', 'l', 'e' }; +static const symbol s_2_546[3] = { 'o', 'l', 'e' }; +static const symbol s_2_547[4] = { 'a', 's', 'l', 'e' }; +static const symbol s_2_548[4] = { 'n', 'u', 'l', 'e' }; +static const symbol s_2_549[4] = { 'r', 'a', 'm', 'e' }; +static const symbol s_2_550[4] = { 'l', 'e', 'm', 'e' }; +static const symbol s_2_551[5] = { 'a', 'c', 'o', 'm', 'e' }; +static const symbol s_2_552[5] = { 'e', 'c', 'o', 'm', 'e' }; +static const symbol s_2_553[5] = { 'u', 'c', 'o', 'm', 'e' }; +static const symbol s_2_554[6] = { 'a', 'n', 'j', 'o', 'm', 'e' }; +static const symbol s_2_555[6] = { 'e', 'n', 'j', 'o', 'm', 'e' }; +static const symbol s_2_556[6] = { 's', 'n', 'j', 'o', 'm', 'e' }; +static const symbol s_2_557[7] = { 0xC5, 0xA1, 'n', 'j', 'o', 'm', 'e' }; +static const symbol s_2_558[4] = { 'k', 'o', 'm', 'e' }; +static const symbol s_2_559[5] = { 's', 'k', 'o', 'm', 'e' }; +static const symbol s_2_560[6] = { 0xC5, 0xA1, 'k', 'o', 'm', 'e' }; +static const symbol s_2_561[5] = { 'e', 'l', 'o', 'm', 'e' }; +static const symbol s_2_562[4] = { 'n', 'o', 'm', 'e' }; +static const symbol s_2_563[6] = { 'c', 'i', 'n', 'o', 'm', 'e' }; +static const symbol s_2_564[7] = { 0xC4, 0x8D, 'i', 'n', 'o', 'm', 'e' }; +static const symbol s_2_565[5] = { 'o', 's', 'o', 'm', 'e' }; +static const symbol s_2_566[5] = { 'a', 't', 'o', 'm', 'e' }; +static const symbol s_2_567[7] = { 'e', 'v', 'i', 't', 'o', 'm', 'e' }; +static const symbol s_2_568[7] = { 'o', 'v', 'i', 't', 'o', 'm', 'e' }; +static const symbol s_2_569[6] = { 'a', 's', 't', 'o', 'm', 'e' }; +static const symbol s_2_570[5] = { 'a', 'v', 'o', 'm', 'e' }; +static const symbol s_2_571[5] = { 'e', 'v', 'o', 'm', 'e' }; +static const symbol s_2_572[5] = { 'i', 'v', 'o', 'm', 'e' }; +static const symbol s_2_573[5] = { 'o', 'v', 'o', 'm', 'e' }; +static const symbol s_2_574[6] = { 'a', 0xC4, 0x87, 'o', 'm', 'e' }; +static const symbol s_2_575[6] = { 'e', 0xC4, 0x87, 'o', 'm', 'e' }; +static const symbol s_2_576[6] = { 'u', 0xC4, 0x87, 'o', 'm', 'e' }; +static const symbol s_2_577[6] = { 'o', 0xC5, 0xA1, 'o', 'm', 'e' }; +static const symbol s_2_578[2] = { 'n', 'e' }; +static const symbol s_2_579[3] = { 'a', 'n', 'e' }; +static const symbol s_2_580[5] = { 'a', 'c', 'a', 'n', 'e' }; +static const symbol s_2_581[5] = { 'u', 'r', 'a', 'n', 'e' }; +static const symbol s_2_582[4] = { 't', 'a', 'n', 'e' }; +static const symbol s_2_583[6] = { 'a', 's', 't', 'a', 'n', 'e' }; +static const symbol s_2_584[6] = { 'i', 's', 't', 'a', 'n', 'e' }; +static const symbol s_2_585[6] = { 'o', 's', 't', 'a', 'n', 'e' }; +static const symbol s_2_586[5] = { 'a', 'v', 'a', 'n', 'e' }; +static const symbol s_2_587[5] = { 'e', 'v', 'a', 'n', 'e' }; +static const symbol s_2_588[5] = { 'i', 'v', 'a', 'n', 'e' }; +static const symbol s_2_589[5] = { 'u', 'v', 'a', 'n', 'e' }; +static const symbol s_2_590[6] = { 'a', 0xC4, 0x8D, 'a', 'n', 'e' }; +static const symbol s_2_591[5] = { 'a', 'c', 'e', 'n', 'e' }; +static const symbol s_2_592[6] = { 'l', 'u', 'c', 'e', 'n', 'e' }; +static const symbol s_2_593[6] = { 'a', 0xC4, 0x8D, 'e', 'n', 'e' }; +static const symbol s_2_594[7] = { 'l', 'u', 0xC4, 0x8D, 'e', 'n', 'e' }; +static const symbol s_2_595[3] = { 'i', 'n', 'e' }; +static const symbol s_2_596[4] = { 'c', 'i', 'n', 'e' }; +static const symbol s_2_597[5] = { 'a', 'n', 'i', 'n', 'e' }; +static const symbol s_2_598[5] = { 0xC4, 0x8D, 'i', 'n', 'e' }; +static const symbol s_2_599[3] = { 'o', 'n', 'e' }; +static const symbol s_2_600[3] = { 'a', 'r', 'e' }; +static const symbol s_2_601[3] = { 'd', 'r', 'e' }; +static const symbol s_2_602[3] = { 'e', 'r', 'e' }; +static const symbol s_2_603[3] = { 'o', 'r', 'e' }; +static const symbol s_2_604[3] = { 'a', 's', 'e' }; +static const symbol s_2_605[4] = { 'b', 'a', 's', 'e' }; +static const symbol s_2_606[5] = { 'a', 'c', 'a', 's', 'e' }; +static const symbol s_2_607[4] = { 'g', 'a', 's', 'e' }; +static const symbol s_2_608[4] = { 'j', 'a', 's', 'e' }; +static const symbol s_2_609[8] = { 'a', 's', 't', 'a', 'j', 'a', 's', 'e' }; +static const symbol s_2_610[8] = { 'i', 's', 't', 'a', 'j', 'a', 's', 'e' }; +static const symbol s_2_611[8] = { 'o', 's', 't', 'a', 'j', 'a', 's', 'e' }; +static const symbol s_2_612[6] = { 'i', 'n', 'j', 'a', 's', 'e' }; +static const symbol s_2_613[4] = { 'k', 'a', 's', 'e' }; +static const symbol s_2_614[4] = { 'n', 'a', 's', 'e' }; +static const symbol s_2_615[5] = { 'i', 'r', 'a', 's', 'e' }; +static const symbol s_2_616[5] = { 'u', 'r', 'a', 's', 'e' }; +static const symbol s_2_617[4] = { 't', 'a', 's', 'e' }; +static const symbol s_2_618[4] = { 'v', 'a', 's', 'e' }; +static const symbol s_2_619[5] = { 'a', 'v', 'a', 's', 'e' }; +static const symbol s_2_620[5] = { 'e', 'v', 'a', 's', 'e' }; +static const symbol s_2_621[5] = { 'i', 'v', 'a', 's', 'e' }; +static const symbol s_2_622[5] = { 'o', 'v', 'a', 's', 'e' }; +static const symbol s_2_623[5] = { 'u', 'v', 'a', 's', 'e' }; +static const symbol s_2_624[3] = { 'e', 's', 'e' }; +static const symbol s_2_625[3] = { 'i', 's', 'e' }; +static const symbol s_2_626[5] = { 'a', 'c', 'i', 's', 'e' }; +static const symbol s_2_627[6] = { 'l', 'u', 'c', 'i', 's', 'e' }; +static const symbol s_2_628[6] = { 'r', 'o', 's', 'i', 's', 'e' }; +static const symbol s_2_629[6] = { 'j', 'e', 't', 'i', 's', 'e' }; +static const symbol s_2_630[3] = { 'o', 's', 'e' }; +static const symbol s_2_631[8] = { 'a', 's', 't', 'a', 'd', 'o', 's', 'e' }; +static const symbol s_2_632[8] = { 'i', 's', 't', 'a', 'd', 'o', 's', 'e' }; +static const symbol s_2_633[8] = { 'o', 's', 't', 'a', 'd', 'o', 's', 'e' }; +static const symbol s_2_634[3] = { 'a', 't', 'e' }; +static const symbol s_2_635[5] = { 'a', 'c', 'a', 't', 'e' }; +static const symbol s_2_636[5] = { 'i', 'k', 'a', 't', 'e' }; +static const symbol s_2_637[4] = { 'l', 'a', 't', 'e' }; +static const symbol s_2_638[5] = { 'i', 'r', 'a', 't', 'e' }; +static const symbol s_2_639[5] = { 'u', 'r', 'a', 't', 'e' }; +static const symbol s_2_640[4] = { 't', 'a', 't', 'e' }; +static const symbol s_2_641[5] = { 'a', 'v', 'a', 't', 'e' }; +static const symbol s_2_642[5] = { 'e', 'v', 'a', 't', 'e' }; +static const symbol s_2_643[5] = { 'i', 'v', 'a', 't', 'e' }; +static const symbol s_2_644[5] = { 'u', 'v', 'a', 't', 'e' }; +static const symbol s_2_645[6] = { 'a', 0xC4, 0x8D, 'a', 't', 'e' }; +static const symbol s_2_646[3] = { 'e', 't', 'e' }; +static const symbol s_2_647[8] = { 'a', 's', 't', 'a', 'd', 'e', 't', 'e' }; +static const symbol s_2_648[8] = { 'i', 's', 't', 'a', 'd', 'e', 't', 'e' }; +static const symbol s_2_649[8] = { 'o', 's', 't', 'a', 'd', 'e', 't', 'e' }; +static const symbol s_2_650[8] = { 'a', 's', 't', 'a', 'j', 'e', 't', 'e' }; +static const symbol s_2_651[8] = { 'i', 's', 't', 'a', 'j', 'e', 't', 'e' }; +static const symbol s_2_652[8] = { 'o', 's', 't', 'a', 'j', 'e', 't', 'e' }; +static const symbol s_2_653[5] = { 'i', 'j', 'e', 't', 'e' }; +static const symbol s_2_654[6] = { 'i', 'n', 'j', 'e', 't', 'e' }; +static const symbol s_2_655[5] = { 'u', 'j', 'e', 't', 'e' }; +static const symbol s_2_656[8] = { 'l', 'u', 'c', 'u', 'j', 'e', 't', 'e' }; +static const symbol s_2_657[7] = { 'i', 'r', 'u', 'j', 'e', 't', 'e' }; +static const symbol s_2_658[9] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 'e', 't', 'e' }; +static const symbol s_2_659[4] = { 'n', 'e', 't', 'e' }; +static const symbol s_2_660[8] = { 'a', 's', 't', 'a', 'n', 'e', 't', 'e' }; +static const symbol s_2_661[8] = { 'i', 's', 't', 'a', 'n', 'e', 't', 'e' }; +static const symbol s_2_662[8] = { 'o', 's', 't', 'a', 'n', 'e', 't', 'e' }; +static const symbol s_2_663[6] = { 'a', 's', 't', 'e', 't', 'e' }; +static const symbol s_2_664[3] = { 'i', 't', 'e' }; +static const symbol s_2_665[5] = { 'a', 'c', 'i', 't', 'e' }; +static const symbol s_2_666[6] = { 'l', 'u', 'c', 'i', 't', 'e' }; +static const symbol s_2_667[4] = { 'n', 'i', 't', 'e' }; +static const symbol s_2_668[8] = { 'a', 's', 't', 'a', 'n', 'i', 't', 'e' }; +static const symbol s_2_669[8] = { 'i', 's', 't', 'a', 'n', 'i', 't', 'e' }; +static const symbol s_2_670[8] = { 'o', 's', 't', 'a', 'n', 'i', 't', 'e' }; +static const symbol s_2_671[6] = { 'r', 'o', 's', 'i', 't', 'e' }; +static const symbol s_2_672[6] = { 'j', 'e', 't', 'i', 't', 'e' }; +static const symbol s_2_673[6] = { 'a', 's', 't', 'i', 't', 'e' }; +static const symbol s_2_674[5] = { 'e', 'v', 'i', 't', 'e' }; +static const symbol s_2_675[5] = { 'o', 'v', 'i', 't', 'e' }; +static const symbol s_2_676[6] = { 'a', 0xC4, 0x8D, 'i', 't', 'e' }; +static const symbol s_2_677[7] = { 'l', 'u', 0xC4, 0x8D, 'i', 't', 'e' }; +static const symbol s_2_678[7] = { 'r', 'o', 0xC5, 0xA1, 'i', 't', 'e' }; +static const symbol s_2_679[4] = { 'a', 'j', 't', 'e' }; +static const symbol s_2_680[6] = { 'u', 'r', 'a', 'j', 't', 'e' }; +static const symbol s_2_681[5] = { 't', 'a', 'j', 't', 'e' }; +static const symbol s_2_682[7] = { 'a', 's', 't', 'a', 'j', 't', 'e' }; +static const symbol s_2_683[7] = { 'i', 's', 't', 'a', 'j', 't', 'e' }; +static const symbol s_2_684[7] = { 'o', 's', 't', 'a', 'j', 't', 'e' }; +static const symbol s_2_685[6] = { 'a', 'v', 'a', 'j', 't', 'e' }; +static const symbol s_2_686[6] = { 'e', 'v', 'a', 'j', 't', 'e' }; +static const symbol s_2_687[6] = { 'i', 'v', 'a', 'j', 't', 'e' }; +static const symbol s_2_688[6] = { 'u', 'v', 'a', 'j', 't', 'e' }; +static const symbol s_2_689[4] = { 'i', 'j', 't', 'e' }; +static const symbol s_2_690[7] = { 'l', 'u', 'c', 'u', 'j', 't', 'e' }; +static const symbol s_2_691[6] = { 'i', 'r', 'u', 'j', 't', 'e' }; +static const symbol s_2_692[8] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 't', 'e' }; +static const symbol s_2_693[4] = { 'a', 's', 't', 'e' }; +static const symbol s_2_694[6] = { 'a', 'c', 'a', 's', 't', 'e' }; +static const symbol s_2_695[9] = { 'a', 's', 't', 'a', 'j', 'a', 's', 't', 'e' }; +static const symbol s_2_696[9] = { 'i', 's', 't', 'a', 'j', 'a', 's', 't', 'e' }; +static const symbol s_2_697[9] = { 'o', 's', 't', 'a', 'j', 'a', 's', 't', 'e' }; +static const symbol s_2_698[7] = { 'i', 'n', 'j', 'a', 's', 't', 'e' }; +static const symbol s_2_699[6] = { 'i', 'r', 'a', 's', 't', 'e' }; +static const symbol s_2_700[6] = { 'u', 'r', 'a', 's', 't', 'e' }; +static const symbol s_2_701[5] = { 't', 'a', 's', 't', 'e' }; +static const symbol s_2_702[6] = { 'a', 'v', 'a', 's', 't', 'e' }; +static const symbol s_2_703[6] = { 'e', 'v', 'a', 's', 't', 'e' }; +static const symbol s_2_704[6] = { 'i', 'v', 'a', 's', 't', 'e' }; +static const symbol s_2_705[6] = { 'o', 'v', 'a', 's', 't', 'e' }; +static const symbol s_2_706[6] = { 'u', 'v', 'a', 's', 't', 'e' }; +static const symbol s_2_707[7] = { 'a', 0xC4, 0x8D, 'a', 's', 't', 'e' }; +static const symbol s_2_708[4] = { 'e', 's', 't', 'e' }; +static const symbol s_2_709[4] = { 'i', 's', 't', 'e' }; +static const symbol s_2_710[6] = { 'a', 'c', 'i', 's', 't', 'e' }; +static const symbol s_2_711[7] = { 'l', 'u', 'c', 'i', 's', 't', 'e' }; +static const symbol s_2_712[5] = { 'n', 'i', 's', 't', 'e' }; +static const symbol s_2_713[7] = { 'r', 'o', 's', 'i', 's', 't', 'e' }; +static const symbol s_2_714[7] = { 'j', 'e', 't', 'i', 's', 't', 'e' }; +static const symbol s_2_715[7] = { 'a', 0xC4, 0x8D, 'i', 's', 't', 'e' }; +static const symbol s_2_716[8] = { 'l', 'u', 0xC4, 0x8D, 'i', 's', 't', 'e' }; +static const symbol s_2_717[8] = { 'r', 'o', 0xC5, 0xA1, 'i', 's', 't', 'e' }; +static const symbol s_2_718[4] = { 'k', 's', 't', 'e' }; +static const symbol s_2_719[4] = { 'o', 's', 't', 'e' }; +static const symbol s_2_720[9] = { 'a', 's', 't', 'a', 'd', 'o', 's', 't', 'e' }; +static const symbol s_2_721[9] = { 'i', 's', 't', 'a', 'd', 'o', 's', 't', 'e' }; +static const symbol s_2_722[9] = { 'o', 's', 't', 'a', 'd', 'o', 's', 't', 'e' }; +static const symbol s_2_723[5] = { 'n', 'u', 's', 't', 'e' }; +static const symbol s_2_724[5] = { 'i', 0xC5, 0xA1, 't', 'e' }; +static const symbol s_2_725[3] = { 'a', 'v', 'e' }; +static const symbol s_2_726[3] = { 'e', 'v', 'e' }; +static const symbol s_2_727[5] = { 'a', 'j', 'e', 'v', 'e' }; +static const symbol s_2_728[6] = { 'c', 'a', 'j', 'e', 'v', 'e' }; +static const symbol s_2_729[6] = { 'l', 'a', 'j', 'e', 'v', 'e' }; +static const symbol s_2_730[6] = { 'r', 'a', 'j', 'e', 'v', 'e' }; +static const symbol s_2_731[7] = { 0xC4, 0x87, 'a', 'j', 'e', 'v', 'e' }; +static const symbol s_2_732[7] = { 0xC4, 0x8D, 'a', 'j', 'e', 'v', 'e' }; +static const symbol s_2_733[7] = { 0xC4, 0x91, 'a', 'j', 'e', 'v', 'e' }; +static const symbol s_2_734[3] = { 'i', 'v', 'e' }; +static const symbol s_2_735[3] = { 'o', 'v', 'e' }; +static const symbol s_2_736[4] = { 'g', 'o', 'v', 'e' }; +static const symbol s_2_737[5] = { 'u', 'g', 'o', 'v', 'e' }; +static const symbol s_2_738[4] = { 'l', 'o', 'v', 'e' }; +static const symbol s_2_739[5] = { 'o', 'l', 'o', 'v', 'e' }; +static const symbol s_2_740[4] = { 'm', 'o', 'v', 'e' }; +static const symbol s_2_741[5] = { 'o', 'n', 'o', 'v', 'e' }; +static const symbol s_2_742[4] = { 'a', 0xC4, 0x87, 'e' }; +static const symbol s_2_743[4] = { 'e', 0xC4, 0x87, 'e' }; +static const symbol s_2_744[4] = { 'u', 0xC4, 0x87, 'e' }; +static const symbol s_2_745[4] = { 'a', 0xC4, 0x8D, 'e' }; +static const symbol s_2_746[5] = { 'l', 'u', 0xC4, 0x8D, 'e' }; +static const symbol s_2_747[4] = { 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_748[5] = { 'b', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_749[5] = { 'g', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_750[5] = { 'j', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_751[9] = { 'a', 's', 't', 'a', 'j', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_752[9] = { 'i', 's', 't', 'a', 'j', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_753[9] = { 'o', 's', 't', 'a', 'j', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_754[7] = { 'i', 'n', 'j', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_755[5] = { 'k', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_756[5] = { 'n', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_757[6] = { 'i', 'r', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_758[6] = { 'u', 'r', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_759[5] = { 't', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_760[5] = { 'v', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_761[6] = { 'a', 'v', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_762[6] = { 'e', 'v', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_763[6] = { 'i', 'v', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_764[6] = { 'o', 'v', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_765[6] = { 'u', 'v', 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_766[7] = { 'a', 0xC4, 0x8D, 'a', 0xC5, 0xA1, 'e' }; +static const symbol s_2_767[4] = { 'e', 0xC5, 0xA1, 'e' }; +static const symbol s_2_768[4] = { 'i', 0xC5, 0xA1, 'e' }; +static const symbol s_2_769[7] = { 'j', 'e', 't', 'i', 0xC5, 0xA1, 'e' }; +static const symbol s_2_770[7] = { 'a', 0xC4, 0x8D, 'i', 0xC5, 0xA1, 'e' }; +static const symbol s_2_771[8] = { 'l', 'u', 0xC4, 0x8D, 'i', 0xC5, 0xA1, 'e' }; +static const symbol s_2_772[8] = { 'r', 'o', 0xC5, 0xA1, 'i', 0xC5, 0xA1, 'e' }; +static const symbol s_2_773[4] = { 'o', 0xC5, 0xA1, 'e' }; +static const symbol s_2_774[9] = { 'a', 's', 't', 'a', 'd', 'o', 0xC5, 0xA1, 'e' }; +static const symbol s_2_775[9] = { 'i', 's', 't', 'a', 'd', 'o', 0xC5, 0xA1, 'e' }; +static const symbol s_2_776[9] = { 'o', 's', 't', 'a', 'd', 'o', 0xC5, 0xA1, 'e' }; +static const symbol s_2_777[4] = { 'a', 'c', 'e', 'g' }; +static const symbol s_2_778[4] = { 'e', 'c', 'e', 'g' }; +static const symbol s_2_779[4] = { 'u', 'c', 'e', 'g' }; +static const symbol s_2_780[7] = { 'a', 'n', 'j', 'i', 'j', 'e', 'g' }; +static const symbol s_2_781[7] = { 'e', 'n', 'j', 'i', 'j', 'e', 'g' }; +static const symbol s_2_782[7] = { 's', 'n', 'j', 'i', 'j', 'e', 'g' }; +static const symbol s_2_783[8] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'e', 'g' }; +static const symbol s_2_784[5] = { 'k', 'i', 'j', 'e', 'g' }; +static const symbol s_2_785[6] = { 's', 'k', 'i', 'j', 'e', 'g' }; +static const symbol s_2_786[7] = { 0xC5, 0xA1, 'k', 'i', 'j', 'e', 'g' }; +static const symbol s_2_787[6] = { 'e', 'l', 'i', 'j', 'e', 'g' }; +static const symbol s_2_788[5] = { 'n', 'i', 'j', 'e', 'g' }; +static const symbol s_2_789[6] = { 'o', 's', 'i', 'j', 'e', 'g' }; +static const symbol s_2_790[6] = { 'a', 't', 'i', 'j', 'e', 'g' }; +static const symbol s_2_791[8] = { 'e', 'v', 'i', 't', 'i', 'j', 'e', 'g' }; +static const symbol s_2_792[8] = { 'o', 'v', 'i', 't', 'i', 'j', 'e', 'g' }; +static const symbol s_2_793[7] = { 'a', 's', 't', 'i', 'j', 'e', 'g' }; +static const symbol s_2_794[6] = { 'a', 'v', 'i', 'j', 'e', 'g' }; +static const symbol s_2_795[6] = { 'e', 'v', 'i', 'j', 'e', 'g' }; +static const symbol s_2_796[6] = { 'i', 'v', 'i', 'j', 'e', 'g' }; +static const symbol s_2_797[6] = { 'o', 'v', 'i', 'j', 'e', 'g' }; +static const symbol s_2_798[7] = { 'o', 0xC5, 0xA1, 'i', 'j', 'e', 'g' }; +static const symbol s_2_799[5] = { 'a', 'n', 'j', 'e', 'g' }; +static const symbol s_2_800[5] = { 'e', 'n', 'j', 'e', 'g' }; +static const symbol s_2_801[5] = { 's', 'n', 'j', 'e', 'g' }; +static const symbol s_2_802[6] = { 0xC5, 0xA1, 'n', 'j', 'e', 'g' }; +static const symbol s_2_803[3] = { 'k', 'e', 'g' }; +static const symbol s_2_804[4] = { 'e', 'l', 'e', 'g' }; +static const symbol s_2_805[3] = { 'n', 'e', 'g' }; +static const symbol s_2_806[4] = { 'a', 'n', 'e', 'g' }; +static const symbol s_2_807[4] = { 'e', 'n', 'e', 'g' }; +static const symbol s_2_808[4] = { 's', 'n', 'e', 'g' }; +static const symbol s_2_809[5] = { 0xC5, 0xA1, 'n', 'e', 'g' }; +static const symbol s_2_810[4] = { 'o', 's', 'e', 'g' }; +static const symbol s_2_811[4] = { 'a', 't', 'e', 'g' }; +static const symbol s_2_812[4] = { 'a', 'v', 'e', 'g' }; +static const symbol s_2_813[4] = { 'e', 'v', 'e', 'g' }; +static const symbol s_2_814[4] = { 'i', 'v', 'e', 'g' }; +static const symbol s_2_815[4] = { 'o', 'v', 'e', 'g' }; +static const symbol s_2_816[5] = { 'a', 0xC4, 0x87, 'e', 'g' }; +static const symbol s_2_817[5] = { 'e', 0xC4, 0x87, 'e', 'g' }; +static const symbol s_2_818[5] = { 'u', 0xC4, 0x87, 'e', 'g' }; +static const symbol s_2_819[5] = { 'o', 0xC5, 0xA1, 'e', 'g' }; +static const symbol s_2_820[4] = { 'a', 'c', 'o', 'g' }; +static const symbol s_2_821[4] = { 'e', 'c', 'o', 'g' }; +static const symbol s_2_822[4] = { 'u', 'c', 'o', 'g' }; +static const symbol s_2_823[5] = { 'a', 'n', 'j', 'o', 'g' }; +static const symbol s_2_824[5] = { 'e', 'n', 'j', 'o', 'g' }; +static const symbol s_2_825[5] = { 's', 'n', 'j', 'o', 'g' }; +static const symbol s_2_826[6] = { 0xC5, 0xA1, 'n', 'j', 'o', 'g' }; +static const symbol s_2_827[3] = { 'k', 'o', 'g' }; +static const symbol s_2_828[4] = { 's', 'k', 'o', 'g' }; +static const symbol s_2_829[5] = { 0xC5, 0xA1, 'k', 'o', 'g' }; +static const symbol s_2_830[4] = { 'e', 'l', 'o', 'g' }; +static const symbol s_2_831[3] = { 'n', 'o', 'g' }; +static const symbol s_2_832[5] = { 'c', 'i', 'n', 'o', 'g' }; +static const symbol s_2_833[6] = { 0xC4, 0x8D, 'i', 'n', 'o', 'g' }; +static const symbol s_2_834[4] = { 'o', 's', 'o', 'g' }; +static const symbol s_2_835[4] = { 'a', 't', 'o', 'g' }; +static const symbol s_2_836[6] = { 'e', 'v', 'i', 't', 'o', 'g' }; +static const symbol s_2_837[6] = { 'o', 'v', 'i', 't', 'o', 'g' }; +static const symbol s_2_838[5] = { 'a', 's', 't', 'o', 'g' }; +static const symbol s_2_839[4] = { 'a', 'v', 'o', 'g' }; +static const symbol s_2_840[4] = { 'e', 'v', 'o', 'g' }; +static const symbol s_2_841[4] = { 'i', 'v', 'o', 'g' }; +static const symbol s_2_842[4] = { 'o', 'v', 'o', 'g' }; +static const symbol s_2_843[5] = { 'a', 0xC4, 0x87, 'o', 'g' }; +static const symbol s_2_844[5] = { 'e', 0xC4, 0x87, 'o', 'g' }; +static const symbol s_2_845[5] = { 'u', 0xC4, 0x87, 'o', 'g' }; +static const symbol s_2_846[5] = { 'o', 0xC5, 0xA1, 'o', 'g' }; +static const symbol s_2_847[2] = { 'a', 'h' }; +static const symbol s_2_848[4] = { 'a', 'c', 'a', 'h' }; +static const symbol s_2_849[7] = { 'a', 's', 't', 'a', 'j', 'a', 'h' }; +static const symbol s_2_850[7] = { 'i', 's', 't', 'a', 'j', 'a', 'h' }; +static const symbol s_2_851[7] = { 'o', 's', 't', 'a', 'j', 'a', 'h' }; +static const symbol s_2_852[5] = { 'i', 'n', 'j', 'a', 'h' }; +static const symbol s_2_853[4] = { 'i', 'r', 'a', 'h' }; +static const symbol s_2_854[4] = { 'u', 'r', 'a', 'h' }; +static const symbol s_2_855[3] = { 't', 'a', 'h' }; +static const symbol s_2_856[4] = { 'a', 'v', 'a', 'h' }; +static const symbol s_2_857[4] = { 'e', 'v', 'a', 'h' }; +static const symbol s_2_858[4] = { 'i', 'v', 'a', 'h' }; +static const symbol s_2_859[4] = { 'o', 'v', 'a', 'h' }; +static const symbol s_2_860[4] = { 'u', 'v', 'a', 'h' }; +static const symbol s_2_861[5] = { 'a', 0xC4, 0x8D, 'a', 'h' }; +static const symbol s_2_862[2] = { 'i', 'h' }; +static const symbol s_2_863[4] = { 'a', 'c', 'i', 'h' }; +static const symbol s_2_864[4] = { 'e', 'c', 'i', 'h' }; +static const symbol s_2_865[4] = { 'u', 'c', 'i', 'h' }; +static const symbol s_2_866[5] = { 'l', 'u', 'c', 'i', 'h' }; +static const symbol s_2_867[7] = { 'a', 'n', 'j', 'i', 'j', 'i', 'h' }; +static const symbol s_2_868[7] = { 'e', 'n', 'j', 'i', 'j', 'i', 'h' }; +static const symbol s_2_869[7] = { 's', 'n', 'j', 'i', 'j', 'i', 'h' }; +static const symbol s_2_870[8] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'i', 'h' }; +static const symbol s_2_871[5] = { 'k', 'i', 'j', 'i', 'h' }; +static const symbol s_2_872[6] = { 's', 'k', 'i', 'j', 'i', 'h' }; +static const symbol s_2_873[7] = { 0xC5, 0xA1, 'k', 'i', 'j', 'i', 'h' }; +static const symbol s_2_874[6] = { 'e', 'l', 'i', 'j', 'i', 'h' }; +static const symbol s_2_875[5] = { 'n', 'i', 'j', 'i', 'h' }; +static const symbol s_2_876[6] = { 'o', 's', 'i', 'j', 'i', 'h' }; +static const symbol s_2_877[6] = { 'a', 't', 'i', 'j', 'i', 'h' }; +static const symbol s_2_878[8] = { 'e', 'v', 'i', 't', 'i', 'j', 'i', 'h' }; +static const symbol s_2_879[8] = { 'o', 'v', 'i', 't', 'i', 'j', 'i', 'h' }; +static const symbol s_2_880[7] = { 'a', 's', 't', 'i', 'j', 'i', 'h' }; +static const symbol s_2_881[6] = { 'a', 'v', 'i', 'j', 'i', 'h' }; +static const symbol s_2_882[6] = { 'e', 'v', 'i', 'j', 'i', 'h' }; +static const symbol s_2_883[6] = { 'i', 'v', 'i', 'j', 'i', 'h' }; +static const symbol s_2_884[6] = { 'o', 'v', 'i', 'j', 'i', 'h' }; +static const symbol s_2_885[7] = { 'o', 0xC5, 0xA1, 'i', 'j', 'i', 'h' }; +static const symbol s_2_886[5] = { 'a', 'n', 'j', 'i', 'h' }; +static const symbol s_2_887[5] = { 'e', 'n', 'j', 'i', 'h' }; +static const symbol s_2_888[5] = { 's', 'n', 'j', 'i', 'h' }; +static const symbol s_2_889[6] = { 0xC5, 0xA1, 'n', 'j', 'i', 'h' }; +static const symbol s_2_890[3] = { 'k', 'i', 'h' }; +static const symbol s_2_891[4] = { 's', 'k', 'i', 'h' }; +static const symbol s_2_892[5] = { 0xC5, 0xA1, 'k', 'i', 'h' }; +static const symbol s_2_893[4] = { 'e', 'l', 'i', 'h' }; +static const symbol s_2_894[3] = { 'n', 'i', 'h' }; +static const symbol s_2_895[5] = { 'c', 'i', 'n', 'i', 'h' }; +static const symbol s_2_896[6] = { 0xC4, 0x8D, 'i', 'n', 'i', 'h' }; +static const symbol s_2_897[4] = { 'o', 's', 'i', 'h' }; +static const symbol s_2_898[5] = { 'r', 'o', 's', 'i', 'h' }; +static const symbol s_2_899[4] = { 'a', 't', 'i', 'h' }; +static const symbol s_2_900[5] = { 'j', 'e', 't', 'i', 'h' }; +static const symbol s_2_901[6] = { 'e', 'v', 'i', 't', 'i', 'h' }; +static const symbol s_2_902[6] = { 'o', 'v', 'i', 't', 'i', 'h' }; +static const symbol s_2_903[5] = { 'a', 's', 't', 'i', 'h' }; +static const symbol s_2_904[4] = { 'a', 'v', 'i', 'h' }; +static const symbol s_2_905[4] = { 'e', 'v', 'i', 'h' }; +static const symbol s_2_906[4] = { 'i', 'v', 'i', 'h' }; +static const symbol s_2_907[4] = { 'o', 'v', 'i', 'h' }; +static const symbol s_2_908[5] = { 'a', 0xC4, 0x87, 'i', 'h' }; +static const symbol s_2_909[5] = { 'e', 0xC4, 0x87, 'i', 'h' }; +static const symbol s_2_910[5] = { 'u', 0xC4, 0x87, 'i', 'h' }; +static const symbol s_2_911[5] = { 'a', 0xC4, 0x8D, 'i', 'h' }; +static const symbol s_2_912[6] = { 'l', 'u', 0xC4, 0x8D, 'i', 'h' }; +static const symbol s_2_913[5] = { 'o', 0xC5, 0xA1, 'i', 'h' }; +static const symbol s_2_914[6] = { 'r', 'o', 0xC5, 0xA1, 'i', 'h' }; +static const symbol s_2_915[7] = { 'a', 's', 't', 'a', 'd', 'o', 'h' }; +static const symbol s_2_916[7] = { 'i', 's', 't', 'a', 'd', 'o', 'h' }; +static const symbol s_2_917[7] = { 'o', 's', 't', 'a', 'd', 'o', 'h' }; +static const symbol s_2_918[4] = { 'a', 'c', 'u', 'h' }; +static const symbol s_2_919[4] = { 'e', 'c', 'u', 'h' }; +static const symbol s_2_920[4] = { 'u', 'c', 'u', 'h' }; +static const symbol s_2_921[5] = { 'a', 0xC4, 0x87, 'u', 'h' }; +static const symbol s_2_922[5] = { 'e', 0xC4, 0x87, 'u', 'h' }; +static const symbol s_2_923[5] = { 'u', 0xC4, 0x87, 'u', 'h' }; +static const symbol s_2_924[3] = { 'a', 'c', 'i' }; +static const symbol s_2_925[5] = { 'a', 'c', 'e', 'c', 'i' }; +static const symbol s_2_926[4] = { 'i', 'e', 'c', 'i' }; +static const symbol s_2_927[5] = { 'a', 'j', 'u', 'c', 'i' }; +static const symbol s_2_928[7] = { 'i', 'r', 'a', 'j', 'u', 'c', 'i' }; +static const symbol s_2_929[7] = { 'u', 'r', 'a', 'j', 'u', 'c', 'i' }; +static const symbol s_2_930[8] = { 'a', 's', 't', 'a', 'j', 'u', 'c', 'i' }; +static const symbol s_2_931[8] = { 'i', 's', 't', 'a', 'j', 'u', 'c', 'i' }; +static const symbol s_2_932[8] = { 'o', 's', 't', 'a', 'j', 'u', 'c', 'i' }; +static const symbol s_2_933[7] = { 'a', 'v', 'a', 'j', 'u', 'c', 'i' }; +static const symbol s_2_934[7] = { 'e', 'v', 'a', 'j', 'u', 'c', 'i' }; +static const symbol s_2_935[7] = { 'i', 'v', 'a', 'j', 'u', 'c', 'i' }; +static const symbol s_2_936[7] = { 'u', 'v', 'a', 'j', 'u', 'c', 'i' }; +static const symbol s_2_937[5] = { 'u', 'j', 'u', 'c', 'i' }; +static const symbol s_2_938[8] = { 'l', 'u', 'c', 'u', 'j', 'u', 'c', 'i' }; +static const symbol s_2_939[7] = { 'i', 'r', 'u', 'j', 'u', 'c', 'i' }; +static const symbol s_2_940[4] = { 'l', 'u', 'c', 'i' }; +static const symbol s_2_941[4] = { 'n', 'u', 'c', 'i' }; +static const symbol s_2_942[5] = { 'e', 't', 'u', 'c', 'i' }; +static const symbol s_2_943[6] = { 'a', 's', 't', 'u', 'c', 'i' }; +static const symbol s_2_944[2] = { 'g', 'i' }; +static const symbol s_2_945[3] = { 'u', 'g', 'i' }; +static const symbol s_2_946[3] = { 'a', 'j', 'i' }; +static const symbol s_2_947[4] = { 'c', 'a', 'j', 'i' }; +static const symbol s_2_948[4] = { 'l', 'a', 'j', 'i' }; +static const symbol s_2_949[4] = { 'r', 'a', 'j', 'i' }; +static const symbol s_2_950[5] = { 0xC4, 0x87, 'a', 'j', 'i' }; +static const symbol s_2_951[5] = { 0xC4, 0x8D, 'a', 'j', 'i' }; +static const symbol s_2_952[5] = { 0xC4, 0x91, 'a', 'j', 'i' }; +static const symbol s_2_953[4] = { 'b', 'i', 'j', 'i' }; +static const symbol s_2_954[4] = { 'c', 'i', 'j', 'i' }; +static const symbol s_2_955[4] = { 'd', 'i', 'j', 'i' }; +static const symbol s_2_956[4] = { 'f', 'i', 'j', 'i' }; +static const symbol s_2_957[4] = { 'g', 'i', 'j', 'i' }; +static const symbol s_2_958[6] = { 'a', 'n', 'j', 'i', 'j', 'i' }; +static const symbol s_2_959[6] = { 'e', 'n', 'j', 'i', 'j', 'i' }; +static const symbol s_2_960[6] = { 's', 'n', 'j', 'i', 'j', 'i' }; +static const symbol s_2_961[7] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'i' }; +static const symbol s_2_962[4] = { 'k', 'i', 'j', 'i' }; +static const symbol s_2_963[5] = { 's', 'k', 'i', 'j', 'i' }; +static const symbol s_2_964[6] = { 0xC5, 0xA1, 'k', 'i', 'j', 'i' }; +static const symbol s_2_965[4] = { 'l', 'i', 'j', 'i' }; +static const symbol s_2_966[5] = { 'e', 'l', 'i', 'j', 'i' }; +static const symbol s_2_967[4] = { 'm', 'i', 'j', 'i' }; +static const symbol s_2_968[4] = { 'n', 'i', 'j', 'i' }; +static const symbol s_2_969[6] = { 'g', 'a', 'n', 'i', 'j', 'i' }; +static const symbol s_2_970[6] = { 'm', 'a', 'n', 'i', 'j', 'i' }; +static const symbol s_2_971[6] = { 'p', 'a', 'n', 'i', 'j', 'i' }; +static const symbol s_2_972[6] = { 'r', 'a', 'n', 'i', 'j', 'i' }; +static const symbol s_2_973[6] = { 't', 'a', 'n', 'i', 'j', 'i' }; +static const symbol s_2_974[4] = { 'p', 'i', 'j', 'i' }; +static const symbol s_2_975[4] = { 'r', 'i', 'j', 'i' }; +static const symbol s_2_976[4] = { 's', 'i', 'j', 'i' }; +static const symbol s_2_977[5] = { 'o', 's', 'i', 'j', 'i' }; +static const symbol s_2_978[4] = { 't', 'i', 'j', 'i' }; +static const symbol s_2_979[5] = { 'a', 't', 'i', 'j', 'i' }; +static const symbol s_2_980[7] = { 'e', 'v', 'i', 't', 'i', 'j', 'i' }; +static const symbol s_2_981[7] = { 'o', 'v', 'i', 't', 'i', 'j', 'i' }; +static const symbol s_2_982[6] = { 'a', 's', 't', 'i', 'j', 'i' }; +static const symbol s_2_983[5] = { 'a', 'v', 'i', 'j', 'i' }; +static const symbol s_2_984[5] = { 'e', 'v', 'i', 'j', 'i' }; +static const symbol s_2_985[5] = { 'i', 'v', 'i', 'j', 'i' }; +static const symbol s_2_986[5] = { 'o', 'v', 'i', 'j', 'i' }; +static const symbol s_2_987[4] = { 'z', 'i', 'j', 'i' }; +static const symbol s_2_988[6] = { 'o', 0xC5, 0xA1, 'i', 'j', 'i' }; +static const symbol s_2_989[5] = { 0xC5, 0xBE, 'i', 'j', 'i' }; +static const symbol s_2_990[4] = { 'a', 'n', 'j', 'i' }; +static const symbol s_2_991[4] = { 'e', 'n', 'j', 'i' }; +static const symbol s_2_992[4] = { 's', 'n', 'j', 'i' }; +static const symbol s_2_993[5] = { 0xC5, 0xA1, 'n', 'j', 'i' }; +static const symbol s_2_994[2] = { 'k', 'i' }; +static const symbol s_2_995[3] = { 's', 'k', 'i' }; +static const symbol s_2_996[4] = { 0xC5, 0xA1, 'k', 'i' }; +static const symbol s_2_997[3] = { 'a', 'l', 'i' }; +static const symbol s_2_998[5] = { 'a', 'c', 'a', 'l', 'i' }; +static const symbol s_2_999[8] = { 'a', 's', 't', 'a', 'j', 'a', 'l', 'i' }; +static const symbol s_2_1000[8] = { 'i', 's', 't', 'a', 'j', 'a', 'l', 'i' }; +static const symbol s_2_1001[8] = { 'o', 's', 't', 'a', 'j', 'a', 'l', 'i' }; +static const symbol s_2_1002[5] = { 'i', 'j', 'a', 'l', 'i' }; +static const symbol s_2_1003[6] = { 'i', 'n', 'j', 'a', 'l', 'i' }; +static const symbol s_2_1004[4] = { 'n', 'a', 'l', 'i' }; +static const symbol s_2_1005[5] = { 'i', 'r', 'a', 'l', 'i' }; +static const symbol s_2_1006[5] = { 'u', 'r', 'a', 'l', 'i' }; +static const symbol s_2_1007[4] = { 't', 'a', 'l', 'i' }; +static const symbol s_2_1008[6] = { 'a', 's', 't', 'a', 'l', 'i' }; +static const symbol s_2_1009[6] = { 'i', 's', 't', 'a', 'l', 'i' }; +static const symbol s_2_1010[6] = { 'o', 's', 't', 'a', 'l', 'i' }; +static const symbol s_2_1011[5] = { 'a', 'v', 'a', 'l', 'i' }; +static const symbol s_2_1012[5] = { 'e', 'v', 'a', 'l', 'i' }; +static const symbol s_2_1013[5] = { 'i', 'v', 'a', 'l', 'i' }; +static const symbol s_2_1014[5] = { 'o', 'v', 'a', 'l', 'i' }; +static const symbol s_2_1015[5] = { 'u', 'v', 'a', 'l', 'i' }; +static const symbol s_2_1016[6] = { 'a', 0xC4, 0x8D, 'a', 'l', 'i' }; +static const symbol s_2_1017[3] = { 'e', 'l', 'i' }; +static const symbol s_2_1018[3] = { 'i', 'l', 'i' }; +static const symbol s_2_1019[5] = { 'a', 'c', 'i', 'l', 'i' }; +static const symbol s_2_1020[6] = { 'l', 'u', 'c', 'i', 'l', 'i' }; +static const symbol s_2_1021[4] = { 'n', 'i', 'l', 'i' }; +static const symbol s_2_1022[6] = { 'r', 'o', 's', 'i', 'l', 'i' }; +static const symbol s_2_1023[6] = { 'j', 'e', 't', 'i', 'l', 'i' }; +static const symbol s_2_1024[5] = { 'o', 'z', 'i', 'l', 'i' }; +static const symbol s_2_1025[6] = { 'a', 0xC4, 0x8D, 'i', 'l', 'i' }; +static const symbol s_2_1026[7] = { 'l', 'u', 0xC4, 0x8D, 'i', 'l', 'i' }; +static const symbol s_2_1027[7] = { 'r', 'o', 0xC5, 0xA1, 'i', 'l', 'i' }; +static const symbol s_2_1028[3] = { 'o', 'l', 'i' }; +static const symbol s_2_1029[4] = { 'a', 's', 'l', 'i' }; +static const symbol s_2_1030[4] = { 'n', 'u', 'l', 'i' }; +static const symbol s_2_1031[4] = { 'r', 'a', 'm', 'i' }; +static const symbol s_2_1032[4] = { 'l', 'e', 'm', 'i' }; +static const symbol s_2_1033[2] = { 'n', 'i' }; +static const symbol s_2_1034[3] = { 'a', 'n', 'i' }; +static const symbol s_2_1035[5] = { 'a', 'c', 'a', 'n', 'i' }; +static const symbol s_2_1036[5] = { 'u', 'r', 'a', 'n', 'i' }; +static const symbol s_2_1037[4] = { 't', 'a', 'n', 'i' }; +static const symbol s_2_1038[5] = { 'a', 'v', 'a', 'n', 'i' }; +static const symbol s_2_1039[5] = { 'e', 'v', 'a', 'n', 'i' }; +static const symbol s_2_1040[5] = { 'i', 'v', 'a', 'n', 'i' }; +static const symbol s_2_1041[5] = { 'u', 'v', 'a', 'n', 'i' }; +static const symbol s_2_1042[6] = { 'a', 0xC4, 0x8D, 'a', 'n', 'i' }; +static const symbol s_2_1043[5] = { 'a', 'c', 'e', 'n', 'i' }; +static const symbol s_2_1044[6] = { 'l', 'u', 'c', 'e', 'n', 'i' }; +static const symbol s_2_1045[6] = { 'a', 0xC4, 0x8D, 'e', 'n', 'i' }; +static const symbol s_2_1046[7] = { 'l', 'u', 0xC4, 0x8D, 'e', 'n', 'i' }; +static const symbol s_2_1047[3] = { 'i', 'n', 'i' }; +static const symbol s_2_1048[4] = { 'c', 'i', 'n', 'i' }; +static const symbol s_2_1049[5] = { 0xC4, 0x8D, 'i', 'n', 'i' }; +static const symbol s_2_1050[3] = { 'o', 'n', 'i' }; +static const symbol s_2_1051[3] = { 'a', 'r', 'i' }; +static const symbol s_2_1052[3] = { 'd', 'r', 'i' }; +static const symbol s_2_1053[3] = { 'e', 'r', 'i' }; +static const symbol s_2_1054[3] = { 'o', 'r', 'i' }; +static const symbol s_2_1055[4] = { 'b', 'a', 's', 'i' }; +static const symbol s_2_1056[4] = { 'g', 'a', 's', 'i' }; +static const symbol s_2_1057[4] = { 'j', 'a', 's', 'i' }; +static const symbol s_2_1058[4] = { 'k', 'a', 's', 'i' }; +static const symbol s_2_1059[4] = { 'n', 'a', 's', 'i' }; +static const symbol s_2_1060[4] = { 't', 'a', 's', 'i' }; +static const symbol s_2_1061[4] = { 'v', 'a', 's', 'i' }; +static const symbol s_2_1062[3] = { 'e', 's', 'i' }; +static const symbol s_2_1063[3] = { 'i', 's', 'i' }; +static const symbol s_2_1064[3] = { 'o', 's', 'i' }; +static const symbol s_2_1065[4] = { 'a', 'v', 's', 'i' }; +static const symbol s_2_1066[6] = { 'a', 'c', 'a', 'v', 's', 'i' }; +static const symbol s_2_1067[6] = { 'i', 'r', 'a', 'v', 's', 'i' }; +static const symbol s_2_1068[5] = { 't', 'a', 'v', 's', 'i' }; +static const symbol s_2_1069[6] = { 'e', 't', 'a', 'v', 's', 'i' }; +static const symbol s_2_1070[7] = { 'a', 's', 't', 'a', 'v', 's', 'i' }; +static const symbol s_2_1071[7] = { 'i', 's', 't', 'a', 'v', 's', 'i' }; +static const symbol s_2_1072[7] = { 'o', 's', 't', 'a', 'v', 's', 'i' }; +static const symbol s_2_1073[4] = { 'i', 'v', 's', 'i' }; +static const symbol s_2_1074[5] = { 'n', 'i', 'v', 's', 'i' }; +static const symbol s_2_1075[7] = { 'r', 'o', 's', 'i', 'v', 's', 'i' }; +static const symbol s_2_1076[5] = { 'n', 'u', 'v', 's', 'i' }; +static const symbol s_2_1077[3] = { 'a', 't', 'i' }; +static const symbol s_2_1078[5] = { 'a', 'c', 'a', 't', 'i' }; +static const symbol s_2_1079[8] = { 'a', 's', 't', 'a', 'j', 'a', 't', 'i' }; +static const symbol s_2_1080[8] = { 'i', 's', 't', 'a', 'j', 'a', 't', 'i' }; +static const symbol s_2_1081[8] = { 'o', 's', 't', 'a', 'j', 'a', 't', 'i' }; +static const symbol s_2_1082[6] = { 'i', 'n', 'j', 'a', 't', 'i' }; +static const symbol s_2_1083[5] = { 'i', 'k', 'a', 't', 'i' }; +static const symbol s_2_1084[4] = { 'l', 'a', 't', 'i' }; +static const symbol s_2_1085[5] = { 'i', 'r', 'a', 't', 'i' }; +static const symbol s_2_1086[5] = { 'u', 'r', 'a', 't', 'i' }; +static const symbol s_2_1087[4] = { 't', 'a', 't', 'i' }; +static const symbol s_2_1088[6] = { 'a', 's', 't', 'a', 't', 'i' }; +static const symbol s_2_1089[6] = { 'i', 's', 't', 'a', 't', 'i' }; +static const symbol s_2_1090[6] = { 'o', 's', 't', 'a', 't', 'i' }; +static const symbol s_2_1091[5] = { 'a', 'v', 'a', 't', 'i' }; +static const symbol s_2_1092[5] = { 'e', 'v', 'a', 't', 'i' }; +static const symbol s_2_1093[5] = { 'i', 'v', 'a', 't', 'i' }; +static const symbol s_2_1094[5] = { 'o', 'v', 'a', 't', 'i' }; +static const symbol s_2_1095[5] = { 'u', 'v', 'a', 't', 'i' }; +static const symbol s_2_1096[6] = { 'a', 0xC4, 0x8D, 'a', 't', 'i' }; +static const symbol s_2_1097[3] = { 'e', 't', 'i' }; +static const symbol s_2_1098[3] = { 'i', 't', 'i' }; +static const symbol s_2_1099[5] = { 'a', 'c', 'i', 't', 'i' }; +static const symbol s_2_1100[6] = { 'l', 'u', 'c', 'i', 't', 'i' }; +static const symbol s_2_1101[4] = { 'n', 'i', 't', 'i' }; +static const symbol s_2_1102[6] = { 'r', 'o', 's', 'i', 't', 'i' }; +static const symbol s_2_1103[6] = { 'j', 'e', 't', 'i', 't', 'i' }; +static const symbol s_2_1104[5] = { 'e', 'v', 'i', 't', 'i' }; +static const symbol s_2_1105[5] = { 'o', 'v', 'i', 't', 'i' }; +static const symbol s_2_1106[6] = { 'a', 0xC4, 0x8D, 'i', 't', 'i' }; +static const symbol s_2_1107[7] = { 'l', 'u', 0xC4, 0x8D, 'i', 't', 'i' }; +static const symbol s_2_1108[7] = { 'r', 'o', 0xC5, 0xA1, 'i', 't', 'i' }; +static const symbol s_2_1109[4] = { 'a', 's', 't', 'i' }; +static const symbol s_2_1110[4] = { 'e', 's', 't', 'i' }; +static const symbol s_2_1111[4] = { 'i', 's', 't', 'i' }; +static const symbol s_2_1112[4] = { 'k', 's', 't', 'i' }; +static const symbol s_2_1113[4] = { 'o', 's', 't', 'i' }; +static const symbol s_2_1114[4] = { 'n', 'u', 't', 'i' }; +static const symbol s_2_1115[3] = { 'a', 'v', 'i' }; +static const symbol s_2_1116[3] = { 'e', 'v', 'i' }; +static const symbol s_2_1117[5] = { 'a', 'j', 'e', 'v', 'i' }; +static const symbol s_2_1118[6] = { 'c', 'a', 'j', 'e', 'v', 'i' }; +static const symbol s_2_1119[6] = { 'l', 'a', 'j', 'e', 'v', 'i' }; +static const symbol s_2_1120[6] = { 'r', 'a', 'j', 'e', 'v', 'i' }; +static const symbol s_2_1121[7] = { 0xC4, 0x87, 'a', 'j', 'e', 'v', 'i' }; +static const symbol s_2_1122[7] = { 0xC4, 0x8D, 'a', 'j', 'e', 'v', 'i' }; +static const symbol s_2_1123[7] = { 0xC4, 0x91, 'a', 'j', 'e', 'v', 'i' }; +static const symbol s_2_1124[3] = { 'i', 'v', 'i' }; +static const symbol s_2_1125[3] = { 'o', 'v', 'i' }; +static const symbol s_2_1126[4] = { 'g', 'o', 'v', 'i' }; +static const symbol s_2_1127[5] = { 'u', 'g', 'o', 'v', 'i' }; +static const symbol s_2_1128[4] = { 'l', 'o', 'v', 'i' }; +static const symbol s_2_1129[5] = { 'o', 'l', 'o', 'v', 'i' }; +static const symbol s_2_1130[4] = { 'm', 'o', 'v', 'i' }; +static const symbol s_2_1131[5] = { 'o', 'n', 'o', 'v', 'i' }; +static const symbol s_2_1132[5] = { 'i', 'e', 0xC4, 0x87, 'i' }; +static const symbol s_2_1133[7] = { 'a', 0xC4, 0x8D, 'e', 0xC4, 0x87, 'i' }; +static const symbol s_2_1134[6] = { 'a', 'j', 'u', 0xC4, 0x87, 'i' }; +static const symbol s_2_1135[8] = { 'i', 'r', 'a', 'j', 'u', 0xC4, 0x87, 'i' }; +static const symbol s_2_1136[8] = { 'u', 'r', 'a', 'j', 'u', 0xC4, 0x87, 'i' }; +static const symbol s_2_1137[9] = { 'a', 's', 't', 'a', 'j', 'u', 0xC4, 0x87, 'i' }; +static const symbol s_2_1138[9] = { 'i', 's', 't', 'a', 'j', 'u', 0xC4, 0x87, 'i' }; +static const symbol s_2_1139[9] = { 'o', 's', 't', 'a', 'j', 'u', 0xC4, 0x87, 'i' }; +static const symbol s_2_1140[8] = { 'a', 'v', 'a', 'j', 'u', 0xC4, 0x87, 'i' }; +static const symbol s_2_1141[8] = { 'e', 'v', 'a', 'j', 'u', 0xC4, 0x87, 'i' }; +static const symbol s_2_1142[8] = { 'i', 'v', 'a', 'j', 'u', 0xC4, 0x87, 'i' }; +static const symbol s_2_1143[8] = { 'u', 'v', 'a', 'j', 'u', 0xC4, 0x87, 'i' }; +static const symbol s_2_1144[6] = { 'u', 'j', 'u', 0xC4, 0x87, 'i' }; +static const symbol s_2_1145[8] = { 'i', 'r', 'u', 'j', 'u', 0xC4, 0x87, 'i' }; +static const symbol s_2_1146[10] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 'u', 0xC4, 0x87, 'i' }; +static const symbol s_2_1147[5] = { 'n', 'u', 0xC4, 0x87, 'i' }; +static const symbol s_2_1148[6] = { 'e', 't', 'u', 0xC4, 0x87, 'i' }; +static const symbol s_2_1149[7] = { 'a', 's', 't', 'u', 0xC4, 0x87, 'i' }; +static const symbol s_2_1150[4] = { 'a', 0xC4, 0x8D, 'i' }; +static const symbol s_2_1151[5] = { 'l', 'u', 0xC4, 0x8D, 'i' }; +static const symbol s_2_1152[5] = { 'b', 'a', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1153[5] = { 'g', 'a', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1154[5] = { 'j', 'a', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1155[5] = { 'k', 'a', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1156[5] = { 'n', 'a', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1157[5] = { 't', 'a', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1158[5] = { 'v', 'a', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1159[4] = { 'e', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1160[4] = { 'i', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1161[4] = { 'o', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1162[5] = { 'a', 'v', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1163[7] = { 'i', 'r', 'a', 'v', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1164[6] = { 't', 'a', 'v', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1165[7] = { 'e', 't', 'a', 'v', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1166[8] = { 'a', 's', 't', 'a', 'v', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1167[8] = { 'i', 's', 't', 'a', 'v', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1168[8] = { 'o', 's', 't', 'a', 'v', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1169[8] = { 'a', 0xC4, 0x8D, 'a', 'v', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1170[5] = { 'i', 'v', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1171[6] = { 'n', 'i', 'v', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1172[9] = { 'r', 'o', 0xC5, 0xA1, 'i', 'v', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1173[6] = { 'n', 'u', 'v', 0xC5, 0xA1, 'i' }; +static const symbol s_2_1174[2] = { 'a', 'j' }; +static const symbol s_2_1175[4] = { 'u', 'r', 'a', 'j' }; +static const symbol s_2_1176[3] = { 't', 'a', 'j' }; +static const symbol s_2_1177[4] = { 'a', 'v', 'a', 'j' }; +static const symbol s_2_1178[4] = { 'e', 'v', 'a', 'j' }; +static const symbol s_2_1179[4] = { 'i', 'v', 'a', 'j' }; +static const symbol s_2_1180[4] = { 'u', 'v', 'a', 'j' }; +static const symbol s_2_1181[2] = { 'i', 'j' }; +static const symbol s_2_1182[4] = { 'a', 'c', 'o', 'j' }; +static const symbol s_2_1183[4] = { 'e', 'c', 'o', 'j' }; +static const symbol s_2_1184[4] = { 'u', 'c', 'o', 'j' }; +static const symbol s_2_1185[7] = { 'a', 'n', 'j', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1186[7] = { 'e', 'n', 'j', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1187[7] = { 's', 'n', 'j', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1188[8] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1189[5] = { 'k', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1190[6] = { 's', 'k', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1191[7] = { 0xC5, 0xA1, 'k', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1192[6] = { 'e', 'l', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1193[5] = { 'n', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1194[6] = { 'o', 's', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1195[8] = { 'e', 'v', 'i', 't', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1196[8] = { 'o', 'v', 'i', 't', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1197[7] = { 'a', 's', 't', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1198[6] = { 'a', 'v', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1199[6] = { 'e', 'v', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1200[6] = { 'i', 'v', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1201[6] = { 'o', 'v', 'i', 'j', 'o', 'j' }; +static const symbol s_2_1202[7] = { 'o', 0xC5, 0xA1, 'i', 'j', 'o', 'j' }; +static const symbol s_2_1203[5] = { 'a', 'n', 'j', 'o', 'j' }; +static const symbol s_2_1204[5] = { 'e', 'n', 'j', 'o', 'j' }; +static const symbol s_2_1205[5] = { 's', 'n', 'j', 'o', 'j' }; +static const symbol s_2_1206[6] = { 0xC5, 0xA1, 'n', 'j', 'o', 'j' }; +static const symbol s_2_1207[3] = { 'k', 'o', 'j' }; +static const symbol s_2_1208[4] = { 's', 'k', 'o', 'j' }; +static const symbol s_2_1209[5] = { 0xC5, 0xA1, 'k', 'o', 'j' }; +static const symbol s_2_1210[4] = { 'a', 'l', 'o', 'j' }; +static const symbol s_2_1211[4] = { 'e', 'l', 'o', 'j' }; +static const symbol s_2_1212[3] = { 'n', 'o', 'j' }; +static const symbol s_2_1213[5] = { 'c', 'i', 'n', 'o', 'j' }; +static const symbol s_2_1214[6] = { 0xC4, 0x8D, 'i', 'n', 'o', 'j' }; +static const symbol s_2_1215[4] = { 'o', 's', 'o', 'j' }; +static const symbol s_2_1216[4] = { 'a', 't', 'o', 'j' }; +static const symbol s_2_1217[6] = { 'e', 'v', 'i', 't', 'o', 'j' }; +static const symbol s_2_1218[6] = { 'o', 'v', 'i', 't', 'o', 'j' }; +static const symbol s_2_1219[5] = { 'a', 's', 't', 'o', 'j' }; +static const symbol s_2_1220[4] = { 'a', 'v', 'o', 'j' }; +static const symbol s_2_1221[4] = { 'e', 'v', 'o', 'j' }; +static const symbol s_2_1222[4] = { 'i', 'v', 'o', 'j' }; +static const symbol s_2_1223[4] = { 'o', 'v', 'o', 'j' }; +static const symbol s_2_1224[5] = { 'a', 0xC4, 0x87, 'o', 'j' }; +static const symbol s_2_1225[5] = { 'e', 0xC4, 0x87, 'o', 'j' }; +static const symbol s_2_1226[5] = { 'u', 0xC4, 0x87, 'o', 'j' }; +static const symbol s_2_1227[5] = { 'o', 0xC5, 0xA1, 'o', 'j' }; +static const symbol s_2_1228[5] = { 'l', 'u', 'c', 'u', 'j' }; +static const symbol s_2_1229[4] = { 'i', 'r', 'u', 'j' }; +static const symbol s_2_1230[6] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j' }; +static const symbol s_2_1231[2] = { 'a', 'l' }; +static const symbol s_2_1232[4] = { 'i', 'r', 'a', 'l' }; +static const symbol s_2_1233[4] = { 'u', 'r', 'a', 'l' }; +static const symbol s_2_1234[2] = { 'e', 'l' }; +static const symbol s_2_1235[2] = { 'i', 'l' }; +static const symbol s_2_1236[2] = { 'a', 'm' }; +static const symbol s_2_1237[4] = { 'a', 'c', 'a', 'm' }; +static const symbol s_2_1238[4] = { 'i', 'r', 'a', 'm' }; +static const symbol s_2_1239[4] = { 'u', 'r', 'a', 'm' }; +static const symbol s_2_1240[3] = { 't', 'a', 'm' }; +static const symbol s_2_1241[4] = { 'a', 'v', 'a', 'm' }; +static const symbol s_2_1242[4] = { 'e', 'v', 'a', 'm' }; +static const symbol s_2_1243[4] = { 'i', 'v', 'a', 'm' }; +static const symbol s_2_1244[4] = { 'u', 'v', 'a', 'm' }; +static const symbol s_2_1245[5] = { 'a', 0xC4, 0x8D, 'a', 'm' }; +static const symbol s_2_1246[2] = { 'e', 'm' }; +static const symbol s_2_1247[4] = { 'a', 'c', 'e', 'm' }; +static const symbol s_2_1248[4] = { 'e', 'c', 'e', 'm' }; +static const symbol s_2_1249[4] = { 'u', 'c', 'e', 'm' }; +static const symbol s_2_1250[7] = { 'a', 's', 't', 'a', 'd', 'e', 'm' }; +static const symbol s_2_1251[7] = { 'i', 's', 't', 'a', 'd', 'e', 'm' }; +static const symbol s_2_1252[7] = { 'o', 's', 't', 'a', 'd', 'e', 'm' }; +static const symbol s_2_1253[4] = { 'a', 'j', 'e', 'm' }; +static const symbol s_2_1254[5] = { 'c', 'a', 'j', 'e', 'm' }; +static const symbol s_2_1255[5] = { 'l', 'a', 'j', 'e', 'm' }; +static const symbol s_2_1256[5] = { 'r', 'a', 'j', 'e', 'm' }; +static const symbol s_2_1257[7] = { 'a', 's', 't', 'a', 'j', 'e', 'm' }; +static const symbol s_2_1258[7] = { 'i', 's', 't', 'a', 'j', 'e', 'm' }; +static const symbol s_2_1259[7] = { 'o', 's', 't', 'a', 'j', 'e', 'm' }; +static const symbol s_2_1260[6] = { 0xC4, 0x87, 'a', 'j', 'e', 'm' }; +static const symbol s_2_1261[6] = { 0xC4, 0x8D, 'a', 'j', 'e', 'm' }; +static const symbol s_2_1262[6] = { 0xC4, 0x91, 'a', 'j', 'e', 'm' }; +static const symbol s_2_1263[4] = { 'i', 'j', 'e', 'm' }; +static const symbol s_2_1264[7] = { 'a', 'n', 'j', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1265[7] = { 'e', 'n', 'j', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1266[7] = { 's', 'n', 'j', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1267[8] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1268[5] = { 'k', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1269[6] = { 's', 'k', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1270[7] = { 0xC5, 0xA1, 'k', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1271[5] = { 'l', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1272[6] = { 'e', 'l', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1273[5] = { 'n', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1274[7] = { 'r', 'a', 'r', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1275[5] = { 's', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1276[6] = { 'o', 's', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1277[6] = { 'a', 't', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1278[8] = { 'e', 'v', 'i', 't', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1279[8] = { 'o', 'v', 'i', 't', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1280[6] = { 'o', 't', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1281[7] = { 'a', 's', 't', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1282[6] = { 'a', 'v', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1283[6] = { 'e', 'v', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1284[6] = { 'i', 'v', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1285[6] = { 'o', 'v', 'i', 'j', 'e', 'm' }; +static const symbol s_2_1286[7] = { 'o', 0xC5, 0xA1, 'i', 'j', 'e', 'm' }; +static const symbol s_2_1287[5] = { 'a', 'n', 'j', 'e', 'm' }; +static const symbol s_2_1288[5] = { 'e', 'n', 'j', 'e', 'm' }; +static const symbol s_2_1289[5] = { 'i', 'n', 'j', 'e', 'm' }; +static const symbol s_2_1290[5] = { 's', 'n', 'j', 'e', 'm' }; +static const symbol s_2_1291[6] = { 0xC5, 0xA1, 'n', 'j', 'e', 'm' }; +static const symbol s_2_1292[4] = { 'u', 'j', 'e', 'm' }; +static const symbol s_2_1293[7] = { 'l', 'u', 'c', 'u', 'j', 'e', 'm' }; +static const symbol s_2_1294[6] = { 'i', 'r', 'u', 'j', 'e', 'm' }; +static const symbol s_2_1295[8] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 'e', 'm' }; +static const symbol s_2_1296[3] = { 'k', 'e', 'm' }; +static const symbol s_2_1297[4] = { 's', 'k', 'e', 'm' }; +static const symbol s_2_1298[5] = { 0xC5, 0xA1, 'k', 'e', 'm' }; +static const symbol s_2_1299[4] = { 'e', 'l', 'e', 'm' }; +static const symbol s_2_1300[3] = { 'n', 'e', 'm' }; +static const symbol s_2_1301[4] = { 'a', 'n', 'e', 'm' }; +static const symbol s_2_1302[7] = { 'a', 's', 't', 'a', 'n', 'e', 'm' }; +static const symbol s_2_1303[7] = { 'i', 's', 't', 'a', 'n', 'e', 'm' }; +static const symbol s_2_1304[7] = { 'o', 's', 't', 'a', 'n', 'e', 'm' }; +static const symbol s_2_1305[4] = { 'e', 'n', 'e', 'm' }; +static const symbol s_2_1306[4] = { 's', 'n', 'e', 'm' }; +static const symbol s_2_1307[5] = { 0xC5, 0xA1, 'n', 'e', 'm' }; +static const symbol s_2_1308[5] = { 'b', 'a', 's', 'e', 'm' }; +static const symbol s_2_1309[5] = { 'g', 'a', 's', 'e', 'm' }; +static const symbol s_2_1310[5] = { 'j', 'a', 's', 'e', 'm' }; +static const symbol s_2_1311[5] = { 'k', 'a', 's', 'e', 'm' }; +static const symbol s_2_1312[5] = { 'n', 'a', 's', 'e', 'm' }; +static const symbol s_2_1313[5] = { 't', 'a', 's', 'e', 'm' }; +static const symbol s_2_1314[5] = { 'v', 'a', 's', 'e', 'm' }; +static const symbol s_2_1315[4] = { 'e', 's', 'e', 'm' }; +static const symbol s_2_1316[4] = { 'i', 's', 'e', 'm' }; +static const symbol s_2_1317[4] = { 'o', 's', 'e', 'm' }; +static const symbol s_2_1318[4] = { 'a', 't', 'e', 'm' }; +static const symbol s_2_1319[4] = { 'e', 't', 'e', 'm' }; +static const symbol s_2_1320[6] = { 'e', 'v', 'i', 't', 'e', 'm' }; +static const symbol s_2_1321[6] = { 'o', 'v', 'i', 't', 'e', 'm' }; +static const symbol s_2_1322[5] = { 'a', 's', 't', 'e', 'm' }; +static const symbol s_2_1323[5] = { 'i', 's', 't', 'e', 'm' }; +static const symbol s_2_1324[6] = { 'i', 0xC5, 0xA1, 't', 'e', 'm' }; +static const symbol s_2_1325[4] = { 'a', 'v', 'e', 'm' }; +static const symbol s_2_1326[4] = { 'e', 'v', 'e', 'm' }; +static const symbol s_2_1327[4] = { 'i', 'v', 'e', 'm' }; +static const symbol s_2_1328[5] = { 'a', 0xC4, 0x87, 'e', 'm' }; +static const symbol s_2_1329[5] = { 'e', 0xC4, 0x87, 'e', 'm' }; +static const symbol s_2_1330[5] = { 'u', 0xC4, 0x87, 'e', 'm' }; +static const symbol s_2_1331[6] = { 'b', 'a', 0xC5, 0xA1, 'e', 'm' }; +static const symbol s_2_1332[6] = { 'g', 'a', 0xC5, 0xA1, 'e', 'm' }; +static const symbol s_2_1333[6] = { 'j', 'a', 0xC5, 0xA1, 'e', 'm' }; +static const symbol s_2_1334[6] = { 'k', 'a', 0xC5, 0xA1, 'e', 'm' }; +static const symbol s_2_1335[6] = { 'n', 'a', 0xC5, 0xA1, 'e', 'm' }; +static const symbol s_2_1336[6] = { 't', 'a', 0xC5, 0xA1, 'e', 'm' }; +static const symbol s_2_1337[6] = { 'v', 'a', 0xC5, 0xA1, 'e', 'm' }; +static const symbol s_2_1338[5] = { 'e', 0xC5, 0xA1, 'e', 'm' }; +static const symbol s_2_1339[5] = { 'i', 0xC5, 0xA1, 'e', 'm' }; +static const symbol s_2_1340[5] = { 'o', 0xC5, 0xA1, 'e', 'm' }; +static const symbol s_2_1341[2] = { 'i', 'm' }; +static const symbol s_2_1342[4] = { 'a', 'c', 'i', 'm' }; +static const symbol s_2_1343[4] = { 'e', 'c', 'i', 'm' }; +static const symbol s_2_1344[4] = { 'u', 'c', 'i', 'm' }; +static const symbol s_2_1345[5] = { 'l', 'u', 'c', 'i', 'm' }; +static const symbol s_2_1346[7] = { 'a', 'n', 'j', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1347[7] = { 'e', 'n', 'j', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1348[7] = { 's', 'n', 'j', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1349[8] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1350[5] = { 'k', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1351[6] = { 's', 'k', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1352[7] = { 0xC5, 0xA1, 'k', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1353[6] = { 'e', 'l', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1354[5] = { 'n', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1355[6] = { 'o', 's', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1356[6] = { 'a', 't', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1357[8] = { 'e', 'v', 'i', 't', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1358[8] = { 'o', 'v', 'i', 't', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1359[7] = { 'a', 's', 't', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1360[6] = { 'a', 'v', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1361[6] = { 'e', 'v', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1362[6] = { 'i', 'v', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1363[6] = { 'o', 'v', 'i', 'j', 'i', 'm' }; +static const symbol s_2_1364[7] = { 'o', 0xC5, 0xA1, 'i', 'j', 'i', 'm' }; +static const symbol s_2_1365[5] = { 'a', 'n', 'j', 'i', 'm' }; +static const symbol s_2_1366[5] = { 'e', 'n', 'j', 'i', 'm' }; +static const symbol s_2_1367[5] = { 's', 'n', 'j', 'i', 'm' }; +static const symbol s_2_1368[6] = { 0xC5, 0xA1, 'n', 'j', 'i', 'm' }; +static const symbol s_2_1369[3] = { 'k', 'i', 'm' }; +static const symbol s_2_1370[4] = { 's', 'k', 'i', 'm' }; +static const symbol s_2_1371[5] = { 0xC5, 0xA1, 'k', 'i', 'm' }; +static const symbol s_2_1372[4] = { 'e', 'l', 'i', 'm' }; +static const symbol s_2_1373[3] = { 'n', 'i', 'm' }; +static const symbol s_2_1374[5] = { 'c', 'i', 'n', 'i', 'm' }; +static const symbol s_2_1375[6] = { 0xC4, 0x8D, 'i', 'n', 'i', 'm' }; +static const symbol s_2_1376[4] = { 'o', 's', 'i', 'm' }; +static const symbol s_2_1377[5] = { 'r', 'o', 's', 'i', 'm' }; +static const symbol s_2_1378[4] = { 'a', 't', 'i', 'm' }; +static const symbol s_2_1379[5] = { 'j', 'e', 't', 'i', 'm' }; +static const symbol s_2_1380[6] = { 'e', 'v', 'i', 't', 'i', 'm' }; +static const symbol s_2_1381[6] = { 'o', 'v', 'i', 't', 'i', 'm' }; +static const symbol s_2_1382[5] = { 'a', 's', 't', 'i', 'm' }; +static const symbol s_2_1383[4] = { 'a', 'v', 'i', 'm' }; +static const symbol s_2_1384[4] = { 'e', 'v', 'i', 'm' }; +static const symbol s_2_1385[4] = { 'i', 'v', 'i', 'm' }; +static const symbol s_2_1386[4] = { 'o', 'v', 'i', 'm' }; +static const symbol s_2_1387[5] = { 'a', 0xC4, 0x87, 'i', 'm' }; +static const symbol s_2_1388[5] = { 'e', 0xC4, 0x87, 'i', 'm' }; +static const symbol s_2_1389[5] = { 'u', 0xC4, 0x87, 'i', 'm' }; +static const symbol s_2_1390[5] = { 'a', 0xC4, 0x8D, 'i', 'm' }; +static const symbol s_2_1391[6] = { 'l', 'u', 0xC4, 0x8D, 'i', 'm' }; +static const symbol s_2_1392[5] = { 'o', 0xC5, 0xA1, 'i', 'm' }; +static const symbol s_2_1393[6] = { 'r', 'o', 0xC5, 0xA1, 'i', 'm' }; +static const symbol s_2_1394[4] = { 'a', 'c', 'o', 'm' }; +static const symbol s_2_1395[4] = { 'e', 'c', 'o', 'm' }; +static const symbol s_2_1396[4] = { 'u', 'c', 'o', 'm' }; +static const symbol s_2_1397[3] = { 'g', 'o', 'm' }; +static const symbol s_2_1398[5] = { 'l', 'o', 'g', 'o', 'm' }; +static const symbol s_2_1399[4] = { 'u', 'g', 'o', 'm' }; +static const symbol s_2_1400[5] = { 'b', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1401[5] = { 'c', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1402[5] = { 'd', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1403[5] = { 'f', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1404[5] = { 'g', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1405[5] = { 'l', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1406[5] = { 'm', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1407[5] = { 'n', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1408[7] = { 'g', 'a', 'n', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1409[7] = { 'm', 'a', 'n', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1410[7] = { 'p', 'a', 'n', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1411[7] = { 'r', 'a', 'n', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1412[7] = { 't', 'a', 'n', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1413[5] = { 'p', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1414[5] = { 'r', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1415[5] = { 's', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1416[5] = { 't', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1417[5] = { 'z', 'i', 'j', 'o', 'm' }; +static const symbol s_2_1418[6] = { 0xC5, 0xBE, 'i', 'j', 'o', 'm' }; +static const symbol s_2_1419[5] = { 'a', 'n', 'j', 'o', 'm' }; +static const symbol s_2_1420[5] = { 'e', 'n', 'j', 'o', 'm' }; +static const symbol s_2_1421[5] = { 's', 'n', 'j', 'o', 'm' }; +static const symbol s_2_1422[6] = { 0xC5, 0xA1, 'n', 'j', 'o', 'm' }; +static const symbol s_2_1423[3] = { 'k', 'o', 'm' }; +static const symbol s_2_1424[4] = { 's', 'k', 'o', 'm' }; +static const symbol s_2_1425[5] = { 0xC5, 0xA1, 'k', 'o', 'm' }; +static const symbol s_2_1426[4] = { 'a', 'l', 'o', 'm' }; +static const symbol s_2_1427[6] = { 'i', 'j', 'a', 'l', 'o', 'm' }; +static const symbol s_2_1428[5] = { 'n', 'a', 'l', 'o', 'm' }; +static const symbol s_2_1429[4] = { 'e', 'l', 'o', 'm' }; +static const symbol s_2_1430[4] = { 'i', 'l', 'o', 'm' }; +static const symbol s_2_1431[6] = { 'o', 'z', 'i', 'l', 'o', 'm' }; +static const symbol s_2_1432[4] = { 'o', 'l', 'o', 'm' }; +static const symbol s_2_1433[5] = { 'r', 'a', 'm', 'o', 'm' }; +static const symbol s_2_1434[5] = { 'l', 'e', 'm', 'o', 'm' }; +static const symbol s_2_1435[3] = { 'n', 'o', 'm' }; +static const symbol s_2_1436[4] = { 'a', 'n', 'o', 'm' }; +static const symbol s_2_1437[4] = { 'i', 'n', 'o', 'm' }; +static const symbol s_2_1438[5] = { 'c', 'i', 'n', 'o', 'm' }; +static const symbol s_2_1439[6] = { 'a', 'n', 'i', 'n', 'o', 'm' }; +static const symbol s_2_1440[6] = { 0xC4, 0x8D, 'i', 'n', 'o', 'm' }; +static const symbol s_2_1441[4] = { 'o', 'n', 'o', 'm' }; +static const symbol s_2_1442[4] = { 'a', 'r', 'o', 'm' }; +static const symbol s_2_1443[4] = { 'd', 'r', 'o', 'm' }; +static const symbol s_2_1444[4] = { 'e', 'r', 'o', 'm' }; +static const symbol s_2_1445[4] = { 'o', 'r', 'o', 'm' }; +static const symbol s_2_1446[5] = { 'b', 'a', 's', 'o', 'm' }; +static const symbol s_2_1447[5] = { 'g', 'a', 's', 'o', 'm' }; +static const symbol s_2_1448[5] = { 'j', 'a', 's', 'o', 'm' }; +static const symbol s_2_1449[5] = { 'k', 'a', 's', 'o', 'm' }; +static const symbol s_2_1450[5] = { 'n', 'a', 's', 'o', 'm' }; +static const symbol s_2_1451[5] = { 't', 'a', 's', 'o', 'm' }; +static const symbol s_2_1452[5] = { 'v', 'a', 's', 'o', 'm' }; +static const symbol s_2_1453[4] = { 'e', 's', 'o', 'm' }; +static const symbol s_2_1454[4] = { 'i', 's', 'o', 'm' }; +static const symbol s_2_1455[4] = { 'o', 's', 'o', 'm' }; +static const symbol s_2_1456[4] = { 'a', 't', 'o', 'm' }; +static const symbol s_2_1457[6] = { 'i', 'k', 'a', 't', 'o', 'm' }; +static const symbol s_2_1458[5] = { 'l', 'a', 't', 'o', 'm' }; +static const symbol s_2_1459[4] = { 'e', 't', 'o', 'm' }; +static const symbol s_2_1460[6] = { 'e', 'v', 'i', 't', 'o', 'm' }; +static const symbol s_2_1461[6] = { 'o', 'v', 'i', 't', 'o', 'm' }; +static const symbol s_2_1462[5] = { 'a', 's', 't', 'o', 'm' }; +static const symbol s_2_1463[5] = { 'e', 's', 't', 'o', 'm' }; +static const symbol s_2_1464[5] = { 'i', 's', 't', 'o', 'm' }; +static const symbol s_2_1465[5] = { 'k', 's', 't', 'o', 'm' }; +static const symbol s_2_1466[5] = { 'o', 's', 't', 'o', 'm' }; +static const symbol s_2_1467[4] = { 'a', 'v', 'o', 'm' }; +static const symbol s_2_1468[4] = { 'e', 'v', 'o', 'm' }; +static const symbol s_2_1469[4] = { 'i', 'v', 'o', 'm' }; +static const symbol s_2_1470[4] = { 'o', 'v', 'o', 'm' }; +static const symbol s_2_1471[5] = { 'l', 'o', 'v', 'o', 'm' }; +static const symbol s_2_1472[5] = { 'm', 'o', 'v', 'o', 'm' }; +static const symbol s_2_1473[5] = { 's', 't', 'v', 'o', 'm' }; +static const symbol s_2_1474[6] = { 0xC5, 0xA1, 't', 'v', 'o', 'm' }; +static const symbol s_2_1475[5] = { 'a', 0xC4, 0x87, 'o', 'm' }; +static const symbol s_2_1476[5] = { 'e', 0xC4, 0x87, 'o', 'm' }; +static const symbol s_2_1477[5] = { 'u', 0xC4, 0x87, 'o', 'm' }; +static const symbol s_2_1478[6] = { 'b', 'a', 0xC5, 0xA1, 'o', 'm' }; +static const symbol s_2_1479[6] = { 'g', 'a', 0xC5, 0xA1, 'o', 'm' }; +static const symbol s_2_1480[6] = { 'j', 'a', 0xC5, 0xA1, 'o', 'm' }; +static const symbol s_2_1481[6] = { 'k', 'a', 0xC5, 0xA1, 'o', 'm' }; +static const symbol s_2_1482[6] = { 'n', 'a', 0xC5, 0xA1, 'o', 'm' }; +static const symbol s_2_1483[6] = { 't', 'a', 0xC5, 0xA1, 'o', 'm' }; +static const symbol s_2_1484[6] = { 'v', 'a', 0xC5, 0xA1, 'o', 'm' }; +static const symbol s_2_1485[5] = { 'e', 0xC5, 0xA1, 'o', 'm' }; +static const symbol s_2_1486[5] = { 'i', 0xC5, 0xA1, 'o', 'm' }; +static const symbol s_2_1487[5] = { 'o', 0xC5, 0xA1, 'o', 'm' }; +static const symbol s_2_1488[2] = { 'a', 'n' }; +static const symbol s_2_1489[4] = { 'a', 'c', 'a', 'n' }; +static const symbol s_2_1490[4] = { 'i', 'r', 'a', 'n' }; +static const symbol s_2_1491[4] = { 'u', 'r', 'a', 'n' }; +static const symbol s_2_1492[3] = { 't', 'a', 'n' }; +static const symbol s_2_1493[4] = { 'a', 'v', 'a', 'n' }; +static const symbol s_2_1494[4] = { 'e', 'v', 'a', 'n' }; +static const symbol s_2_1495[4] = { 'i', 'v', 'a', 'n' }; +static const symbol s_2_1496[4] = { 'u', 'v', 'a', 'n' }; +static const symbol s_2_1497[5] = { 'a', 0xC4, 0x8D, 'a', 'n' }; +static const symbol s_2_1498[4] = { 'a', 'c', 'e', 'n' }; +static const symbol s_2_1499[5] = { 'l', 'u', 'c', 'e', 'n' }; +static const symbol s_2_1500[5] = { 'a', 0xC4, 0x8D, 'e', 'n' }; +static const symbol s_2_1501[6] = { 'l', 'u', 0xC4, 0x8D, 'e', 'n' }; +static const symbol s_2_1502[4] = { 'a', 'n', 'i', 'n' }; +static const symbol s_2_1503[2] = { 'a', 'o' }; +static const symbol s_2_1504[4] = { 'a', 'c', 'a', 'o' }; +static const symbol s_2_1505[7] = { 'a', 's', 't', 'a', 'j', 'a', 'o' }; +static const symbol s_2_1506[7] = { 'i', 's', 't', 'a', 'j', 'a', 'o' }; +static const symbol s_2_1507[7] = { 'o', 's', 't', 'a', 'j', 'a', 'o' }; +static const symbol s_2_1508[5] = { 'i', 'n', 'j', 'a', 'o' }; +static const symbol s_2_1509[4] = { 'i', 'r', 'a', 'o' }; +static const symbol s_2_1510[4] = { 'u', 'r', 'a', 'o' }; +static const symbol s_2_1511[3] = { 't', 'a', 'o' }; +static const symbol s_2_1512[5] = { 'a', 's', 't', 'a', 'o' }; +static const symbol s_2_1513[5] = { 'i', 's', 't', 'a', 'o' }; +static const symbol s_2_1514[5] = { 'o', 's', 't', 'a', 'o' }; +static const symbol s_2_1515[4] = { 'a', 'v', 'a', 'o' }; +static const symbol s_2_1516[4] = { 'e', 'v', 'a', 'o' }; +static const symbol s_2_1517[4] = { 'i', 'v', 'a', 'o' }; +static const symbol s_2_1518[4] = { 'o', 'v', 'a', 'o' }; +static const symbol s_2_1519[4] = { 'u', 'v', 'a', 'o' }; +static const symbol s_2_1520[5] = { 'a', 0xC4, 0x8D, 'a', 'o' }; +static const symbol s_2_1521[2] = { 'g', 'o' }; +static const symbol s_2_1522[3] = { 'u', 'g', 'o' }; +static const symbol s_2_1523[2] = { 'i', 'o' }; +static const symbol s_2_1524[4] = { 'a', 'c', 'i', 'o' }; +static const symbol s_2_1525[5] = { 'l', 'u', 'c', 'i', 'o' }; +static const symbol s_2_1526[3] = { 'l', 'i', 'o' }; +static const symbol s_2_1527[3] = { 'n', 'i', 'o' }; +static const symbol s_2_1528[5] = { 'r', 'a', 'r', 'i', 'o' }; +static const symbol s_2_1529[3] = { 's', 'i', 'o' }; +static const symbol s_2_1530[5] = { 'r', 'o', 's', 'i', 'o' }; +static const symbol s_2_1531[5] = { 'j', 'e', 't', 'i', 'o' }; +static const symbol s_2_1532[4] = { 'o', 't', 'i', 'o' }; +static const symbol s_2_1533[5] = { 'a', 0xC4, 0x8D, 'i', 'o' }; +static const symbol s_2_1534[6] = { 'l', 'u', 0xC4, 0x8D, 'i', 'o' }; +static const symbol s_2_1535[6] = { 'r', 'o', 0xC5, 0xA1, 'i', 'o' }; +static const symbol s_2_1536[4] = { 'b', 'i', 'j', 'o' }; +static const symbol s_2_1537[4] = { 'c', 'i', 'j', 'o' }; +static const symbol s_2_1538[4] = { 'd', 'i', 'j', 'o' }; +static const symbol s_2_1539[4] = { 'f', 'i', 'j', 'o' }; +static const symbol s_2_1540[4] = { 'g', 'i', 'j', 'o' }; +static const symbol s_2_1541[4] = { 'l', 'i', 'j', 'o' }; +static const symbol s_2_1542[4] = { 'm', 'i', 'j', 'o' }; +static const symbol s_2_1543[4] = { 'n', 'i', 'j', 'o' }; +static const symbol s_2_1544[4] = { 'p', 'i', 'j', 'o' }; +static const symbol s_2_1545[4] = { 'r', 'i', 'j', 'o' }; +static const symbol s_2_1546[4] = { 's', 'i', 'j', 'o' }; +static const symbol s_2_1547[4] = { 't', 'i', 'j', 'o' }; +static const symbol s_2_1548[4] = { 'z', 'i', 'j', 'o' }; +static const symbol s_2_1549[5] = { 0xC5, 0xBE, 'i', 'j', 'o' }; +static const symbol s_2_1550[4] = { 'a', 'n', 'j', 'o' }; +static const symbol s_2_1551[4] = { 'e', 'n', 'j', 'o' }; +static const symbol s_2_1552[4] = { 's', 'n', 'j', 'o' }; +static const symbol s_2_1553[5] = { 0xC5, 0xA1, 'n', 'j', 'o' }; +static const symbol s_2_1554[2] = { 'k', 'o' }; +static const symbol s_2_1555[3] = { 's', 'k', 'o' }; +static const symbol s_2_1556[4] = { 0xC5, 0xA1, 'k', 'o' }; +static const symbol s_2_1557[3] = { 'a', 'l', 'o' }; +static const symbol s_2_1558[5] = { 'a', 'c', 'a', 'l', 'o' }; +static const symbol s_2_1559[8] = { 'a', 's', 't', 'a', 'j', 'a', 'l', 'o' }; +static const symbol s_2_1560[8] = { 'i', 's', 't', 'a', 'j', 'a', 'l', 'o' }; +static const symbol s_2_1561[8] = { 'o', 's', 't', 'a', 'j', 'a', 'l', 'o' }; +static const symbol s_2_1562[5] = { 'i', 'j', 'a', 'l', 'o' }; +static const symbol s_2_1563[6] = { 'i', 'n', 'j', 'a', 'l', 'o' }; +static const symbol s_2_1564[4] = { 'n', 'a', 'l', 'o' }; +static const symbol s_2_1565[5] = { 'i', 'r', 'a', 'l', 'o' }; +static const symbol s_2_1566[5] = { 'u', 'r', 'a', 'l', 'o' }; +static const symbol s_2_1567[4] = { 't', 'a', 'l', 'o' }; +static const symbol s_2_1568[6] = { 'a', 's', 't', 'a', 'l', 'o' }; +static const symbol s_2_1569[6] = { 'i', 's', 't', 'a', 'l', 'o' }; +static const symbol s_2_1570[6] = { 'o', 's', 't', 'a', 'l', 'o' }; +static const symbol s_2_1571[5] = { 'a', 'v', 'a', 'l', 'o' }; +static const symbol s_2_1572[5] = { 'e', 'v', 'a', 'l', 'o' }; +static const symbol s_2_1573[5] = { 'i', 'v', 'a', 'l', 'o' }; +static const symbol s_2_1574[5] = { 'o', 'v', 'a', 'l', 'o' }; +static const symbol s_2_1575[5] = { 'u', 'v', 'a', 'l', 'o' }; +static const symbol s_2_1576[6] = { 'a', 0xC4, 0x8D, 'a', 'l', 'o' }; +static const symbol s_2_1577[3] = { 'e', 'l', 'o' }; +static const symbol s_2_1578[3] = { 'i', 'l', 'o' }; +static const symbol s_2_1579[5] = { 'a', 'c', 'i', 'l', 'o' }; +static const symbol s_2_1580[6] = { 'l', 'u', 'c', 'i', 'l', 'o' }; +static const symbol s_2_1581[4] = { 'n', 'i', 'l', 'o' }; +static const symbol s_2_1582[6] = { 'r', 'o', 's', 'i', 'l', 'o' }; +static const symbol s_2_1583[6] = { 'j', 'e', 't', 'i', 'l', 'o' }; +static const symbol s_2_1584[6] = { 'a', 0xC4, 0x8D, 'i', 'l', 'o' }; +static const symbol s_2_1585[7] = { 'l', 'u', 0xC4, 0x8D, 'i', 'l', 'o' }; +static const symbol s_2_1586[7] = { 'r', 'o', 0xC5, 0xA1, 'i', 'l', 'o' }; +static const symbol s_2_1587[4] = { 'a', 's', 'l', 'o' }; +static const symbol s_2_1588[4] = { 'n', 'u', 'l', 'o' }; +static const symbol s_2_1589[3] = { 'a', 'm', 'o' }; +static const symbol s_2_1590[5] = { 'a', 'c', 'a', 'm', 'o' }; +static const symbol s_2_1591[4] = { 'r', 'a', 'm', 'o' }; +static const symbol s_2_1592[5] = { 'i', 'r', 'a', 'm', 'o' }; +static const symbol s_2_1593[5] = { 'u', 'r', 'a', 'm', 'o' }; +static const symbol s_2_1594[4] = { 't', 'a', 'm', 'o' }; +static const symbol s_2_1595[5] = { 'a', 'v', 'a', 'm', 'o' }; +static const symbol s_2_1596[5] = { 'e', 'v', 'a', 'm', 'o' }; +static const symbol s_2_1597[5] = { 'i', 'v', 'a', 'm', 'o' }; +static const symbol s_2_1598[5] = { 'u', 'v', 'a', 'm', 'o' }; +static const symbol s_2_1599[6] = { 'a', 0xC4, 0x8D, 'a', 'm', 'o' }; +static const symbol s_2_1600[3] = { 'e', 'm', 'o' }; +static const symbol s_2_1601[8] = { 'a', 's', 't', 'a', 'd', 'e', 'm', 'o' }; +static const symbol s_2_1602[8] = { 'i', 's', 't', 'a', 'd', 'e', 'm', 'o' }; +static const symbol s_2_1603[8] = { 'o', 's', 't', 'a', 'd', 'e', 'm', 'o' }; +static const symbol s_2_1604[8] = { 'a', 's', 't', 'a', 'j', 'e', 'm', 'o' }; +static const symbol s_2_1605[8] = { 'i', 's', 't', 'a', 'j', 'e', 'm', 'o' }; +static const symbol s_2_1606[8] = { 'o', 's', 't', 'a', 'j', 'e', 'm', 'o' }; +static const symbol s_2_1607[5] = { 'i', 'j', 'e', 'm', 'o' }; +static const symbol s_2_1608[6] = { 'i', 'n', 'j', 'e', 'm', 'o' }; +static const symbol s_2_1609[5] = { 'u', 'j', 'e', 'm', 'o' }; +static const symbol s_2_1610[8] = { 'l', 'u', 'c', 'u', 'j', 'e', 'm', 'o' }; +static const symbol s_2_1611[7] = { 'i', 'r', 'u', 'j', 'e', 'm', 'o' }; +static const symbol s_2_1612[9] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 'e', 'm', 'o' }; +static const symbol s_2_1613[4] = { 'l', 'e', 'm', 'o' }; +static const symbol s_2_1614[4] = { 'n', 'e', 'm', 'o' }; +static const symbol s_2_1615[8] = { 'a', 's', 't', 'a', 'n', 'e', 'm', 'o' }; +static const symbol s_2_1616[8] = { 'i', 's', 't', 'a', 'n', 'e', 'm', 'o' }; +static const symbol s_2_1617[8] = { 'o', 's', 't', 'a', 'n', 'e', 'm', 'o' }; +static const symbol s_2_1618[5] = { 'e', 't', 'e', 'm', 'o' }; +static const symbol s_2_1619[6] = { 'a', 's', 't', 'e', 'm', 'o' }; +static const symbol s_2_1620[3] = { 'i', 'm', 'o' }; +static const symbol s_2_1621[5] = { 'a', 'c', 'i', 'm', 'o' }; +static const symbol s_2_1622[6] = { 'l', 'u', 'c', 'i', 'm', 'o' }; +static const symbol s_2_1623[4] = { 'n', 'i', 'm', 'o' }; +static const symbol s_2_1624[8] = { 'a', 's', 't', 'a', 'n', 'i', 'm', 'o' }; +static const symbol s_2_1625[8] = { 'i', 's', 't', 'a', 'n', 'i', 'm', 'o' }; +static const symbol s_2_1626[8] = { 'o', 's', 't', 'a', 'n', 'i', 'm', 'o' }; +static const symbol s_2_1627[6] = { 'r', 'o', 's', 'i', 'm', 'o' }; +static const symbol s_2_1628[5] = { 'e', 't', 'i', 'm', 'o' }; +static const symbol s_2_1629[6] = { 'j', 'e', 't', 'i', 'm', 'o' }; +static const symbol s_2_1630[6] = { 'a', 's', 't', 'i', 'm', 'o' }; +static const symbol s_2_1631[6] = { 'a', 0xC4, 0x8D, 'i', 'm', 'o' }; +static const symbol s_2_1632[7] = { 'l', 'u', 0xC4, 0x8D, 'i', 'm', 'o' }; +static const symbol s_2_1633[7] = { 'r', 'o', 0xC5, 0xA1, 'i', 'm', 'o' }; +static const symbol s_2_1634[4] = { 'a', 'j', 'm', 'o' }; +static const symbol s_2_1635[6] = { 'u', 'r', 'a', 'j', 'm', 'o' }; +static const symbol s_2_1636[5] = { 't', 'a', 'j', 'm', 'o' }; +static const symbol s_2_1637[7] = { 'a', 's', 't', 'a', 'j', 'm', 'o' }; +static const symbol s_2_1638[7] = { 'i', 's', 't', 'a', 'j', 'm', 'o' }; +static const symbol s_2_1639[7] = { 'o', 's', 't', 'a', 'j', 'm', 'o' }; +static const symbol s_2_1640[6] = { 'a', 'v', 'a', 'j', 'm', 'o' }; +static const symbol s_2_1641[6] = { 'e', 'v', 'a', 'j', 'm', 'o' }; +static const symbol s_2_1642[6] = { 'i', 'v', 'a', 'j', 'm', 'o' }; +static const symbol s_2_1643[6] = { 'u', 'v', 'a', 'j', 'm', 'o' }; +static const symbol s_2_1644[4] = { 'i', 'j', 'm', 'o' }; +static const symbol s_2_1645[4] = { 'u', 'j', 'm', 'o' }; +static const symbol s_2_1646[7] = { 'l', 'u', 'c', 'u', 'j', 'm', 'o' }; +static const symbol s_2_1647[6] = { 'i', 'r', 'u', 'j', 'm', 'o' }; +static const symbol s_2_1648[8] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 'm', 'o' }; +static const symbol s_2_1649[4] = { 'a', 's', 'm', 'o' }; +static const symbol s_2_1650[6] = { 'a', 'c', 'a', 's', 'm', 'o' }; +static const symbol s_2_1651[9] = { 'a', 's', 't', 'a', 'j', 'a', 's', 'm', 'o' }; +static const symbol s_2_1652[9] = { 'i', 's', 't', 'a', 'j', 'a', 's', 'm', 'o' }; +static const symbol s_2_1653[9] = { 'o', 's', 't', 'a', 'j', 'a', 's', 'm', 'o' }; +static const symbol s_2_1654[7] = { 'i', 'n', 'j', 'a', 's', 'm', 'o' }; +static const symbol s_2_1655[6] = { 'i', 'r', 'a', 's', 'm', 'o' }; +static const symbol s_2_1656[6] = { 'u', 'r', 'a', 's', 'm', 'o' }; +static const symbol s_2_1657[5] = { 't', 'a', 's', 'm', 'o' }; +static const symbol s_2_1658[6] = { 'a', 'v', 'a', 's', 'm', 'o' }; +static const symbol s_2_1659[6] = { 'e', 'v', 'a', 's', 'm', 'o' }; +static const symbol s_2_1660[6] = { 'i', 'v', 'a', 's', 'm', 'o' }; +static const symbol s_2_1661[6] = { 'o', 'v', 'a', 's', 'm', 'o' }; +static const symbol s_2_1662[6] = { 'u', 'v', 'a', 's', 'm', 'o' }; +static const symbol s_2_1663[7] = { 'a', 0xC4, 0x8D, 'a', 's', 'm', 'o' }; +static const symbol s_2_1664[4] = { 'i', 's', 'm', 'o' }; +static const symbol s_2_1665[6] = { 'a', 'c', 'i', 's', 'm', 'o' }; +static const symbol s_2_1666[7] = { 'l', 'u', 'c', 'i', 's', 'm', 'o' }; +static const symbol s_2_1667[5] = { 'n', 'i', 's', 'm', 'o' }; +static const symbol s_2_1668[7] = { 'r', 'o', 's', 'i', 's', 'm', 'o' }; +static const symbol s_2_1669[7] = { 'j', 'e', 't', 'i', 's', 'm', 'o' }; +static const symbol s_2_1670[7] = { 'a', 0xC4, 0x8D, 'i', 's', 'm', 'o' }; +static const symbol s_2_1671[8] = { 'l', 'u', 0xC4, 0x8D, 'i', 's', 'm', 'o' }; +static const symbol s_2_1672[8] = { 'r', 'o', 0xC5, 0xA1, 'i', 's', 'm', 'o' }; +static const symbol s_2_1673[9] = { 'a', 's', 't', 'a', 'd', 'o', 's', 'm', 'o' }; +static const symbol s_2_1674[9] = { 'i', 's', 't', 'a', 'd', 'o', 's', 'm', 'o' }; +static const symbol s_2_1675[9] = { 'o', 's', 't', 'a', 'd', 'o', 's', 'm', 'o' }; +static const symbol s_2_1676[5] = { 'n', 'u', 's', 'm', 'o' }; +static const symbol s_2_1677[2] = { 'n', 'o' }; +static const symbol s_2_1678[3] = { 'a', 'n', 'o' }; +static const symbol s_2_1679[5] = { 'a', 'c', 'a', 'n', 'o' }; +static const symbol s_2_1680[5] = { 'u', 'r', 'a', 'n', 'o' }; +static const symbol s_2_1681[4] = { 't', 'a', 'n', 'o' }; +static const symbol s_2_1682[5] = { 'a', 'v', 'a', 'n', 'o' }; +static const symbol s_2_1683[5] = { 'e', 'v', 'a', 'n', 'o' }; +static const symbol s_2_1684[5] = { 'i', 'v', 'a', 'n', 'o' }; +static const symbol s_2_1685[5] = { 'u', 'v', 'a', 'n', 'o' }; +static const symbol s_2_1686[6] = { 'a', 0xC4, 0x8D, 'a', 'n', 'o' }; +static const symbol s_2_1687[5] = { 'a', 'c', 'e', 'n', 'o' }; +static const symbol s_2_1688[6] = { 'l', 'u', 'c', 'e', 'n', 'o' }; +static const symbol s_2_1689[6] = { 'a', 0xC4, 0x8D, 'e', 'n', 'o' }; +static const symbol s_2_1690[7] = { 'l', 'u', 0xC4, 0x8D, 'e', 'n', 'o' }; +static const symbol s_2_1691[3] = { 'i', 'n', 'o' }; +static const symbol s_2_1692[4] = { 'c', 'i', 'n', 'o' }; +static const symbol s_2_1693[5] = { 0xC4, 0x8D, 'i', 'n', 'o' }; +static const symbol s_2_1694[3] = { 'a', 't', 'o' }; +static const symbol s_2_1695[5] = { 'i', 'k', 'a', 't', 'o' }; +static const symbol s_2_1696[4] = { 'l', 'a', 't', 'o' }; +static const symbol s_2_1697[3] = { 'e', 't', 'o' }; +static const symbol s_2_1698[5] = { 'e', 'v', 'i', 't', 'o' }; +static const symbol s_2_1699[5] = { 'o', 'v', 'i', 't', 'o' }; +static const symbol s_2_1700[4] = { 'a', 's', 't', 'o' }; +static const symbol s_2_1701[4] = { 'e', 's', 't', 'o' }; +static const symbol s_2_1702[4] = { 'i', 's', 't', 'o' }; +static const symbol s_2_1703[4] = { 'k', 's', 't', 'o' }; +static const symbol s_2_1704[4] = { 'o', 's', 't', 'o' }; +static const symbol s_2_1705[4] = { 'n', 'u', 't', 'o' }; +static const symbol s_2_1706[3] = { 'n', 'u', 'o' }; +static const symbol s_2_1707[3] = { 'a', 'v', 'o' }; +static const symbol s_2_1708[3] = { 'e', 'v', 'o' }; +static const symbol s_2_1709[3] = { 'i', 'v', 'o' }; +static const symbol s_2_1710[3] = { 'o', 'v', 'o' }; +static const symbol s_2_1711[4] = { 's', 't', 'v', 'o' }; +static const symbol s_2_1712[5] = { 0xC5, 0xA1, 't', 'v', 'o' }; +static const symbol s_2_1713[2] = { 'a', 's' }; +static const symbol s_2_1714[4] = { 'a', 'c', 'a', 's' }; +static const symbol s_2_1715[4] = { 'i', 'r', 'a', 's' }; +static const symbol s_2_1716[4] = { 'u', 'r', 'a', 's' }; +static const symbol s_2_1717[3] = { 't', 'a', 's' }; +static const symbol s_2_1718[4] = { 'a', 'v', 'a', 's' }; +static const symbol s_2_1719[4] = { 'e', 'v', 'a', 's' }; +static const symbol s_2_1720[4] = { 'i', 'v', 'a', 's' }; +static const symbol s_2_1721[4] = { 'u', 'v', 'a', 's' }; +static const symbol s_2_1722[2] = { 'e', 's' }; +static const symbol s_2_1723[7] = { 'a', 's', 't', 'a', 'd', 'e', 's' }; +static const symbol s_2_1724[7] = { 'i', 's', 't', 'a', 'd', 'e', 's' }; +static const symbol s_2_1725[7] = { 'o', 's', 't', 'a', 'd', 'e', 's' }; +static const symbol s_2_1726[7] = { 'a', 's', 't', 'a', 'j', 'e', 's' }; +static const symbol s_2_1727[7] = { 'i', 's', 't', 'a', 'j', 'e', 's' }; +static const symbol s_2_1728[7] = { 'o', 's', 't', 'a', 'j', 'e', 's' }; +static const symbol s_2_1729[4] = { 'i', 'j', 'e', 's' }; +static const symbol s_2_1730[5] = { 'i', 'n', 'j', 'e', 's' }; +static const symbol s_2_1731[4] = { 'u', 'j', 'e', 's' }; +static const symbol s_2_1732[7] = { 'l', 'u', 'c', 'u', 'j', 'e', 's' }; +static const symbol s_2_1733[6] = { 'i', 'r', 'u', 'j', 'e', 's' }; +static const symbol s_2_1734[3] = { 'n', 'e', 's' }; +static const symbol s_2_1735[7] = { 'a', 's', 't', 'a', 'n', 'e', 's' }; +static const symbol s_2_1736[7] = { 'i', 's', 't', 'a', 'n', 'e', 's' }; +static const symbol s_2_1737[7] = { 'o', 's', 't', 'a', 'n', 'e', 's' }; +static const symbol s_2_1738[4] = { 'e', 't', 'e', 's' }; +static const symbol s_2_1739[5] = { 'a', 's', 't', 'e', 's' }; +static const symbol s_2_1740[2] = { 'i', 's' }; +static const symbol s_2_1741[4] = { 'a', 'c', 'i', 's' }; +static const symbol s_2_1742[5] = { 'l', 'u', 'c', 'i', 's' }; +static const symbol s_2_1743[3] = { 'n', 'i', 's' }; +static const symbol s_2_1744[5] = { 'r', 'o', 's', 'i', 's' }; +static const symbol s_2_1745[5] = { 'j', 'e', 't', 'i', 's' }; +static const symbol s_2_1746[2] = { 'a', 't' }; +static const symbol s_2_1747[4] = { 'a', 'c', 'a', 't' }; +static const symbol s_2_1748[7] = { 'a', 's', 't', 'a', 'j', 'a', 't' }; +static const symbol s_2_1749[7] = { 'i', 's', 't', 'a', 'j', 'a', 't' }; +static const symbol s_2_1750[7] = { 'o', 's', 't', 'a', 'j', 'a', 't' }; +static const symbol s_2_1751[5] = { 'i', 'n', 'j', 'a', 't' }; +static const symbol s_2_1752[4] = { 'i', 'r', 'a', 't' }; +static const symbol s_2_1753[4] = { 'u', 'r', 'a', 't' }; +static const symbol s_2_1754[3] = { 't', 'a', 't' }; +static const symbol s_2_1755[5] = { 'a', 's', 't', 'a', 't' }; +static const symbol s_2_1756[5] = { 'i', 's', 't', 'a', 't' }; +static const symbol s_2_1757[5] = { 'o', 's', 't', 'a', 't' }; +static const symbol s_2_1758[4] = { 'a', 'v', 'a', 't' }; +static const symbol s_2_1759[4] = { 'e', 'v', 'a', 't' }; +static const symbol s_2_1760[4] = { 'i', 'v', 'a', 't' }; +static const symbol s_2_1761[6] = { 'i', 'r', 'i', 'v', 'a', 't' }; +static const symbol s_2_1762[4] = { 'o', 'v', 'a', 't' }; +static const symbol s_2_1763[4] = { 'u', 'v', 'a', 't' }; +static const symbol s_2_1764[5] = { 'a', 0xC4, 0x8D, 'a', 't' }; +static const symbol s_2_1765[2] = { 'i', 't' }; +static const symbol s_2_1766[4] = { 'a', 'c', 'i', 't' }; +static const symbol s_2_1767[5] = { 'l', 'u', 'c', 'i', 't' }; +static const symbol s_2_1768[5] = { 'r', 'o', 's', 'i', 't' }; +static const symbol s_2_1769[5] = { 'j', 'e', 't', 'i', 't' }; +static const symbol s_2_1770[5] = { 'a', 0xC4, 0x8D, 'i', 't' }; +static const symbol s_2_1771[6] = { 'l', 'u', 0xC4, 0x8D, 'i', 't' }; +static const symbol s_2_1772[6] = { 'r', 'o', 0xC5, 0xA1, 'i', 't' }; +static const symbol s_2_1773[3] = { 'n', 'u', 't' }; +static const symbol s_2_1774[6] = { 'a', 's', 't', 'a', 'd', 'u' }; +static const symbol s_2_1775[6] = { 'i', 's', 't', 'a', 'd', 'u' }; +static const symbol s_2_1776[6] = { 'o', 's', 't', 'a', 'd', 'u' }; +static const symbol s_2_1777[2] = { 'g', 'u' }; +static const symbol s_2_1778[4] = { 'l', 'o', 'g', 'u' }; +static const symbol s_2_1779[3] = { 'u', 'g', 'u' }; +static const symbol s_2_1780[3] = { 'a', 'h', 'u' }; +static const symbol s_2_1781[5] = { 'a', 'c', 'a', 'h', 'u' }; +static const symbol s_2_1782[8] = { 'a', 's', 't', 'a', 'j', 'a', 'h', 'u' }; +static const symbol s_2_1783[8] = { 'i', 's', 't', 'a', 'j', 'a', 'h', 'u' }; +static const symbol s_2_1784[8] = { 'o', 's', 't', 'a', 'j', 'a', 'h', 'u' }; +static const symbol s_2_1785[6] = { 'i', 'n', 'j', 'a', 'h', 'u' }; +static const symbol s_2_1786[5] = { 'i', 'r', 'a', 'h', 'u' }; +static const symbol s_2_1787[5] = { 'u', 'r', 'a', 'h', 'u' }; +static const symbol s_2_1788[5] = { 'a', 'v', 'a', 'h', 'u' }; +static const symbol s_2_1789[5] = { 'e', 'v', 'a', 'h', 'u' }; +static const symbol s_2_1790[5] = { 'i', 'v', 'a', 'h', 'u' }; +static const symbol s_2_1791[5] = { 'o', 'v', 'a', 'h', 'u' }; +static const symbol s_2_1792[5] = { 'u', 'v', 'a', 'h', 'u' }; +static const symbol s_2_1793[6] = { 'a', 0xC4, 0x8D, 'a', 'h', 'u' }; +static const symbol s_2_1794[3] = { 'a', 'j', 'u' }; +static const symbol s_2_1795[4] = { 'c', 'a', 'j', 'u' }; +static const symbol s_2_1796[5] = { 'a', 'c', 'a', 'j', 'u' }; +static const symbol s_2_1797[4] = { 'l', 'a', 'j', 'u' }; +static const symbol s_2_1798[4] = { 'r', 'a', 'j', 'u' }; +static const symbol s_2_1799[5] = { 'i', 'r', 'a', 'j', 'u' }; +static const symbol s_2_1800[5] = { 'u', 'r', 'a', 'j', 'u' }; +static const symbol s_2_1801[4] = { 't', 'a', 'j', 'u' }; +static const symbol s_2_1802[6] = { 'a', 's', 't', 'a', 'j', 'u' }; +static const symbol s_2_1803[6] = { 'i', 's', 't', 'a', 'j', 'u' }; +static const symbol s_2_1804[6] = { 'o', 's', 't', 'a', 'j', 'u' }; +static const symbol s_2_1805[5] = { 'a', 'v', 'a', 'j', 'u' }; +static const symbol s_2_1806[5] = { 'e', 'v', 'a', 'j', 'u' }; +static const symbol s_2_1807[5] = { 'i', 'v', 'a', 'j', 'u' }; +static const symbol s_2_1808[5] = { 'u', 'v', 'a', 'j', 'u' }; +static const symbol s_2_1809[5] = { 0xC4, 0x87, 'a', 'j', 'u' }; +static const symbol s_2_1810[5] = { 0xC4, 0x8D, 'a', 'j', 'u' }; +static const symbol s_2_1811[6] = { 'a', 0xC4, 0x8D, 'a', 'j', 'u' }; +static const symbol s_2_1812[5] = { 0xC4, 0x91, 'a', 'j', 'u' }; +static const symbol s_2_1813[3] = { 'i', 'j', 'u' }; +static const symbol s_2_1814[4] = { 'b', 'i', 'j', 'u' }; +static const symbol s_2_1815[4] = { 'c', 'i', 'j', 'u' }; +static const symbol s_2_1816[4] = { 'd', 'i', 'j', 'u' }; +static const symbol s_2_1817[4] = { 'f', 'i', 'j', 'u' }; +static const symbol s_2_1818[4] = { 'g', 'i', 'j', 'u' }; +static const symbol s_2_1819[6] = { 'a', 'n', 'j', 'i', 'j', 'u' }; +static const symbol s_2_1820[6] = { 'e', 'n', 'j', 'i', 'j', 'u' }; +static const symbol s_2_1821[6] = { 's', 'n', 'j', 'i', 'j', 'u' }; +static const symbol s_2_1822[7] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'u' }; +static const symbol s_2_1823[4] = { 'k', 'i', 'j', 'u' }; +static const symbol s_2_1824[4] = { 'l', 'i', 'j', 'u' }; +static const symbol s_2_1825[5] = { 'e', 'l', 'i', 'j', 'u' }; +static const symbol s_2_1826[4] = { 'm', 'i', 'j', 'u' }; +static const symbol s_2_1827[4] = { 'n', 'i', 'j', 'u' }; +static const symbol s_2_1828[6] = { 'g', 'a', 'n', 'i', 'j', 'u' }; +static const symbol s_2_1829[6] = { 'm', 'a', 'n', 'i', 'j', 'u' }; +static const symbol s_2_1830[6] = { 'p', 'a', 'n', 'i', 'j', 'u' }; +static const symbol s_2_1831[6] = { 'r', 'a', 'n', 'i', 'j', 'u' }; +static const symbol s_2_1832[6] = { 't', 'a', 'n', 'i', 'j', 'u' }; +static const symbol s_2_1833[4] = { 'p', 'i', 'j', 'u' }; +static const symbol s_2_1834[4] = { 'r', 'i', 'j', 'u' }; +static const symbol s_2_1835[6] = { 'r', 'a', 'r', 'i', 'j', 'u' }; +static const symbol s_2_1836[4] = { 's', 'i', 'j', 'u' }; +static const symbol s_2_1837[5] = { 'o', 's', 'i', 'j', 'u' }; +static const symbol s_2_1838[4] = { 't', 'i', 'j', 'u' }; +static const symbol s_2_1839[5] = { 'a', 't', 'i', 'j', 'u' }; +static const symbol s_2_1840[5] = { 'o', 't', 'i', 'j', 'u' }; +static const symbol s_2_1841[5] = { 'a', 'v', 'i', 'j', 'u' }; +static const symbol s_2_1842[5] = { 'e', 'v', 'i', 'j', 'u' }; +static const symbol s_2_1843[5] = { 'i', 'v', 'i', 'j', 'u' }; +static const symbol s_2_1844[5] = { 'o', 'v', 'i', 'j', 'u' }; +static const symbol s_2_1845[4] = { 'z', 'i', 'j', 'u' }; +static const symbol s_2_1846[6] = { 'o', 0xC5, 0xA1, 'i', 'j', 'u' }; +static const symbol s_2_1847[5] = { 0xC5, 0xBE, 'i', 'j', 'u' }; +static const symbol s_2_1848[4] = { 'a', 'n', 'j', 'u' }; +static const symbol s_2_1849[4] = { 'e', 'n', 'j', 'u' }; +static const symbol s_2_1850[4] = { 's', 'n', 'j', 'u' }; +static const symbol s_2_1851[5] = { 0xC5, 0xA1, 'n', 'j', 'u' }; +static const symbol s_2_1852[3] = { 'u', 'j', 'u' }; +static const symbol s_2_1853[6] = { 'l', 'u', 'c', 'u', 'j', 'u' }; +static const symbol s_2_1854[5] = { 'i', 'r', 'u', 'j', 'u' }; +static const symbol s_2_1855[7] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 'u' }; +static const symbol s_2_1856[2] = { 'k', 'u' }; +static const symbol s_2_1857[3] = { 's', 'k', 'u' }; +static const symbol s_2_1858[4] = { 0xC5, 0xA1, 'k', 'u' }; +static const symbol s_2_1859[3] = { 'a', 'l', 'u' }; +static const symbol s_2_1860[5] = { 'i', 'j', 'a', 'l', 'u' }; +static const symbol s_2_1861[4] = { 'n', 'a', 'l', 'u' }; +static const symbol s_2_1862[3] = { 'e', 'l', 'u' }; +static const symbol s_2_1863[3] = { 'i', 'l', 'u' }; +static const symbol s_2_1864[5] = { 'o', 'z', 'i', 'l', 'u' }; +static const symbol s_2_1865[3] = { 'o', 'l', 'u' }; +static const symbol s_2_1866[4] = { 'r', 'a', 'm', 'u' }; +static const symbol s_2_1867[5] = { 'a', 'c', 'e', 'm', 'u' }; +static const symbol s_2_1868[5] = { 'e', 'c', 'e', 'm', 'u' }; +static const symbol s_2_1869[5] = { 'u', 'c', 'e', 'm', 'u' }; +static const symbol s_2_1870[8] = { 'a', 'n', 'j', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1871[8] = { 'e', 'n', 'j', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1872[8] = { 's', 'n', 'j', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1873[9] = { 0xC5, 0xA1, 'n', 'j', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1874[6] = { 'k', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1875[7] = { 's', 'k', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1876[8] = { 0xC5, 0xA1, 'k', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1877[7] = { 'e', 'l', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1878[6] = { 'n', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1879[7] = { 'o', 's', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1880[7] = { 'a', 't', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1881[9] = { 'e', 'v', 'i', 't', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1882[9] = { 'o', 'v', 'i', 't', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1883[8] = { 'a', 's', 't', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1884[7] = { 'a', 'v', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1885[7] = { 'e', 'v', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1886[7] = { 'i', 'v', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1887[7] = { 'o', 'v', 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1888[8] = { 'o', 0xC5, 0xA1, 'i', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1889[6] = { 'a', 'n', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1890[6] = { 'e', 'n', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1891[6] = { 's', 'n', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1892[7] = { 0xC5, 0xA1, 'n', 'j', 'e', 'm', 'u' }; +static const symbol s_2_1893[4] = { 'k', 'e', 'm', 'u' }; +static const symbol s_2_1894[5] = { 's', 'k', 'e', 'm', 'u' }; +static const symbol s_2_1895[6] = { 0xC5, 0xA1, 'k', 'e', 'm', 'u' }; +static const symbol s_2_1896[4] = { 'l', 'e', 'm', 'u' }; +static const symbol s_2_1897[5] = { 'e', 'l', 'e', 'm', 'u' }; +static const symbol s_2_1898[4] = { 'n', 'e', 'm', 'u' }; +static const symbol s_2_1899[5] = { 'a', 'n', 'e', 'm', 'u' }; +static const symbol s_2_1900[5] = { 'e', 'n', 'e', 'm', 'u' }; +static const symbol s_2_1901[5] = { 's', 'n', 'e', 'm', 'u' }; +static const symbol s_2_1902[6] = { 0xC5, 0xA1, 'n', 'e', 'm', 'u' }; +static const symbol s_2_1903[5] = { 'o', 's', 'e', 'm', 'u' }; +static const symbol s_2_1904[5] = { 'a', 't', 'e', 'm', 'u' }; +static const symbol s_2_1905[7] = { 'e', 'v', 'i', 't', 'e', 'm', 'u' }; +static const symbol s_2_1906[7] = { 'o', 'v', 'i', 't', 'e', 'm', 'u' }; +static const symbol s_2_1907[6] = { 'a', 's', 't', 'e', 'm', 'u' }; +static const symbol s_2_1908[5] = { 'a', 'v', 'e', 'm', 'u' }; +static const symbol s_2_1909[5] = { 'e', 'v', 'e', 'm', 'u' }; +static const symbol s_2_1910[5] = { 'i', 'v', 'e', 'm', 'u' }; +static const symbol s_2_1911[5] = { 'o', 'v', 'e', 'm', 'u' }; +static const symbol s_2_1912[6] = { 'a', 0xC4, 0x87, 'e', 'm', 'u' }; +static const symbol s_2_1913[6] = { 'e', 0xC4, 0x87, 'e', 'm', 'u' }; +static const symbol s_2_1914[6] = { 'u', 0xC4, 0x87, 'e', 'm', 'u' }; +static const symbol s_2_1915[6] = { 'o', 0xC5, 0xA1, 'e', 'm', 'u' }; +static const symbol s_2_1916[5] = { 'a', 'c', 'o', 'm', 'u' }; +static const symbol s_2_1917[5] = { 'e', 'c', 'o', 'm', 'u' }; +static const symbol s_2_1918[5] = { 'u', 'c', 'o', 'm', 'u' }; +static const symbol s_2_1919[6] = { 'a', 'n', 'j', 'o', 'm', 'u' }; +static const symbol s_2_1920[6] = { 'e', 'n', 'j', 'o', 'm', 'u' }; +static const symbol s_2_1921[6] = { 's', 'n', 'j', 'o', 'm', 'u' }; +static const symbol s_2_1922[7] = { 0xC5, 0xA1, 'n', 'j', 'o', 'm', 'u' }; +static const symbol s_2_1923[4] = { 'k', 'o', 'm', 'u' }; +static const symbol s_2_1924[5] = { 's', 'k', 'o', 'm', 'u' }; +static const symbol s_2_1925[6] = { 0xC5, 0xA1, 'k', 'o', 'm', 'u' }; +static const symbol s_2_1926[5] = { 'e', 'l', 'o', 'm', 'u' }; +static const symbol s_2_1927[4] = { 'n', 'o', 'm', 'u' }; +static const symbol s_2_1928[6] = { 'c', 'i', 'n', 'o', 'm', 'u' }; +static const symbol s_2_1929[7] = { 0xC4, 0x8D, 'i', 'n', 'o', 'm', 'u' }; +static const symbol s_2_1930[5] = { 'o', 's', 'o', 'm', 'u' }; +static const symbol s_2_1931[5] = { 'a', 't', 'o', 'm', 'u' }; +static const symbol s_2_1932[7] = { 'e', 'v', 'i', 't', 'o', 'm', 'u' }; +static const symbol s_2_1933[7] = { 'o', 'v', 'i', 't', 'o', 'm', 'u' }; +static const symbol s_2_1934[6] = { 'a', 's', 't', 'o', 'm', 'u' }; +static const symbol s_2_1935[5] = { 'a', 'v', 'o', 'm', 'u' }; +static const symbol s_2_1936[5] = { 'e', 'v', 'o', 'm', 'u' }; +static const symbol s_2_1937[5] = { 'i', 'v', 'o', 'm', 'u' }; +static const symbol s_2_1938[5] = { 'o', 'v', 'o', 'm', 'u' }; +static const symbol s_2_1939[6] = { 'a', 0xC4, 0x87, 'o', 'm', 'u' }; +static const symbol s_2_1940[6] = { 'e', 0xC4, 0x87, 'o', 'm', 'u' }; +static const symbol s_2_1941[6] = { 'u', 0xC4, 0x87, 'o', 'm', 'u' }; +static const symbol s_2_1942[6] = { 'o', 0xC5, 0xA1, 'o', 'm', 'u' }; +static const symbol s_2_1943[2] = { 'n', 'u' }; +static const symbol s_2_1944[3] = { 'a', 'n', 'u' }; +static const symbol s_2_1945[6] = { 'a', 's', 't', 'a', 'n', 'u' }; +static const symbol s_2_1946[6] = { 'i', 's', 't', 'a', 'n', 'u' }; +static const symbol s_2_1947[6] = { 'o', 's', 't', 'a', 'n', 'u' }; +static const symbol s_2_1948[3] = { 'i', 'n', 'u' }; +static const symbol s_2_1949[4] = { 'c', 'i', 'n', 'u' }; +static const symbol s_2_1950[5] = { 'a', 'n', 'i', 'n', 'u' }; +static const symbol s_2_1951[5] = { 0xC4, 0x8D, 'i', 'n', 'u' }; +static const symbol s_2_1952[3] = { 'o', 'n', 'u' }; +static const symbol s_2_1953[3] = { 'a', 'r', 'u' }; +static const symbol s_2_1954[3] = { 'd', 'r', 'u' }; +static const symbol s_2_1955[3] = { 'e', 'r', 'u' }; +static const symbol s_2_1956[3] = { 'o', 'r', 'u' }; +static const symbol s_2_1957[4] = { 'b', 'a', 's', 'u' }; +static const symbol s_2_1958[4] = { 'g', 'a', 's', 'u' }; +static const symbol s_2_1959[4] = { 'j', 'a', 's', 'u' }; +static const symbol s_2_1960[4] = { 'k', 'a', 's', 'u' }; +static const symbol s_2_1961[4] = { 'n', 'a', 's', 'u' }; +static const symbol s_2_1962[4] = { 't', 'a', 's', 'u' }; +static const symbol s_2_1963[4] = { 'v', 'a', 's', 'u' }; +static const symbol s_2_1964[3] = { 'e', 's', 'u' }; +static const symbol s_2_1965[3] = { 'i', 's', 'u' }; +static const symbol s_2_1966[3] = { 'o', 's', 'u' }; +static const symbol s_2_1967[3] = { 'a', 't', 'u' }; +static const symbol s_2_1968[5] = { 'i', 'k', 'a', 't', 'u' }; +static const symbol s_2_1969[4] = { 'l', 'a', 't', 'u' }; +static const symbol s_2_1970[3] = { 'e', 't', 'u' }; +static const symbol s_2_1971[5] = { 'e', 'v', 'i', 't', 'u' }; +static const symbol s_2_1972[5] = { 'o', 'v', 'i', 't', 'u' }; +static const symbol s_2_1973[4] = { 'a', 's', 't', 'u' }; +static const symbol s_2_1974[4] = { 'e', 's', 't', 'u' }; +static const symbol s_2_1975[4] = { 'i', 's', 't', 'u' }; +static const symbol s_2_1976[4] = { 'k', 's', 't', 'u' }; +static const symbol s_2_1977[4] = { 'o', 's', 't', 'u' }; +static const symbol s_2_1978[5] = { 'i', 0xC5, 0xA1, 't', 'u' }; +static const symbol s_2_1979[3] = { 'a', 'v', 'u' }; +static const symbol s_2_1980[3] = { 'e', 'v', 'u' }; +static const symbol s_2_1981[3] = { 'i', 'v', 'u' }; +static const symbol s_2_1982[3] = { 'o', 'v', 'u' }; +static const symbol s_2_1983[4] = { 'l', 'o', 'v', 'u' }; +static const symbol s_2_1984[4] = { 'm', 'o', 'v', 'u' }; +static const symbol s_2_1985[4] = { 's', 't', 'v', 'u' }; +static const symbol s_2_1986[5] = { 0xC5, 0xA1, 't', 'v', 'u' }; +static const symbol s_2_1987[5] = { 'b', 'a', 0xC5, 0xA1, 'u' }; +static const symbol s_2_1988[5] = { 'g', 'a', 0xC5, 0xA1, 'u' }; +static const symbol s_2_1989[5] = { 'j', 'a', 0xC5, 0xA1, 'u' }; +static const symbol s_2_1990[5] = { 'k', 'a', 0xC5, 0xA1, 'u' }; +static const symbol s_2_1991[5] = { 'n', 'a', 0xC5, 0xA1, 'u' }; +static const symbol s_2_1992[5] = { 't', 'a', 0xC5, 0xA1, 'u' }; +static const symbol s_2_1993[5] = { 'v', 'a', 0xC5, 0xA1, 'u' }; +static const symbol s_2_1994[4] = { 'e', 0xC5, 0xA1, 'u' }; +static const symbol s_2_1995[4] = { 'i', 0xC5, 0xA1, 'u' }; +static const symbol s_2_1996[4] = { 'o', 0xC5, 0xA1, 'u' }; +static const symbol s_2_1997[4] = { 'a', 'v', 'a', 'v' }; +static const symbol s_2_1998[4] = { 'e', 'v', 'a', 'v' }; +static const symbol s_2_1999[4] = { 'i', 'v', 'a', 'v' }; +static const symbol s_2_2000[4] = { 'u', 'v', 'a', 'v' }; +static const symbol s_2_2001[3] = { 'k', 'o', 'v' }; +static const symbol s_2_2002[3] = { 'a', 0xC5, 0xA1 }; +static const symbol s_2_2003[5] = { 'i', 'r', 'a', 0xC5, 0xA1 }; +static const symbol s_2_2004[5] = { 'u', 'r', 'a', 0xC5, 0xA1 }; +static const symbol s_2_2005[4] = { 't', 'a', 0xC5, 0xA1 }; +static const symbol s_2_2006[5] = { 'a', 'v', 'a', 0xC5, 0xA1 }; +static const symbol s_2_2007[5] = { 'e', 'v', 'a', 0xC5, 0xA1 }; +static const symbol s_2_2008[5] = { 'i', 'v', 'a', 0xC5, 0xA1 }; +static const symbol s_2_2009[5] = { 'u', 'v', 'a', 0xC5, 0xA1 }; +static const symbol s_2_2010[6] = { 'a', 0xC4, 0x8D, 'a', 0xC5, 0xA1 }; +static const symbol s_2_2011[3] = { 'e', 0xC5, 0xA1 }; +static const symbol s_2_2012[8] = { 'a', 's', 't', 'a', 'd', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2013[8] = { 'i', 's', 't', 'a', 'd', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2014[8] = { 'o', 's', 't', 'a', 'd', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2015[8] = { 'a', 's', 't', 'a', 'j', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2016[8] = { 'i', 's', 't', 'a', 'j', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2017[8] = { 'o', 's', 't', 'a', 'j', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2018[5] = { 'i', 'j', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2019[6] = { 'i', 'n', 'j', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2020[5] = { 'u', 'j', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2021[7] = { 'i', 'r', 'u', 'j', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2022[9] = { 'l', 'u', 0xC4, 0x8D, 'u', 'j', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2023[4] = { 'n', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2024[8] = { 'a', 's', 't', 'a', 'n', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2025[8] = { 'i', 's', 't', 'a', 'n', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2026[8] = { 'o', 's', 't', 'a', 'n', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2027[5] = { 'e', 't', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2028[6] = { 'a', 's', 't', 'e', 0xC5, 0xA1 }; +static const symbol s_2_2029[3] = { 'i', 0xC5, 0xA1 }; +static const symbol s_2_2030[4] = { 'n', 'i', 0xC5, 0xA1 }; +static const symbol s_2_2031[6] = { 'j', 'e', 't', 'i', 0xC5, 0xA1 }; +static const symbol s_2_2032[6] = { 'a', 0xC4, 0x8D, 'i', 0xC5, 0xA1 }; +static const symbol s_2_2033[7] = { 'l', 'u', 0xC4, 0x8D, 'i', 0xC5, 0xA1 }; +static const symbol s_2_2034[7] = { 'r', 'o', 0xC5, 0xA1, 'i', 0xC5, 0xA1 }; + +static const struct among a_2[2035] = +{ +{ 3, s_2_0, -1, 124, 0}, +{ 3, s_2_1, -1, 125, 0}, +{ 3, s_2_2, -1, 126, 0}, +{ 2, s_2_3, -1, 20, 0}, +{ 5, s_2_4, 3, 124, 0}, +{ 5, s_2_5, 3, 125, 0}, +{ 5, s_2_6, 3, 126, 0}, +{ 8, s_2_7, 3, 84, 0}, +{ 8, s_2_8, 3, 85, 0}, +{ 8, s_2_9, 3, 122, 0}, +{ 9, s_2_10, 3, 86, 0}, +{ 6, s_2_11, 3, 95, 0}, +{ 7, s_2_12, 11, 1, 0}, +{ 8, s_2_13, 11, 2, 0}, +{ 7, s_2_14, 3, 83, 0}, +{ 6, s_2_15, 3, 13, 0}, +{ 7, s_2_16, 3, 123, 0}, +{ 7, s_2_17, 3, 120, 0}, +{ 9, s_2_18, 3, 92, 0}, +{ 9, s_2_19, 3, 93, 0}, +{ 8, s_2_20, 3, 94, 0}, +{ 7, s_2_21, 3, 77, 0}, +{ 7, s_2_22, 3, 78, 0}, +{ 7, s_2_23, 3, 79, 0}, +{ 7, s_2_24, 3, 80, 0}, +{ 8, s_2_25, 3, 91, 0}, +{ 6, s_2_26, 3, 84, 0}, +{ 6, s_2_27, 3, 85, 0}, +{ 6, s_2_28, 3, 122, 0}, +{ 7, s_2_29, 3, 86, 0}, +{ 4, s_2_30, 3, 95, 0}, +{ 5, s_2_31, 30, 1, 0}, +{ 6, s_2_32, 30, 2, 0}, +{ 5, s_2_33, 3, 83, 0}, +{ 4, s_2_34, 3, 13, 0}, +{ 5, s_2_35, 34, 10, 0}, +{ 5, s_2_36, 34, 87, 0}, +{ 5, s_2_37, 34, 159, 0}, +{ 6, s_2_38, 34, 88, 0}, +{ 5, s_2_39, 3, 123, 0}, +{ 5, s_2_40, 3, 120, 0}, +{ 7, s_2_41, 3, 92, 0}, +{ 7, s_2_42, 3, 93, 0}, +{ 6, s_2_43, 3, 94, 0}, +{ 5, s_2_44, 3, 77, 0}, +{ 5, s_2_45, 3, 78, 0}, +{ 5, s_2_46, 3, 79, 0}, +{ 5, s_2_47, 3, 80, 0}, +{ 6, s_2_48, 3, 14, 0}, +{ 6, s_2_49, 3, 15, 0}, +{ 6, s_2_50, 3, 16, 0}, +{ 6, s_2_51, 3, 91, 0}, +{ 5, s_2_52, 3, 124, 0}, +{ 5, s_2_53, 3, 125, 0}, +{ 5, s_2_54, 3, 126, 0}, +{ 6, s_2_55, 3, 84, 0}, +{ 6, s_2_56, 3, 85, 0}, +{ 6, s_2_57, 3, 122, 0}, +{ 7, s_2_58, 3, 86, 0}, +{ 4, s_2_59, 3, 95, 0}, +{ 5, s_2_60, 59, 1, 0}, +{ 6, s_2_61, 59, 2, 0}, +{ 4, s_2_62, 3, 19, 0}, +{ 5, s_2_63, 62, 83, 0}, +{ 4, s_2_64, 3, 13, 0}, +{ 6, s_2_65, 64, 137, 0}, +{ 7, s_2_66, 64, 89, 0}, +{ 5, s_2_67, 3, 123, 0}, +{ 5, s_2_68, 3, 120, 0}, +{ 7, s_2_69, 3, 92, 0}, +{ 7, s_2_70, 3, 93, 0}, +{ 6, s_2_71, 3, 94, 0}, +{ 5, s_2_72, 3, 77, 0}, +{ 5, s_2_73, 3, 78, 0}, +{ 5, s_2_74, 3, 79, 0}, +{ 5, s_2_75, 3, 80, 0}, +{ 6, s_2_76, 3, 14, 0}, +{ 6, s_2_77, 3, 15, 0}, +{ 6, s_2_78, 3, 16, 0}, +{ 6, s_2_79, 3, 91, 0}, +{ 3, s_2_80, 3, 18, 0}, +{ 3, s_2_81, -1, 109, 0}, +{ 4, s_2_82, 81, 26, 0}, +{ 4, s_2_83, 81, 30, 0}, +{ 4, s_2_84, 81, 31, 0}, +{ 5, s_2_85, 81, 28, 0}, +{ 5, s_2_86, 81, 27, 0}, +{ 5, s_2_87, 81, 29, 0}, +{ 4, s_2_88, -1, 32, 0}, +{ 4, s_2_89, -1, 33, 0}, +{ 4, s_2_90, -1, 34, 0}, +{ 4, s_2_91, -1, 40, 0}, +{ 4, s_2_92, -1, 39, 0}, +{ 6, s_2_93, -1, 84, 0}, +{ 6, s_2_94, -1, 85, 0}, +{ 6, s_2_95, -1, 122, 0}, +{ 7, s_2_96, -1, 86, 0}, +{ 4, s_2_97, -1, 95, 0}, +{ 5, s_2_98, 97, 1, 0}, +{ 6, s_2_99, 97, 2, 0}, +{ 4, s_2_100, -1, 24, 0}, +{ 5, s_2_101, 100, 83, 0}, +{ 4, s_2_102, -1, 37, 0}, +{ 4, s_2_103, -1, 13, 0}, +{ 6, s_2_104, 103, 9, 0}, +{ 6, s_2_105, 103, 6, 0}, +{ 6, s_2_106, 103, 7, 0}, +{ 6, s_2_107, 103, 8, 0}, +{ 6, s_2_108, 103, 5, 0}, +{ 4, s_2_109, -1, 41, 0}, +{ 4, s_2_110, -1, 42, 0}, +{ 6, s_2_111, 110, 21, 0}, +{ 4, s_2_112, -1, 23, 0}, +{ 5, s_2_113, 112, 123, 0}, +{ 4, s_2_114, -1, 44, 0}, +{ 5, s_2_115, 114, 120, 0}, +{ 7, s_2_116, 114, 92, 0}, +{ 7, s_2_117, 114, 93, 0}, +{ 5, s_2_118, 114, 22, 0}, +{ 6, s_2_119, 114, 94, 0}, +{ 5, s_2_120, -1, 77, 0}, +{ 5, s_2_121, -1, 78, 0}, +{ 5, s_2_122, -1, 79, 0}, +{ 5, s_2_123, -1, 80, 0}, +{ 4, s_2_124, -1, 45, 0}, +{ 6, s_2_125, -1, 91, 0}, +{ 5, s_2_126, -1, 38, 0}, +{ 4, s_2_127, -1, 84, 0}, +{ 4, s_2_128, -1, 85, 0}, +{ 4, s_2_129, -1, 122, 0}, +{ 5, s_2_130, -1, 86, 0}, +{ 2, s_2_131, -1, 95, 0}, +{ 3, s_2_132, 131, 1, 0}, +{ 4, s_2_133, 131, 2, 0}, +{ 3, s_2_134, -1, 104, 0}, +{ 5, s_2_135, 134, 128, 0}, +{ 8, s_2_136, 134, 106, 0}, +{ 8, s_2_137, 134, 107, 0}, +{ 8, s_2_138, 134, 108, 0}, +{ 5, s_2_139, 134, 47, 0}, +{ 6, s_2_140, 134, 114, 0}, +{ 4, s_2_141, 134, 46, 0}, +{ 5, s_2_142, 134, 100, 0}, +{ 5, s_2_143, 134, 105, 0}, +{ 4, s_2_144, 134, 113, 0}, +{ 6, s_2_145, 144, 110, 0}, +{ 6, s_2_146, 144, 111, 0}, +{ 6, s_2_147, 144, 112, 0}, +{ 5, s_2_148, 134, 97, 0}, +{ 5, s_2_149, 134, 96, 0}, +{ 5, s_2_150, 134, 98, 0}, +{ 5, s_2_151, 134, 76, 0}, +{ 5, s_2_152, 134, 99, 0}, +{ 6, s_2_153, 134, 102, 0}, +{ 3, s_2_154, -1, 83, 0}, +{ 3, s_2_155, -1, 116, 0}, +{ 5, s_2_156, 155, 124, 0}, +{ 6, s_2_157, 155, 121, 0}, +{ 4, s_2_158, 155, 103, 0}, +{ 8, s_2_159, 158, 110, 0}, +{ 8, s_2_160, 158, 111, 0}, +{ 8, s_2_161, 158, 112, 0}, +{ 6, s_2_162, 155, 127, 0}, +{ 6, s_2_163, 155, 118, 0}, +{ 5, s_2_164, 155, 48, 0}, +{ 6, s_2_165, 155, 101, 0}, +{ 7, s_2_166, 155, 117, 0}, +{ 7, s_2_167, 155, 90, 0}, +{ 3, s_2_168, -1, 50, 0}, +{ 4, s_2_169, -1, 115, 0}, +{ 4, s_2_170, -1, 13, 0}, +{ 4, s_2_171, -1, 20, 0}, +{ 6, s_2_172, 171, 19, 0}, +{ 5, s_2_173, 171, 18, 0}, +{ 5, s_2_174, -1, 109, 0}, +{ 6, s_2_175, 174, 26, 0}, +{ 6, s_2_176, 174, 30, 0}, +{ 6, s_2_177, 174, 31, 0}, +{ 7, s_2_178, 174, 28, 0}, +{ 7, s_2_179, 174, 27, 0}, +{ 7, s_2_180, 174, 29, 0}, +{ 6, s_2_181, -1, 32, 0}, +{ 6, s_2_182, -1, 33, 0}, +{ 6, s_2_183, -1, 34, 0}, +{ 6, s_2_184, -1, 40, 0}, +{ 6, s_2_185, -1, 39, 0}, +{ 6, s_2_186, -1, 35, 0}, +{ 6, s_2_187, -1, 37, 0}, +{ 6, s_2_188, -1, 36, 0}, +{ 8, s_2_189, 188, 9, 0}, +{ 8, s_2_190, 188, 6, 0}, +{ 8, s_2_191, 188, 7, 0}, +{ 8, s_2_192, 188, 8, 0}, +{ 8, s_2_193, 188, 5, 0}, +{ 6, s_2_194, -1, 41, 0}, +{ 6, s_2_195, -1, 42, 0}, +{ 6, s_2_196, -1, 43, 0}, +{ 6, s_2_197, -1, 44, 0}, +{ 6, s_2_198, -1, 45, 0}, +{ 7, s_2_199, -1, 38, 0}, +{ 5, s_2_200, -1, 104, 0}, +{ 7, s_2_201, 200, 47, 0}, +{ 6, s_2_202, 200, 46, 0}, +{ 5, s_2_203, -1, 119, 0}, +{ 5, s_2_204, -1, 116, 0}, +{ 6, s_2_205, -1, 52, 0}, +{ 6, s_2_206, -1, 51, 0}, +{ 5, s_2_207, -1, 11, 0}, +{ 6, s_2_208, 207, 137, 0}, +{ 7, s_2_209, 207, 89, 0}, +{ 4, s_2_210, -1, 52, 0}, +{ 5, s_2_211, 210, 53, 0}, +{ 5, s_2_212, 210, 54, 0}, +{ 5, s_2_213, 210, 55, 0}, +{ 5, s_2_214, 210, 56, 0}, +{ 6, s_2_215, -1, 135, 0}, +{ 6, s_2_216, -1, 131, 0}, +{ 6, s_2_217, -1, 129, 0}, +{ 6, s_2_218, -1, 133, 0}, +{ 6, s_2_219, -1, 132, 0}, +{ 6, s_2_220, -1, 130, 0}, +{ 6, s_2_221, -1, 134, 0}, +{ 5, s_2_222, -1, 152, 0}, +{ 5, s_2_223, -1, 154, 0}, +{ 5, s_2_224, -1, 70, 0}, +{ 6, s_2_225, -1, 71, 0}, +{ 6, s_2_226, -1, 72, 0}, +{ 6, s_2_227, -1, 73, 0}, +{ 6, s_2_228, -1, 74, 0}, +{ 5, s_2_229, -1, 77, 0}, +{ 5, s_2_230, -1, 78, 0}, +{ 5, s_2_231, -1, 79, 0}, +{ 7, s_2_232, -1, 63, 0}, +{ 7, s_2_233, -1, 64, 0}, +{ 7, s_2_234, -1, 61, 0}, +{ 7, s_2_235, -1, 62, 0}, +{ 7, s_2_236, -1, 60, 0}, +{ 7, s_2_237, -1, 59, 0}, +{ 7, s_2_238, -1, 65, 0}, +{ 6, s_2_239, -1, 66, 0}, +{ 6, s_2_240, -1, 67, 0}, +{ 4, s_2_241, -1, 51, 0}, +{ 5, s_2_242, -1, 124, 0}, +{ 5, s_2_243, -1, 125, 0}, +{ 5, s_2_244, -1, 126, 0}, +{ 5, s_2_245, -1, 109, 0}, +{ 6, s_2_246, 245, 26, 0}, +{ 6, s_2_247, 245, 30, 0}, +{ 6, s_2_248, 245, 31, 0}, +{ 7, s_2_249, 245, 28, 0}, +{ 7, s_2_250, 245, 27, 0}, +{ 7, s_2_251, 245, 29, 0}, +{ 6, s_2_252, -1, 32, 0}, +{ 6, s_2_253, -1, 33, 0}, +{ 6, s_2_254, -1, 34, 0}, +{ 6, s_2_255, -1, 40, 0}, +{ 6, s_2_256, -1, 39, 0}, +{ 8, s_2_257, -1, 84, 0}, +{ 8, s_2_258, -1, 85, 0}, +{ 8, s_2_259, -1, 122, 0}, +{ 9, s_2_260, -1, 86, 0}, +{ 6, s_2_261, -1, 95, 0}, +{ 7, s_2_262, 261, 1, 0}, +{ 8, s_2_263, 261, 2, 0}, +{ 6, s_2_264, -1, 35, 0}, +{ 7, s_2_265, 264, 83, 0}, +{ 6, s_2_266, -1, 37, 0}, +{ 6, s_2_267, -1, 13, 0}, +{ 8, s_2_268, 267, 9, 0}, +{ 8, s_2_269, 267, 6, 0}, +{ 8, s_2_270, 267, 7, 0}, +{ 8, s_2_271, 267, 8, 0}, +{ 8, s_2_272, 267, 5, 0}, +{ 6, s_2_273, -1, 41, 0}, +{ 6, s_2_274, -1, 42, 0}, +{ 6, s_2_275, -1, 43, 0}, +{ 7, s_2_276, 275, 123, 0}, +{ 6, s_2_277, -1, 44, 0}, +{ 7, s_2_278, 277, 120, 0}, +{ 9, s_2_279, 277, 92, 0}, +{ 9, s_2_280, 277, 93, 0}, +{ 8, s_2_281, 277, 94, 0}, +{ 7, s_2_282, -1, 77, 0}, +{ 7, s_2_283, -1, 78, 0}, +{ 7, s_2_284, -1, 79, 0}, +{ 7, s_2_285, -1, 80, 0}, +{ 6, s_2_286, -1, 45, 0}, +{ 8, s_2_287, -1, 91, 0}, +{ 7, s_2_288, -1, 38, 0}, +{ 6, s_2_289, -1, 84, 0}, +{ 6, s_2_290, -1, 85, 0}, +{ 6, s_2_291, -1, 122, 0}, +{ 7, s_2_292, -1, 86, 0}, +{ 4, s_2_293, -1, 95, 0}, +{ 5, s_2_294, 293, 1, 0}, +{ 6, s_2_295, 293, 2, 0}, +{ 5, s_2_296, -1, 104, 0}, +{ 7, s_2_297, 296, 47, 0}, +{ 6, s_2_298, 296, 46, 0}, +{ 5, s_2_299, -1, 83, 0}, +{ 5, s_2_300, -1, 116, 0}, +{ 7, s_2_301, 300, 48, 0}, +{ 5, s_2_302, -1, 50, 0}, +{ 6, s_2_303, -1, 51, 0}, +{ 4, s_2_304, -1, 13, 0}, +{ 5, s_2_305, 304, 10, 0}, +{ 5, s_2_306, 304, 11, 0}, +{ 6, s_2_307, 306, 137, 0}, +{ 7, s_2_308, 306, 89, 0}, +{ 5, s_2_309, 304, 12, 0}, +{ 5, s_2_310, -1, 53, 0}, +{ 5, s_2_311, -1, 54, 0}, +{ 5, s_2_312, -1, 55, 0}, +{ 5, s_2_313, -1, 56, 0}, +{ 6, s_2_314, -1, 135, 0}, +{ 6, s_2_315, -1, 131, 0}, +{ 6, s_2_316, -1, 129, 0}, +{ 6, s_2_317, -1, 133, 0}, +{ 6, s_2_318, -1, 132, 0}, +{ 6, s_2_319, -1, 130, 0}, +{ 6, s_2_320, -1, 134, 0}, +{ 5, s_2_321, -1, 57, 0}, +{ 5, s_2_322, -1, 58, 0}, +{ 5, s_2_323, -1, 123, 0}, +{ 5, s_2_324, -1, 120, 0}, +{ 7, s_2_325, 324, 68, 0}, +{ 6, s_2_326, 324, 69, 0}, +{ 5, s_2_327, -1, 70, 0}, +{ 7, s_2_328, -1, 92, 0}, +{ 7, s_2_329, -1, 93, 0}, +{ 6, s_2_330, -1, 94, 0}, +{ 6, s_2_331, -1, 71, 0}, +{ 6, s_2_332, -1, 72, 0}, +{ 6, s_2_333, -1, 73, 0}, +{ 6, s_2_334, -1, 74, 0}, +{ 7, s_2_335, -1, 75, 0}, +{ 5, s_2_336, -1, 77, 0}, +{ 5, s_2_337, -1, 78, 0}, +{ 7, s_2_338, 337, 109, 0}, +{ 8, s_2_339, 338, 26, 0}, +{ 8, s_2_340, 338, 30, 0}, +{ 8, s_2_341, 338, 31, 0}, +{ 9, s_2_342, 338, 28, 0}, +{ 9, s_2_343, 338, 27, 0}, +{ 9, s_2_344, 338, 29, 0}, +{ 5, s_2_345, -1, 79, 0}, +{ 5, s_2_346, -1, 80, 0}, +{ 6, s_2_347, 346, 20, 0}, +{ 7, s_2_348, 347, 17, 0}, +{ 6, s_2_349, 346, 82, 0}, +{ 7, s_2_350, 349, 49, 0}, +{ 6, s_2_351, 346, 81, 0}, +{ 7, s_2_352, 346, 12, 0}, +{ 6, s_2_353, -1, 3, 0}, +{ 7, s_2_354, -1, 4, 0}, +{ 6, s_2_355, -1, 14, 0}, +{ 6, s_2_356, -1, 15, 0}, +{ 6, s_2_357, -1, 16, 0}, +{ 7, s_2_358, -1, 63, 0}, +{ 7, s_2_359, -1, 64, 0}, +{ 7, s_2_360, -1, 61, 0}, +{ 7, s_2_361, -1, 62, 0}, +{ 7, s_2_362, -1, 60, 0}, +{ 7, s_2_363, -1, 59, 0}, +{ 7, s_2_364, -1, 65, 0}, +{ 6, s_2_365, -1, 66, 0}, +{ 6, s_2_366, -1, 67, 0}, +{ 6, s_2_367, -1, 91, 0}, +{ 2, s_2_368, -1, 13, 0}, +{ 3, s_2_369, 368, 10, 0}, +{ 5, s_2_370, 369, 128, 0}, +{ 5, s_2_371, 369, 105, 0}, +{ 4, s_2_372, 369, 113, 0}, +{ 5, s_2_373, 369, 97, 0}, +{ 5, s_2_374, 369, 96, 0}, +{ 5, s_2_375, 369, 98, 0}, +{ 5, s_2_376, 369, 99, 0}, +{ 6, s_2_377, 369, 102, 0}, +{ 5, s_2_378, 368, 124, 0}, +{ 6, s_2_379, 368, 121, 0}, +{ 6, s_2_380, 368, 101, 0}, +{ 7, s_2_381, 368, 117, 0}, +{ 3, s_2_382, 368, 11, 0}, +{ 4, s_2_383, 382, 137, 0}, +{ 5, s_2_384, 382, 10, 0}, +{ 5, s_2_385, 382, 89, 0}, +{ 3, s_2_386, 368, 12, 0}, +{ 3, s_2_387, -1, 53, 0}, +{ 3, s_2_388, -1, 54, 0}, +{ 3, s_2_389, -1, 55, 0}, +{ 3, s_2_390, -1, 56, 0}, +{ 4, s_2_391, -1, 135, 0}, +{ 4, s_2_392, -1, 131, 0}, +{ 4, s_2_393, -1, 129, 0}, +{ 4, s_2_394, -1, 133, 0}, +{ 4, s_2_395, -1, 132, 0}, +{ 4, s_2_396, -1, 130, 0}, +{ 4, s_2_397, -1, 134, 0}, +{ 3, s_2_398, -1, 57, 0}, +{ 3, s_2_399, -1, 58, 0}, +{ 3, s_2_400, -1, 123, 0}, +{ 3, s_2_401, -1, 120, 0}, +{ 5, s_2_402, 401, 68, 0}, +{ 4, s_2_403, 401, 69, 0}, +{ 3, s_2_404, -1, 70, 0}, +{ 5, s_2_405, -1, 92, 0}, +{ 5, s_2_406, -1, 93, 0}, +{ 4, s_2_407, -1, 94, 0}, +{ 4, s_2_408, -1, 71, 0}, +{ 4, s_2_409, -1, 72, 0}, +{ 4, s_2_410, -1, 73, 0}, +{ 4, s_2_411, -1, 74, 0}, +{ 4, s_2_412, -1, 13, 0}, +{ 5, s_2_413, -1, 75, 0}, +{ 3, s_2_414, -1, 77, 0}, +{ 3, s_2_415, -1, 78, 0}, +{ 5, s_2_416, 415, 109, 0}, +{ 6, s_2_417, 416, 26, 0}, +{ 6, s_2_418, 416, 30, 0}, +{ 6, s_2_419, 416, 31, 0}, +{ 7, s_2_420, 416, 28, 0}, +{ 7, s_2_421, 416, 27, 0}, +{ 7, s_2_422, 416, 29, 0}, +{ 3, s_2_423, -1, 79, 0}, +{ 3, s_2_424, -1, 80, 0}, +{ 4, s_2_425, 424, 20, 0}, +{ 5, s_2_426, 425, 17, 0}, +{ 4, s_2_427, 424, 82, 0}, +{ 5, s_2_428, 427, 49, 0}, +{ 4, s_2_429, 424, 81, 0}, +{ 5, s_2_430, 424, 12, 0}, +{ 4, s_2_431, -1, 3, 0}, +{ 5, s_2_432, -1, 4, 0}, +{ 4, s_2_433, -1, 14, 0}, +{ 4, s_2_434, -1, 15, 0}, +{ 4, s_2_435, -1, 16, 0}, +{ 5, s_2_436, -1, 63, 0}, +{ 5, s_2_437, -1, 64, 0}, +{ 5, s_2_438, -1, 61, 0}, +{ 5, s_2_439, -1, 62, 0}, +{ 5, s_2_440, -1, 60, 0}, +{ 5, s_2_441, -1, 59, 0}, +{ 5, s_2_442, -1, 65, 0}, +{ 4, s_2_443, -1, 66, 0}, +{ 4, s_2_444, -1, 67, 0}, +{ 4, s_2_445, -1, 91, 0}, +{ 3, s_2_446, -1, 124, 0}, +{ 3, s_2_447, -1, 125, 0}, +{ 3, s_2_448, -1, 126, 0}, +{ 4, s_2_449, 448, 121, 0}, +{ 6, s_2_450, -1, 110, 0}, +{ 6, s_2_451, -1, 111, 0}, +{ 6, s_2_452, -1, 112, 0}, +{ 2, s_2_453, -1, 20, 0}, +{ 4, s_2_454, 453, 19, 0}, +{ 3, s_2_455, 453, 18, 0}, +{ 3, s_2_456, -1, 104, 0}, +{ 4, s_2_457, 456, 26, 0}, +{ 4, s_2_458, 456, 30, 0}, +{ 4, s_2_459, 456, 31, 0}, +{ 6, s_2_460, 456, 106, 0}, +{ 6, s_2_461, 456, 107, 0}, +{ 6, s_2_462, 456, 108, 0}, +{ 5, s_2_463, 456, 28, 0}, +{ 5, s_2_464, 456, 27, 0}, +{ 5, s_2_465, 456, 29, 0}, +{ 3, s_2_466, -1, 116, 0}, +{ 4, s_2_467, 466, 32, 0}, +{ 4, s_2_468, 466, 33, 0}, +{ 4, s_2_469, 466, 34, 0}, +{ 4, s_2_470, 466, 40, 0}, +{ 4, s_2_471, 466, 39, 0}, +{ 6, s_2_472, 466, 84, 0}, +{ 6, s_2_473, 466, 85, 0}, +{ 6, s_2_474, 466, 122, 0}, +{ 7, s_2_475, 466, 86, 0}, +{ 4, s_2_476, 466, 95, 0}, +{ 5, s_2_477, 476, 1, 0}, +{ 6, s_2_478, 476, 2, 0}, +{ 4, s_2_479, 466, 35, 0}, +{ 5, s_2_480, 479, 83, 0}, +{ 4, s_2_481, 466, 37, 0}, +{ 4, s_2_482, 466, 13, 0}, +{ 6, s_2_483, 482, 9, 0}, +{ 6, s_2_484, 482, 6, 0}, +{ 6, s_2_485, 482, 7, 0}, +{ 6, s_2_486, 482, 8, 0}, +{ 6, s_2_487, 482, 5, 0}, +{ 4, s_2_488, 466, 41, 0}, +{ 4, s_2_489, 466, 42, 0}, +{ 4, s_2_490, 466, 43, 0}, +{ 5, s_2_491, 490, 123, 0}, +{ 4, s_2_492, 466, 44, 0}, +{ 5, s_2_493, 492, 120, 0}, +{ 7, s_2_494, 492, 92, 0}, +{ 7, s_2_495, 492, 93, 0}, +{ 6, s_2_496, 492, 94, 0}, +{ 5, s_2_497, 466, 77, 0}, +{ 5, s_2_498, 466, 78, 0}, +{ 5, s_2_499, 466, 79, 0}, +{ 5, s_2_500, 466, 80, 0}, +{ 4, s_2_501, 466, 45, 0}, +{ 6, s_2_502, 466, 91, 0}, +{ 5, s_2_503, 466, 38, 0}, +{ 4, s_2_504, -1, 84, 0}, +{ 4, s_2_505, -1, 85, 0}, +{ 4, s_2_506, -1, 122, 0}, +{ 5, s_2_507, -1, 86, 0}, +{ 3, s_2_508, -1, 25, 0}, +{ 6, s_2_509, 508, 121, 0}, +{ 5, s_2_510, 508, 100, 0}, +{ 7, s_2_511, 508, 117, 0}, +{ 2, s_2_512, -1, 95, 0}, +{ 3, s_2_513, 512, 1, 0}, +{ 4, s_2_514, 512, 2, 0}, +{ 3, s_2_515, -1, 104, 0}, +{ 5, s_2_516, 515, 128, 0}, +{ 8, s_2_517, 515, 106, 0}, +{ 8, s_2_518, 515, 107, 0}, +{ 8, s_2_519, 515, 108, 0}, +{ 5, s_2_520, 515, 47, 0}, +{ 6, s_2_521, 515, 114, 0}, +{ 4, s_2_522, 515, 46, 0}, +{ 5, s_2_523, 515, 100, 0}, +{ 5, s_2_524, 515, 105, 0}, +{ 4, s_2_525, 515, 113, 0}, +{ 6, s_2_526, 525, 110, 0}, +{ 6, s_2_527, 525, 111, 0}, +{ 6, s_2_528, 525, 112, 0}, +{ 5, s_2_529, 515, 97, 0}, +{ 5, s_2_530, 515, 96, 0}, +{ 5, s_2_531, 515, 98, 0}, +{ 5, s_2_532, 515, 76, 0}, +{ 5, s_2_533, 515, 99, 0}, +{ 6, s_2_534, 515, 102, 0}, +{ 3, s_2_535, -1, 83, 0}, +{ 3, s_2_536, -1, 116, 0}, +{ 5, s_2_537, 536, 124, 0}, +{ 6, s_2_538, 536, 121, 0}, +{ 4, s_2_539, 536, 103, 0}, +{ 6, s_2_540, 536, 127, 0}, +{ 6, s_2_541, 536, 118, 0}, +{ 5, s_2_542, 536, 48, 0}, +{ 6, s_2_543, 536, 101, 0}, +{ 7, s_2_544, 536, 117, 0}, +{ 7, s_2_545, 536, 90, 0}, +{ 3, s_2_546, -1, 50, 0}, +{ 4, s_2_547, -1, 115, 0}, +{ 4, s_2_548, -1, 13, 0}, +{ 4, s_2_549, -1, 52, 0}, +{ 4, s_2_550, -1, 51, 0}, +{ 5, s_2_551, -1, 124, 0}, +{ 5, s_2_552, -1, 125, 0}, +{ 5, s_2_553, -1, 126, 0}, +{ 6, s_2_554, -1, 84, 0}, +{ 6, s_2_555, -1, 85, 0}, +{ 6, s_2_556, -1, 122, 0}, +{ 7, s_2_557, -1, 86, 0}, +{ 4, s_2_558, -1, 95, 0}, +{ 5, s_2_559, 558, 1, 0}, +{ 6, s_2_560, 558, 2, 0}, +{ 5, s_2_561, -1, 83, 0}, +{ 4, s_2_562, -1, 13, 0}, +{ 6, s_2_563, 562, 137, 0}, +{ 7, s_2_564, 562, 89, 0}, +{ 5, s_2_565, -1, 123, 0}, +{ 5, s_2_566, -1, 120, 0}, +{ 7, s_2_567, -1, 92, 0}, +{ 7, s_2_568, -1, 93, 0}, +{ 6, s_2_569, -1, 94, 0}, +{ 5, s_2_570, -1, 77, 0}, +{ 5, s_2_571, -1, 78, 0}, +{ 5, s_2_572, -1, 79, 0}, +{ 5, s_2_573, -1, 80, 0}, +{ 6, s_2_574, -1, 14, 0}, +{ 6, s_2_575, -1, 15, 0}, +{ 6, s_2_576, -1, 16, 0}, +{ 6, s_2_577, -1, 91, 0}, +{ 2, s_2_578, -1, 13, 0}, +{ 3, s_2_579, 578, 10, 0}, +{ 5, s_2_580, 579, 128, 0}, +{ 5, s_2_581, 579, 105, 0}, +{ 4, s_2_582, 579, 113, 0}, +{ 6, s_2_583, 582, 110, 0}, +{ 6, s_2_584, 582, 111, 0}, +{ 6, s_2_585, 582, 112, 0}, +{ 5, s_2_586, 579, 97, 0}, +{ 5, s_2_587, 579, 96, 0}, +{ 5, s_2_588, 579, 98, 0}, +{ 5, s_2_589, 579, 99, 0}, +{ 6, s_2_590, 579, 102, 0}, +{ 5, s_2_591, 578, 124, 0}, +{ 6, s_2_592, 578, 121, 0}, +{ 6, s_2_593, 578, 101, 0}, +{ 7, s_2_594, 578, 117, 0}, +{ 3, s_2_595, 578, 11, 0}, +{ 4, s_2_596, 595, 137, 0}, +{ 5, s_2_597, 595, 10, 0}, +{ 5, s_2_598, 595, 89, 0}, +{ 3, s_2_599, 578, 12, 0}, +{ 3, s_2_600, -1, 53, 0}, +{ 3, s_2_601, -1, 54, 0}, +{ 3, s_2_602, -1, 55, 0}, +{ 3, s_2_603, -1, 56, 0}, +{ 3, s_2_604, -1, 161, 0}, +{ 4, s_2_605, 604, 135, 0}, +{ 5, s_2_606, 604, 128, 0}, +{ 4, s_2_607, 604, 131, 0}, +{ 4, s_2_608, 604, 129, 0}, +{ 8, s_2_609, 608, 138, 0}, +{ 8, s_2_610, 608, 139, 0}, +{ 8, s_2_611, 608, 140, 0}, +{ 6, s_2_612, 608, 150, 0}, +{ 4, s_2_613, 604, 133, 0}, +{ 4, s_2_614, 604, 132, 0}, +{ 5, s_2_615, 604, 155, 0}, +{ 5, s_2_616, 604, 156, 0}, +{ 4, s_2_617, 604, 130, 0}, +{ 4, s_2_618, 604, 134, 0}, +{ 5, s_2_619, 618, 144, 0}, +{ 5, s_2_620, 618, 145, 0}, +{ 5, s_2_621, 618, 146, 0}, +{ 5, s_2_622, 618, 148, 0}, +{ 5, s_2_623, 618, 147, 0}, +{ 3, s_2_624, -1, 57, 0}, +{ 3, s_2_625, -1, 58, 0}, +{ 5, s_2_626, 625, 124, 0}, +{ 6, s_2_627, 625, 121, 0}, +{ 6, s_2_628, 625, 127, 0}, +{ 6, s_2_629, 625, 149, 0}, +{ 3, s_2_630, -1, 123, 0}, +{ 8, s_2_631, 630, 141, 0}, +{ 8, s_2_632, 630, 142, 0}, +{ 8, s_2_633, 630, 143, 0}, +{ 3, s_2_634, -1, 104, 0}, +{ 5, s_2_635, 634, 128, 0}, +{ 5, s_2_636, 634, 68, 0}, +{ 4, s_2_637, 634, 69, 0}, +{ 5, s_2_638, 634, 100, 0}, +{ 5, s_2_639, 634, 105, 0}, +{ 4, s_2_640, 634, 113, 0}, +{ 5, s_2_641, 634, 97, 0}, +{ 5, s_2_642, 634, 96, 0}, +{ 5, s_2_643, 634, 98, 0}, +{ 5, s_2_644, 634, 99, 0}, +{ 6, s_2_645, 634, 102, 0}, +{ 3, s_2_646, -1, 70, 0}, +{ 8, s_2_647, 646, 110, 0}, +{ 8, s_2_648, 646, 111, 0}, +{ 8, s_2_649, 646, 112, 0}, +{ 8, s_2_650, 646, 106, 0}, +{ 8, s_2_651, 646, 107, 0}, +{ 8, s_2_652, 646, 108, 0}, +{ 5, s_2_653, 646, 116, 0}, +{ 6, s_2_654, 646, 114, 0}, +{ 5, s_2_655, 646, 25, 0}, +{ 8, s_2_656, 655, 121, 0}, +{ 7, s_2_657, 655, 100, 0}, +{ 9, s_2_658, 655, 117, 0}, +{ 4, s_2_659, 646, 13, 0}, +{ 8, s_2_660, 659, 110, 0}, +{ 8, s_2_661, 659, 111, 0}, +{ 8, s_2_662, 659, 112, 0}, +{ 6, s_2_663, 646, 115, 0}, +{ 3, s_2_664, -1, 116, 0}, +{ 5, s_2_665, 664, 124, 0}, +{ 6, s_2_666, 664, 121, 0}, +{ 4, s_2_667, 664, 13, 0}, +{ 8, s_2_668, 667, 110, 0}, +{ 8, s_2_669, 667, 111, 0}, +{ 8, s_2_670, 667, 112, 0}, +{ 6, s_2_671, 664, 127, 0}, +{ 6, s_2_672, 664, 118, 0}, +{ 6, s_2_673, 664, 115, 0}, +{ 5, s_2_674, 664, 92, 0}, +{ 5, s_2_675, 664, 93, 0}, +{ 6, s_2_676, 664, 101, 0}, +{ 7, s_2_677, 664, 117, 0}, +{ 7, s_2_678, 664, 90, 0}, +{ 4, s_2_679, -1, 104, 0}, +{ 6, s_2_680, 679, 105, 0}, +{ 5, s_2_681, 679, 113, 0}, +{ 7, s_2_682, 681, 106, 0}, +{ 7, s_2_683, 681, 107, 0}, +{ 7, s_2_684, 681, 108, 0}, +{ 6, s_2_685, 679, 97, 0}, +{ 6, s_2_686, 679, 96, 0}, +{ 6, s_2_687, 679, 98, 0}, +{ 6, s_2_688, 679, 99, 0}, +{ 4, s_2_689, -1, 116, 0}, +{ 7, s_2_690, -1, 121, 0}, +{ 6, s_2_691, -1, 100, 0}, +{ 8, s_2_692, -1, 117, 0}, +{ 4, s_2_693, -1, 94, 0}, +{ 6, s_2_694, 693, 128, 0}, +{ 9, s_2_695, 693, 106, 0}, +{ 9, s_2_696, 693, 107, 0}, +{ 9, s_2_697, 693, 108, 0}, +{ 7, s_2_698, 693, 114, 0}, +{ 6, s_2_699, 693, 100, 0}, +{ 6, s_2_700, 693, 105, 0}, +{ 5, s_2_701, 693, 113, 0}, +{ 6, s_2_702, 693, 97, 0}, +{ 6, s_2_703, 693, 96, 0}, +{ 6, s_2_704, 693, 98, 0}, +{ 6, s_2_705, 693, 76, 0}, +{ 6, s_2_706, 693, 99, 0}, +{ 7, s_2_707, 693, 102, 0}, +{ 4, s_2_708, -1, 71, 0}, +{ 4, s_2_709, -1, 72, 0}, +{ 6, s_2_710, 709, 124, 0}, +{ 7, s_2_711, 709, 121, 0}, +{ 5, s_2_712, 709, 103, 0}, +{ 7, s_2_713, 709, 127, 0}, +{ 7, s_2_714, 709, 118, 0}, +{ 7, s_2_715, 709, 101, 0}, +{ 8, s_2_716, 709, 117, 0}, +{ 8, s_2_717, 709, 90, 0}, +{ 4, s_2_718, -1, 73, 0}, +{ 4, s_2_719, -1, 74, 0}, +{ 9, s_2_720, 719, 110, 0}, +{ 9, s_2_721, 719, 111, 0}, +{ 9, s_2_722, 719, 112, 0}, +{ 5, s_2_723, -1, 13, 0}, +{ 5, s_2_724, -1, 75, 0}, +{ 3, s_2_725, -1, 77, 0}, +{ 3, s_2_726, -1, 78, 0}, +{ 5, s_2_727, 726, 109, 0}, +{ 6, s_2_728, 727, 26, 0}, +{ 6, s_2_729, 727, 30, 0}, +{ 6, s_2_730, 727, 31, 0}, +{ 7, s_2_731, 727, 28, 0}, +{ 7, s_2_732, 727, 27, 0}, +{ 7, s_2_733, 727, 29, 0}, +{ 3, s_2_734, -1, 79, 0}, +{ 3, s_2_735, -1, 80, 0}, +{ 4, s_2_736, 735, 20, 0}, +{ 5, s_2_737, 736, 17, 0}, +{ 4, s_2_738, 735, 82, 0}, +{ 5, s_2_739, 738, 49, 0}, +{ 4, s_2_740, 735, 81, 0}, +{ 5, s_2_741, 735, 12, 0}, +{ 4, s_2_742, -1, 14, 0}, +{ 4, s_2_743, -1, 15, 0}, +{ 4, s_2_744, -1, 16, 0}, +{ 4, s_2_745, -1, 101, 0}, +{ 5, s_2_746, -1, 117, 0}, +{ 4, s_2_747, -1, 104, 0}, +{ 5, s_2_748, 747, 63, 0}, +{ 5, s_2_749, 747, 64, 0}, +{ 5, s_2_750, 747, 61, 0}, +{ 9, s_2_751, 750, 106, 0}, +{ 9, s_2_752, 750, 107, 0}, +{ 9, s_2_753, 750, 108, 0}, +{ 7, s_2_754, 750, 114, 0}, +{ 5, s_2_755, 747, 62, 0}, +{ 5, s_2_756, 747, 60, 0}, +{ 6, s_2_757, 747, 100, 0}, +{ 6, s_2_758, 747, 105, 0}, +{ 5, s_2_759, 747, 59, 0}, +{ 5, s_2_760, 747, 65, 0}, +{ 6, s_2_761, 760, 97, 0}, +{ 6, s_2_762, 760, 96, 0}, +{ 6, s_2_763, 760, 98, 0}, +{ 6, s_2_764, 760, 76, 0}, +{ 6, s_2_765, 760, 99, 0}, +{ 7, s_2_766, 747, 102, 0}, +{ 4, s_2_767, -1, 66, 0}, +{ 4, s_2_768, -1, 67, 0}, +{ 7, s_2_769, 768, 118, 0}, +{ 7, s_2_770, 768, 101, 0}, +{ 8, s_2_771, 768, 117, 0}, +{ 8, s_2_772, 768, 90, 0}, +{ 4, s_2_773, -1, 91, 0}, +{ 9, s_2_774, 773, 110, 0}, +{ 9, s_2_775, 773, 111, 0}, +{ 9, s_2_776, 773, 112, 0}, +{ 4, s_2_777, -1, 124, 0}, +{ 4, s_2_778, -1, 125, 0}, +{ 4, s_2_779, -1, 126, 0}, +{ 7, s_2_780, -1, 84, 0}, +{ 7, s_2_781, -1, 85, 0}, +{ 7, s_2_782, -1, 122, 0}, +{ 8, s_2_783, -1, 86, 0}, +{ 5, s_2_784, -1, 95, 0}, +{ 6, s_2_785, 784, 1, 0}, +{ 7, s_2_786, 784, 2, 0}, +{ 6, s_2_787, -1, 83, 0}, +{ 5, s_2_788, -1, 13, 0}, +{ 6, s_2_789, -1, 123, 0}, +{ 6, s_2_790, -1, 120, 0}, +{ 8, s_2_791, -1, 92, 0}, +{ 8, s_2_792, -1, 93, 0}, +{ 7, s_2_793, -1, 94, 0}, +{ 6, s_2_794, -1, 77, 0}, +{ 6, s_2_795, -1, 78, 0}, +{ 6, s_2_796, -1, 79, 0}, +{ 6, s_2_797, -1, 80, 0}, +{ 7, s_2_798, -1, 91, 0}, +{ 5, s_2_799, -1, 84, 0}, +{ 5, s_2_800, -1, 85, 0}, +{ 5, s_2_801, -1, 122, 0}, +{ 6, s_2_802, -1, 86, 0}, +{ 3, s_2_803, -1, 95, 0}, +{ 4, s_2_804, -1, 83, 0}, +{ 3, s_2_805, -1, 13, 0}, +{ 4, s_2_806, 805, 10, 0}, +{ 4, s_2_807, 805, 87, 0}, +{ 4, s_2_808, 805, 159, 0}, +{ 5, s_2_809, 805, 88, 0}, +{ 4, s_2_810, -1, 123, 0}, +{ 4, s_2_811, -1, 120, 0}, +{ 4, s_2_812, -1, 77, 0}, +{ 4, s_2_813, -1, 78, 0}, +{ 4, s_2_814, -1, 79, 0}, +{ 4, s_2_815, -1, 80, 0}, +{ 5, s_2_816, -1, 14, 0}, +{ 5, s_2_817, -1, 15, 0}, +{ 5, s_2_818, -1, 16, 0}, +{ 5, s_2_819, -1, 91, 0}, +{ 4, s_2_820, -1, 124, 0}, +{ 4, s_2_821, -1, 125, 0}, +{ 4, s_2_822, -1, 126, 0}, +{ 5, s_2_823, -1, 84, 0}, +{ 5, s_2_824, -1, 85, 0}, +{ 5, s_2_825, -1, 122, 0}, +{ 6, s_2_826, -1, 86, 0}, +{ 3, s_2_827, -1, 95, 0}, +{ 4, s_2_828, 827, 1, 0}, +{ 5, s_2_829, 827, 2, 0}, +{ 4, s_2_830, -1, 83, 0}, +{ 3, s_2_831, -1, 13, 0}, +{ 5, s_2_832, 831, 137, 0}, +{ 6, s_2_833, 831, 89, 0}, +{ 4, s_2_834, -1, 123, 0}, +{ 4, s_2_835, -1, 120, 0}, +{ 6, s_2_836, -1, 92, 0}, +{ 6, s_2_837, -1, 93, 0}, +{ 5, s_2_838, -1, 94, 0}, +{ 4, s_2_839, -1, 77, 0}, +{ 4, s_2_840, -1, 78, 0}, +{ 4, s_2_841, -1, 79, 0}, +{ 4, s_2_842, -1, 80, 0}, +{ 5, s_2_843, -1, 14, 0}, +{ 5, s_2_844, -1, 15, 0}, +{ 5, s_2_845, -1, 16, 0}, +{ 5, s_2_846, -1, 91, 0}, +{ 2, s_2_847, -1, 104, 0}, +{ 4, s_2_848, 847, 128, 0}, +{ 7, s_2_849, 847, 106, 0}, +{ 7, s_2_850, 847, 107, 0}, +{ 7, s_2_851, 847, 108, 0}, +{ 5, s_2_852, 847, 114, 0}, +{ 4, s_2_853, 847, 100, 0}, +{ 4, s_2_854, 847, 105, 0}, +{ 3, s_2_855, 847, 113, 0}, +{ 4, s_2_856, 847, 97, 0}, +{ 4, s_2_857, 847, 96, 0}, +{ 4, s_2_858, 847, 98, 0}, +{ 4, s_2_859, 847, 76, 0}, +{ 4, s_2_860, 847, 99, 0}, +{ 5, s_2_861, 847, 102, 0}, +{ 2, s_2_862, -1, 116, 0}, +{ 4, s_2_863, 862, 124, 0}, +{ 4, s_2_864, 862, 125, 0}, +{ 4, s_2_865, 862, 126, 0}, +{ 5, s_2_866, 865, 121, 0}, +{ 7, s_2_867, 862, 84, 0}, +{ 7, s_2_868, 862, 85, 0}, +{ 7, s_2_869, 862, 122, 0}, +{ 8, s_2_870, 862, 86, 0}, +{ 5, s_2_871, 862, 95, 0}, +{ 6, s_2_872, 871, 1, 0}, +{ 7, s_2_873, 871, 2, 0}, +{ 6, s_2_874, 862, 83, 0}, +{ 5, s_2_875, 862, 13, 0}, +{ 6, s_2_876, 862, 123, 0}, +{ 6, s_2_877, 862, 120, 0}, +{ 8, s_2_878, 862, 92, 0}, +{ 8, s_2_879, 862, 93, 0}, +{ 7, s_2_880, 862, 94, 0}, +{ 6, s_2_881, 862, 77, 0}, +{ 6, s_2_882, 862, 78, 0}, +{ 6, s_2_883, 862, 79, 0}, +{ 6, s_2_884, 862, 80, 0}, +{ 7, s_2_885, 862, 91, 0}, +{ 5, s_2_886, 862, 84, 0}, +{ 5, s_2_887, 862, 85, 0}, +{ 5, s_2_888, 862, 122, 0}, +{ 6, s_2_889, 862, 86, 0}, +{ 3, s_2_890, 862, 95, 0}, +{ 4, s_2_891, 890, 1, 0}, +{ 5, s_2_892, 890, 2, 0}, +{ 4, s_2_893, 862, 83, 0}, +{ 3, s_2_894, 862, 13, 0}, +{ 5, s_2_895, 894, 137, 0}, +{ 6, s_2_896, 894, 89, 0}, +{ 4, s_2_897, 862, 123, 0}, +{ 5, s_2_898, 897, 127, 0}, +{ 4, s_2_899, 862, 120, 0}, +{ 5, s_2_900, 862, 118, 0}, +{ 6, s_2_901, 862, 92, 0}, +{ 6, s_2_902, 862, 93, 0}, +{ 5, s_2_903, 862, 94, 0}, +{ 4, s_2_904, 862, 77, 0}, +{ 4, s_2_905, 862, 78, 0}, +{ 4, s_2_906, 862, 79, 0}, +{ 4, s_2_907, 862, 80, 0}, +{ 5, s_2_908, 862, 14, 0}, +{ 5, s_2_909, 862, 15, 0}, +{ 5, s_2_910, 862, 16, 0}, +{ 5, s_2_911, 862, 101, 0}, +{ 6, s_2_912, 862, 117, 0}, +{ 5, s_2_913, 862, 91, 0}, +{ 6, s_2_914, 913, 90, 0}, +{ 7, s_2_915, -1, 110, 0}, +{ 7, s_2_916, -1, 111, 0}, +{ 7, s_2_917, -1, 112, 0}, +{ 4, s_2_918, -1, 124, 0}, +{ 4, s_2_919, -1, 125, 0}, +{ 4, s_2_920, -1, 126, 0}, +{ 5, s_2_921, -1, 14, 0}, +{ 5, s_2_922, -1, 15, 0}, +{ 5, s_2_923, -1, 16, 0}, +{ 3, s_2_924, -1, 124, 0}, +{ 5, s_2_925, -1, 124, 0}, +{ 4, s_2_926, -1, 162, 0}, +{ 5, s_2_927, -1, 161, 0}, +{ 7, s_2_928, 927, 155, 0}, +{ 7, s_2_929, 927, 156, 0}, +{ 8, s_2_930, 927, 138, 0}, +{ 8, s_2_931, 927, 139, 0}, +{ 8, s_2_932, 927, 140, 0}, +{ 7, s_2_933, 927, 144, 0}, +{ 7, s_2_934, 927, 145, 0}, +{ 7, s_2_935, 927, 146, 0}, +{ 7, s_2_936, 927, 147, 0}, +{ 5, s_2_937, -1, 157, 0}, +{ 8, s_2_938, 937, 121, 0}, +{ 7, s_2_939, 937, 155, 0}, +{ 4, s_2_940, -1, 121, 0}, +{ 4, s_2_941, -1, 164, 0}, +{ 5, s_2_942, -1, 153, 0}, +{ 6, s_2_943, -1, 136, 0}, +{ 2, s_2_944, -1, 20, 0}, +{ 3, s_2_945, 944, 18, 0}, +{ 3, s_2_946, -1, 109, 0}, +{ 4, s_2_947, 946, 26, 0}, +{ 4, s_2_948, 946, 30, 0}, +{ 4, s_2_949, 946, 31, 0}, +{ 5, s_2_950, 946, 28, 0}, +{ 5, s_2_951, 946, 27, 0}, +{ 5, s_2_952, 946, 29, 0}, +{ 4, s_2_953, -1, 32, 0}, +{ 4, s_2_954, -1, 33, 0}, +{ 4, s_2_955, -1, 34, 0}, +{ 4, s_2_956, -1, 40, 0}, +{ 4, s_2_957, -1, 39, 0}, +{ 6, s_2_958, -1, 84, 0}, +{ 6, s_2_959, -1, 85, 0}, +{ 6, s_2_960, -1, 122, 0}, +{ 7, s_2_961, -1, 86, 0}, +{ 4, s_2_962, -1, 95, 0}, +{ 5, s_2_963, 962, 1, 0}, +{ 6, s_2_964, 962, 2, 0}, +{ 4, s_2_965, -1, 35, 0}, +{ 5, s_2_966, 965, 83, 0}, +{ 4, s_2_967, -1, 37, 0}, +{ 4, s_2_968, -1, 13, 0}, +{ 6, s_2_969, 968, 9, 0}, +{ 6, s_2_970, 968, 6, 0}, +{ 6, s_2_971, 968, 7, 0}, +{ 6, s_2_972, 968, 8, 0}, +{ 6, s_2_973, 968, 5, 0}, +{ 4, s_2_974, -1, 41, 0}, +{ 4, s_2_975, -1, 42, 0}, +{ 4, s_2_976, -1, 43, 0}, +{ 5, s_2_977, 976, 123, 0}, +{ 4, s_2_978, -1, 44, 0}, +{ 5, s_2_979, 978, 120, 0}, +{ 7, s_2_980, 978, 92, 0}, +{ 7, s_2_981, 978, 93, 0}, +{ 6, s_2_982, 978, 94, 0}, +{ 5, s_2_983, -1, 77, 0}, +{ 5, s_2_984, -1, 78, 0}, +{ 5, s_2_985, -1, 79, 0}, +{ 5, s_2_986, -1, 80, 0}, +{ 4, s_2_987, -1, 45, 0}, +{ 6, s_2_988, -1, 91, 0}, +{ 5, s_2_989, -1, 38, 0}, +{ 4, s_2_990, -1, 84, 0}, +{ 4, s_2_991, -1, 85, 0}, +{ 4, s_2_992, -1, 122, 0}, +{ 5, s_2_993, -1, 86, 0}, +{ 2, s_2_994, -1, 95, 0}, +{ 3, s_2_995, 994, 1, 0}, +{ 4, s_2_996, 994, 2, 0}, +{ 3, s_2_997, -1, 104, 0}, +{ 5, s_2_998, 997, 128, 0}, +{ 8, s_2_999, 997, 106, 0}, +{ 8, s_2_1000, 997, 107, 0}, +{ 8, s_2_1001, 997, 108, 0}, +{ 5, s_2_1002, 997, 47, 0}, +{ 6, s_2_1003, 997, 114, 0}, +{ 4, s_2_1004, 997, 46, 0}, +{ 5, s_2_1005, 997, 100, 0}, +{ 5, s_2_1006, 997, 105, 0}, +{ 4, s_2_1007, 997, 113, 0}, +{ 6, s_2_1008, 1007, 110, 0}, +{ 6, s_2_1009, 1007, 111, 0}, +{ 6, s_2_1010, 1007, 112, 0}, +{ 5, s_2_1011, 997, 97, 0}, +{ 5, s_2_1012, 997, 96, 0}, +{ 5, s_2_1013, 997, 98, 0}, +{ 5, s_2_1014, 997, 76, 0}, +{ 5, s_2_1015, 997, 99, 0}, +{ 6, s_2_1016, 997, 102, 0}, +{ 3, s_2_1017, -1, 83, 0}, +{ 3, s_2_1018, -1, 116, 0}, +{ 5, s_2_1019, 1018, 124, 0}, +{ 6, s_2_1020, 1018, 121, 0}, +{ 4, s_2_1021, 1018, 103, 0}, +{ 6, s_2_1022, 1018, 127, 0}, +{ 6, s_2_1023, 1018, 118, 0}, +{ 5, s_2_1024, 1018, 48, 0}, +{ 6, s_2_1025, 1018, 101, 0}, +{ 7, s_2_1026, 1018, 117, 0}, +{ 7, s_2_1027, 1018, 90, 0}, +{ 3, s_2_1028, -1, 50, 0}, +{ 4, s_2_1029, -1, 115, 0}, +{ 4, s_2_1030, -1, 13, 0}, +{ 4, s_2_1031, -1, 52, 0}, +{ 4, s_2_1032, -1, 51, 0}, +{ 2, s_2_1033, -1, 13, 0}, +{ 3, s_2_1034, 1033, 10, 0}, +{ 5, s_2_1035, 1034, 128, 0}, +{ 5, s_2_1036, 1034, 105, 0}, +{ 4, s_2_1037, 1034, 113, 0}, +{ 5, s_2_1038, 1034, 97, 0}, +{ 5, s_2_1039, 1034, 96, 0}, +{ 5, s_2_1040, 1034, 98, 0}, +{ 5, s_2_1041, 1034, 99, 0}, +{ 6, s_2_1042, 1034, 102, 0}, +{ 5, s_2_1043, 1033, 124, 0}, +{ 6, s_2_1044, 1033, 121, 0}, +{ 6, s_2_1045, 1033, 101, 0}, +{ 7, s_2_1046, 1033, 117, 0}, +{ 3, s_2_1047, 1033, 11, 0}, +{ 4, s_2_1048, 1047, 137, 0}, +{ 5, s_2_1049, 1047, 89, 0}, +{ 3, s_2_1050, 1033, 12, 0}, +{ 3, s_2_1051, -1, 53, 0}, +{ 3, s_2_1052, -1, 54, 0}, +{ 3, s_2_1053, -1, 55, 0}, +{ 3, s_2_1054, -1, 56, 0}, +{ 4, s_2_1055, -1, 135, 0}, +{ 4, s_2_1056, -1, 131, 0}, +{ 4, s_2_1057, -1, 129, 0}, +{ 4, s_2_1058, -1, 133, 0}, +{ 4, s_2_1059, -1, 132, 0}, +{ 4, s_2_1060, -1, 130, 0}, +{ 4, s_2_1061, -1, 134, 0}, +{ 3, s_2_1062, -1, 152, 0}, +{ 3, s_2_1063, -1, 154, 0}, +{ 3, s_2_1064, -1, 123, 0}, +{ 4, s_2_1065, -1, 161, 0}, +{ 6, s_2_1066, 1065, 128, 0}, +{ 6, s_2_1067, 1065, 155, 0}, +{ 5, s_2_1068, 1065, 160, 0}, +{ 6, s_2_1069, 1068, 153, 0}, +{ 7, s_2_1070, 1068, 141, 0}, +{ 7, s_2_1071, 1068, 142, 0}, +{ 7, s_2_1072, 1068, 143, 0}, +{ 4, s_2_1073, -1, 162, 0}, +{ 5, s_2_1074, 1073, 158, 0}, +{ 7, s_2_1075, 1073, 127, 0}, +{ 5, s_2_1076, -1, 164, 0}, +{ 3, s_2_1077, -1, 104, 0}, +{ 5, s_2_1078, 1077, 128, 0}, +{ 8, s_2_1079, 1077, 106, 0}, +{ 8, s_2_1080, 1077, 107, 0}, +{ 8, s_2_1081, 1077, 108, 0}, +{ 6, s_2_1082, 1077, 114, 0}, +{ 5, s_2_1083, 1077, 68, 0}, +{ 4, s_2_1084, 1077, 69, 0}, +{ 5, s_2_1085, 1077, 100, 0}, +{ 5, s_2_1086, 1077, 105, 0}, +{ 4, s_2_1087, 1077, 113, 0}, +{ 6, s_2_1088, 1087, 110, 0}, +{ 6, s_2_1089, 1087, 111, 0}, +{ 6, s_2_1090, 1087, 112, 0}, +{ 5, s_2_1091, 1077, 97, 0}, +{ 5, s_2_1092, 1077, 96, 0}, +{ 5, s_2_1093, 1077, 98, 0}, +{ 5, s_2_1094, 1077, 76, 0}, +{ 5, s_2_1095, 1077, 99, 0}, +{ 6, s_2_1096, 1077, 102, 0}, +{ 3, s_2_1097, -1, 70, 0}, +{ 3, s_2_1098, -1, 116, 0}, +{ 5, s_2_1099, 1098, 124, 0}, +{ 6, s_2_1100, 1098, 121, 0}, +{ 4, s_2_1101, 1098, 103, 0}, +{ 6, s_2_1102, 1098, 127, 0}, +{ 6, s_2_1103, 1098, 118, 0}, +{ 5, s_2_1104, 1098, 92, 0}, +{ 5, s_2_1105, 1098, 93, 0}, +{ 6, s_2_1106, 1098, 101, 0}, +{ 7, s_2_1107, 1098, 117, 0}, +{ 7, s_2_1108, 1098, 90, 0}, +{ 4, s_2_1109, -1, 94, 0}, +{ 4, s_2_1110, -1, 71, 0}, +{ 4, s_2_1111, -1, 72, 0}, +{ 4, s_2_1112, -1, 73, 0}, +{ 4, s_2_1113, -1, 74, 0}, +{ 4, s_2_1114, -1, 13, 0}, +{ 3, s_2_1115, -1, 77, 0}, +{ 3, s_2_1116, -1, 78, 0}, +{ 5, s_2_1117, 1116, 109, 0}, +{ 6, s_2_1118, 1117, 26, 0}, +{ 6, s_2_1119, 1117, 30, 0}, +{ 6, s_2_1120, 1117, 31, 0}, +{ 7, s_2_1121, 1117, 28, 0}, +{ 7, s_2_1122, 1117, 27, 0}, +{ 7, s_2_1123, 1117, 29, 0}, +{ 3, s_2_1124, -1, 79, 0}, +{ 3, s_2_1125, -1, 80, 0}, +{ 4, s_2_1126, 1125, 20, 0}, +{ 5, s_2_1127, 1126, 17, 0}, +{ 4, s_2_1128, 1125, 82, 0}, +{ 5, s_2_1129, 1128, 49, 0}, +{ 4, s_2_1130, 1125, 81, 0}, +{ 5, s_2_1131, 1125, 12, 0}, +{ 5, s_2_1132, -1, 116, 0}, +{ 7, s_2_1133, -1, 101, 0}, +{ 6, s_2_1134, -1, 104, 0}, +{ 8, s_2_1135, 1134, 100, 0}, +{ 8, s_2_1136, 1134, 105, 0}, +{ 9, s_2_1137, 1134, 106, 0}, +{ 9, s_2_1138, 1134, 107, 0}, +{ 9, s_2_1139, 1134, 108, 0}, +{ 8, s_2_1140, 1134, 97, 0}, +{ 8, s_2_1141, 1134, 96, 0}, +{ 8, s_2_1142, 1134, 98, 0}, +{ 8, s_2_1143, 1134, 99, 0}, +{ 6, s_2_1144, -1, 25, 0}, +{ 8, s_2_1145, 1144, 100, 0}, +{ 10, s_2_1146, 1144, 117, 0}, +{ 5, s_2_1147, -1, 13, 0}, +{ 6, s_2_1148, -1, 70, 0}, +{ 7, s_2_1149, -1, 115, 0}, +{ 4, s_2_1150, -1, 101, 0}, +{ 5, s_2_1151, -1, 117, 0}, +{ 5, s_2_1152, -1, 63, 0}, +{ 5, s_2_1153, -1, 64, 0}, +{ 5, s_2_1154, -1, 61, 0}, +{ 5, s_2_1155, -1, 62, 0}, +{ 5, s_2_1156, -1, 60, 0}, +{ 5, s_2_1157, -1, 59, 0}, +{ 5, s_2_1158, -1, 65, 0}, +{ 4, s_2_1159, -1, 66, 0}, +{ 4, s_2_1160, -1, 67, 0}, +{ 4, s_2_1161, -1, 91, 0}, +{ 5, s_2_1162, -1, 104, 0}, +{ 7, s_2_1163, 1162, 100, 0}, +{ 6, s_2_1164, 1162, 113, 0}, +{ 7, s_2_1165, 1164, 70, 0}, +{ 8, s_2_1166, 1164, 110, 0}, +{ 8, s_2_1167, 1164, 111, 0}, +{ 8, s_2_1168, 1164, 112, 0}, +{ 8, s_2_1169, 1162, 102, 0}, +{ 5, s_2_1170, -1, 116, 0}, +{ 6, s_2_1171, 1170, 103, 0}, +{ 9, s_2_1172, 1170, 90, 0}, +{ 6, s_2_1173, -1, 13, 0}, +{ 2, s_2_1174, -1, 104, 0}, +{ 4, s_2_1175, 1174, 105, 0}, +{ 3, s_2_1176, 1174, 113, 0}, +{ 4, s_2_1177, 1174, 97, 0}, +{ 4, s_2_1178, 1174, 96, 0}, +{ 4, s_2_1179, 1174, 98, 0}, +{ 4, s_2_1180, 1174, 99, 0}, +{ 2, s_2_1181, -1, 116, 0}, +{ 4, s_2_1182, -1, 124, 0}, +{ 4, s_2_1183, -1, 125, 0}, +{ 4, s_2_1184, -1, 126, 0}, +{ 7, s_2_1185, -1, 84, 0}, +{ 7, s_2_1186, -1, 85, 0}, +{ 7, s_2_1187, -1, 122, 0}, +{ 8, s_2_1188, -1, 86, 0}, +{ 5, s_2_1189, -1, 95, 0}, +{ 6, s_2_1190, 1189, 1, 0}, +{ 7, s_2_1191, 1189, 2, 0}, +{ 6, s_2_1192, -1, 83, 0}, +{ 5, s_2_1193, -1, 13, 0}, +{ 6, s_2_1194, -1, 123, 0}, +{ 8, s_2_1195, -1, 92, 0}, +{ 8, s_2_1196, -1, 93, 0}, +{ 7, s_2_1197, -1, 94, 0}, +{ 6, s_2_1198, -1, 77, 0}, +{ 6, s_2_1199, -1, 78, 0}, +{ 6, s_2_1200, -1, 79, 0}, +{ 6, s_2_1201, -1, 80, 0}, +{ 7, s_2_1202, -1, 91, 0}, +{ 5, s_2_1203, -1, 84, 0}, +{ 5, s_2_1204, -1, 85, 0}, +{ 5, s_2_1205, -1, 122, 0}, +{ 6, s_2_1206, -1, 86, 0}, +{ 3, s_2_1207, -1, 95, 0}, +{ 4, s_2_1208, 1207, 1, 0}, +{ 5, s_2_1209, 1207, 2, 0}, +{ 4, s_2_1210, -1, 104, 0}, +{ 4, s_2_1211, -1, 83, 0}, +{ 3, s_2_1212, -1, 13, 0}, +{ 5, s_2_1213, 1212, 137, 0}, +{ 6, s_2_1214, 1212, 89, 0}, +{ 4, s_2_1215, -1, 123, 0}, +{ 4, s_2_1216, -1, 120, 0}, +{ 6, s_2_1217, -1, 92, 0}, +{ 6, s_2_1218, -1, 93, 0}, +{ 5, s_2_1219, -1, 94, 0}, +{ 4, s_2_1220, -1, 77, 0}, +{ 4, s_2_1221, -1, 78, 0}, +{ 4, s_2_1222, -1, 79, 0}, +{ 4, s_2_1223, -1, 80, 0}, +{ 5, s_2_1224, -1, 14, 0}, +{ 5, s_2_1225, -1, 15, 0}, +{ 5, s_2_1226, -1, 16, 0}, +{ 5, s_2_1227, -1, 91, 0}, +{ 5, s_2_1228, -1, 121, 0}, +{ 4, s_2_1229, -1, 100, 0}, +{ 6, s_2_1230, -1, 117, 0}, +{ 2, s_2_1231, -1, 104, 0}, +{ 4, s_2_1232, 1231, 100, 0}, +{ 4, s_2_1233, 1231, 105, 0}, +{ 2, s_2_1234, -1, 119, 0}, +{ 2, s_2_1235, -1, 116, 0}, +{ 2, s_2_1236, -1, 104, 0}, +{ 4, s_2_1237, 1236, 128, 0}, +{ 4, s_2_1238, 1236, 100, 0}, +{ 4, s_2_1239, 1236, 105, 0}, +{ 3, s_2_1240, 1236, 113, 0}, +{ 4, s_2_1241, 1236, 97, 0}, +{ 4, s_2_1242, 1236, 96, 0}, +{ 4, s_2_1243, 1236, 98, 0}, +{ 4, s_2_1244, 1236, 99, 0}, +{ 5, s_2_1245, 1236, 102, 0}, +{ 2, s_2_1246, -1, 119, 0}, +{ 4, s_2_1247, 1246, 124, 0}, +{ 4, s_2_1248, 1246, 125, 0}, +{ 4, s_2_1249, 1246, 126, 0}, +{ 7, s_2_1250, 1246, 110, 0}, +{ 7, s_2_1251, 1246, 111, 0}, +{ 7, s_2_1252, 1246, 112, 0}, +{ 4, s_2_1253, 1246, 104, 0}, +{ 5, s_2_1254, 1253, 26, 0}, +{ 5, s_2_1255, 1253, 30, 0}, +{ 5, s_2_1256, 1253, 31, 0}, +{ 7, s_2_1257, 1253, 106, 0}, +{ 7, s_2_1258, 1253, 107, 0}, +{ 7, s_2_1259, 1253, 108, 0}, +{ 6, s_2_1260, 1253, 28, 0}, +{ 6, s_2_1261, 1253, 27, 0}, +{ 6, s_2_1262, 1253, 29, 0}, +{ 4, s_2_1263, 1246, 116, 0}, +{ 7, s_2_1264, 1263, 84, 0}, +{ 7, s_2_1265, 1263, 85, 0}, +{ 7, s_2_1266, 1263, 123, 0}, +{ 8, s_2_1267, 1263, 86, 0}, +{ 5, s_2_1268, 1263, 95, 0}, +{ 6, s_2_1269, 1268, 1, 0}, +{ 7, s_2_1270, 1268, 2, 0}, +{ 5, s_2_1271, 1263, 24, 0}, +{ 6, s_2_1272, 1271, 83, 0}, +{ 5, s_2_1273, 1263, 13, 0}, +{ 7, s_2_1274, 1263, 21, 0}, +{ 5, s_2_1275, 1263, 23, 0}, +{ 6, s_2_1276, 1275, 123, 0}, +{ 6, s_2_1277, 1263, 120, 0}, +{ 8, s_2_1278, 1263, 92, 0}, +{ 8, s_2_1279, 1263, 93, 0}, +{ 6, s_2_1280, 1263, 22, 0}, +{ 7, s_2_1281, 1263, 94, 0}, +{ 6, s_2_1282, 1263, 77, 0}, +{ 6, s_2_1283, 1263, 78, 0}, +{ 6, s_2_1284, 1263, 79, 0}, +{ 6, s_2_1285, 1263, 80, 0}, +{ 7, s_2_1286, 1263, 91, 0}, +{ 5, s_2_1287, 1246, 84, 0}, +{ 5, s_2_1288, 1246, 85, 0}, +{ 5, s_2_1289, 1246, 114, 0}, +{ 5, s_2_1290, 1246, 122, 0}, +{ 6, s_2_1291, 1246, 86, 0}, +{ 4, s_2_1292, 1246, 25, 0}, +{ 7, s_2_1293, 1292, 121, 0}, +{ 6, s_2_1294, 1292, 100, 0}, +{ 8, s_2_1295, 1292, 117, 0}, +{ 3, s_2_1296, 1246, 95, 0}, +{ 4, s_2_1297, 1296, 1, 0}, +{ 5, s_2_1298, 1296, 2, 0}, +{ 4, s_2_1299, 1246, 83, 0}, +{ 3, s_2_1300, 1246, 13, 0}, +{ 4, s_2_1301, 1300, 10, 0}, +{ 7, s_2_1302, 1301, 110, 0}, +{ 7, s_2_1303, 1301, 111, 0}, +{ 7, s_2_1304, 1301, 112, 0}, +{ 4, s_2_1305, 1300, 87, 0}, +{ 4, s_2_1306, 1300, 159, 0}, +{ 5, s_2_1307, 1300, 88, 0}, +{ 5, s_2_1308, 1246, 135, 0}, +{ 5, s_2_1309, 1246, 131, 0}, +{ 5, s_2_1310, 1246, 129, 0}, +{ 5, s_2_1311, 1246, 133, 0}, +{ 5, s_2_1312, 1246, 132, 0}, +{ 5, s_2_1313, 1246, 130, 0}, +{ 5, s_2_1314, 1246, 134, 0}, +{ 4, s_2_1315, 1246, 152, 0}, +{ 4, s_2_1316, 1246, 154, 0}, +{ 4, s_2_1317, 1246, 123, 0}, +{ 4, s_2_1318, 1246, 120, 0}, +{ 4, s_2_1319, 1246, 70, 0}, +{ 6, s_2_1320, 1246, 92, 0}, +{ 6, s_2_1321, 1246, 93, 0}, +{ 5, s_2_1322, 1246, 94, 0}, +{ 5, s_2_1323, 1246, 151, 0}, +{ 6, s_2_1324, 1246, 75, 0}, +{ 4, s_2_1325, 1246, 77, 0}, +{ 4, s_2_1326, 1246, 78, 0}, +{ 4, s_2_1327, 1246, 79, 0}, +{ 5, s_2_1328, 1246, 14, 0}, +{ 5, s_2_1329, 1246, 15, 0}, +{ 5, s_2_1330, 1246, 16, 0}, +{ 6, s_2_1331, 1246, 63, 0}, +{ 6, s_2_1332, 1246, 64, 0}, +{ 6, s_2_1333, 1246, 61, 0}, +{ 6, s_2_1334, 1246, 62, 0}, +{ 6, s_2_1335, 1246, 60, 0}, +{ 6, s_2_1336, 1246, 59, 0}, +{ 6, s_2_1337, 1246, 65, 0}, +{ 5, s_2_1338, 1246, 66, 0}, +{ 5, s_2_1339, 1246, 67, 0}, +{ 5, s_2_1340, 1246, 91, 0}, +{ 2, s_2_1341, -1, 116, 0}, +{ 4, s_2_1342, 1341, 124, 0}, +{ 4, s_2_1343, 1341, 125, 0}, +{ 4, s_2_1344, 1341, 126, 0}, +{ 5, s_2_1345, 1344, 121, 0}, +{ 7, s_2_1346, 1341, 84, 0}, +{ 7, s_2_1347, 1341, 85, 0}, +{ 7, s_2_1348, 1341, 122, 0}, +{ 8, s_2_1349, 1341, 86, 0}, +{ 5, s_2_1350, 1341, 95, 0}, +{ 6, s_2_1351, 1350, 1, 0}, +{ 7, s_2_1352, 1350, 2, 0}, +{ 6, s_2_1353, 1341, 83, 0}, +{ 5, s_2_1354, 1341, 13, 0}, +{ 6, s_2_1355, 1341, 123, 0}, +{ 6, s_2_1356, 1341, 120, 0}, +{ 8, s_2_1357, 1341, 92, 0}, +{ 8, s_2_1358, 1341, 93, 0}, +{ 7, s_2_1359, 1341, 94, 0}, +{ 6, s_2_1360, 1341, 77, 0}, +{ 6, s_2_1361, 1341, 78, 0}, +{ 6, s_2_1362, 1341, 79, 0}, +{ 6, s_2_1363, 1341, 80, 0}, +{ 7, s_2_1364, 1341, 91, 0}, +{ 5, s_2_1365, 1341, 84, 0}, +{ 5, s_2_1366, 1341, 85, 0}, +{ 5, s_2_1367, 1341, 122, 0}, +{ 6, s_2_1368, 1341, 86, 0}, +{ 3, s_2_1369, 1341, 95, 0}, +{ 4, s_2_1370, 1369, 1, 0}, +{ 5, s_2_1371, 1369, 2, 0}, +{ 4, s_2_1372, 1341, 83, 0}, +{ 3, s_2_1373, 1341, 13, 0}, +{ 5, s_2_1374, 1373, 137, 0}, +{ 6, s_2_1375, 1373, 89, 0}, +{ 4, s_2_1376, 1341, 123, 0}, +{ 5, s_2_1377, 1376, 127, 0}, +{ 4, s_2_1378, 1341, 120, 0}, +{ 5, s_2_1379, 1341, 118, 0}, +{ 6, s_2_1380, 1341, 92, 0}, +{ 6, s_2_1381, 1341, 93, 0}, +{ 5, s_2_1382, 1341, 94, 0}, +{ 4, s_2_1383, 1341, 77, 0}, +{ 4, s_2_1384, 1341, 78, 0}, +{ 4, s_2_1385, 1341, 79, 0}, +{ 4, s_2_1386, 1341, 80, 0}, +{ 5, s_2_1387, 1341, 14, 0}, +{ 5, s_2_1388, 1341, 15, 0}, +{ 5, s_2_1389, 1341, 16, 0}, +{ 5, s_2_1390, 1341, 101, 0}, +{ 6, s_2_1391, 1341, 117, 0}, +{ 5, s_2_1392, 1341, 91, 0}, +{ 6, s_2_1393, 1392, 90, 0}, +{ 4, s_2_1394, -1, 124, 0}, +{ 4, s_2_1395, -1, 125, 0}, +{ 4, s_2_1396, -1, 126, 0}, +{ 3, s_2_1397, -1, 20, 0}, +{ 5, s_2_1398, 1397, 19, 0}, +{ 4, s_2_1399, 1397, 18, 0}, +{ 5, s_2_1400, -1, 32, 0}, +{ 5, s_2_1401, -1, 33, 0}, +{ 5, s_2_1402, -1, 34, 0}, +{ 5, s_2_1403, -1, 40, 0}, +{ 5, s_2_1404, -1, 39, 0}, +{ 5, s_2_1405, -1, 35, 0}, +{ 5, s_2_1406, -1, 37, 0}, +{ 5, s_2_1407, -1, 36, 0}, +{ 7, s_2_1408, 1407, 9, 0}, +{ 7, s_2_1409, 1407, 6, 0}, +{ 7, s_2_1410, 1407, 7, 0}, +{ 7, s_2_1411, 1407, 8, 0}, +{ 7, s_2_1412, 1407, 5, 0}, +{ 5, s_2_1413, -1, 41, 0}, +{ 5, s_2_1414, -1, 42, 0}, +{ 5, s_2_1415, -1, 43, 0}, +{ 5, s_2_1416, -1, 44, 0}, +{ 5, s_2_1417, -1, 45, 0}, +{ 6, s_2_1418, -1, 38, 0}, +{ 5, s_2_1419, -1, 84, 0}, +{ 5, s_2_1420, -1, 85, 0}, +{ 5, s_2_1421, -1, 122, 0}, +{ 6, s_2_1422, -1, 86, 0}, +{ 3, s_2_1423, -1, 95, 0}, +{ 4, s_2_1424, 1423, 1, 0}, +{ 5, s_2_1425, 1423, 2, 0}, +{ 4, s_2_1426, -1, 104, 0}, +{ 6, s_2_1427, 1426, 47, 0}, +{ 5, s_2_1428, 1426, 46, 0}, +{ 4, s_2_1429, -1, 83, 0}, +{ 4, s_2_1430, -1, 116, 0}, +{ 6, s_2_1431, 1430, 48, 0}, +{ 4, s_2_1432, -1, 50, 0}, +{ 5, s_2_1433, -1, 52, 0}, +{ 5, s_2_1434, -1, 51, 0}, +{ 3, s_2_1435, -1, 13, 0}, +{ 4, s_2_1436, 1435, 10, 0}, +{ 4, s_2_1437, 1435, 11, 0}, +{ 5, s_2_1438, 1437, 137, 0}, +{ 6, s_2_1439, 1437, 10, 0}, +{ 6, s_2_1440, 1437, 89, 0}, +{ 4, s_2_1441, 1435, 12, 0}, +{ 4, s_2_1442, -1, 53, 0}, +{ 4, s_2_1443, -1, 54, 0}, +{ 4, s_2_1444, -1, 55, 0}, +{ 4, s_2_1445, -1, 56, 0}, +{ 5, s_2_1446, -1, 135, 0}, +{ 5, s_2_1447, -1, 131, 0}, +{ 5, s_2_1448, -1, 129, 0}, +{ 5, s_2_1449, -1, 133, 0}, +{ 5, s_2_1450, -1, 132, 0}, +{ 5, s_2_1451, -1, 130, 0}, +{ 5, s_2_1452, -1, 134, 0}, +{ 4, s_2_1453, -1, 57, 0}, +{ 4, s_2_1454, -1, 58, 0}, +{ 4, s_2_1455, -1, 123, 0}, +{ 4, s_2_1456, -1, 120, 0}, +{ 6, s_2_1457, 1456, 68, 0}, +{ 5, s_2_1458, 1456, 69, 0}, +{ 4, s_2_1459, -1, 70, 0}, +{ 6, s_2_1460, -1, 92, 0}, +{ 6, s_2_1461, -1, 93, 0}, +{ 5, s_2_1462, -1, 94, 0}, +{ 5, s_2_1463, -1, 71, 0}, +{ 5, s_2_1464, -1, 72, 0}, +{ 5, s_2_1465, -1, 73, 0}, +{ 5, s_2_1466, -1, 74, 0}, +{ 4, s_2_1467, -1, 77, 0}, +{ 4, s_2_1468, -1, 78, 0}, +{ 4, s_2_1469, -1, 79, 0}, +{ 4, s_2_1470, -1, 80, 0}, +{ 5, s_2_1471, 1470, 82, 0}, +{ 5, s_2_1472, 1470, 81, 0}, +{ 5, s_2_1473, -1, 3, 0}, +{ 6, s_2_1474, -1, 4, 0}, +{ 5, s_2_1475, -1, 14, 0}, +{ 5, s_2_1476, -1, 15, 0}, +{ 5, s_2_1477, -1, 16, 0}, +{ 6, s_2_1478, -1, 63, 0}, +{ 6, s_2_1479, -1, 64, 0}, +{ 6, s_2_1480, -1, 61, 0}, +{ 6, s_2_1481, -1, 62, 0}, +{ 6, s_2_1482, -1, 60, 0}, +{ 6, s_2_1483, -1, 59, 0}, +{ 6, s_2_1484, -1, 65, 0}, +{ 5, s_2_1485, -1, 66, 0}, +{ 5, s_2_1486, -1, 67, 0}, +{ 5, s_2_1487, -1, 91, 0}, +{ 2, s_2_1488, -1, 104, 0}, +{ 4, s_2_1489, 1488, 128, 0}, +{ 4, s_2_1490, 1488, 100, 0}, +{ 4, s_2_1491, 1488, 105, 0}, +{ 3, s_2_1492, 1488, 113, 0}, +{ 4, s_2_1493, 1488, 97, 0}, +{ 4, s_2_1494, 1488, 96, 0}, +{ 4, s_2_1495, 1488, 98, 0}, +{ 4, s_2_1496, 1488, 99, 0}, +{ 5, s_2_1497, 1488, 102, 0}, +{ 4, s_2_1498, -1, 124, 0}, +{ 5, s_2_1499, -1, 121, 0}, +{ 5, s_2_1500, -1, 101, 0}, +{ 6, s_2_1501, -1, 117, 0}, +{ 4, s_2_1502, -1, 10, 0}, +{ 2, s_2_1503, -1, 104, 0}, +{ 4, s_2_1504, 1503, 128, 0}, +{ 7, s_2_1505, 1503, 106, 0}, +{ 7, s_2_1506, 1503, 107, 0}, +{ 7, s_2_1507, 1503, 108, 0}, +{ 5, s_2_1508, 1503, 114, 0}, +{ 4, s_2_1509, 1503, 100, 0}, +{ 4, s_2_1510, 1503, 105, 0}, +{ 3, s_2_1511, 1503, 113, 0}, +{ 5, s_2_1512, 1511, 110, 0}, +{ 5, s_2_1513, 1511, 111, 0}, +{ 5, s_2_1514, 1511, 112, 0}, +{ 4, s_2_1515, 1503, 97, 0}, +{ 4, s_2_1516, 1503, 96, 0}, +{ 4, s_2_1517, 1503, 98, 0}, +{ 4, s_2_1518, 1503, 76, 0}, +{ 4, s_2_1519, 1503, 99, 0}, +{ 5, s_2_1520, 1503, 102, 0}, +{ 2, s_2_1521, -1, 20, 0}, +{ 3, s_2_1522, 1521, 18, 0}, +{ 2, s_2_1523, -1, 116, 0}, +{ 4, s_2_1524, 1523, 124, 0}, +{ 5, s_2_1525, 1523, 121, 0}, +{ 3, s_2_1526, 1523, 24, 0}, +{ 3, s_2_1527, 1523, 103, 0}, +{ 5, s_2_1528, 1523, 21, 0}, +{ 3, s_2_1529, 1523, 23, 0}, +{ 5, s_2_1530, 1529, 127, 0}, +{ 5, s_2_1531, 1523, 118, 0}, +{ 4, s_2_1532, 1523, 22, 0}, +{ 5, s_2_1533, 1523, 101, 0}, +{ 6, s_2_1534, 1523, 117, 0}, +{ 6, s_2_1535, 1523, 90, 0}, +{ 4, s_2_1536, -1, 32, 0}, +{ 4, s_2_1537, -1, 33, 0}, +{ 4, s_2_1538, -1, 34, 0}, +{ 4, s_2_1539, -1, 40, 0}, +{ 4, s_2_1540, -1, 39, 0}, +{ 4, s_2_1541, -1, 35, 0}, +{ 4, s_2_1542, -1, 37, 0}, +{ 4, s_2_1543, -1, 36, 0}, +{ 4, s_2_1544, -1, 41, 0}, +{ 4, s_2_1545, -1, 42, 0}, +{ 4, s_2_1546, -1, 43, 0}, +{ 4, s_2_1547, -1, 44, 0}, +{ 4, s_2_1548, -1, 45, 0}, +{ 5, s_2_1549, -1, 38, 0}, +{ 4, s_2_1550, -1, 84, 0}, +{ 4, s_2_1551, -1, 85, 0}, +{ 4, s_2_1552, -1, 122, 0}, +{ 5, s_2_1553, -1, 86, 0}, +{ 2, s_2_1554, -1, 95, 0}, +{ 3, s_2_1555, 1554, 1, 0}, +{ 4, s_2_1556, 1554, 2, 0}, +{ 3, s_2_1557, -1, 104, 0}, +{ 5, s_2_1558, 1557, 128, 0}, +{ 8, s_2_1559, 1557, 106, 0}, +{ 8, s_2_1560, 1557, 107, 0}, +{ 8, s_2_1561, 1557, 108, 0}, +{ 5, s_2_1562, 1557, 47, 0}, +{ 6, s_2_1563, 1557, 114, 0}, +{ 4, s_2_1564, 1557, 46, 0}, +{ 5, s_2_1565, 1557, 100, 0}, +{ 5, s_2_1566, 1557, 105, 0}, +{ 4, s_2_1567, 1557, 113, 0}, +{ 6, s_2_1568, 1567, 110, 0}, +{ 6, s_2_1569, 1567, 111, 0}, +{ 6, s_2_1570, 1567, 112, 0}, +{ 5, s_2_1571, 1557, 97, 0}, +{ 5, s_2_1572, 1557, 96, 0}, +{ 5, s_2_1573, 1557, 98, 0}, +{ 5, s_2_1574, 1557, 76, 0}, +{ 5, s_2_1575, 1557, 99, 0}, +{ 6, s_2_1576, 1557, 102, 0}, +{ 3, s_2_1577, -1, 83, 0}, +{ 3, s_2_1578, -1, 116, 0}, +{ 5, s_2_1579, 1578, 124, 0}, +{ 6, s_2_1580, 1578, 121, 0}, +{ 4, s_2_1581, 1578, 103, 0}, +{ 6, s_2_1582, 1578, 127, 0}, +{ 6, s_2_1583, 1578, 118, 0}, +{ 6, s_2_1584, 1578, 101, 0}, +{ 7, s_2_1585, 1578, 117, 0}, +{ 7, s_2_1586, 1578, 90, 0}, +{ 4, s_2_1587, -1, 115, 0}, +{ 4, s_2_1588, -1, 13, 0}, +{ 3, s_2_1589, -1, 104, 0}, +{ 5, s_2_1590, 1589, 128, 0}, +{ 4, s_2_1591, 1589, 52, 0}, +{ 5, s_2_1592, 1591, 100, 0}, +{ 5, s_2_1593, 1591, 105, 0}, +{ 4, s_2_1594, 1589, 113, 0}, +{ 5, s_2_1595, 1589, 97, 0}, +{ 5, s_2_1596, 1589, 96, 0}, +{ 5, s_2_1597, 1589, 98, 0}, +{ 5, s_2_1598, 1589, 99, 0}, +{ 6, s_2_1599, 1589, 102, 0}, +{ 3, s_2_1600, -1, 119, 0}, +{ 8, s_2_1601, 1600, 110, 0}, +{ 8, s_2_1602, 1600, 111, 0}, +{ 8, s_2_1603, 1600, 112, 0}, +{ 8, s_2_1604, 1600, 106, 0}, +{ 8, s_2_1605, 1600, 107, 0}, +{ 8, s_2_1606, 1600, 108, 0}, +{ 5, s_2_1607, 1600, 116, 0}, +{ 6, s_2_1608, 1600, 114, 0}, +{ 5, s_2_1609, 1600, 25, 0}, +{ 8, s_2_1610, 1609, 121, 0}, +{ 7, s_2_1611, 1609, 100, 0}, +{ 9, s_2_1612, 1609, 117, 0}, +{ 4, s_2_1613, 1600, 51, 0}, +{ 4, s_2_1614, 1600, 13, 0}, +{ 8, s_2_1615, 1614, 110, 0}, +{ 8, s_2_1616, 1614, 111, 0}, +{ 8, s_2_1617, 1614, 112, 0}, +{ 5, s_2_1618, 1600, 70, 0}, +{ 6, s_2_1619, 1600, 115, 0}, +{ 3, s_2_1620, -1, 116, 0}, +{ 5, s_2_1621, 1620, 124, 0}, +{ 6, s_2_1622, 1620, 121, 0}, +{ 4, s_2_1623, 1620, 13, 0}, +{ 8, s_2_1624, 1623, 110, 0}, +{ 8, s_2_1625, 1623, 111, 0}, +{ 8, s_2_1626, 1623, 112, 0}, +{ 6, s_2_1627, 1620, 127, 0}, +{ 5, s_2_1628, 1620, 70, 0}, +{ 6, s_2_1629, 1628, 118, 0}, +{ 6, s_2_1630, 1620, 115, 0}, +{ 6, s_2_1631, 1620, 101, 0}, +{ 7, s_2_1632, 1620, 117, 0}, +{ 7, s_2_1633, 1620, 90, 0}, +{ 4, s_2_1634, -1, 104, 0}, +{ 6, s_2_1635, 1634, 105, 0}, +{ 5, s_2_1636, 1634, 113, 0}, +{ 7, s_2_1637, 1636, 106, 0}, +{ 7, s_2_1638, 1636, 107, 0}, +{ 7, s_2_1639, 1636, 108, 0}, +{ 6, s_2_1640, 1634, 97, 0}, +{ 6, s_2_1641, 1634, 96, 0}, +{ 6, s_2_1642, 1634, 98, 0}, +{ 6, s_2_1643, 1634, 99, 0}, +{ 4, s_2_1644, -1, 116, 0}, +{ 4, s_2_1645, -1, 25, 0}, +{ 7, s_2_1646, 1645, 121, 0}, +{ 6, s_2_1647, 1645, 100, 0}, +{ 8, s_2_1648, 1645, 117, 0}, +{ 4, s_2_1649, -1, 104, 0}, +{ 6, s_2_1650, 1649, 128, 0}, +{ 9, s_2_1651, 1649, 106, 0}, +{ 9, s_2_1652, 1649, 107, 0}, +{ 9, s_2_1653, 1649, 108, 0}, +{ 7, s_2_1654, 1649, 114, 0}, +{ 6, s_2_1655, 1649, 100, 0}, +{ 6, s_2_1656, 1649, 105, 0}, +{ 5, s_2_1657, 1649, 113, 0}, +{ 6, s_2_1658, 1649, 97, 0}, +{ 6, s_2_1659, 1649, 96, 0}, +{ 6, s_2_1660, 1649, 98, 0}, +{ 6, s_2_1661, 1649, 76, 0}, +{ 6, s_2_1662, 1649, 99, 0}, +{ 7, s_2_1663, 1649, 102, 0}, +{ 4, s_2_1664, -1, 116, 0}, +{ 6, s_2_1665, 1664, 124, 0}, +{ 7, s_2_1666, 1664, 121, 0}, +{ 5, s_2_1667, 1664, 103, 0}, +{ 7, s_2_1668, 1664, 127, 0}, +{ 7, s_2_1669, 1664, 118, 0}, +{ 7, s_2_1670, 1664, 101, 0}, +{ 8, s_2_1671, 1664, 117, 0}, +{ 8, s_2_1672, 1664, 90, 0}, +{ 9, s_2_1673, -1, 110, 0}, +{ 9, s_2_1674, -1, 111, 0}, +{ 9, s_2_1675, -1, 112, 0}, +{ 5, s_2_1676, -1, 13, 0}, +{ 2, s_2_1677, -1, 13, 0}, +{ 3, s_2_1678, 1677, 104, 0}, +{ 5, s_2_1679, 1678, 128, 0}, +{ 5, s_2_1680, 1678, 105, 0}, +{ 4, s_2_1681, 1678, 113, 0}, +{ 5, s_2_1682, 1678, 97, 0}, +{ 5, s_2_1683, 1678, 96, 0}, +{ 5, s_2_1684, 1678, 98, 0}, +{ 5, s_2_1685, 1678, 99, 0}, +{ 6, s_2_1686, 1678, 102, 0}, +{ 5, s_2_1687, 1677, 124, 0}, +{ 6, s_2_1688, 1677, 121, 0}, +{ 6, s_2_1689, 1677, 101, 0}, +{ 7, s_2_1690, 1677, 117, 0}, +{ 3, s_2_1691, 1677, 11, 0}, +{ 4, s_2_1692, 1691, 137, 0}, +{ 5, s_2_1693, 1691, 89, 0}, +{ 3, s_2_1694, -1, 120, 0}, +{ 5, s_2_1695, 1694, 68, 0}, +{ 4, s_2_1696, 1694, 69, 0}, +{ 3, s_2_1697, -1, 70, 0}, +{ 5, s_2_1698, -1, 92, 0}, +{ 5, s_2_1699, -1, 93, 0}, +{ 4, s_2_1700, -1, 94, 0}, +{ 4, s_2_1701, -1, 71, 0}, +{ 4, s_2_1702, -1, 72, 0}, +{ 4, s_2_1703, -1, 73, 0}, +{ 4, s_2_1704, -1, 74, 0}, +{ 4, s_2_1705, -1, 13, 0}, +{ 3, s_2_1706, -1, 13, 0}, +{ 3, s_2_1707, -1, 77, 0}, +{ 3, s_2_1708, -1, 78, 0}, +{ 3, s_2_1709, -1, 79, 0}, +{ 3, s_2_1710, -1, 80, 0}, +{ 4, s_2_1711, -1, 3, 0}, +{ 5, s_2_1712, -1, 4, 0}, +{ 2, s_2_1713, -1, 161, 0}, +{ 4, s_2_1714, 1713, 128, 0}, +{ 4, s_2_1715, 1713, 155, 0}, +{ 4, s_2_1716, 1713, 156, 0}, +{ 3, s_2_1717, 1713, 160, 0}, +{ 4, s_2_1718, 1713, 144, 0}, +{ 4, s_2_1719, 1713, 145, 0}, +{ 4, s_2_1720, 1713, 146, 0}, +{ 4, s_2_1721, 1713, 147, 0}, +{ 2, s_2_1722, -1, 163, 0}, +{ 7, s_2_1723, 1722, 141, 0}, +{ 7, s_2_1724, 1722, 142, 0}, +{ 7, s_2_1725, 1722, 143, 0}, +{ 7, s_2_1726, 1722, 138, 0}, +{ 7, s_2_1727, 1722, 139, 0}, +{ 7, s_2_1728, 1722, 140, 0}, +{ 4, s_2_1729, 1722, 162, 0}, +{ 5, s_2_1730, 1722, 150, 0}, +{ 4, s_2_1731, 1722, 157, 0}, +{ 7, s_2_1732, 1731, 121, 0}, +{ 6, s_2_1733, 1731, 155, 0}, +{ 3, s_2_1734, 1722, 164, 0}, +{ 7, s_2_1735, 1734, 141, 0}, +{ 7, s_2_1736, 1734, 142, 0}, +{ 7, s_2_1737, 1734, 143, 0}, +{ 4, s_2_1738, 1722, 153, 0}, +{ 5, s_2_1739, 1722, 136, 0}, +{ 2, s_2_1740, -1, 162, 0}, +{ 4, s_2_1741, 1740, 124, 0}, +{ 5, s_2_1742, 1740, 121, 0}, +{ 3, s_2_1743, 1740, 158, 0}, +{ 5, s_2_1744, 1740, 127, 0}, +{ 5, s_2_1745, 1740, 149, 0}, +{ 2, s_2_1746, -1, 104, 0}, +{ 4, s_2_1747, 1746, 128, 0}, +{ 7, s_2_1748, 1746, 106, 0}, +{ 7, s_2_1749, 1746, 107, 0}, +{ 7, s_2_1750, 1746, 108, 0}, +{ 5, s_2_1751, 1746, 114, 0}, +{ 4, s_2_1752, 1746, 100, 0}, +{ 4, s_2_1753, 1746, 105, 0}, +{ 3, s_2_1754, 1746, 113, 0}, +{ 5, s_2_1755, 1754, 110, 0}, +{ 5, s_2_1756, 1754, 111, 0}, +{ 5, s_2_1757, 1754, 112, 0}, +{ 4, s_2_1758, 1746, 97, 0}, +{ 4, s_2_1759, 1746, 96, 0}, +{ 4, s_2_1760, 1746, 98, 0}, +{ 6, s_2_1761, 1760, 100, 0}, +{ 4, s_2_1762, 1746, 76, 0}, +{ 4, s_2_1763, 1746, 99, 0}, +{ 5, s_2_1764, 1746, 102, 0}, +{ 2, s_2_1765, -1, 116, 0}, +{ 4, s_2_1766, 1765, 124, 0}, +{ 5, s_2_1767, 1765, 121, 0}, +{ 5, s_2_1768, 1765, 127, 0}, +{ 5, s_2_1769, 1765, 118, 0}, +{ 5, s_2_1770, 1765, 101, 0}, +{ 6, s_2_1771, 1765, 117, 0}, +{ 6, s_2_1772, 1765, 90, 0}, +{ 3, s_2_1773, -1, 13, 0}, +{ 6, s_2_1774, -1, 110, 0}, +{ 6, s_2_1775, -1, 111, 0}, +{ 6, s_2_1776, -1, 112, 0}, +{ 2, s_2_1777, -1, 20, 0}, +{ 4, s_2_1778, 1777, 19, 0}, +{ 3, s_2_1779, 1777, 18, 0}, +{ 3, s_2_1780, -1, 104, 0}, +{ 5, s_2_1781, 1780, 128, 0}, +{ 8, s_2_1782, 1780, 106, 0}, +{ 8, s_2_1783, 1780, 107, 0}, +{ 8, s_2_1784, 1780, 108, 0}, +{ 6, s_2_1785, 1780, 114, 0}, +{ 5, s_2_1786, 1780, 100, 0}, +{ 5, s_2_1787, 1780, 105, 0}, +{ 5, s_2_1788, 1780, 97, 0}, +{ 5, s_2_1789, 1780, 96, 0}, +{ 5, s_2_1790, 1780, 98, 0}, +{ 5, s_2_1791, 1780, 76, 0}, +{ 5, s_2_1792, 1780, 99, 0}, +{ 6, s_2_1793, 1780, 102, 0}, +{ 3, s_2_1794, -1, 104, 0}, +{ 4, s_2_1795, 1794, 26, 0}, +{ 5, s_2_1796, 1795, 128, 0}, +{ 4, s_2_1797, 1794, 30, 0}, +{ 4, s_2_1798, 1794, 31, 0}, +{ 5, s_2_1799, 1798, 100, 0}, +{ 5, s_2_1800, 1798, 105, 0}, +{ 4, s_2_1801, 1794, 113, 0}, +{ 6, s_2_1802, 1801, 106, 0}, +{ 6, s_2_1803, 1801, 107, 0}, +{ 6, s_2_1804, 1801, 108, 0}, +{ 5, s_2_1805, 1794, 97, 0}, +{ 5, s_2_1806, 1794, 96, 0}, +{ 5, s_2_1807, 1794, 98, 0}, +{ 5, s_2_1808, 1794, 99, 0}, +{ 5, s_2_1809, 1794, 28, 0}, +{ 5, s_2_1810, 1794, 27, 0}, +{ 6, s_2_1811, 1810, 102, 0}, +{ 5, s_2_1812, 1794, 29, 0}, +{ 3, s_2_1813, -1, 116, 0}, +{ 4, s_2_1814, 1813, 32, 0}, +{ 4, s_2_1815, 1813, 33, 0}, +{ 4, s_2_1816, 1813, 34, 0}, +{ 4, s_2_1817, 1813, 40, 0}, +{ 4, s_2_1818, 1813, 39, 0}, +{ 6, s_2_1819, 1813, 84, 0}, +{ 6, s_2_1820, 1813, 85, 0}, +{ 6, s_2_1821, 1813, 122, 0}, +{ 7, s_2_1822, 1813, 86, 0}, +{ 4, s_2_1823, 1813, 95, 0}, +{ 4, s_2_1824, 1813, 24, 0}, +{ 5, s_2_1825, 1824, 83, 0}, +{ 4, s_2_1826, 1813, 37, 0}, +{ 4, s_2_1827, 1813, 13, 0}, +{ 6, s_2_1828, 1827, 9, 0}, +{ 6, s_2_1829, 1827, 6, 0}, +{ 6, s_2_1830, 1827, 7, 0}, +{ 6, s_2_1831, 1827, 8, 0}, +{ 6, s_2_1832, 1827, 5, 0}, +{ 4, s_2_1833, 1813, 41, 0}, +{ 4, s_2_1834, 1813, 42, 0}, +{ 6, s_2_1835, 1834, 21, 0}, +{ 4, s_2_1836, 1813, 23, 0}, +{ 5, s_2_1837, 1836, 123, 0}, +{ 4, s_2_1838, 1813, 44, 0}, +{ 5, s_2_1839, 1838, 120, 0}, +{ 5, s_2_1840, 1838, 22, 0}, +{ 5, s_2_1841, 1813, 77, 0}, +{ 5, s_2_1842, 1813, 78, 0}, +{ 5, s_2_1843, 1813, 79, 0}, +{ 5, s_2_1844, 1813, 80, 0}, +{ 4, s_2_1845, 1813, 45, 0}, +{ 6, s_2_1846, 1813, 91, 0}, +{ 5, s_2_1847, 1813, 38, 0}, +{ 4, s_2_1848, -1, 84, 0}, +{ 4, s_2_1849, -1, 85, 0}, +{ 4, s_2_1850, -1, 122, 0}, +{ 5, s_2_1851, -1, 86, 0}, +{ 3, s_2_1852, -1, 25, 0}, +{ 6, s_2_1853, 1852, 121, 0}, +{ 5, s_2_1854, 1852, 100, 0}, +{ 7, s_2_1855, 1852, 117, 0}, +{ 2, s_2_1856, -1, 95, 0}, +{ 3, s_2_1857, 1856, 1, 0}, +{ 4, s_2_1858, 1856, 2, 0}, +{ 3, s_2_1859, -1, 104, 0}, +{ 5, s_2_1860, 1859, 47, 0}, +{ 4, s_2_1861, 1859, 46, 0}, +{ 3, s_2_1862, -1, 83, 0}, +{ 3, s_2_1863, -1, 116, 0}, +{ 5, s_2_1864, 1863, 48, 0}, +{ 3, s_2_1865, -1, 50, 0}, +{ 4, s_2_1866, -1, 52, 0}, +{ 5, s_2_1867, -1, 124, 0}, +{ 5, s_2_1868, -1, 125, 0}, +{ 5, s_2_1869, -1, 126, 0}, +{ 8, s_2_1870, -1, 84, 0}, +{ 8, s_2_1871, -1, 85, 0}, +{ 8, s_2_1872, -1, 122, 0}, +{ 9, s_2_1873, -1, 86, 0}, +{ 6, s_2_1874, -1, 95, 0}, +{ 7, s_2_1875, 1874, 1, 0}, +{ 8, s_2_1876, 1874, 2, 0}, +{ 7, s_2_1877, -1, 83, 0}, +{ 6, s_2_1878, -1, 13, 0}, +{ 7, s_2_1879, -1, 123, 0}, +{ 7, s_2_1880, -1, 120, 0}, +{ 9, s_2_1881, -1, 92, 0}, +{ 9, s_2_1882, -1, 93, 0}, +{ 8, s_2_1883, -1, 94, 0}, +{ 7, s_2_1884, -1, 77, 0}, +{ 7, s_2_1885, -1, 78, 0}, +{ 7, s_2_1886, -1, 79, 0}, +{ 7, s_2_1887, -1, 80, 0}, +{ 8, s_2_1888, -1, 91, 0}, +{ 6, s_2_1889, -1, 84, 0}, +{ 6, s_2_1890, -1, 85, 0}, +{ 6, s_2_1891, -1, 122, 0}, +{ 7, s_2_1892, -1, 86, 0}, +{ 4, s_2_1893, -1, 95, 0}, +{ 5, s_2_1894, 1893, 1, 0}, +{ 6, s_2_1895, 1893, 2, 0}, +{ 4, s_2_1896, -1, 51, 0}, +{ 5, s_2_1897, 1896, 83, 0}, +{ 4, s_2_1898, -1, 13, 0}, +{ 5, s_2_1899, 1898, 10, 0}, +{ 5, s_2_1900, 1898, 87, 0}, +{ 5, s_2_1901, 1898, 159, 0}, +{ 6, s_2_1902, 1898, 88, 0}, +{ 5, s_2_1903, -1, 123, 0}, +{ 5, s_2_1904, -1, 120, 0}, +{ 7, s_2_1905, -1, 92, 0}, +{ 7, s_2_1906, -1, 93, 0}, +{ 6, s_2_1907, -1, 94, 0}, +{ 5, s_2_1908, -1, 77, 0}, +{ 5, s_2_1909, -1, 78, 0}, +{ 5, s_2_1910, -1, 79, 0}, +{ 5, s_2_1911, -1, 80, 0}, +{ 6, s_2_1912, -1, 14, 0}, +{ 6, s_2_1913, -1, 15, 0}, +{ 6, s_2_1914, -1, 16, 0}, +{ 6, s_2_1915, -1, 91, 0}, +{ 5, s_2_1916, -1, 124, 0}, +{ 5, s_2_1917, -1, 125, 0}, +{ 5, s_2_1918, -1, 126, 0}, +{ 6, s_2_1919, -1, 84, 0}, +{ 6, s_2_1920, -1, 85, 0}, +{ 6, s_2_1921, -1, 122, 0}, +{ 7, s_2_1922, -1, 86, 0}, +{ 4, s_2_1923, -1, 95, 0}, +{ 5, s_2_1924, 1923, 1, 0}, +{ 6, s_2_1925, 1923, 2, 0}, +{ 5, s_2_1926, -1, 83, 0}, +{ 4, s_2_1927, -1, 13, 0}, +{ 6, s_2_1928, 1927, 137, 0}, +{ 7, s_2_1929, 1927, 89, 0}, +{ 5, s_2_1930, -1, 123, 0}, +{ 5, s_2_1931, -1, 120, 0}, +{ 7, s_2_1932, -1, 92, 0}, +{ 7, s_2_1933, -1, 93, 0}, +{ 6, s_2_1934, -1, 94, 0}, +{ 5, s_2_1935, -1, 77, 0}, +{ 5, s_2_1936, -1, 78, 0}, +{ 5, s_2_1937, -1, 79, 0}, +{ 5, s_2_1938, -1, 80, 0}, +{ 6, s_2_1939, -1, 14, 0}, +{ 6, s_2_1940, -1, 15, 0}, +{ 6, s_2_1941, -1, 16, 0}, +{ 6, s_2_1942, -1, 91, 0}, +{ 2, s_2_1943, -1, 13, 0}, +{ 3, s_2_1944, 1943, 10, 0}, +{ 6, s_2_1945, 1944, 110, 0}, +{ 6, s_2_1946, 1944, 111, 0}, +{ 6, s_2_1947, 1944, 112, 0}, +{ 3, s_2_1948, 1943, 11, 0}, +{ 4, s_2_1949, 1948, 137, 0}, +{ 5, s_2_1950, 1948, 10, 0}, +{ 5, s_2_1951, 1948, 89, 0}, +{ 3, s_2_1952, 1943, 12, 0}, +{ 3, s_2_1953, -1, 53, 0}, +{ 3, s_2_1954, -1, 54, 0}, +{ 3, s_2_1955, -1, 55, 0}, +{ 3, s_2_1956, -1, 56, 0}, +{ 4, s_2_1957, -1, 135, 0}, +{ 4, s_2_1958, -1, 131, 0}, +{ 4, s_2_1959, -1, 129, 0}, +{ 4, s_2_1960, -1, 133, 0}, +{ 4, s_2_1961, -1, 132, 0}, +{ 4, s_2_1962, -1, 130, 0}, +{ 4, s_2_1963, -1, 134, 0}, +{ 3, s_2_1964, -1, 57, 0}, +{ 3, s_2_1965, -1, 58, 0}, +{ 3, s_2_1966, -1, 123, 0}, +{ 3, s_2_1967, -1, 120, 0}, +{ 5, s_2_1968, 1967, 68, 0}, +{ 4, s_2_1969, 1967, 69, 0}, +{ 3, s_2_1970, -1, 70, 0}, +{ 5, s_2_1971, -1, 92, 0}, +{ 5, s_2_1972, -1, 93, 0}, +{ 4, s_2_1973, -1, 94, 0}, +{ 4, s_2_1974, -1, 71, 0}, +{ 4, s_2_1975, -1, 72, 0}, +{ 4, s_2_1976, -1, 73, 0}, +{ 4, s_2_1977, -1, 74, 0}, +{ 5, s_2_1978, -1, 75, 0}, +{ 3, s_2_1979, -1, 77, 0}, +{ 3, s_2_1980, -1, 78, 0}, +{ 3, s_2_1981, -1, 79, 0}, +{ 3, s_2_1982, -1, 80, 0}, +{ 4, s_2_1983, 1982, 82, 0}, +{ 4, s_2_1984, 1982, 81, 0}, +{ 4, s_2_1985, -1, 3, 0}, +{ 5, s_2_1986, -1, 4, 0}, +{ 5, s_2_1987, -1, 63, 0}, +{ 5, s_2_1988, -1, 64, 0}, +{ 5, s_2_1989, -1, 61, 0}, +{ 5, s_2_1990, -1, 62, 0}, +{ 5, s_2_1991, -1, 60, 0}, +{ 5, s_2_1992, -1, 59, 0}, +{ 5, s_2_1993, -1, 65, 0}, +{ 4, s_2_1994, -1, 66, 0}, +{ 4, s_2_1995, -1, 67, 0}, +{ 4, s_2_1996, -1, 91, 0}, +{ 4, s_2_1997, -1, 97, 0}, +{ 4, s_2_1998, -1, 96, 0}, +{ 4, s_2_1999, -1, 98, 0}, +{ 4, s_2_2000, -1, 99, 0}, +{ 3, s_2_2001, -1, 95, 0}, +{ 3, s_2_2002, -1, 104, 0}, +{ 5, s_2_2003, 2002, 100, 0}, +{ 5, s_2_2004, 2002, 105, 0}, +{ 4, s_2_2005, 2002, 113, 0}, +{ 5, s_2_2006, 2002, 97, 0}, +{ 5, s_2_2007, 2002, 96, 0}, +{ 5, s_2_2008, 2002, 98, 0}, +{ 5, s_2_2009, 2002, 99, 0}, +{ 6, s_2_2010, 2002, 102, 0}, +{ 3, s_2_2011, -1, 119, 0}, +{ 8, s_2_2012, 2011, 110, 0}, +{ 8, s_2_2013, 2011, 111, 0}, +{ 8, s_2_2014, 2011, 112, 0}, +{ 8, s_2_2015, 2011, 106, 0}, +{ 8, s_2_2016, 2011, 107, 0}, +{ 8, s_2_2017, 2011, 108, 0}, +{ 5, s_2_2018, 2011, 116, 0}, +{ 6, s_2_2019, 2011, 114, 0}, +{ 5, s_2_2020, 2011, 25, 0}, +{ 7, s_2_2021, 2020, 100, 0}, +{ 9, s_2_2022, 2020, 117, 0}, +{ 4, s_2_2023, 2011, 13, 0}, +{ 8, s_2_2024, 2023, 110, 0}, +{ 8, s_2_2025, 2023, 111, 0}, +{ 8, s_2_2026, 2023, 112, 0}, +{ 5, s_2_2027, 2011, 70, 0}, +{ 6, s_2_2028, 2011, 115, 0}, +{ 3, s_2_2029, -1, 116, 0}, +{ 4, s_2_2030, 2029, 103, 0}, +{ 6, s_2_2031, 2029, 118, 0}, +{ 6, s_2_2032, 2029, 101, 0}, +{ 7, s_2_2033, 2029, 117, 0}, +{ 7, s_2_2034, 2029, 90, 0} +}; + +static const symbol s_3_0[1] = { 'a' }; +static const symbol s_3_1[3] = { 'o', 'g', 'a' }; +static const symbol s_3_2[3] = { 'a', 'm', 'a' }; +static const symbol s_3_3[3] = { 'i', 'm', 'a' }; +static const symbol s_3_4[3] = { 'e', 'n', 'a' }; +static const symbol s_3_5[1] = { 'e' }; +static const symbol s_3_6[2] = { 'o', 'g' }; +static const symbol s_3_7[4] = { 'a', 'n', 'o', 'g' }; +static const symbol s_3_8[4] = { 'e', 'n', 'o', 'g' }; +static const symbol s_3_9[4] = { 'a', 'n', 'i', 'h' }; +static const symbol s_3_10[4] = { 'e', 'n', 'i', 'h' }; +static const symbol s_3_11[1] = { 'i' }; +static const symbol s_3_12[3] = { 'a', 'n', 'i' }; +static const symbol s_3_13[3] = { 'e', 'n', 'i' }; +static const symbol s_3_14[4] = { 'a', 'n', 'o', 'j' }; +static const symbol s_3_15[4] = { 'e', 'n', 'o', 'j' }; +static const symbol s_3_16[4] = { 'a', 'n', 'i', 'm' }; +static const symbol s_3_17[4] = { 'e', 'n', 'i', 'm' }; +static const symbol s_3_18[2] = { 'o', 'm' }; +static const symbol s_3_19[4] = { 'e', 'n', 'o', 'm' }; +static const symbol s_3_20[1] = { 'o' }; +static const symbol s_3_21[3] = { 'a', 'n', 'o' }; +static const symbol s_3_22[3] = { 'e', 'n', 'o' }; +static const symbol s_3_23[3] = { 'o', 's', 't' }; +static const symbol s_3_24[1] = { 'u' }; +static const symbol s_3_25[3] = { 'e', 'n', 'u' }; + +static const struct among a_3[26] = +{ +{ 1, s_3_0, -1, 1, 0}, +{ 3, s_3_1, 0, 1, 0}, +{ 3, s_3_2, 0, 1, 0}, +{ 3, s_3_3, 0, 1, 0}, +{ 3, s_3_4, 0, 1, 0}, +{ 1, s_3_5, -1, 1, 0}, +{ 2, s_3_6, -1, 1, 0}, +{ 4, s_3_7, 6, 1, 0}, +{ 4, s_3_8, 6, 1, 0}, +{ 4, s_3_9, -1, 1, 0}, +{ 4, s_3_10, -1, 1, 0}, +{ 1, s_3_11, -1, 1, 0}, +{ 3, s_3_12, 11, 1, 0}, +{ 3, s_3_13, 11, 1, 0}, +{ 4, s_3_14, -1, 1, 0}, +{ 4, s_3_15, -1, 1, 0}, +{ 4, s_3_16, -1, 1, 0}, +{ 4, s_3_17, -1, 1, 0}, +{ 2, s_3_18, -1, 1, 0}, +{ 4, s_3_19, 18, 1, 0}, +{ 1, s_3_20, -1, 1, 0}, +{ 3, s_3_21, 20, 1, 0}, +{ 3, s_3_22, 20, 1, 0}, +{ 3, s_3_23, -1, 1, 0}, +{ 1, s_3_24, -1, 1, 0}, +{ 3, s_3_25, 24, 1, 0} +}; + +static const unsigned char g_v[] = { 17, 65, 16 }; + +static const unsigned char g_sa[] = { 65, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 128 }; + +static const unsigned char g_ca[] = { 119, 95, 23, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 16 }; + +static const unsigned char g_rg[] = { 1 }; + +static const symbol s_0[] = { 'a' }; +static const symbol s_1[] = { 'b' }; +static const symbol s_2[] = { 'v' }; +static const symbol s_3[] = { 'g' }; +static const symbol s_4[] = { 'd' }; +static const symbol s_5[] = { 0xC4, 0x91 }; +static const symbol s_6[] = { 'e' }; +static const symbol s_7[] = { 0xC5, 0xBE }; +static const symbol s_8[] = { 'z' }; +static const symbol s_9[] = { 'i' }; +static const symbol s_10[] = { 'j' }; +static const symbol s_11[] = { 'k' }; +static const symbol s_12[] = { 'l' }; +static const symbol s_13[] = { 'l', 'j' }; +static const symbol s_14[] = { 'm' }; +static const symbol s_15[] = { 'n' }; +static const symbol s_16[] = { 'n', 'j' }; +static const symbol s_17[] = { 'o' }; +static const symbol s_18[] = { 'p' }; +static const symbol s_19[] = { 'r' }; +static const symbol s_20[] = { 's' }; +static const symbol s_21[] = { 't' }; +static const symbol s_22[] = { 0xC4, 0x87 }; +static const symbol s_23[] = { 'u' }; +static const symbol s_24[] = { 'f' }; +static const symbol s_25[] = { 'h' }; +static const symbol s_26[] = { 'c' }; +static const symbol s_27[] = { 0xC4, 0x8D }; +static const symbol s_28[] = { 'd', 0xC5, 0xBE }; +static const symbol s_29[] = { 0xC5, 0xA1 }; +static const symbol s_30[] = { 'i', 'j', 'e' }; +static const symbol s_31[] = { 'e' }; +static const symbol s_32[] = { 'j', 'e' }; +static const symbol s_33[] = { 'e' }; +static const symbol s_34[] = { 'd', 'j' }; +static const symbol s_35[] = { 0xC4, 0x91 }; +static const symbol s_36[] = { 'l', 'o', 'g', 'a' }; +static const symbol s_37[] = { 'p', 'e', 'h' }; +static const symbol s_38[] = { 'v', 'o', 'j', 'k', 'a' }; +static const symbol s_39[] = { 'b', 'o', 'j', 'k', 'a' }; +static const symbol s_40[] = { 'j', 'a', 'k' }; +static const symbol s_41[] = { 0xC4, 0x8D, 'a', 'j', 'n', 'i' }; +static const symbol s_42[] = { 'c', 'a', 'j', 'n', 'i' }; +static const symbol s_43[] = { 'e', 'r', 'n', 'i' }; +static const symbol s_44[] = { 'l', 'a', 'r', 'n', 'i' }; +static const symbol s_45[] = { 'e', 's', 'n', 'i' }; +static const symbol s_46[] = { 'a', 'n', 'j', 'c', 'a' }; +static const symbol s_47[] = { 'a', 'j', 'c', 'a' }; +static const symbol s_48[] = { 'l', 'j', 'c', 'a' }; +static const symbol s_49[] = { 'e', 'j', 'c', 'a' }; +static const symbol s_50[] = { 'o', 'j', 'c', 'a' }; +static const symbol s_51[] = { 'a', 'j', 'k', 'a' }; +static const symbol s_52[] = { 'o', 'j', 'k', 'a' }; +static const symbol s_53[] = { 0xC5, 0xA1, 'c', 'a' }; +static const symbol s_54[] = { 'i', 'n', 'g' }; +static const symbol s_55[] = { 't', 'v', 'e', 'n', 'i', 'k' }; +static const symbol s_56[] = { 't', 'e', 't', 'i', 'k', 'a' }; +static const symbol s_57[] = { 'n', 's', 't', 'v', 'a' }; +static const symbol s_58[] = { 'n', 'i', 'k' }; +static const symbol s_59[] = { 't', 'i', 'k' }; +static const symbol s_60[] = { 'z', 'i', 'k' }; +static const symbol s_61[] = { 's', 'n', 'i', 'k' }; +static const symbol s_62[] = { 'k', 'u', 's', 'i' }; +static const symbol s_63[] = { 'k', 'u', 's', 'n', 'i' }; +static const symbol s_64[] = { 'k', 'u', 's', 't', 'v', 'a' }; +static const symbol s_65[] = { 'd', 'u', 0xC5, 0xA1, 'n', 'i' }; +static const symbol s_66[] = { 'd', 'u', 's', 'n', 'i' }; +static const symbol s_67[] = { 'a', 'n', 't', 'n', 'i' }; +static const symbol s_68[] = { 'b', 'i', 'l', 'n', 'i' }; +static const symbol s_69[] = { 't', 'i', 'l', 'n', 'i' }; +static const symbol s_70[] = { 'a', 'v', 'i', 'l', 'n', 'i' }; +static const symbol s_71[] = { 's', 'i', 'l', 'n', 'i' }; +static const symbol s_72[] = { 'g', 'i', 'l', 'n', 'i' }; +static const symbol s_73[] = { 'r', 'i', 'l', 'n', 'i' }; +static const symbol s_74[] = { 'n', 'i', 'l', 'n', 'i' }; +static const symbol s_75[] = { 'a', 'l', 'n', 'i' }; +static const symbol s_76[] = { 'o', 'z', 'n', 'i' }; +static const symbol s_77[] = { 'r', 'a', 'v', 'i' }; +static const symbol s_78[] = { 's', 't', 'a', 'v', 'n', 'i' }; +static const symbol s_79[] = { 'p', 'r', 'a', 'v', 'n', 'i' }; +static const symbol s_80[] = { 't', 'i', 'v', 'n', 'i' }; +static const symbol s_81[] = { 's', 'i', 'v', 'n', 'i' }; +static const symbol s_82[] = { 'a', 't', 'n', 'i' }; +static const symbol s_83[] = { 'e', 'n', 't', 'a' }; +static const symbol s_84[] = { 't', 'e', 't', 'n', 'i' }; +static const symbol s_85[] = { 'p', 'l', 'e', 't', 'n', 'i' }; +static const symbol s_86[] = { 0xC5, 0xA1, 'a', 'v', 'i' }; +static const symbol s_87[] = { 's', 'a', 'v', 'i' }; +static const symbol s_88[] = { 'a', 'n', 't', 'a' }; +static const symbol s_89[] = { 'a', 0xC4, 0x8D, 'k', 'a' }; +static const symbol s_90[] = { 'a', 'c', 'k', 'a' }; +static const symbol s_91[] = { 'u', 0xC5, 0xA1, 'k', 'a' }; +static const symbol s_92[] = { 'u', 's', 'k', 'a' }; +static const symbol s_93[] = { 'a', 't', 'k', 'a' }; +static const symbol s_94[] = { 'e', 't', 'k', 'a' }; +static const symbol s_95[] = { 'i', 't', 'k', 'a' }; +static const symbol s_96[] = { 'o', 't', 'k', 'a' }; +static const symbol s_97[] = { 'u', 't', 'k', 'a' }; +static const symbol s_98[] = { 'e', 's', 'k', 'n', 'a' }; +static const symbol s_99[] = { 't', 'i', 0xC4, 0x8D, 'n', 'i' }; +static const symbol s_100[] = { 't', 'i', 'c', 'n', 'i' }; +static const symbol s_101[] = { 'o', 'j', 's', 'k', 'a' }; +static const symbol s_102[] = { 'e', 's', 'm', 'a' }; +static const symbol s_103[] = { 'm', 'e', 't', 'r', 'a' }; +static const symbol s_104[] = { 'c', 'e', 'n', 't', 'r', 'a' }; +static const symbol s_105[] = { 'i', 's', 't', 'r', 'a' }; +static const symbol s_106[] = { 'o', 's', 't', 'i' }; +static const symbol s_107[] = { 'o', 's', 't', 'i' }; +static const symbol s_108[] = { 'd', 'b', 'a' }; +static const symbol s_109[] = { 0xC4, 0x8D, 'k', 'a' }; +static const symbol s_110[] = { 'm', 'c', 'a' }; +static const symbol s_111[] = { 'n', 'c', 'a' }; +static const symbol s_112[] = { 'v', 'o', 'l', 'j', 'n', 'i' }; +static const symbol s_113[] = { 'a', 'n', 'k', 'i' }; +static const symbol s_114[] = { 'v', 'c', 'a' }; +static const symbol s_115[] = { 's', 'c', 'a' }; +static const symbol s_116[] = { 'r', 'c', 'a' }; +static const symbol s_117[] = { 'a', 'l', 'c', 'a' }; +static const symbol s_118[] = { 'e', 'l', 'c', 'a' }; +static const symbol s_119[] = { 'o', 'l', 'c', 'a' }; +static const symbol s_120[] = { 'n', 'j', 'c', 'a' }; +static const symbol s_121[] = { 'e', 'k', 't', 'a' }; +static const symbol s_122[] = { 'i', 'z', 'm', 'a' }; +static const symbol s_123[] = { 'j', 'e', 'b', 'i' }; +static const symbol s_124[] = { 'b', 'a', 'c', 'i' }; +static const symbol s_125[] = { 'a', 0xC5, 0xA1, 'n', 'i' }; +static const symbol s_126[] = { 'a', 's', 'n', 'i' }; +static const symbol s_127[] = { 's', 'k' }; +static const symbol s_128[] = { 0xC5, 0xA1, 'k' }; +static const symbol s_129[] = { 's', 't', 'v' }; +static const symbol s_130[] = { 0xC5, 0xA1, 't', 'v' }; +static const symbol s_131[] = { 't', 'a', 'n', 'i', 'j' }; +static const symbol s_132[] = { 'm', 'a', 'n', 'i', 'j' }; +static const symbol s_133[] = { 'p', 'a', 'n', 'i', 'j' }; +static const symbol s_134[] = { 'r', 'a', 'n', 'i', 'j' }; +static const symbol s_135[] = { 'g', 'a', 'n', 'i', 'j' }; +static const symbol s_136[] = { 'a', 'n' }; +static const symbol s_137[] = { 'i', 'n' }; +static const symbol s_138[] = { 'o', 'n' }; +static const symbol s_139[] = { 'n' }; +static const symbol s_140[] = { 'a', 0xC4, 0x87 }; +static const symbol s_141[] = { 'e', 0xC4, 0x87 }; +static const symbol s_142[] = { 'u', 0xC4, 0x87 }; +static const symbol s_143[] = { 'u', 'g', 'o', 'v' }; +static const symbol s_144[] = { 'u', 'g' }; +static const symbol s_145[] = { 'l', 'o', 'g' }; +static const symbol s_146[] = { 'g' }; +static const symbol s_147[] = { 'r', 'a', 'r', 'i' }; +static const symbol s_148[] = { 'o', 't', 'i' }; +static const symbol s_149[] = { 's', 'i' }; +static const symbol s_150[] = { 'l', 'i' }; +static const symbol s_151[] = { 'u', 'j' }; +static const symbol s_152[] = { 'c', 'a', 'j' }; +static const symbol s_153[] = { 0xC4, 0x8D, 'a', 'j' }; +static const symbol s_154[] = { 0xC4, 0x87, 'a', 'j' }; +static const symbol s_155[] = { 0xC4, 0x91, 'a', 'j' }; +static const symbol s_156[] = { 'l', 'a', 'j' }; +static const symbol s_157[] = { 'r', 'a', 'j' }; +static const symbol s_158[] = { 'b', 'i', 'j' }; +static const symbol s_159[] = { 'c', 'i', 'j' }; +static const symbol s_160[] = { 'd', 'i', 'j' }; +static const symbol s_161[] = { 'l', 'i', 'j' }; +static const symbol s_162[] = { 'n', 'i', 'j' }; +static const symbol s_163[] = { 'm', 'i', 'j' }; +static const symbol s_164[] = { 0xC5, 0xBE, 'i', 'j' }; +static const symbol s_165[] = { 'g', 'i', 'j' }; +static const symbol s_166[] = { 'f', 'i', 'j' }; +static const symbol s_167[] = { 'p', 'i', 'j' }; +static const symbol s_168[] = { 'r', 'i', 'j' }; +static const symbol s_169[] = { 's', 'i', 'j' }; +static const symbol s_170[] = { 't', 'i', 'j' }; +static const symbol s_171[] = { 'z', 'i', 'j' }; +static const symbol s_172[] = { 'n', 'a', 'l' }; +static const symbol s_173[] = { 'i', 'j', 'a', 'l' }; +static const symbol s_174[] = { 'o', 'z', 'i', 'l' }; +static const symbol s_175[] = { 'o', 'l', 'o', 'v' }; +static const symbol s_176[] = { 'o', 'l' }; +static const symbol s_177[] = { 'l', 'e', 'm' }; +static const symbol s_178[] = { 'r', 'a', 'm' }; +static const symbol s_179[] = { 'a', 'r' }; +static const symbol s_180[] = { 'd', 'r' }; +static const symbol s_181[] = { 'e', 'r' }; +static const symbol s_182[] = { 'o', 'r' }; +static const symbol s_183[] = { 'e', 's' }; +static const symbol s_184[] = { 'i', 's' }; +static const symbol s_185[] = { 't', 'a', 0xC5, 0xA1 }; +static const symbol s_186[] = { 'n', 'a', 0xC5, 0xA1 }; +static const symbol s_187[] = { 'j', 'a', 0xC5, 0xA1 }; +static const symbol s_188[] = { 'k', 'a', 0xC5, 0xA1 }; +static const symbol s_189[] = { 'b', 'a', 0xC5, 0xA1 }; +static const symbol s_190[] = { 'g', 'a', 0xC5, 0xA1 }; +static const symbol s_191[] = { 'v', 'a', 0xC5, 0xA1 }; +static const symbol s_192[] = { 'e', 0xC5, 0xA1 }; +static const symbol s_193[] = { 'i', 0xC5, 0xA1 }; +static const symbol s_194[] = { 'i', 'k', 'a', 't' }; +static const symbol s_195[] = { 'l', 'a', 't' }; +static const symbol s_196[] = { 'e', 't' }; +static const symbol s_197[] = { 'e', 's', 't' }; +static const symbol s_198[] = { 'i', 's', 't' }; +static const symbol s_199[] = { 'k', 's', 't' }; +static const symbol s_200[] = { 'o', 's', 't' }; +static const symbol s_201[] = { 'i', 0xC5, 0xA1, 't' }; +static const symbol s_202[] = { 'o', 'v', 'a' }; +static const symbol s_203[] = { 'a', 'v' }; +static const symbol s_204[] = { 'e', 'v' }; +static const symbol s_205[] = { 'i', 'v' }; +static const symbol s_206[] = { 'o', 'v' }; +static const symbol s_207[] = { 'm', 'o', 'v' }; +static const symbol s_208[] = { 'l', 'o', 'v' }; +static const symbol s_209[] = { 'e', 'l' }; +static const symbol s_210[] = { 'a', 'n', 'j' }; +static const symbol s_211[] = { 'e', 'n', 'j' }; +static const symbol s_212[] = { 0xC5, 0xA1, 'n', 'j' }; +static const symbol s_213[] = { 'e', 'n' }; +static const symbol s_214[] = { 0xC5, 0xA1, 'n' }; +static const symbol s_215[] = { 0xC4, 0x8D, 'i', 'n' }; +static const symbol s_216[] = { 'r', 'o', 0xC5, 0xA1, 'i' }; +static const symbol s_217[] = { 'o', 0xC5, 0xA1 }; +static const symbol s_218[] = { 'e', 'v', 'i', 't' }; +static const symbol s_219[] = { 'o', 'v', 'i', 't' }; +static const symbol s_220[] = { 'a', 's', 't' }; +static const symbol s_221[] = { 'k' }; +static const symbol s_222[] = { 'e', 'v', 'a' }; +static const symbol s_223[] = { 'a', 'v', 'a' }; +static const symbol s_224[] = { 'i', 'v', 'a' }; +static const symbol s_225[] = { 'u', 'v', 'a' }; +static const symbol s_226[] = { 'i', 'r' }; +static const symbol s_227[] = { 'a', 0xC4, 0x8D }; +static const symbol s_228[] = { 'a', 0xC4, 0x8D, 'a' }; +static const symbol s_229[] = { 'n', 'i' }; +static const symbol s_230[] = { 'a' }; +static const symbol s_231[] = { 'u', 'r' }; +static const symbol s_232[] = { 'a', 's', 't', 'a', 'j' }; +static const symbol s_233[] = { 'i', 's', 't', 'a', 'j' }; +static const symbol s_234[] = { 'o', 's', 't', 'a', 'j' }; +static const symbol s_235[] = { 'a', 'j' }; +static const symbol s_236[] = { 'a', 's', 't', 'a' }; +static const symbol s_237[] = { 'i', 's', 't', 'a' }; +static const symbol s_238[] = { 'o', 's', 't', 'a' }; +static const symbol s_239[] = { 't', 'a' }; +static const symbol s_240[] = { 'i', 'n', 'j' }; +static const symbol s_241[] = { 'a', 's' }; +static const symbol s_242[] = { 'i' }; +static const symbol s_243[] = { 'l', 'u', 0xC4, 0x8D }; +static const symbol s_244[] = { 'j', 'e', 't', 'i' }; +static const symbol s_245[] = { 'e' }; +static const symbol s_246[] = { 'a', 't' }; +static const symbol s_247[] = { 'l', 'u', 'c' }; +static const symbol s_248[] = { 's', 'n', 'j' }; +static const symbol s_249[] = { 'o', 's' }; +static const symbol s_250[] = { 'a', 'c' }; +static const symbol s_251[] = { 'e', 'c' }; +static const symbol s_252[] = { 'u', 'c' }; +static const symbol s_253[] = { 'r', 'o', 's', 'i' }; +static const symbol s_254[] = { 'a', 'c', 'a' }; +static const symbol s_255[] = { 'j', 'a', 's' }; +static const symbol s_256[] = { 't', 'a', 's' }; +static const symbol s_257[] = { 'g', 'a', 's' }; +static const symbol s_258[] = { 'n', 'a', 's' }; +static const symbol s_259[] = { 'k', 'a', 's' }; +static const symbol s_260[] = { 'v', 'a', 's' }; +static const symbol s_261[] = { 'b', 'a', 's' }; +static const symbol s_262[] = { 'a', 's' }; +static const symbol s_263[] = { 'c', 'i', 'n' }; +static const symbol s_264[] = { 'a', 's', 't', 'a', 'j' }; +static const symbol s_265[] = { 'i', 's', 't', 'a', 'j' }; +static const symbol s_266[] = { 'o', 's', 't', 'a', 'j' }; +static const symbol s_267[] = { 'a', 's', 't', 'a' }; +static const symbol s_268[] = { 'i', 's', 't', 'a' }; +static const symbol s_269[] = { 'o', 's', 't', 'a' }; +static const symbol s_270[] = { 'a', 'v', 'a' }; +static const symbol s_271[] = { 'e', 'v', 'a' }; +static const symbol s_272[] = { 'i', 'v', 'a' }; +static const symbol s_273[] = { 'u', 'v', 'a' }; +static const symbol s_274[] = { 'o', 'v', 'a' }; +static const symbol s_275[] = { 'j', 'e', 't', 'i' }; +static const symbol s_276[] = { 'i', 'n', 'j' }; +static const symbol s_277[] = { 'i', 's', 't' }; +static const symbol s_278[] = { 'e', 's' }; +static const symbol s_279[] = { 'e', 't' }; +static const symbol s_280[] = { 'i', 's' }; +static const symbol s_281[] = { 'i', 'r' }; +static const symbol s_282[] = { 'u', 'r' }; +static const symbol s_283[] = { 'u', 'j' }; +static const symbol s_284[] = { 'n', 'i' }; +static const symbol s_285[] = { 's', 'n' }; +static const symbol s_286[] = { 't', 'a' }; +static const symbol s_287[] = { 'a' }; +static const symbol s_288[] = { 'i' }; +static const symbol s_289[] = { 'e' }; +static const symbol s_290[] = { 'n' }; + +static int r_cyr_to_lat(struct SN_env * z) { + int among_var; + { int c1 = z->c; + while(1) { + int c2 = z->c; + while(1) { + int c3 = z->c; + z->bra = z->c; + among_var = find_among(z, a_0, 30); + if (!(among_var)) goto lab2; + z->ket = z->c; + switch (among_var) { + case 1: + { int ret = slice_from_s(z, 1, s_0); + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 1, s_1); + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 1, s_2); + if (ret < 0) return ret; + } + break; + case 4: + { int ret = slice_from_s(z, 1, s_3); + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_from_s(z, 1, s_4); + if (ret < 0) return ret; + } + break; + case 6: + { int ret = slice_from_s(z, 2, s_5); + if (ret < 0) return ret; + } + break; + case 7: + { int ret = slice_from_s(z, 1, s_6); + if (ret < 0) return ret; + } + break; + case 8: + { int ret = slice_from_s(z, 2, s_7); + if (ret < 0) return ret; + } + break; + case 9: + { int ret = slice_from_s(z, 1, s_8); + if (ret < 0) return ret; + } + break; + case 10: + { int ret = slice_from_s(z, 1, s_9); + if (ret < 0) return ret; + } + break; + case 11: + { int ret = slice_from_s(z, 1, s_10); + if (ret < 0) return ret; + } + break; + case 12: + { int ret = slice_from_s(z, 1, s_11); + if (ret < 0) return ret; + } + break; + case 13: + { int ret = slice_from_s(z, 1, s_12); + if (ret < 0) return ret; + } + break; + case 14: + { int ret = slice_from_s(z, 2, s_13); + if (ret < 0) return ret; + } + break; + case 15: + { int ret = slice_from_s(z, 1, s_14); + if (ret < 0) return ret; + } + break; + case 16: + { int ret = slice_from_s(z, 1, s_15); + if (ret < 0) return ret; + } + break; + case 17: + { int ret = slice_from_s(z, 2, s_16); + if (ret < 0) return ret; + } + break; + case 18: + { int ret = slice_from_s(z, 1, s_17); + if (ret < 0) return ret; + } + break; + case 19: + { int ret = slice_from_s(z, 1, s_18); + if (ret < 0) return ret; + } + break; + case 20: + { int ret = slice_from_s(z, 1, s_19); + if (ret < 0) return ret; + } + break; + case 21: + { int ret = slice_from_s(z, 1, s_20); + if (ret < 0) return ret; + } + break; + case 22: + { int ret = slice_from_s(z, 1, s_21); + if (ret < 0) return ret; + } + break; + case 23: + { int ret = slice_from_s(z, 2, s_22); + if (ret < 0) return ret; + } + break; + case 24: + { int ret = slice_from_s(z, 1, s_23); + if (ret < 0) return ret; + } + break; + case 25: + { int ret = slice_from_s(z, 1, s_24); + if (ret < 0) return ret; + } + break; + case 26: + { int ret = slice_from_s(z, 1, s_25); + if (ret < 0) return ret; + } + break; + case 27: + { int ret = slice_from_s(z, 1, s_26); + if (ret < 0) return ret; + } + break; + case 28: + { int ret = slice_from_s(z, 2, s_27); + if (ret < 0) return ret; + } + break; + case 29: + { int ret = slice_from_s(z, 3, s_28); + if (ret < 0) return ret; + } + break; + case 30: + { int ret = slice_from_s(z, 2, s_29); + if (ret < 0) return ret; + } + break; + } + z->c = c3; + break; + lab2: + z->c = c3; + { int ret = skip_utf8(z->p, z->c, z->l, 1); + if (ret < 0) goto lab1; + z->c = ret; + } + } + continue; + lab1: + z->c = c2; + break; + } + z->c = c1; + } + return 1; +} + +static int r_prelude(struct SN_env * z) { + { int c1 = z->c; + while(1) { + int c2 = z->c; + while(1) { + int c3 = z->c; + if (in_grouping_U(z, g_ca, 98, 382, 0)) goto lab2; + z->bra = z->c; + if (!(eq_s(z, 3, s_30))) goto lab2; + z->ket = z->c; + if (in_grouping_U(z, g_ca, 98, 382, 0)) goto lab2; + { int ret = slice_from_s(z, 1, s_31); + if (ret < 0) return ret; + } + z->c = c3; + break; + lab2: + z->c = c3; + { int ret = skip_utf8(z->p, z->c, z->l, 1); + if (ret < 0) goto lab1; + z->c = ret; + } + } + continue; + lab1: + z->c = c2; + break; + } + z->c = c1; + } + { int c4 = z->c; + while(1) { + int c5 = z->c; + while(1) { + int c6 = z->c; + if (in_grouping_U(z, g_ca, 98, 382, 0)) goto lab5; + z->bra = z->c; + if (!(eq_s(z, 2, s_32))) goto lab5; + z->ket = z->c; + if (in_grouping_U(z, g_ca, 98, 382, 0)) goto lab5; + { int ret = slice_from_s(z, 1, s_33); + if (ret < 0) return ret; + } + z->c = c6; + break; + lab5: + z->c = c6; + { int ret = skip_utf8(z->p, z->c, z->l, 1); + if (ret < 0) goto lab4; + z->c = ret; + } + } + continue; + lab4: + z->c = c5; + break; + } + z->c = c4; + } + { int c7 = z->c; + while(1) { + int c8 = z->c; + while(1) { + int c9 = z->c; + z->bra = z->c; + if (!(eq_s(z, 2, s_34))) goto lab8; + z->ket = z->c; + { int ret = slice_from_s(z, 2, s_35); + if (ret < 0) return ret; + } + z->c = c9; + break; + lab8: + z->c = c9; + { int ret = skip_utf8(z->p, z->c, z->l, 1); + if (ret < 0) goto lab7; + z->c = ret; + } + } + continue; + lab7: + z->c = c8; + break; + } + z->c = c7; + } + return 1; +} + +static int r_mark_regions(struct SN_env * z) { + z->I[1] = 1; + { int c1 = z->c; + { + int ret = out_grouping_U(z, g_sa, 263, 382, 1); + if (ret < 0) goto lab0; + z->c += ret; + } + z->I[1] = 0; + lab0: + z->c = c1; + } + z->I[0] = z->l; + { int c2 = z->c; + { + int ret = out_grouping_U(z, g_v, 97, 117, 1); + if (ret < 0) goto lab1; + z->c += ret; + } + z->I[0] = z->c; + if (!(z->I[0] < 2)) goto lab1; + { + int ret = in_grouping_U(z, g_v, 97, 117, 1); + if (ret < 0) goto lab1; + z->c += ret; + } + z->I[0] = z->c; + lab1: + z->c = c2; + } + { int c3 = z->c; + while(1) { + if (z->c == z->l || z->p[z->c] != 'r') goto lab3; + z->c++; + break; + lab3: + { int ret = skip_utf8(z->p, z->c, z->l, 1); + if (ret < 0) goto lab2; + z->c = ret; + } + } + { int c4 = z->c; + if (!(z->c >= 2)) goto lab5; + goto lab4; + lab5: + z->c = c4; + { + int ret = in_grouping_U(z, g_rg, 114, 114, 1); + if (ret < 0) goto lab2; + z->c += ret; + } + } + lab4: + if (!((z->I[0] - z->c) > 1)) goto lab2; + z->I[0] = z->c; + lab2: + z->c = c3; + } + return 1; +} + +static int r_R1(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; + return 1; +} + +static int r_Step_1(struct SN_env * z) { + int among_var; + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3435050 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; + among_var = find_among_b(z, a_1, 130); + if (!(among_var)) return 0; + z->bra = z->c; + switch (among_var) { + case 1: + { int ret = slice_from_s(z, 4, s_36); + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 3, s_37); + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 5, s_38); + if (ret < 0) return ret; + } + break; + case 4: + { int ret = slice_from_s(z, 5, s_39); + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_from_s(z, 3, s_40); + if (ret < 0) return ret; + } + break; + case 6: + { int ret = slice_from_s(z, 6, s_41); + if (ret < 0) return ret; + } + break; + case 7: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 5, s_42); + if (ret < 0) return ret; + } + break; + case 8: + { int ret = slice_from_s(z, 4, s_43); + if (ret < 0) return ret; + } + break; + case 9: + { int ret = slice_from_s(z, 5, s_44); + if (ret < 0) return ret; + } + break; + case 10: + { int ret = slice_from_s(z, 4, s_45); + if (ret < 0) return ret; + } + break; + case 11: + { int ret = slice_from_s(z, 5, s_46); + if (ret < 0) return ret; + } + break; + case 12: + { int ret = slice_from_s(z, 4, s_47); + if (ret < 0) return ret; + } + break; + case 13: + { int ret = slice_from_s(z, 4, s_48); + if (ret < 0) return ret; + } + break; + case 14: + { int ret = slice_from_s(z, 4, s_49); + if (ret < 0) return ret; + } + break; + case 15: + { int ret = slice_from_s(z, 4, s_50); + if (ret < 0) return ret; + } + break; + case 16: + { int ret = slice_from_s(z, 4, s_51); + if (ret < 0) return ret; + } + break; + case 17: + { int ret = slice_from_s(z, 4, s_52); + if (ret < 0) return ret; + } + break; + case 18: + { int ret = slice_from_s(z, 4, s_53); + if (ret < 0) return ret; + } + break; + case 19: + { int ret = slice_from_s(z, 3, s_54); + if (ret < 0) return ret; + } + break; + case 20: + { int ret = slice_from_s(z, 6, s_55); + if (ret < 0) return ret; + } + break; + case 21: + { int ret = slice_from_s(z, 6, s_56); + if (ret < 0) return ret; + } + break; + case 22: + { int ret = slice_from_s(z, 5, s_57); + if (ret < 0) return ret; + } + break; + case 23: + { int ret = slice_from_s(z, 3, s_58); + if (ret < 0) return ret; + } + break; + case 24: + { int ret = slice_from_s(z, 3, s_59); + if (ret < 0) return ret; + } + break; + case 25: + { int ret = slice_from_s(z, 3, s_60); + if (ret < 0) return ret; + } + break; + case 26: + { int ret = slice_from_s(z, 4, s_61); + if (ret < 0) return ret; + } + break; + case 27: + { int ret = slice_from_s(z, 4, s_62); + if (ret < 0) return ret; + } + break; + case 28: + { int ret = slice_from_s(z, 5, s_63); + if (ret < 0) return ret; + } + break; + case 29: + { int ret = slice_from_s(z, 6, s_64); + if (ret < 0) return ret; + } + break; + case 30: + { int ret = slice_from_s(z, 6, s_65); + if (ret < 0) return ret; + } + break; + case 31: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 5, s_66); + if (ret < 0) return ret; + } + break; + case 32: + { int ret = slice_from_s(z, 5, s_67); + if (ret < 0) return ret; + } + break; + case 33: + { int ret = slice_from_s(z, 5, s_68); + if (ret < 0) return ret; + } + break; + case 34: + { int ret = slice_from_s(z, 5, s_69); + if (ret < 0) return ret; + } + break; + case 35: + { int ret = slice_from_s(z, 6, s_70); + if (ret < 0) return ret; + } + break; + case 36: + { int ret = slice_from_s(z, 5, s_71); + if (ret < 0) return ret; + } + break; + case 37: + { int ret = slice_from_s(z, 5, s_72); + if (ret < 0) return ret; + } + break; + case 38: + { int ret = slice_from_s(z, 5, s_73); + if (ret < 0) return ret; + } + break; + case 39: + { int ret = slice_from_s(z, 5, s_74); + if (ret < 0) return ret; + } + break; + case 40: + { int ret = slice_from_s(z, 4, s_75); + if (ret < 0) return ret; + } + break; + case 41: + { int ret = slice_from_s(z, 4, s_76); + if (ret < 0) return ret; + } + break; + case 42: + { int ret = slice_from_s(z, 4, s_77); + if (ret < 0) return ret; + } + break; + case 43: + { int ret = slice_from_s(z, 6, s_78); + if (ret < 0) return ret; + } + break; + case 44: + { int ret = slice_from_s(z, 6, s_79); + if (ret < 0) return ret; + } + break; + case 45: + { int ret = slice_from_s(z, 5, s_80); + if (ret < 0) return ret; + } + break; + case 46: + { int ret = slice_from_s(z, 5, s_81); + if (ret < 0) return ret; + } + break; + case 47: + { int ret = slice_from_s(z, 4, s_82); + if (ret < 0) return ret; + } + break; + case 48: + { int ret = slice_from_s(z, 4, s_83); + if (ret < 0) return ret; + } + break; + case 49: + { int ret = slice_from_s(z, 5, s_84); + if (ret < 0) return ret; + } + break; + case 50: + { int ret = slice_from_s(z, 6, s_85); + if (ret < 0) return ret; + } + break; + case 51: + { int ret = slice_from_s(z, 5, s_86); + if (ret < 0) return ret; + } + break; + case 52: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 4, s_87); + if (ret < 0) return ret; + } + break; + case 53: + { int ret = slice_from_s(z, 4, s_88); + if (ret < 0) return ret; + } + break; + case 54: + { int ret = slice_from_s(z, 5, s_89); + if (ret < 0) return ret; + } + break; + case 55: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 4, s_90); + if (ret < 0) return ret; + } + break; + case 56: + { int ret = slice_from_s(z, 5, s_91); + if (ret < 0) return ret; + } + break; + case 57: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 4, s_92); + if (ret < 0) return ret; + } + break; + case 58: + { int ret = slice_from_s(z, 4, s_93); + if (ret < 0) return ret; + } + break; + case 59: + { int ret = slice_from_s(z, 4, s_94); + if (ret < 0) return ret; + } + break; + case 60: + { int ret = slice_from_s(z, 4, s_95); + if (ret < 0) return ret; + } + break; + case 61: + { int ret = slice_from_s(z, 4, s_96); + if (ret < 0) return ret; + } + break; + case 62: + { int ret = slice_from_s(z, 4, s_97); + if (ret < 0) return ret; + } + break; + case 63: + { int ret = slice_from_s(z, 5, s_98); + if (ret < 0) return ret; + } + break; + case 64: + { int ret = slice_from_s(z, 6, s_99); + if (ret < 0) return ret; + } + break; + case 65: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 5, s_100); + if (ret < 0) return ret; + } + break; + case 66: + { int ret = slice_from_s(z, 5, s_101); + if (ret < 0) return ret; + } + break; + case 67: + { int ret = slice_from_s(z, 4, s_102); + if (ret < 0) return ret; + } + break; + case 68: + { int ret = slice_from_s(z, 5, s_103); + if (ret < 0) return ret; + } + break; + case 69: + { int ret = slice_from_s(z, 6, s_104); + if (ret < 0) return ret; + } + break; + case 70: + { int ret = slice_from_s(z, 5, s_105); + if (ret < 0) return ret; + } + break; + case 71: + { int ret = slice_from_s(z, 4, s_106); + if (ret < 0) return ret; + } + break; + case 72: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 4, s_107); + if (ret < 0) return ret; + } + break; + case 73: + { int ret = slice_from_s(z, 3, s_108); + if (ret < 0) return ret; + } + break; + case 74: + { int ret = slice_from_s(z, 4, s_109); + if (ret < 0) return ret; + } + break; + case 75: + { int ret = slice_from_s(z, 3, s_110); + if (ret < 0) return ret; + } + break; + case 76: + { int ret = slice_from_s(z, 3, s_111); + if (ret < 0) return ret; + } + break; + case 77: + { int ret = slice_from_s(z, 6, s_112); + if (ret < 0) return ret; + } + break; + case 78: + { int ret = slice_from_s(z, 4, s_113); + if (ret < 0) return ret; + } + break; + case 79: + { int ret = slice_from_s(z, 3, s_114); + if (ret < 0) return ret; + } + break; + case 80: + { int ret = slice_from_s(z, 3, s_115); + if (ret < 0) return ret; + } + break; + case 81: + { int ret = slice_from_s(z, 3, s_116); + if (ret < 0) return ret; + } + break; + case 82: + { int ret = slice_from_s(z, 4, s_117); + if (ret < 0) return ret; + } + break; + case 83: + { int ret = slice_from_s(z, 4, s_118); + if (ret < 0) return ret; + } + break; + case 84: + { int ret = slice_from_s(z, 4, s_119); + if (ret < 0) return ret; + } + break; + case 85: + { int ret = slice_from_s(z, 4, s_120); + if (ret < 0) return ret; + } + break; + case 86: + { int ret = slice_from_s(z, 4, s_121); + if (ret < 0) return ret; + } + break; + case 87: + { int ret = slice_from_s(z, 4, s_122); + if (ret < 0) return ret; + } + break; + case 88: + { int ret = slice_from_s(z, 4, s_123); + if (ret < 0) return ret; + } + break; + case 89: + { int ret = slice_from_s(z, 4, s_124); + if (ret < 0) return ret; + } + break; + case 90: + { int ret = slice_from_s(z, 5, s_125); + if (ret < 0) return ret; + } + break; + case 91: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 4, s_126); + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_Step_2(struct SN_env * z) { + int among_var; + z->ket = z->c; + among_var = find_among_b(z, a_2, 2035); + if (!(among_var)) return 0; + z->bra = z->c; + { int ret = r_R1(z); + if (ret <= 0) return ret; + } + switch (among_var) { + case 1: + { int ret = slice_from_s(z, 2, s_127); + if (ret < 0) return ret; + } + break; + case 2: + { int ret = slice_from_s(z, 3, s_128); + if (ret < 0) return ret; + } + break; + case 3: + { int ret = slice_from_s(z, 3, s_129); + if (ret < 0) return ret; + } + break; + case 4: + { int ret = slice_from_s(z, 4, s_130); + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_from_s(z, 5, s_131); + if (ret < 0) return ret; + } + break; + case 6: + { int ret = slice_from_s(z, 5, s_132); + if (ret < 0) return ret; + } + break; + case 7: + { int ret = slice_from_s(z, 5, s_133); + if (ret < 0) return ret; + } + break; + case 8: + { int ret = slice_from_s(z, 5, s_134); + if (ret < 0) return ret; + } + break; + case 9: + { int ret = slice_from_s(z, 5, s_135); + if (ret < 0) return ret; + } + break; + case 10: + { int ret = slice_from_s(z, 2, s_136); + if (ret < 0) return ret; + } + break; + case 11: + { int ret = slice_from_s(z, 2, s_137); + if (ret < 0) return ret; + } + break; + case 12: + { int ret = slice_from_s(z, 2, s_138); + if (ret < 0) return ret; + } + break; + case 13: + { int ret = slice_from_s(z, 1, s_139); + if (ret < 0) return ret; + } + break; + case 14: + { int ret = slice_from_s(z, 3, s_140); + if (ret < 0) return ret; + } + break; + case 15: + { int ret = slice_from_s(z, 3, s_141); + if (ret < 0) return ret; + } + break; + case 16: + { int ret = slice_from_s(z, 3, s_142); + if (ret < 0) return ret; + } + break; + case 17: + { int ret = slice_from_s(z, 4, s_143); + if (ret < 0) return ret; + } + break; + case 18: + { int ret = slice_from_s(z, 2, s_144); + if (ret < 0) return ret; + } + break; + case 19: + { int ret = slice_from_s(z, 3, s_145); + if (ret < 0) return ret; + } + break; + case 20: + { int ret = slice_from_s(z, 1, s_146); + if (ret < 0) return ret; + } + break; + case 21: + { int ret = slice_from_s(z, 4, s_147); + if (ret < 0) return ret; + } + break; + case 22: + { int ret = slice_from_s(z, 3, s_148); + if (ret < 0) return ret; + } + break; + case 23: + { int ret = slice_from_s(z, 2, s_149); + if (ret < 0) return ret; + } + break; + case 24: + { int ret = slice_from_s(z, 2, s_150); + if (ret < 0) return ret; + } + break; + case 25: + { int ret = slice_from_s(z, 2, s_151); + if (ret < 0) return ret; + } + break; + case 26: + { int ret = slice_from_s(z, 3, s_152); + if (ret < 0) return ret; + } + break; + case 27: + { int ret = slice_from_s(z, 4, s_153); + if (ret < 0) return ret; + } + break; + case 28: + { int ret = slice_from_s(z, 4, s_154); + if (ret < 0) return ret; + } + break; + case 29: + { int ret = slice_from_s(z, 4, s_155); + if (ret < 0) return ret; + } + break; + case 30: + { int ret = slice_from_s(z, 3, s_156); + if (ret < 0) return ret; + } + break; + case 31: + { int ret = slice_from_s(z, 3, s_157); + if (ret < 0) return ret; + } + break; + case 32: + { int ret = slice_from_s(z, 3, s_158); + if (ret < 0) return ret; + } + break; + case 33: + { int ret = slice_from_s(z, 3, s_159); + if (ret < 0) return ret; + } + break; + case 34: + { int ret = slice_from_s(z, 3, s_160); + if (ret < 0) return ret; + } + break; + case 35: + { int ret = slice_from_s(z, 3, s_161); + if (ret < 0) return ret; + } + break; + case 36: + { int ret = slice_from_s(z, 3, s_162); + if (ret < 0) return ret; + } + break; + case 37: + { int ret = slice_from_s(z, 3, s_163); + if (ret < 0) return ret; + } + break; + case 38: + { int ret = slice_from_s(z, 4, s_164); + if (ret < 0) return ret; + } + break; + case 39: + { int ret = slice_from_s(z, 3, s_165); + if (ret < 0) return ret; + } + break; + case 40: + { int ret = slice_from_s(z, 3, s_166); + if (ret < 0) return ret; + } + break; + case 41: + { int ret = slice_from_s(z, 3, s_167); + if (ret < 0) return ret; + } + break; + case 42: + { int ret = slice_from_s(z, 3, s_168); + if (ret < 0) return ret; + } + break; + case 43: + { int ret = slice_from_s(z, 3, s_169); + if (ret < 0) return ret; + } + break; + case 44: + { int ret = slice_from_s(z, 3, s_170); + if (ret < 0) return ret; + } + break; + case 45: + { int ret = slice_from_s(z, 3, s_171); + if (ret < 0) return ret; + } + break; + case 46: + { int ret = slice_from_s(z, 3, s_172); + if (ret < 0) return ret; + } + break; + case 47: + { int ret = slice_from_s(z, 4, s_173); + if (ret < 0) return ret; + } + break; + case 48: + { int ret = slice_from_s(z, 4, s_174); + if (ret < 0) return ret; + } + break; + case 49: + { int ret = slice_from_s(z, 4, s_175); + if (ret < 0) return ret; + } + break; + case 50: + { int ret = slice_from_s(z, 2, s_176); + if (ret < 0) return ret; + } + break; + case 51: + { int ret = slice_from_s(z, 3, s_177); + if (ret < 0) return ret; + } + break; + case 52: + { int ret = slice_from_s(z, 3, s_178); + if (ret < 0) return ret; + } + break; + case 53: + { int ret = slice_from_s(z, 2, s_179); + if (ret < 0) return ret; + } + break; + case 54: + { int ret = slice_from_s(z, 2, s_180); + if (ret < 0) return ret; + } + break; + case 55: + { int ret = slice_from_s(z, 2, s_181); + if (ret < 0) return ret; + } + break; + case 56: + { int ret = slice_from_s(z, 2, s_182); + if (ret < 0) return ret; + } + break; + case 57: + { int ret = slice_from_s(z, 2, s_183); + if (ret < 0) return ret; + } + break; + case 58: + { int ret = slice_from_s(z, 2, s_184); + if (ret < 0) return ret; + } + break; + case 59: + { int ret = slice_from_s(z, 4, s_185); + if (ret < 0) return ret; + } + break; + case 60: + { int ret = slice_from_s(z, 4, s_186); + if (ret < 0) return ret; + } + break; + case 61: + { int ret = slice_from_s(z, 4, s_187); + if (ret < 0) return ret; + } + break; + case 62: + { int ret = slice_from_s(z, 4, s_188); + if (ret < 0) return ret; + } + break; + case 63: + { int ret = slice_from_s(z, 4, s_189); + if (ret < 0) return ret; + } + break; + case 64: + { int ret = slice_from_s(z, 4, s_190); + if (ret < 0) return ret; + } + break; + case 65: + { int ret = slice_from_s(z, 4, s_191); + if (ret < 0) return ret; + } + break; + case 66: + { int ret = slice_from_s(z, 3, s_192); + if (ret < 0) return ret; + } + break; + case 67: + { int ret = slice_from_s(z, 3, s_193); + if (ret < 0) return ret; + } + break; + case 68: + { int ret = slice_from_s(z, 4, s_194); + if (ret < 0) return ret; + } + break; + case 69: + { int ret = slice_from_s(z, 3, s_195); + if (ret < 0) return ret; + } + break; + case 70: + { int ret = slice_from_s(z, 2, s_196); + if (ret < 0) return ret; + } + break; + case 71: + { int ret = slice_from_s(z, 3, s_197); + if (ret < 0) return ret; + } + break; + case 72: + { int ret = slice_from_s(z, 3, s_198); + if (ret < 0) return ret; + } + break; + case 73: + { int ret = slice_from_s(z, 3, s_199); + if (ret < 0) return ret; + } + break; + case 74: + { int ret = slice_from_s(z, 3, s_200); + if (ret < 0) return ret; + } + break; + case 75: + { int ret = slice_from_s(z, 4, s_201); + if (ret < 0) return ret; + } + break; + case 76: + { int ret = slice_from_s(z, 3, s_202); + if (ret < 0) return ret; + } + break; + case 77: + { int ret = slice_from_s(z, 2, s_203); + if (ret < 0) return ret; + } + break; + case 78: + { int ret = slice_from_s(z, 2, s_204); + if (ret < 0) return ret; + } + break; + case 79: + { int ret = slice_from_s(z, 2, s_205); + if (ret < 0) return ret; + } + break; + case 80: + { int ret = slice_from_s(z, 2, s_206); + if (ret < 0) return ret; + } + break; + case 81: + { int ret = slice_from_s(z, 3, s_207); + if (ret < 0) return ret; + } + break; + case 82: + { int ret = slice_from_s(z, 3, s_208); + if (ret < 0) return ret; + } + break; + case 83: + { int ret = slice_from_s(z, 2, s_209); + if (ret < 0) return ret; + } + break; + case 84: + { int ret = slice_from_s(z, 3, s_210); + if (ret < 0) return ret; + } + break; + case 85: + { int ret = slice_from_s(z, 3, s_211); + if (ret < 0) return ret; + } + break; + case 86: + { int ret = slice_from_s(z, 4, s_212); + if (ret < 0) return ret; + } + break; + case 87: + { int ret = slice_from_s(z, 2, s_213); + if (ret < 0) return ret; + } + break; + case 88: + { int ret = slice_from_s(z, 3, s_214); + if (ret < 0) return ret; + } + break; + case 89: + { int ret = slice_from_s(z, 4, s_215); + if (ret < 0) return ret; + } + break; + case 90: + { int ret = slice_from_s(z, 5, s_216); + if (ret < 0) return ret; + } + break; + case 91: + { int ret = slice_from_s(z, 3, s_217); + if (ret < 0) return ret; + } + break; + case 92: + { int ret = slice_from_s(z, 4, s_218); + if (ret < 0) return ret; + } + break; + case 93: + { int ret = slice_from_s(z, 4, s_219); + if (ret < 0) return ret; + } + break; + case 94: + { int ret = slice_from_s(z, 3, s_220); + if (ret < 0) return ret; + } + break; + case 95: + { int ret = slice_from_s(z, 1, s_221); + if (ret < 0) return ret; + } + break; + case 96: + { int ret = slice_from_s(z, 3, s_222); + if (ret < 0) return ret; + } + break; + case 97: + { int ret = slice_from_s(z, 3, s_223); + if (ret < 0) return ret; + } + break; + case 98: + { int ret = slice_from_s(z, 3, s_224); + if (ret < 0) return ret; + } + break; + case 99: + { int ret = slice_from_s(z, 3, s_225); + if (ret < 0) return ret; + } + break; + case 100: + { int ret = slice_from_s(z, 2, s_226); + if (ret < 0) return ret; + } + break; + case 101: + { int ret = slice_from_s(z, 3, s_227); + if (ret < 0) return ret; + } + break; + case 102: + { int ret = slice_from_s(z, 4, s_228); + if (ret < 0) return ret; + } + break; + case 103: + { int ret = slice_from_s(z, 2, s_229); + if (ret < 0) return ret; + } + break; + case 104: + { int ret = slice_from_s(z, 1, s_230); + if (ret < 0) return ret; + } + break; + case 105: + { int ret = slice_from_s(z, 2, s_231); + if (ret < 0) return ret; + } + break; + case 106: + { int ret = slice_from_s(z, 5, s_232); + if (ret < 0) return ret; + } + break; + case 107: + { int ret = slice_from_s(z, 5, s_233); + if (ret < 0) return ret; + } + break; + case 108: + { int ret = slice_from_s(z, 5, s_234); + if (ret < 0) return ret; + } + break; + case 109: + { int ret = slice_from_s(z, 2, s_235); + if (ret < 0) return ret; + } + break; + case 110: + { int ret = slice_from_s(z, 4, s_236); + if (ret < 0) return ret; + } + break; + case 111: + { int ret = slice_from_s(z, 4, s_237); + if (ret < 0) return ret; + } + break; + case 112: + { int ret = slice_from_s(z, 4, s_238); + if (ret < 0) return ret; + } + break; + case 113: + { int ret = slice_from_s(z, 2, s_239); + if (ret < 0) return ret; + } + break; + case 114: + { int ret = slice_from_s(z, 3, s_240); + if (ret < 0) return ret; + } + break; + case 115: + { int ret = slice_from_s(z, 2, s_241); + if (ret < 0) return ret; + } + break; + case 116: + { int ret = slice_from_s(z, 1, s_242); + if (ret < 0) return ret; + } + break; + case 117: + { int ret = slice_from_s(z, 4, s_243); + if (ret < 0) return ret; + } + break; + case 118: + { int ret = slice_from_s(z, 4, s_244); + if (ret < 0) return ret; + } + break; + case 119: + { int ret = slice_from_s(z, 1, s_245); + if (ret < 0) return ret; + } + break; + case 120: + { int ret = slice_from_s(z, 2, s_246); + if (ret < 0) return ret; + } + break; + case 121: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_247); + if (ret < 0) return ret; + } + break; + case 122: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_248); + if (ret < 0) return ret; + } + break; + case 123: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 2, s_249); + if (ret < 0) return ret; + } + break; + case 124: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 2, s_250); + if (ret < 0) return ret; + } + break; + case 125: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 2, s_251); + if (ret < 0) return ret; + } + break; + case 126: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 2, s_252); + if (ret < 0) return ret; + } + break; + case 127: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 4, s_253); + if (ret < 0) return ret; + } + break; + case 128: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_254); + if (ret < 0) return ret; + } + break; + case 129: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_255); + if (ret < 0) return ret; + } + break; + case 130: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_256); + if (ret < 0) return ret; + } + break; + case 131: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_257); + if (ret < 0) return ret; + } + break; + case 132: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_258); + if (ret < 0) return ret; + } + break; + case 133: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_259); + if (ret < 0) return ret; + } + break; + case 134: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_260); + if (ret < 0) return ret; + } + break; + case 135: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_261); + if (ret < 0) return ret; + } + break; + case 136: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 2, s_262); + if (ret < 0) return ret; + } + break; + case 137: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_263); + if (ret < 0) return ret; + } + break; + case 138: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 5, s_264); + if (ret < 0) return ret; + } + break; + case 139: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 5, s_265); + if (ret < 0) return ret; + } + break; + case 140: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 5, s_266); + if (ret < 0) return ret; + } + break; + case 141: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 4, s_267); + if (ret < 0) return ret; + } + break; + case 142: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 4, s_268); + if (ret < 0) return ret; + } + break; + case 143: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 4, s_269); + if (ret < 0) return ret; + } + break; + case 144: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_270); + if (ret < 0) return ret; + } + break; + case 145: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_271); + if (ret < 0) return ret; + } + break; + case 146: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_272); + if (ret < 0) return ret; + } + break; + case 147: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_273); + if (ret < 0) return ret; + } + break; + case 148: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_274); + if (ret < 0) return ret; + } + break; + case 149: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 4, s_275); + if (ret < 0) return ret; + } + break; + case 150: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_276); + if (ret < 0) return ret; + } + break; + case 151: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 3, s_277); + if (ret < 0) return ret; + } + break; + case 152: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 2, s_278); + if (ret < 0) return ret; + } + break; + case 153: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 2, s_279); + if (ret < 0) return ret; + } + break; + case 154: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 2, s_280); + if (ret < 0) return ret; + } + break; + case 155: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 2, s_281); + if (ret < 0) return ret; + } + break; + case 156: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 2, s_282); + if (ret < 0) return ret; + } + break; + case 157: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 2, s_283); + if (ret < 0) return ret; + } + break; + case 158: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 2, s_284); + if (ret < 0) return ret; + } + break; + case 159: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 2, s_285); + if (ret < 0) return ret; + } + break; + case 160: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 2, s_286); + if (ret < 0) return ret; + } + break; + case 161: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 1, s_287); + if (ret < 0) return ret; + } + break; + case 162: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 1, s_288); + if (ret < 0) return ret; + } + break; + case 163: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 1, s_289); + if (ret < 0) return ret; + } + break; + case 164: + if (!(z->I[1])) return 0; + { int ret = slice_from_s(z, 1, s_290); + if (ret < 0) return ret; + } + break; + } + return 1; +} + +static int r_Step_3(struct SN_env * z) { + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3188642 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; + if (!(find_among_b(z, a_3, 26))) return 0; + z->bra = z->c; + { int ret = r_R1(z); + if (ret <= 0) return ret; + } + { int ret = slice_from_s(z, 0, 0); + if (ret < 0) return ret; + } + return 1; +} + +extern int serbian_UTF_8_stem(struct SN_env * z) { + + { int ret = r_cyr_to_lat(z); + if (ret < 0) return ret; + } + + { int ret = r_prelude(z); + if (ret < 0) return ret; + } + + { int ret = r_mark_regions(z); + if (ret < 0) return ret; + } + z->lb = z->c; z->c = z->l; + + { int m1 = z->l - z->c; (void)m1; + { int ret = r_Step_1(z); + if (ret < 0) return ret; + } + z->c = z->l - m1; + } + { int m2 = z->l - z->c; (void)m2; + { int m3 = z->l - z->c; (void)m3; + { int ret = r_Step_2(z); + if (ret == 0) goto lab2; + if (ret < 0) return ret; + } + goto lab1; + lab2: + z->c = z->l - m3; + { int ret = r_Step_3(z); + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + } + lab1: + lab0: + z->c = z->l - m2; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * serbian_UTF_8_create_env(void) { return SN_create_env(0, 2); } + +extern void serbian_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_spanish.c b/src/backend/snowball/libstemmer/stem_UTF_8_spanish.c index 237d743ca8a99..d77726ed98554 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_spanish.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_spanish.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -39,12 +39,12 @@ static const symbol s_0_5[2] = { 0xC3, 0xBA }; static const struct among a_0[6] = { -/* 0 */ { 0, 0, -1, 6, 0}, -/* 1 */ { 2, s_0_1, 0, 1, 0}, -/* 2 */ { 2, s_0_2, 0, 2, 0}, -/* 3 */ { 2, s_0_3, 0, 3, 0}, -/* 4 */ { 2, s_0_4, 0, 4, 0}, -/* 5 */ { 2, s_0_5, 0, 5, 0} +{ 0, 0, -1, 6, 0}, +{ 2, s_0_1, 0, 1, 0}, +{ 2, s_0_2, 0, 2, 0}, +{ 2, s_0_3, 0, 3, 0}, +{ 2, s_0_4, 0, 4, 0}, +{ 2, s_0_5, 0, 5, 0} }; static const symbol s_1_0[2] = { 'l', 'a' }; @@ -63,19 +63,19 @@ static const symbol s_1_12[3] = { 'n', 'o', 's' }; static const struct among a_1[13] = { -/* 0 */ { 2, s_1_0, -1, -1, 0}, -/* 1 */ { 4, s_1_1, 0, -1, 0}, -/* 2 */ { 2, s_1_2, -1, -1, 0}, -/* 3 */ { 2, s_1_3, -1, -1, 0}, -/* 4 */ { 2, s_1_4, -1, -1, 0}, -/* 5 */ { 2, s_1_5, -1, -1, 0}, -/* 6 */ { 4, s_1_6, 5, -1, 0}, -/* 7 */ { 3, s_1_7, -1, -1, 0}, -/* 8 */ { 5, s_1_8, 7, -1, 0}, -/* 9 */ { 3, s_1_9, -1, -1, 0}, -/* 10 */ { 3, s_1_10, -1, -1, 0}, -/* 11 */ { 5, s_1_11, 10, -1, 0}, -/* 12 */ { 3, s_1_12, -1, -1, 0} +{ 2, s_1_0, -1, -1, 0}, +{ 4, s_1_1, 0, -1, 0}, +{ 2, s_1_2, -1, -1, 0}, +{ 2, s_1_3, -1, -1, 0}, +{ 2, s_1_4, -1, -1, 0}, +{ 2, s_1_5, -1, -1, 0}, +{ 4, s_1_6, 5, -1, 0}, +{ 3, s_1_7, -1, -1, 0}, +{ 5, s_1_8, 7, -1, 0}, +{ 3, s_1_9, -1, -1, 0}, +{ 3, s_1_10, -1, -1, 0}, +{ 5, s_1_11, 10, -1, 0}, +{ 3, s_1_12, -1, -1, 0} }; static const symbol s_2_0[4] = { 'a', 'n', 'd', 'o' }; @@ -92,17 +92,17 @@ static const symbol s_2_10[3] = { 0xC3, 0xAD, 'r' }; static const struct among a_2[11] = { -/* 0 */ { 4, s_2_0, -1, 6, 0}, -/* 1 */ { 5, s_2_1, -1, 6, 0}, -/* 2 */ { 5, s_2_2, -1, 7, 0}, -/* 3 */ { 5, s_2_3, -1, 2, 0}, -/* 4 */ { 6, s_2_4, -1, 1, 0}, -/* 5 */ { 2, s_2_5, -1, 6, 0}, -/* 6 */ { 2, s_2_6, -1, 6, 0}, -/* 7 */ { 2, s_2_7, -1, 6, 0}, -/* 8 */ { 3, s_2_8, -1, 3, 0}, -/* 9 */ { 3, s_2_9, -1, 4, 0}, -/* 10 */ { 3, s_2_10, -1, 5, 0} +{ 4, s_2_0, -1, 6, 0}, +{ 5, s_2_1, -1, 6, 0}, +{ 5, s_2_2, -1, 7, 0}, +{ 5, s_2_3, -1, 2, 0}, +{ 6, s_2_4, -1, 1, 0}, +{ 2, s_2_5, -1, 6, 0}, +{ 2, s_2_6, -1, 6, 0}, +{ 2, s_2_7, -1, 6, 0}, +{ 3, s_2_8, -1, 3, 0}, +{ 3, s_2_9, -1, 4, 0}, +{ 3, s_2_10, -1, 5, 0} }; static const symbol s_3_0[2] = { 'i', 'c' }; @@ -112,10 +112,10 @@ static const symbol s_3_3[2] = { 'i', 'v' }; static const struct among a_3[4] = { -/* 0 */ { 2, s_3_0, -1, -1, 0}, -/* 1 */ { 2, s_3_1, -1, -1, 0}, -/* 2 */ { 2, s_3_2, -1, -1, 0}, -/* 3 */ { 2, s_3_3, -1, 1, 0} +{ 2, s_3_0, -1, -1, 0}, +{ 2, s_3_1, -1, -1, 0}, +{ 2, s_3_2, -1, -1, 0}, +{ 2, s_3_3, -1, 1, 0} }; static const symbol s_4_0[4] = { 'a', 'b', 'l', 'e' }; @@ -124,9 +124,9 @@ static const symbol s_4_2[4] = { 'a', 'n', 't', 'e' }; static const struct among a_4[3] = { -/* 0 */ { 4, s_4_0, -1, 1, 0}, -/* 1 */ { 4, s_4_1, -1, 1, 0}, -/* 2 */ { 4, s_4_2, -1, 1, 0} +{ 4, s_4_0, -1, 1, 0}, +{ 4, s_4_1, -1, 1, 0}, +{ 4, s_4_2, -1, 1, 0} }; static const symbol s_5_0[2] = { 'i', 'c' }; @@ -135,9 +135,9 @@ static const symbol s_5_2[2] = { 'i', 'v' }; static const struct among a_5[3] = { -/* 0 */ { 2, s_5_0, -1, 1, 0}, -/* 1 */ { 4, s_5_1, -1, 1, 0}, -/* 2 */ { 2, s_5_2, -1, 1, 0} +{ 2, s_5_0, -1, 1, 0}, +{ 4, s_5_1, -1, 1, 0}, +{ 2, s_5_2, -1, 1, 0} }; static const symbol s_6_0[3] = { 'i', 'c', 'a' }; @@ -189,52 +189,52 @@ static const symbol s_6_45[4] = { 'i', 'v', 'o', 's' }; static const struct among a_6[46] = { -/* 0 */ { 3, s_6_0, -1, 1, 0}, -/* 1 */ { 5, s_6_1, -1, 2, 0}, -/* 2 */ { 5, s_6_2, -1, 5, 0}, -/* 3 */ { 5, s_6_3, -1, 2, 0}, -/* 4 */ { 3, s_6_4, -1, 1, 0}, -/* 5 */ { 4, s_6_5, -1, 1, 0}, -/* 6 */ { 3, s_6_6, -1, 9, 0}, -/* 7 */ { 4, s_6_7, -1, 1, 0}, -/* 8 */ { 6, s_6_8, -1, 3, 0}, -/* 9 */ { 4, s_6_9, -1, 8, 0}, -/* 10 */ { 4, s_6_10, -1, 1, 0}, -/* 11 */ { 4, s_6_11, -1, 1, 0}, -/* 12 */ { 4, s_6_12, -1, 2, 0}, -/* 13 */ { 5, s_6_13, -1, 7, 0}, -/* 14 */ { 6, s_6_14, 13, 6, 0}, -/* 15 */ { 6, s_6_15, -1, 2, 0}, -/* 16 */ { 6, s_6_16, -1, 4, 0}, -/* 17 */ { 3, s_6_17, -1, 1, 0}, -/* 18 */ { 4, s_6_18, -1, 1, 0}, -/* 19 */ { 3, s_6_19, -1, 1, 0}, -/* 20 */ { 7, s_6_20, -1, 1, 0}, -/* 21 */ { 7, s_6_21, -1, 1, 0}, -/* 22 */ { 3, s_6_22, -1, 9, 0}, -/* 23 */ { 4, s_6_23, -1, 2, 0}, -/* 24 */ { 4, s_6_24, -1, 1, 0}, -/* 25 */ { 6, s_6_25, -1, 2, 0}, -/* 26 */ { 6, s_6_26, -1, 5, 0}, -/* 27 */ { 6, s_6_27, -1, 2, 0}, -/* 28 */ { 4, s_6_28, -1, 1, 0}, -/* 29 */ { 5, s_6_29, -1, 1, 0}, -/* 30 */ { 4, s_6_30, -1, 9, 0}, -/* 31 */ { 5, s_6_31, -1, 1, 0}, -/* 32 */ { 7, s_6_32, -1, 3, 0}, -/* 33 */ { 6, s_6_33, -1, 8, 0}, -/* 34 */ { 5, s_6_34, -1, 1, 0}, -/* 35 */ { 5, s_6_35, -1, 1, 0}, -/* 36 */ { 7, s_6_36, -1, 2, 0}, -/* 37 */ { 7, s_6_37, -1, 4, 0}, -/* 38 */ { 6, s_6_38, -1, 2, 0}, -/* 39 */ { 5, s_6_39, -1, 2, 0}, -/* 40 */ { 4, s_6_40, -1, 1, 0}, -/* 41 */ { 5, s_6_41, -1, 1, 0}, -/* 42 */ { 4, s_6_42, -1, 1, 0}, -/* 43 */ { 8, s_6_43, -1, 1, 0}, -/* 44 */ { 8, s_6_44, -1, 1, 0}, -/* 45 */ { 4, s_6_45, -1, 9, 0} +{ 3, s_6_0, -1, 1, 0}, +{ 5, s_6_1, -1, 2, 0}, +{ 5, s_6_2, -1, 5, 0}, +{ 5, s_6_3, -1, 2, 0}, +{ 3, s_6_4, -1, 1, 0}, +{ 4, s_6_5, -1, 1, 0}, +{ 3, s_6_6, -1, 9, 0}, +{ 4, s_6_7, -1, 1, 0}, +{ 6, s_6_8, -1, 3, 0}, +{ 4, s_6_9, -1, 8, 0}, +{ 4, s_6_10, -1, 1, 0}, +{ 4, s_6_11, -1, 1, 0}, +{ 4, s_6_12, -1, 2, 0}, +{ 5, s_6_13, -1, 7, 0}, +{ 6, s_6_14, 13, 6, 0}, +{ 6, s_6_15, -1, 2, 0}, +{ 6, s_6_16, -1, 4, 0}, +{ 3, s_6_17, -1, 1, 0}, +{ 4, s_6_18, -1, 1, 0}, +{ 3, s_6_19, -1, 1, 0}, +{ 7, s_6_20, -1, 1, 0}, +{ 7, s_6_21, -1, 1, 0}, +{ 3, s_6_22, -1, 9, 0}, +{ 4, s_6_23, -1, 2, 0}, +{ 4, s_6_24, -1, 1, 0}, +{ 6, s_6_25, -1, 2, 0}, +{ 6, s_6_26, -1, 5, 0}, +{ 6, s_6_27, -1, 2, 0}, +{ 4, s_6_28, -1, 1, 0}, +{ 5, s_6_29, -1, 1, 0}, +{ 4, s_6_30, -1, 9, 0}, +{ 5, s_6_31, -1, 1, 0}, +{ 7, s_6_32, -1, 3, 0}, +{ 6, s_6_33, -1, 8, 0}, +{ 5, s_6_34, -1, 1, 0}, +{ 5, s_6_35, -1, 1, 0}, +{ 7, s_6_36, -1, 2, 0}, +{ 7, s_6_37, -1, 4, 0}, +{ 6, s_6_38, -1, 2, 0}, +{ 5, s_6_39, -1, 2, 0}, +{ 4, s_6_40, -1, 1, 0}, +{ 5, s_6_41, -1, 1, 0}, +{ 4, s_6_42, -1, 1, 0}, +{ 8, s_6_43, -1, 1, 0}, +{ 8, s_6_44, -1, 1, 0}, +{ 4, s_6_45, -1, 9, 0} }; static const symbol s_7_0[2] = { 'y', 'a' }; @@ -252,18 +252,18 @@ static const symbol s_7_11[3] = { 'y', 0xC3, 0xB3 }; static const struct among a_7[12] = { -/* 0 */ { 2, s_7_0, -1, 1, 0}, -/* 1 */ { 2, s_7_1, -1, 1, 0}, -/* 2 */ { 3, s_7_2, -1, 1, 0}, -/* 3 */ { 3, s_7_3, -1, 1, 0}, -/* 4 */ { 5, s_7_4, -1, 1, 0}, -/* 5 */ { 5, s_7_5, -1, 1, 0}, -/* 6 */ { 2, s_7_6, -1, 1, 0}, -/* 7 */ { 3, s_7_7, -1, 1, 0}, -/* 8 */ { 3, s_7_8, -1, 1, 0}, -/* 9 */ { 4, s_7_9, -1, 1, 0}, -/* 10 */ { 5, s_7_10, -1, 1, 0}, -/* 11 */ { 3, s_7_11, -1, 1, 0} +{ 2, s_7_0, -1, 1, 0}, +{ 2, s_7_1, -1, 1, 0}, +{ 3, s_7_2, -1, 1, 0}, +{ 3, s_7_3, -1, 1, 0}, +{ 5, s_7_4, -1, 1, 0}, +{ 5, s_7_5, -1, 1, 0}, +{ 2, s_7_6, -1, 1, 0}, +{ 3, s_7_7, -1, 1, 0}, +{ 3, s_7_8, -1, 1, 0}, +{ 4, s_7_9, -1, 1, 0}, +{ 5, s_7_10, -1, 1, 0}, +{ 3, s_7_11, -1, 1, 0} }; static const symbol s_8_0[3] = { 'a', 'b', 'a' }; @@ -365,102 +365,102 @@ static const symbol s_8_95[3] = { 'i', 0xC3, 0xB3 }; static const struct among a_8[96] = { -/* 0 */ { 3, s_8_0, -1, 2, 0}, -/* 1 */ { 3, s_8_1, -1, 2, 0}, -/* 2 */ { 3, s_8_2, -1, 2, 0}, -/* 3 */ { 3, s_8_3, -1, 2, 0}, -/* 4 */ { 4, s_8_4, -1, 2, 0}, -/* 5 */ { 3, s_8_5, -1, 2, 0}, -/* 6 */ { 5, s_8_6, 5, 2, 0}, -/* 7 */ { 5, s_8_7, 5, 2, 0}, -/* 8 */ { 5, s_8_8, 5, 2, 0}, -/* 9 */ { 2, s_8_9, -1, 2, 0}, -/* 10 */ { 2, s_8_10, -1, 2, 0}, -/* 11 */ { 2, s_8_11, -1, 2, 0}, -/* 12 */ { 3, s_8_12, -1, 2, 0}, -/* 13 */ { 4, s_8_13, -1, 2, 0}, -/* 14 */ { 4, s_8_14, -1, 2, 0}, -/* 15 */ { 4, s_8_15, -1, 2, 0}, -/* 16 */ { 2, s_8_16, -1, 2, 0}, -/* 17 */ { 4, s_8_17, 16, 2, 0}, -/* 18 */ { 4, s_8_18, 16, 2, 0}, -/* 19 */ { 5, s_8_19, 16, 2, 0}, -/* 20 */ { 4, s_8_20, 16, 2, 0}, -/* 21 */ { 6, s_8_21, 20, 2, 0}, -/* 22 */ { 6, s_8_22, 20, 2, 0}, -/* 23 */ { 6, s_8_23, 20, 2, 0}, -/* 24 */ { 2, s_8_24, -1, 1, 0}, -/* 25 */ { 4, s_8_25, 24, 2, 0}, -/* 26 */ { 5, s_8_26, 24, 2, 0}, -/* 27 */ { 4, s_8_27, -1, 2, 0}, -/* 28 */ { 5, s_8_28, -1, 2, 0}, -/* 29 */ { 5, s_8_29, -1, 2, 0}, -/* 30 */ { 5, s_8_30, -1, 2, 0}, -/* 31 */ { 5, s_8_31, -1, 2, 0}, -/* 32 */ { 3, s_8_32, -1, 2, 0}, -/* 33 */ { 3, s_8_33, -1, 2, 0}, -/* 34 */ { 4, s_8_34, -1, 2, 0}, -/* 35 */ { 5, s_8_35, -1, 2, 0}, -/* 36 */ { 2, s_8_36, -1, 2, 0}, -/* 37 */ { 2, s_8_37, -1, 2, 0}, -/* 38 */ { 2, s_8_38, -1, 2, 0}, -/* 39 */ { 2, s_8_39, -1, 2, 0}, -/* 40 */ { 4, s_8_40, 39, 2, 0}, -/* 41 */ { 4, s_8_41, 39, 2, 0}, -/* 42 */ { 4, s_8_42, 39, 2, 0}, -/* 43 */ { 4, s_8_43, 39, 2, 0}, -/* 44 */ { 5, s_8_44, 39, 2, 0}, -/* 45 */ { 4, s_8_45, 39, 2, 0}, -/* 46 */ { 6, s_8_46, 45, 2, 0}, -/* 47 */ { 6, s_8_47, 45, 2, 0}, -/* 48 */ { 6, s_8_48, 45, 2, 0}, -/* 49 */ { 2, s_8_49, -1, 1, 0}, -/* 50 */ { 4, s_8_50, 49, 2, 0}, -/* 51 */ { 5, s_8_51, 49, 2, 0}, -/* 52 */ { 5, s_8_52, -1, 2, 0}, -/* 53 */ { 5, s_8_53, -1, 2, 0}, -/* 54 */ { 6, s_8_54, -1, 2, 0}, -/* 55 */ { 5, s_8_55, -1, 2, 0}, -/* 56 */ { 7, s_8_56, 55, 2, 0}, -/* 57 */ { 7, s_8_57, 55, 2, 0}, -/* 58 */ { 7, s_8_58, 55, 2, 0}, -/* 59 */ { 5, s_8_59, -1, 2, 0}, -/* 60 */ { 6, s_8_60, -1, 2, 0}, -/* 61 */ { 6, s_8_61, -1, 2, 0}, -/* 62 */ { 6, s_8_62, -1, 2, 0}, -/* 63 */ { 4, s_8_63, -1, 2, 0}, -/* 64 */ { 4, s_8_64, -1, 1, 0}, -/* 65 */ { 6, s_8_65, 64, 2, 0}, -/* 66 */ { 6, s_8_66, 64, 2, 0}, -/* 67 */ { 6, s_8_67, 64, 2, 0}, -/* 68 */ { 4, s_8_68, -1, 2, 0}, -/* 69 */ { 4, s_8_69, -1, 2, 0}, -/* 70 */ { 4, s_8_70, -1, 2, 0}, -/* 71 */ { 7, s_8_71, 70, 2, 0}, -/* 72 */ { 7, s_8_72, 70, 2, 0}, -/* 73 */ { 8, s_8_73, 70, 2, 0}, -/* 74 */ { 6, s_8_74, 70, 2, 0}, -/* 75 */ { 8, s_8_75, 74, 2, 0}, -/* 76 */ { 8, s_8_76, 74, 2, 0}, -/* 77 */ { 8, s_8_77, 74, 2, 0}, -/* 78 */ { 4, s_8_78, -1, 1, 0}, -/* 79 */ { 6, s_8_79, 78, 2, 0}, -/* 80 */ { 6, s_8_80, 78, 2, 0}, -/* 81 */ { 6, s_8_81, 78, 2, 0}, -/* 82 */ { 7, s_8_82, 78, 2, 0}, -/* 83 */ { 8, s_8_83, 78, 2, 0}, -/* 84 */ { 4, s_8_84, -1, 2, 0}, -/* 85 */ { 5, s_8_85, -1, 2, 0}, -/* 86 */ { 5, s_8_86, -1, 2, 0}, -/* 87 */ { 5, s_8_87, -1, 2, 0}, -/* 88 */ { 3, s_8_88, -1, 2, 0}, -/* 89 */ { 4, s_8_89, -1, 2, 0}, -/* 90 */ { 4, s_8_90, -1, 2, 0}, -/* 91 */ { 4, s_8_91, -1, 2, 0}, -/* 92 */ { 4, s_8_92, -1, 2, 0}, -/* 93 */ { 4, s_8_93, -1, 2, 0}, -/* 94 */ { 4, s_8_94, -1, 2, 0}, -/* 95 */ { 3, s_8_95, -1, 2, 0} +{ 3, s_8_0, -1, 2, 0}, +{ 3, s_8_1, -1, 2, 0}, +{ 3, s_8_2, -1, 2, 0}, +{ 3, s_8_3, -1, 2, 0}, +{ 4, s_8_4, -1, 2, 0}, +{ 3, s_8_5, -1, 2, 0}, +{ 5, s_8_6, 5, 2, 0}, +{ 5, s_8_7, 5, 2, 0}, +{ 5, s_8_8, 5, 2, 0}, +{ 2, s_8_9, -1, 2, 0}, +{ 2, s_8_10, -1, 2, 0}, +{ 2, s_8_11, -1, 2, 0}, +{ 3, s_8_12, -1, 2, 0}, +{ 4, s_8_13, -1, 2, 0}, +{ 4, s_8_14, -1, 2, 0}, +{ 4, s_8_15, -1, 2, 0}, +{ 2, s_8_16, -1, 2, 0}, +{ 4, s_8_17, 16, 2, 0}, +{ 4, s_8_18, 16, 2, 0}, +{ 5, s_8_19, 16, 2, 0}, +{ 4, s_8_20, 16, 2, 0}, +{ 6, s_8_21, 20, 2, 0}, +{ 6, s_8_22, 20, 2, 0}, +{ 6, s_8_23, 20, 2, 0}, +{ 2, s_8_24, -1, 1, 0}, +{ 4, s_8_25, 24, 2, 0}, +{ 5, s_8_26, 24, 2, 0}, +{ 4, s_8_27, -1, 2, 0}, +{ 5, s_8_28, -1, 2, 0}, +{ 5, s_8_29, -1, 2, 0}, +{ 5, s_8_30, -1, 2, 0}, +{ 5, s_8_31, -1, 2, 0}, +{ 3, s_8_32, -1, 2, 0}, +{ 3, s_8_33, -1, 2, 0}, +{ 4, s_8_34, -1, 2, 0}, +{ 5, s_8_35, -1, 2, 0}, +{ 2, s_8_36, -1, 2, 0}, +{ 2, s_8_37, -1, 2, 0}, +{ 2, s_8_38, -1, 2, 0}, +{ 2, s_8_39, -1, 2, 0}, +{ 4, s_8_40, 39, 2, 0}, +{ 4, s_8_41, 39, 2, 0}, +{ 4, s_8_42, 39, 2, 0}, +{ 4, s_8_43, 39, 2, 0}, +{ 5, s_8_44, 39, 2, 0}, +{ 4, s_8_45, 39, 2, 0}, +{ 6, s_8_46, 45, 2, 0}, +{ 6, s_8_47, 45, 2, 0}, +{ 6, s_8_48, 45, 2, 0}, +{ 2, s_8_49, -1, 1, 0}, +{ 4, s_8_50, 49, 2, 0}, +{ 5, s_8_51, 49, 2, 0}, +{ 5, s_8_52, -1, 2, 0}, +{ 5, s_8_53, -1, 2, 0}, +{ 6, s_8_54, -1, 2, 0}, +{ 5, s_8_55, -1, 2, 0}, +{ 7, s_8_56, 55, 2, 0}, +{ 7, s_8_57, 55, 2, 0}, +{ 7, s_8_58, 55, 2, 0}, +{ 5, s_8_59, -1, 2, 0}, +{ 6, s_8_60, -1, 2, 0}, +{ 6, s_8_61, -1, 2, 0}, +{ 6, s_8_62, -1, 2, 0}, +{ 4, s_8_63, -1, 2, 0}, +{ 4, s_8_64, -1, 1, 0}, +{ 6, s_8_65, 64, 2, 0}, +{ 6, s_8_66, 64, 2, 0}, +{ 6, s_8_67, 64, 2, 0}, +{ 4, s_8_68, -1, 2, 0}, +{ 4, s_8_69, -1, 2, 0}, +{ 4, s_8_70, -1, 2, 0}, +{ 7, s_8_71, 70, 2, 0}, +{ 7, s_8_72, 70, 2, 0}, +{ 8, s_8_73, 70, 2, 0}, +{ 6, s_8_74, 70, 2, 0}, +{ 8, s_8_75, 74, 2, 0}, +{ 8, s_8_76, 74, 2, 0}, +{ 8, s_8_77, 74, 2, 0}, +{ 4, s_8_78, -1, 1, 0}, +{ 6, s_8_79, 78, 2, 0}, +{ 6, s_8_80, 78, 2, 0}, +{ 6, s_8_81, 78, 2, 0}, +{ 7, s_8_82, 78, 2, 0}, +{ 8, s_8_83, 78, 2, 0}, +{ 4, s_8_84, -1, 2, 0}, +{ 5, s_8_85, -1, 2, 0}, +{ 5, s_8_86, -1, 2, 0}, +{ 5, s_8_87, -1, 2, 0}, +{ 3, s_8_88, -1, 2, 0}, +{ 4, s_8_89, -1, 2, 0}, +{ 4, s_8_90, -1, 2, 0}, +{ 4, s_8_91, -1, 2, 0}, +{ 4, s_8_92, -1, 2, 0}, +{ 4, s_8_93, -1, 2, 0}, +{ 4, s_8_94, -1, 2, 0}, +{ 3, s_8_95, -1, 2, 0} }; static const symbol s_9_0[1] = { 'a' }; @@ -474,14 +474,14 @@ static const symbol s_9_7[2] = { 0xC3, 0xB3 }; static const struct among a_9[8] = { -/* 0 */ { 1, s_9_0, -1, 1, 0}, -/* 1 */ { 1, s_9_1, -1, 2, 0}, -/* 2 */ { 1, s_9_2, -1, 1, 0}, -/* 3 */ { 2, s_9_3, -1, 1, 0}, -/* 4 */ { 2, s_9_4, -1, 1, 0}, -/* 5 */ { 2, s_9_5, -1, 2, 0}, -/* 6 */ { 2, s_9_6, -1, 1, 0}, -/* 7 */ { 2, s_9_7, -1, 1, 0} +{ 1, s_9_0, -1, 1, 0}, +{ 1, s_9_1, -1, 2, 0}, +{ 1, s_9_2, -1, 1, 0}, +{ 2, s_9_3, -1, 1, 0}, +{ 2, s_9_4, -1, 1, 0}, +{ 2, s_9_5, -1, 2, 0}, +{ 2, s_9_6, -1, 1, 0}, +{ 2, s_9_7, -1, 1, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 10 }; @@ -503,16 +503,16 @@ static const symbol s_13[] = { 'e', 'n', 't', 'e' }; static const symbol s_14[] = { 'a', 't' }; static const symbol s_15[] = { 'a', 't' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $pV = , line 33 */ - z->I[1] = z->l; /* $p1 = , line 34 */ - z->I[2] = z->l; /* $p2 = , line 35 */ - { int c1 = z->c; /* do, line 37 */ - { int c2 = z->c; /* or, line 39 */ - if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2; /* grouping v, line 38 */ - { int c3 = z->c; /* or, line 38 */ - if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab4; /* non v, line 38 */ - { /* gopast */ /* grouping v, line 38 */ +static int r_mark_regions(struct SN_env * z) { + z->I[2] = z->l; + z->I[1] = z->l; + z->I[0] = z->l; + { int c1 = z->c; + { int c2 = z->c; + if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2; + { int c3 = z->c; + if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab4; + { int ret = out_grouping_U(z, g_v, 97, 252, 1); if (ret < 0) goto lab4; z->c += ret; @@ -520,8 +520,8 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab3; lab4: z->c = c3; - if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2; /* grouping v, line 38 */ - { /* gopast */ /* non v, line 38 */ + if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab2; + { int ret = in_grouping_U(z, g_v, 97, 252, 1); if (ret < 0) goto lab2; z->c += ret; @@ -531,10 +531,10 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab1; lab2: z->c = c2; - if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab0; /* non v, line 40 */ - { int c4 = z->c; /* or, line 40 */ - if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab6; /* non v, line 40 */ - { /* gopast */ /* grouping v, line 40 */ + if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab0; + { int c4 = z->c; + if (out_grouping_U(z, g_v, 97, 252, 0)) goto lab6; + { int ret = out_grouping_U(z, g_v, 97, 252, 1); if (ret < 0) goto lab6; z->c += ret; @@ -542,89 +542,88 @@ static int r_mark_regions(struct SN_env * z) { /* forwardmode */ goto lab5; lab6: z->c = c4; - if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab0; /* grouping v, line 40 */ - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + if (in_grouping_U(z, g_v, 97, 252, 0)) goto lab0; + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 40 */ + z->c = ret; } } lab5: ; } lab1: - z->I[0] = z->c; /* setmark pV, line 41 */ + z->I[2] = z->c; lab0: z->c = c1; } - { int c5 = z->c; /* do, line 43 */ - { /* gopast */ /* grouping v, line 44 */ + { int c5 = z->c; + { int ret = out_grouping_U(z, g_v, 97, 252, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 44 */ + { int ret = in_grouping_U(z, g_v, 97, 252, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[1] = z->c; /* setmark p1, line 44 */ - { /* gopast */ /* grouping v, line 45 */ + z->I[1] = z->c; + { int ret = out_grouping_U(z, g_v, 97, 252, 1); if (ret < 0) goto lab7; z->c += ret; } - { /* gopast */ /* non v, line 45 */ + { int ret = in_grouping_U(z, g_v, 97, 252, 1); if (ret < 0) goto lab7; z->c += ret; } - z->I[2] = z->c; /* setmark p2, line 45 */ + z->I[0] = z->c; lab7: z->c = c5; } return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ +static int r_postlude(struct SN_env * z) { int among_var; -/* repeat, line 49 */ - - while(1) { int c1 = z->c; - z->bra = z->c; /* [, line 50 */ - if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((67641858 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else /* substring, line 50 */ + while(1) { + int c1 = z->c; + z->bra = z->c; + if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 5 || !((67641858 >> (z->p[z->c + 1] & 0x1f)) & 1)) among_var = 6; else among_var = find_among(z, a_0, 6); if (!(among_var)) goto lab0; - z->ket = z->c; /* ], line 50 */ - switch (among_var) { /* among, line 50 */ + z->ket = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_0); /* <-, line 51 */ + { int ret = slice_from_s(z, 1, s_0); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 1, s_1); /* <-, line 52 */ + { int ret = slice_from_s(z, 1, s_1); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_2); /* <-, line 53 */ + { int ret = slice_from_s(z, 1, s_2); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 1, s_3); /* <-, line 54 */ + { int ret = slice_from_s(z, 1, s_3); if (ret < 0) return ret; } break; case 5: - { int ret = slice_from_s(z, 1, s_4); /* <-, line 55 */ + { int ret = slice_from_s(z, 1, s_4); if (ret < 0) return ret; } break; case 6: - { int ret = skip_utf8(z->p, z->c, 0, z->l, 1); + { int ret = skip_utf8(z->p, z->c, z->l, 1); if (ret < 0) goto lab0; - z->c = ret; /* next, line 57 */ + z->c = ret; } break; } @@ -636,73 +635,73 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_RV(struct SN_env * z) { /* backwardmode */ - if (!(z->I[0] <= z->c)) return 0; /* $( <= ), line 63 */ +static int r_RV(struct SN_env * z) { + if (!(z->I[2] <= z->c)) return 0; return 1; } -static int r_R1(struct SN_env * z) { /* backwardmode */ - if (!(z->I[1] <= z->c)) return 0; /* $( <= ), line 64 */ +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; return 1; } -static int r_R2(struct SN_env * z) { /* backwardmode */ - if (!(z->I[2] <= z->c)) return 0; /* $( <= ), line 65 */ +static int r_R2(struct SN_env * z) { + if (!(z->I[0] <= z->c)) return 0; return 1; } -static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */ +static int r_attached_pronoun(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 68 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 68 */ + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((557090 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_1, 13))) return 0; - z->bra = z->c; /* ], line 68 */ - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0; /* substring, line 72 */ + z->bra = z->c; + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 111 && z->p[z->c - 1] != 114)) return 0; among_var = find_among_b(z, a_2, 11); if (!(among_var)) return 0; - { int ret = r_RV(z); /* call RV, line 72 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - switch (among_var) { /* among, line 72 */ + switch (among_var) { case 1: - z->bra = z->c; /* ], line 73 */ - { int ret = slice_from_s(z, 5, s_5); /* <-, line 73 */ + z->bra = z->c; + { int ret = slice_from_s(z, 5, s_5); if (ret < 0) return ret; } break; case 2: - z->bra = z->c; /* ], line 74 */ - { int ret = slice_from_s(z, 4, s_6); /* <-, line 74 */ + z->bra = z->c; + { int ret = slice_from_s(z, 4, s_6); if (ret < 0) return ret; } break; case 3: - z->bra = z->c; /* ], line 75 */ - { int ret = slice_from_s(z, 2, s_7); /* <-, line 75 */ + z->bra = z->c; + { int ret = slice_from_s(z, 2, s_7); if (ret < 0) return ret; } break; case 4: - z->bra = z->c; /* ], line 76 */ - { int ret = slice_from_s(z, 2, s_8); /* <-, line 76 */ + z->bra = z->c; + { int ret = slice_from_s(z, 2, s_8); if (ret < 0) return ret; } break; case 5: - z->bra = z->c; /* ], line 77 */ - { int ret = slice_from_s(z, 2, s_9); /* <-, line 77 */ + z->bra = z->c; + { int ret = slice_from_s(z, 2, s_9); if (ret < 0) return ret; } break; case 6: - { int ret = slice_del(z); /* delete, line 81 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 7: - if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0; /* literal, line 82 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0; z->c--; - { int ret = slice_del(z); /* delete, line 82 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -710,38 +709,38 @@ static int r_attached_pronoun(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ +static int r_standard_suffix(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 87 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* substring, line 87 */ + z->ket = z->c; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((835634 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; among_var = find_among_b(z, a_6, 46); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 87 */ - switch (among_var) { /* among, line 87 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_R2(z); /* call R2, line 99 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 99 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_R2(z); /* call R2, line 105 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 105 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m1 = z->l - z->c; (void)m1; /* try, line 106 */ - z->ket = z->c; /* [, line 106 */ - if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m1; goto lab0; } /* literal, line 106 */ - z->bra = z->c; /* ], line 106 */ - { int ret = r_R2(z); /* call R2, line 106 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_10))) { z->c = z->l - m1; goto lab0; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m1; goto lab0; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 106 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: @@ -749,59 +748,59 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 3: - { int ret = r_R2(z); /* call R2, line 111 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 3, s_11); /* <-, line 111 */ + { int ret = slice_from_s(z, 3, s_11); if (ret < 0) return ret; } break; case 4: - { int ret = r_R2(z); /* call R2, line 115 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 1, s_12); /* <-, line 115 */ + { int ret = slice_from_s(z, 1, s_12); if (ret < 0) return ret; } break; case 5: - { int ret = r_R2(z); /* call R2, line 119 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_from_s(z, 4, s_13); /* <-, line 119 */ + { int ret = slice_from_s(z, 4, s_13); if (ret < 0) return ret; } break; case 6: - { int ret = r_R1(z); /* call R1, line 123 */ + { int ret = r_R1(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 123 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m2 = z->l - z->c; (void)m2; /* try, line 124 */ - z->ket = z->c; /* [, line 125 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; } /* substring, line 125 */ + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m2; goto lab1; } among_var = find_among_b(z, a_3, 4); if (!(among_var)) { z->c = z->l - m2; goto lab1; } - z->bra = z->c; /* ], line 125 */ - { int ret = r_R2(z); /* call R2, line 125 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m2; goto lab1; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 125 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - switch (among_var) { /* among, line 125 */ + switch (among_var) { case 1: - z->ket = z->c; /* [, line 126 */ - if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m2; goto lab1; } /* literal, line 126 */ - z->bra = z->c; /* ], line 126 */ - { int ret = r_R2(z); /* call R2, line 126 */ + z->ket = z->c; + if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m2; goto lab1; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m2; goto lab1; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 126 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -811,22 +810,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 7: - { int ret = r_R2(z); /* call R2, line 135 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 135 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m3 = z->l - z->c; (void)m3; /* try, line 136 */ - z->ket = z->c; /* [, line 137 */ - if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m3; goto lab2; } /* substring, line 137 */ + { int m3 = z->l - z->c; (void)m3; + z->ket = z->c; + if (z->c - 3 <= z->lb || z->p[z->c - 1] != 101) { z->c = z->l - m3; goto lab2; } if (!(find_among_b(z, a_4, 3))) { z->c = z->l - m3; goto lab2; } - z->bra = z->c; /* ], line 137 */ - { int ret = r_R2(z); /* call R2, line 140 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m3; goto lab2; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 140 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab2: @@ -834,22 +833,22 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 8: - { int ret = r_R2(z); /* call R2, line 147 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 147 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m4 = z->l - z->c; (void)m4; /* try, line 148 */ - z->ket = z->c; /* [, line 149 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m4; goto lab3; } /* substring, line 149 */ + { int m4 = z->l - z->c; (void)m4; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m4; goto lab3; } if (!(find_among_b(z, a_5, 3))) { z->c = z->l - m4; goto lab3; } - z->bra = z->c; /* ], line 149 */ - { int ret = r_R2(z); /* call R2, line 152 */ + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m4; goto lab3; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 152 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab3: @@ -857,21 +856,21 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ } break; case 9: - { int ret = r_R2(z); /* call R2, line 159 */ + { int ret = r_R2(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 159 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m5 = z->l - z->c; (void)m5; /* try, line 160 */ - z->ket = z->c; /* [, line 161 */ - if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m5; goto lab4; } /* literal, line 161 */ - z->bra = z->c; /* ], line 161 */ - { int ret = r_R2(z); /* call R2, line 161 */ + { int m5 = z->l - z->c; (void)m5; + z->ket = z->c; + if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m5; goto lab4; } + z->bra = z->c; + { int ret = r_R2(z); if (ret == 0) { z->c = z->l - m5; goto lab4; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 161 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab4: @@ -882,56 +881,56 @@ static int r_standard_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_y_verb_suffix(struct SN_env * z) { /* backwardmode */ +static int r_y_verb_suffix(struct SN_env * z) { - { int mlimit1; /* setlimit, line 168 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 168 */ - if (!(find_among_b(z, a_7, 12))) { z->lb = mlimit1; return 0; } /* substring, line 168 */ - z->bra = z->c; /* ], line 168 */ + { int mlimit1; + if (z->c < z->I[2]) return 0; + mlimit1 = z->lb; z->lb = z->I[2]; + z->ket = z->c; + if (!(find_among_b(z, a_7, 12))) { z->lb = mlimit1; return 0; } + z->bra = z->c; z->lb = mlimit1; } - if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0; /* literal, line 171 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'u') return 0; z->c--; - { int ret = slice_del(z); /* delete, line 171 */ + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ +static int r_verb_suffix(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 176 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 176 */ - among_var = find_among_b(z, a_8, 96); /* substring, line 176 */ + { int mlimit1; + if (z->c < z->I[2]) return 0; + mlimit1 = z->lb; z->lb = z->I[2]; + z->ket = z->c; + among_var = find_among_b(z, a_8, 96); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 176 */ + z->bra = z->c; z->lb = mlimit1; } - switch (among_var) { /* among, line 176 */ + switch (among_var) { case 1: - { int m2 = z->l - z->c; (void)m2; /* try, line 179 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m2; goto lab0; } /* literal, line 179 */ + { int m2 = z->l - z->c; (void)m2; + if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m2; goto lab0; } z->c--; - { int m_test3 = z->l - z->c; /* test, line 179 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m2; goto lab0; } /* literal, line 179 */ + { int m_test3 = z->l - z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m2; goto lab0; } z->c--; z->c = z->l - m_test3; } lab0: ; } - z->bra = z->c; /* ], line 179 */ - { int ret = slice_del(z); /* delete, line 179 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_del(z); /* delete, line 200 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -939,43 +938,43 @@ static int r_verb_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ +static int r_residual_suffix(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 205 */ - among_var = find_among_b(z, a_9, 8); /* substring, line 205 */ + z->ket = z->c; + among_var = find_among_b(z, a_9, 8); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 205 */ - switch (among_var) { /* among, line 205 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = r_RV(z); /* call RV, line 208 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 208 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = r_RV(z); /* call RV, line 210 */ + { int ret = r_RV(z); if (ret <= 0) return ret; } - { int ret = slice_del(z); /* delete, line 210 */ + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m1 = z->l - z->c; (void)m1; /* try, line 210 */ - z->ket = z->c; /* [, line 210 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m1; goto lab0; } /* literal, line 210 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'u') { z->c = z->l - m1; goto lab0; } z->c--; - z->bra = z->c; /* ], line 210 */ - { int m_test2 = z->l - z->c; /* test, line 210 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m1; goto lab0; } /* literal, line 210 */ + z->bra = z->c; + { int m_test2 = z->l - z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'g') { z->c = z->l - m1; goto lab0; } z->c--; z->c = z->l - m_test2; } - { int ret = r_RV(z); /* call RV, line 210 */ + { int ret = r_RV(z); if (ret == 0) { z->c = z->l - m1; goto lab0; } if (ret < 0) return ret; } - { int ret = slice_del(z); /* delete, line 210 */ + { int ret = slice_del(z); if (ret < 0) return ret; } lab0: @@ -986,36 +985,36 @@ static int r_residual_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -extern int spanish_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - /* do, line 216 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 216 */ +extern int spanish_UTF_8_stem(struct SN_env * z) { + + { int ret = r_mark_regions(z); if (ret < 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 217 */ + z->lb = z->c; z->c = z->l; - { int m1 = z->l - z->c; (void)m1; /* do, line 218 */ - { int ret = r_attached_pronoun(z); /* call attached_pronoun, line 218 */ + { int m1 = z->l - z->c; (void)m1; + { int ret = r_attached_pronoun(z); if (ret < 0) return ret; } z->c = z->l - m1; } - { int m2 = z->l - z->c; (void)m2; /* do, line 219 */ - { int m3 = z->l - z->c; (void)m3; /* or, line 219 */ - { int ret = r_standard_suffix(z); /* call standard_suffix, line 219 */ + { int m2 = z->l - z->c; (void)m2; + { int m3 = z->l - z->c; (void)m3; + { int ret = r_standard_suffix(z); if (ret == 0) goto lab2; if (ret < 0) return ret; } goto lab1; lab2: z->c = z->l - m3; - { int ret = r_y_verb_suffix(z); /* call y_verb_suffix, line 220 */ + { int ret = r_y_verb_suffix(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } goto lab1; lab3: z->c = z->l - m3; - { int ret = r_verb_suffix(z); /* call verb_suffix, line 221 */ + { int ret = r_verb_suffix(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -1024,15 +1023,15 @@ extern int spanish_UTF_8_stem(struct SN_env * z) { /* forwardmode */ lab0: z->c = z->l - m2; } - { int m4 = z->l - z->c; (void)m4; /* do, line 223 */ - { int ret = r_residual_suffix(z); /* call residual_suffix, line 223 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_residual_suffix(z); if (ret < 0) return ret; } z->c = z->l - m4; } z->c = z->lb; - { int c5 = z->c; /* do, line 225 */ - { int ret = r_postlude(z); /* call postlude, line 225 */ + { int c5 = z->c; + { int ret = r_postlude(z); if (ret < 0) return ret; } z->c = c5; @@ -1040,7 +1039,7 @@ extern int spanish_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * spanish_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); } +extern struct SN_env * spanish_UTF_8_create_env(void) { return SN_create_env(0, 3); } extern void spanish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_swedish.c b/src/backend/snowball/libstemmer/stem_UTF_8_swedish.c index b53fcccedea4c..f2c445d04f202 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_swedish.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_swedish.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -65,43 +65,43 @@ static const symbol s_0_36[3] = { 'a', 's', 't' }; static const struct among a_0[37] = { -/* 0 */ { 1, s_0_0, -1, 1, 0}, -/* 1 */ { 4, s_0_1, 0, 1, 0}, -/* 2 */ { 4, s_0_2, 0, 1, 0}, -/* 3 */ { 7, s_0_3, 2, 1, 0}, -/* 4 */ { 4, s_0_4, 0, 1, 0}, -/* 5 */ { 2, s_0_5, -1, 1, 0}, -/* 6 */ { 1, s_0_6, -1, 1, 0}, -/* 7 */ { 3, s_0_7, 6, 1, 0}, -/* 8 */ { 4, s_0_8, 6, 1, 0}, -/* 9 */ { 4, s_0_9, 6, 1, 0}, -/* 10 */ { 3, s_0_10, 6, 1, 0}, -/* 11 */ { 4, s_0_11, 6, 1, 0}, -/* 12 */ { 2, s_0_12, -1, 1, 0}, -/* 13 */ { 5, s_0_13, 12, 1, 0}, -/* 14 */ { 4, s_0_14, 12, 1, 0}, -/* 15 */ { 5, s_0_15, 12, 1, 0}, -/* 16 */ { 3, s_0_16, -1, 1, 0}, -/* 17 */ { 2, s_0_17, -1, 1, 0}, -/* 18 */ { 2, s_0_18, -1, 1, 0}, -/* 19 */ { 5, s_0_19, 18, 1, 0}, -/* 20 */ { 2, s_0_20, -1, 1, 0}, -/* 21 */ { 1, s_0_21, -1, 2, 0}, -/* 22 */ { 2, s_0_22, 21, 1, 0}, -/* 23 */ { 5, s_0_23, 22, 1, 0}, -/* 24 */ { 5, s_0_24, 22, 1, 0}, -/* 25 */ { 5, s_0_25, 22, 1, 0}, -/* 26 */ { 2, s_0_26, 21, 1, 0}, -/* 27 */ { 4, s_0_27, 26, 1, 0}, -/* 28 */ { 5, s_0_28, 26, 1, 0}, -/* 29 */ { 3, s_0_29, 21, 1, 0}, -/* 30 */ { 5, s_0_30, 29, 1, 0}, -/* 31 */ { 6, s_0_31, 29, 1, 0}, -/* 32 */ { 4, s_0_32, 21, 1, 0}, -/* 33 */ { 2, s_0_33, -1, 1, 0}, -/* 34 */ { 5, s_0_34, -1, 1, 0}, -/* 35 */ { 3, s_0_35, -1, 1, 0}, -/* 36 */ { 3, s_0_36, -1, 1, 0} +{ 1, s_0_0, -1, 1, 0}, +{ 4, s_0_1, 0, 1, 0}, +{ 4, s_0_2, 0, 1, 0}, +{ 7, s_0_3, 2, 1, 0}, +{ 4, s_0_4, 0, 1, 0}, +{ 2, s_0_5, -1, 1, 0}, +{ 1, s_0_6, -1, 1, 0}, +{ 3, s_0_7, 6, 1, 0}, +{ 4, s_0_8, 6, 1, 0}, +{ 4, s_0_9, 6, 1, 0}, +{ 3, s_0_10, 6, 1, 0}, +{ 4, s_0_11, 6, 1, 0}, +{ 2, s_0_12, -1, 1, 0}, +{ 5, s_0_13, 12, 1, 0}, +{ 4, s_0_14, 12, 1, 0}, +{ 5, s_0_15, 12, 1, 0}, +{ 3, s_0_16, -1, 1, 0}, +{ 2, s_0_17, -1, 1, 0}, +{ 2, s_0_18, -1, 1, 0}, +{ 5, s_0_19, 18, 1, 0}, +{ 2, s_0_20, -1, 1, 0}, +{ 1, s_0_21, -1, 2, 0}, +{ 2, s_0_22, 21, 1, 0}, +{ 5, s_0_23, 22, 1, 0}, +{ 5, s_0_24, 22, 1, 0}, +{ 5, s_0_25, 22, 1, 0}, +{ 2, s_0_26, 21, 1, 0}, +{ 4, s_0_27, 26, 1, 0}, +{ 5, s_0_28, 26, 1, 0}, +{ 3, s_0_29, 21, 1, 0}, +{ 5, s_0_30, 29, 1, 0}, +{ 6, s_0_31, 29, 1, 0}, +{ 4, s_0_32, 21, 1, 0}, +{ 2, s_0_33, -1, 1, 0}, +{ 5, s_0_34, -1, 1, 0}, +{ 3, s_0_35, -1, 1, 0}, +{ 3, s_0_36, -1, 1, 0} }; static const symbol s_1_0[2] = { 'd', 'd' }; @@ -114,13 +114,13 @@ static const symbol s_1_6[2] = { 't', 't' }; static const struct among a_1[7] = { -/* 0 */ { 2, s_1_0, -1, -1, 0}, -/* 1 */ { 2, s_1_1, -1, -1, 0}, -/* 2 */ { 2, s_1_2, -1, -1, 0}, -/* 3 */ { 2, s_1_3, -1, -1, 0}, -/* 4 */ { 2, s_1_4, -1, -1, 0}, -/* 5 */ { 2, s_1_5, -1, -1, 0}, -/* 6 */ { 2, s_1_6, -1, -1, 0} +{ 2, s_1_0, -1, -1, 0}, +{ 2, s_1_1, -1, -1, 0}, +{ 2, s_1_2, -1, -1, 0}, +{ 2, s_1_3, -1, -1, 0}, +{ 2, s_1_4, -1, -1, 0}, +{ 2, s_1_5, -1, -1, 0}, +{ 2, s_1_6, -1, -1, 0} }; static const symbol s_2_0[2] = { 'i', 'g' }; @@ -131,11 +131,11 @@ static const symbol s_2_4[5] = { 'l', 0xC3, 0xB6, 's', 't' }; static const struct among a_2[5] = { -/* 0 */ { 2, s_2_0, -1, 1, 0}, -/* 1 */ { 3, s_2_1, 0, 1, 0}, -/* 2 */ { 3, s_2_2, -1, 1, 0}, -/* 3 */ { 5, s_2_3, -1, 3, 0}, -/* 4 */ { 5, s_2_4, -1, 2, 0} +{ 2, s_2_0, -1, 1, 0}, +{ 3, s_2_1, 0, 1, 0}, +{ 3, s_2_2, -1, 1, 0}, +{ 5, s_2_3, -1, 3, 0}, +{ 5, s_2_4, -1, 2, 0} }; static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 }; @@ -145,52 +145,52 @@ static const unsigned char g_s_ending[] = { 119, 127, 149 }; static const symbol s_0[] = { 'l', 0xC3, 0xB6, 's' }; static const symbol s_1[] = { 'f', 'u', 'l', 'l' }; -static int r_mark_regions(struct SN_env * z) { /* forwardmode */ - z->I[0] = z->l; /* $p1 = , line 28 */ - { int c_test1 = z->c; /* test, line 29 */ - { int ret = skip_utf8(z->p, z->c, 0, z->l, + 3); /* hop, line 29 */ +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + { int c_test1 = z->c; + { int ret = skip_utf8(z->p, z->c, z->l, 3); if (ret < 0) return 0; z->c = ret; } - z->I[1] = z->c; /* setmark x, line 29 */ + z->I[0] = z->c; z->c = c_test1; } - if (out_grouping_U(z, g_v, 97, 246, 1) < 0) return 0; /* goto */ /* grouping v, line 30 */ - { /* gopast */ /* non v, line 30 */ + if (out_grouping_U(z, g_v, 97, 246, 1) < 0) return 0; + { int ret = in_grouping_U(z, g_v, 97, 246, 1); if (ret < 0) return 0; z->c += ret; } - z->I[0] = z->c; /* setmark p1, line 30 */ - /* try, line 31 */ - if (!(z->I[0] < z->I[1])) goto lab0; /* $( < ), line 31 */ - z->I[0] = z->I[1]; /* $p1 = , line 31 */ + z->I[1] = z->c; + + if (!(z->I[1] < z->I[0])) goto lab0; + z->I[1] = z->I[0]; lab0: return 1; } -static int r_main_suffix(struct SN_env * z) { /* backwardmode */ +static int r_main_suffix(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 37 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 37 */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 37 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } among_var = find_among_b(z, a_0, 37); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 37 */ + z->bra = z->c; z->lb = mlimit1; } - switch (among_var) { /* among, line 38 */ + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 44 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - if (in_grouping_b_U(z, g_s_ending, 98, 121, 0)) return 0; /* grouping s_ending, line 46 */ - { int ret = slice_del(z); /* delete, line 46 */ + if (in_grouping_b_U(z, g_s_ending, 98, 121, 0)) return 0; + { int ret = slice_del(z); if (ret < 0) return ret; } break; @@ -198,22 +198,22 @@ static int r_main_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_consonant_pair(struct SN_env * z) { /* backwardmode */ +static int r_consonant_pair(struct SN_env * z) { - { int mlimit1; /* setlimit, line 50 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - { int m2 = z->l - z->c; (void)m2; /* and, line 52 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* among, line 51 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + { int m2 = z->l - z->c; (void)m2; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit1; return 0; } z->c = z->l - m2; - z->ket = z->c; /* [, line 52 */ - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + z->ket = z->c; + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) { z->lb = mlimit1; return 0; } - z->c = ret; /* next, line 52 */ + z->c = ret; } - z->bra = z->c; /* ], line 52 */ - { int ret = slice_del(z); /* delete, line 52 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } } @@ -222,30 +222,30 @@ static int r_consonant_pair(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_other_suffix(struct SN_env * z) { /* backwardmode */ +static int r_other_suffix(struct SN_env * z) { int among_var; - { int mlimit1; /* setlimit, line 55 */ - if (z->c < z->I[0]) return 0; - mlimit1 = z->lb; z->lb = z->I[0]; - z->ket = z->c; /* [, line 56 */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } /* substring, line 56 */ + { int mlimit1; + if (z->c < z->I[1]) return 0; + mlimit1 = z->lb; z->lb = z->I[1]; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; } among_var = find_among_b(z, a_2, 5); if (!(among_var)) { z->lb = mlimit1; return 0; } - z->bra = z->c; /* ], line 56 */ - switch (among_var) { /* among, line 56 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = slice_del(z); /* delete, line 57 */ + { int ret = slice_del(z); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 4, s_0); /* <-, line 58 */ + { int ret = slice_from_s(z, 4, s_0); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 4, s_1); /* <-, line 59 */ + { int ret = slice_from_s(z, 4, s_1); if (ret < 0) return ret; } break; @@ -255,29 +255,29 @@ static int r_other_suffix(struct SN_env * z) { /* backwardmode */ return 1; } -extern int swedish_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 66 */ - { int ret = r_mark_regions(z); /* call mark_regions, line 66 */ +extern int swedish_UTF_8_stem(struct SN_env * z) { + { int c1 = z->c; + { int ret = r_mark_regions(z); if (ret < 0) return ret; } z->c = c1; } - z->lb = z->c; z->c = z->l; /* backwards, line 67 */ + z->lb = z->c; z->c = z->l; - { int m2 = z->l - z->c; (void)m2; /* do, line 68 */ - { int ret = r_main_suffix(z); /* call main_suffix, line 68 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_main_suffix(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 69 */ - { int ret = r_consonant_pair(z); /* call consonant_pair, line 69 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_consonant_pair(z); if (ret < 0) return ret; } z->c = z->l - m3; } - { int m4 = z->l - z->c; (void)m4; /* do, line 70 */ - { int ret = r_other_suffix(z); /* call other_suffix, line 70 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_other_suffix(z); if (ret < 0) return ret; } z->c = z->l - m4; @@ -286,7 +286,7 @@ extern int swedish_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * swedish_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); } +extern struct SN_env * swedish_UTF_8_create_env(void) { return SN_create_env(0, 2); } extern void swedish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_tamil.c b/src/backend/snowball/libstemmer/stem_UTF_8_tamil.c index ac038a8e37ba6..6f70b83b29962 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_tamil.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_tamil.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -48,16 +48,16 @@ static const symbol s_0_9[3] = { 0xE0, 0xAE, 0xB5 }; static const struct among a_0[10] = { -/* 0 */ { 3, s_0_0, -1, -1, 0}, -/* 1 */ { 3, s_0_1, -1, -1, 0}, -/* 2 */ { 3, s_0_2, -1, -1, 0}, -/* 3 */ { 3, s_0_3, -1, -1, 0}, -/* 4 */ { 3, s_0_4, -1, -1, 0}, -/* 5 */ { 3, s_0_5, -1, -1, 0}, -/* 6 */ { 3, s_0_6, -1, -1, 0}, -/* 7 */ { 3, s_0_7, -1, -1, 0}, -/* 8 */ { 3, s_0_8, -1, -1, 0}, -/* 9 */ { 3, s_0_9, -1, -1, 0} +{ 3, s_0_0, -1, -1, 0}, +{ 3, s_0_1, -1, -1, 0}, +{ 3, s_0_2, -1, -1, 0}, +{ 3, s_0_3, -1, -1, 0}, +{ 3, s_0_4, -1, -1, 0}, +{ 3, s_0_5, -1, -1, 0}, +{ 3, s_0_6, -1, -1, 0}, +{ 3, s_0_7, -1, -1, 0}, +{ 3, s_0_8, -1, -1, 0}, +{ 3, s_0_9, -1, -1, 0} }; static const symbol s_1_0[12] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D }; @@ -66,9 +66,9 @@ static const symbol s_1_2[9] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, static const struct among a_1[3] = { -/* 0 */ { 12, s_1_0, -1, -1, 0}, -/* 1 */ { 6, s_1_1, -1, -1, 0}, -/* 2 */ { 9, s_1_2, -1, -1, 0} +{ 12, s_1_0, -1, -1, 0}, +{ 6, s_1_1, -1, -1, 0}, +{ 9, s_1_2, -1, -1, 0} }; static const symbol s_2_0[3] = { 0xE0, 0xAF, 0x80 }; @@ -77,9 +77,9 @@ static const symbol s_2_2[3] = { 0xE0, 0xAE, 0xBF }; static const struct among a_2[3] = { -/* 0 */ { 3, s_2_0, -1, -1, 0}, -/* 1 */ { 3, s_2_1, -1, -1, 0}, -/* 2 */ { 3, s_2_2, -1, -1, 0} +{ 3, s_2_0, -1, -1, 0}, +{ 3, s_2_1, -1, -1, 0}, +{ 3, s_2_2, -1, -1, 0} }; static const symbol s_3_0[3] = { 0xE0, 0xAE, 0x95 }; @@ -91,12 +91,12 @@ static const symbol s_3_5[3] = { 0xE0, 0xAE, 0xB1 }; static const struct among a_3[6] = { -/* 0 */ { 3, s_3_0, -1, -1, 0}, -/* 1 */ { 3, s_3_1, -1, -1, 0}, -/* 2 */ { 3, s_3_2, -1, -1, 0}, -/* 3 */ { 3, s_3_3, -1, -1, 0}, -/* 4 */ { 3, s_3_4, -1, -1, 0}, -/* 5 */ { 3, s_3_5, -1, -1, 0} +{ 3, s_3_0, -1, -1, 0}, +{ 3, s_3_1, -1, -1, 0}, +{ 3, s_3_2, -1, -1, 0}, +{ 3, s_3_3, -1, -1, 0}, +{ 3, s_3_4, -1, -1, 0}, +{ 3, s_3_5, -1, -1, 0} }; static const symbol s_4_0[3] = { 0xE0, 0xAE, 0x95 }; @@ -108,12 +108,12 @@ static const symbol s_4_5[3] = { 0xE0, 0xAE, 0xB1 }; static const struct among a_4[6] = { -/* 0 */ { 3, s_4_0, -1, -1, 0}, -/* 1 */ { 3, s_4_1, -1, -1, 0}, -/* 2 */ { 3, s_4_2, -1, -1, 0}, -/* 3 */ { 3, s_4_3, -1, -1, 0}, -/* 4 */ { 3, s_4_4, -1, -1, 0}, -/* 5 */ { 3, s_4_5, -1, -1, 0} +{ 3, s_4_0, -1, -1, 0}, +{ 3, s_4_1, -1, -1, 0}, +{ 3, s_4_2, -1, -1, 0}, +{ 3, s_4_3, -1, -1, 0}, +{ 3, s_4_4, -1, -1, 0}, +{ 3, s_4_5, -1, -1, 0} }; static const symbol s_5_0[3] = { 0xE0, 0xAE, 0x95 }; @@ -125,12 +125,12 @@ static const symbol s_5_5[3] = { 0xE0, 0xAE, 0xB1 }; static const struct among a_5[6] = { -/* 0 */ { 3, s_5_0, -1, -1, 0}, -/* 1 */ { 3, s_5_1, -1, -1, 0}, -/* 2 */ { 3, s_5_2, -1, -1, 0}, -/* 3 */ { 3, s_5_3, -1, -1, 0}, -/* 4 */ { 3, s_5_4, -1, -1, 0}, -/* 5 */ { 3, s_5_5, -1, -1, 0} +{ 3, s_5_0, -1, -1, 0}, +{ 3, s_5_1, -1, -1, 0}, +{ 3, s_5_2, -1, -1, 0}, +{ 3, s_5_3, -1, -1, 0}, +{ 3, s_5_4, -1, -1, 0}, +{ 3, s_5_5, -1, -1, 0} }; static const symbol s_6_0[3] = { 0xE0, 0xAE, 0xAF }; @@ -142,12 +142,12 @@ static const symbol s_6_5[3] = { 0xE0, 0xAE, 0xB5 }; static const struct among a_6[6] = { -/* 0 */ { 3, s_6_0, -1, -1, 0}, -/* 1 */ { 3, s_6_1, -1, -1, 0}, -/* 2 */ { 3, s_6_2, -1, -1, 0}, -/* 3 */ { 3, s_6_3, -1, -1, 0}, -/* 4 */ { 3, s_6_4, -1, -1, 0}, -/* 5 */ { 3, s_6_5, -1, -1, 0} +{ 3, s_6_0, -1, -1, 0}, +{ 3, s_6_1, -1, -1, 0}, +{ 3, s_6_2, -1, -1, 0}, +{ 3, s_6_3, -1, -1, 0}, +{ 3, s_6_4, -1, -1, 0}, +{ 3, s_6_5, -1, -1, 0} }; static const symbol s_7_0[3] = { 0xE0, 0xAE, 0x99 }; @@ -159,12 +159,12 @@ static const symbol s_7_5[3] = { 0xE0, 0xAE, 0xAE }; static const struct among a_7[6] = { -/* 0 */ { 3, s_7_0, -1, -1, 0}, -/* 1 */ { 3, s_7_1, -1, -1, 0}, -/* 2 */ { 3, s_7_2, -1, -1, 0}, -/* 3 */ { 3, s_7_3, -1, -1, 0}, -/* 4 */ { 3, s_7_4, -1, -1, 0}, -/* 5 */ { 3, s_7_5, -1, -1, 0} +{ 3, s_7_0, -1, -1, 0}, +{ 3, s_7_1, -1, -1, 0}, +{ 3, s_7_2, -1, -1, 0}, +{ 3, s_7_3, -1, -1, 0}, +{ 3, s_7_4, -1, -1, 0}, +{ 3, s_7_5, -1, -1, 0} }; static const symbol s_8_0[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8D }; @@ -173,9 +173,9 @@ static const symbol s_8_2[3] = { 0xE0, 0xAE, 0xB5 }; static const struct among a_8[3] = { -/* 0 */ { 6, s_8_0, -1, -1, 0}, -/* 1 */ { 3, s_8_1, -1, -1, 0}, -/* 2 */ { 3, s_8_2, -1, -1, 0} +{ 6, s_8_0, -1, -1, 0}, +{ 3, s_8_1, -1, -1, 0}, +{ 3, s_8_2, -1, -1, 0} }; static const symbol s_9_0[3] = { 0xE0, 0xAF, 0x80 }; @@ -189,14 +189,14 @@ static const symbol s_9_7[3] = { 0xE0, 0xAE, 0xBF }; static const struct among a_9[8] = { -/* 0 */ { 3, s_9_0, -1, -1, 0}, -/* 1 */ { 3, s_9_1, -1, -1, 0}, -/* 2 */ { 3, s_9_2, -1, -1, 0}, -/* 3 */ { 3, s_9_3, -1, -1, 0}, -/* 4 */ { 3, s_9_4, -1, -1, 0}, -/* 5 */ { 3, s_9_5, -1, -1, 0}, -/* 6 */ { 3, s_9_6, -1, -1, 0}, -/* 7 */ { 3, s_9_7, -1, -1, 0} +{ 3, s_9_0, -1, -1, 0}, +{ 3, s_9_1, -1, -1, 0}, +{ 3, s_9_2, -1, -1, 0}, +{ 3, s_9_3, -1, -1, 0}, +{ 3, s_9_4, -1, -1, 0}, +{ 3, s_9_5, -1, -1, 0}, +{ 3, s_9_6, -1, -1, 0}, +{ 3, s_9_7, -1, -1, 0} }; static const symbol s_10_0[3] = { 0xE0, 0xAF, 0x80 }; @@ -210,14 +210,14 @@ static const symbol s_10_7[3] = { 0xE0, 0xAE, 0xBF }; static const struct among a_10[8] = { -/* 0 */ { 3, s_10_0, -1, -1, 0}, -/* 1 */ { 3, s_10_1, -1, -1, 0}, -/* 2 */ { 3, s_10_2, -1, -1, 0}, -/* 3 */ { 3, s_10_3, -1, -1, 0}, -/* 4 */ { 3, s_10_4, -1, -1, 0}, -/* 5 */ { 3, s_10_5, -1, -1, 0}, -/* 6 */ { 3, s_10_6, -1, -1, 0}, -/* 7 */ { 3, s_10_7, -1, -1, 0} +{ 3, s_10_0, -1, -1, 0}, +{ 3, s_10_1, -1, -1, 0}, +{ 3, s_10_2, -1, -1, 0}, +{ 3, s_10_3, -1, -1, 0}, +{ 3, s_10_4, -1, -1, 0}, +{ 3, s_10_5, -1, -1, 0}, +{ 3, s_10_6, -1, -1, 0}, +{ 3, s_10_7, -1, -1, 0} }; static const symbol s_11_0[3] = { 0xE0, 0xAE, 0x85 }; @@ -226,9 +226,9 @@ static const symbol s_11_2[3] = { 0xE0, 0xAE, 0x89 }; static const struct among a_11[3] = { -/* 0 */ { 3, s_11_0, -1, -1, 0}, -/* 1 */ { 3, s_11_1, -1, -1, 0}, -/* 2 */ { 3, s_11_2, -1, -1, 0} +{ 3, s_11_0, -1, -1, 0}, +{ 3, s_11_1, -1, -1, 0}, +{ 3, s_11_2, -1, -1, 0} }; static const symbol s_12_0[3] = { 0xE0, 0xAE, 0x95 }; @@ -244,16 +244,16 @@ static const symbol s_12_9[3] = { 0xE0, 0xAE, 0xB5 }; static const struct among a_12[10] = { -/* 0 */ { 3, s_12_0, -1, -1, 0}, -/* 1 */ { 3, s_12_1, -1, -1, 0}, -/* 2 */ { 3, s_12_2, -1, -1, 0}, -/* 3 */ { 3, s_12_3, -1, -1, 0}, -/* 4 */ { 3, s_12_4, -1, -1, 0}, -/* 5 */ { 3, s_12_5, -1, -1, 0}, -/* 6 */ { 3, s_12_6, -1, -1, 0}, -/* 7 */ { 3, s_12_7, -1, -1, 0}, -/* 8 */ { 3, s_12_8, -1, -1, 0}, -/* 9 */ { 3, s_12_9, -1, -1, 0} +{ 3, s_12_0, -1, -1, 0}, +{ 3, s_12_1, -1, -1, 0}, +{ 3, s_12_2, -1, -1, 0}, +{ 3, s_12_3, -1, -1, 0}, +{ 3, s_12_4, -1, -1, 0}, +{ 3, s_12_5, -1, -1, 0}, +{ 3, s_12_6, -1, -1, 0}, +{ 3, s_12_7, -1, -1, 0}, +{ 3, s_12_8, -1, -1, 0}, +{ 3, s_12_9, -1, -1, 0} }; static const symbol s_13_0[3] = { 0xE0, 0xAE, 0x95 }; @@ -265,12 +265,12 @@ static const symbol s_13_5[3] = { 0xE0, 0xAE, 0xB1 }; static const struct among a_13[6] = { -/* 0 */ { 3, s_13_0, -1, -1, 0}, -/* 1 */ { 3, s_13_1, -1, -1, 0}, -/* 2 */ { 3, s_13_2, -1, -1, 0}, -/* 3 */ { 3, s_13_3, -1, -1, 0}, -/* 4 */ { 3, s_13_4, -1, -1, 0}, -/* 5 */ { 3, s_13_5, -1, -1, 0} +{ 3, s_13_0, -1, -1, 0}, +{ 3, s_13_1, -1, -1, 0}, +{ 3, s_13_2, -1, -1, 0}, +{ 3, s_13_3, -1, -1, 0}, +{ 3, s_13_4, -1, -1, 0}, +{ 3, s_13_5, -1, -1, 0} }; static const symbol s_14_0[3] = { 0xE0, 0xAF, 0x87 }; @@ -279,9 +279,9 @@ static const symbol s_14_2[3] = { 0xE0, 0xAE, 0xBE }; static const struct among a_14[3] = { -/* 0 */ { 3, s_14_0, -1, -1, 0}, -/* 1 */ { 3, s_14_1, -1, -1, 0}, -/* 2 */ { 3, s_14_2, -1, -1, 0} +{ 3, s_14_0, -1, -1, 0}, +{ 3, s_14_1, -1, -1, 0}, +{ 3, s_14_2, -1, -1, 0} }; static const symbol s_15_0[6] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xBF }; @@ -289,8 +289,8 @@ static const symbol s_15_1[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF }; static const struct among a_15[2] = { -/* 0 */ { 6, s_15_0, -1, -1, 0}, -/* 1 */ { 6, s_15_1, -1, -1, 0} +{ 6, s_15_0, -1, -1, 0}, +{ 6, s_15_1, -1, -1, 0} }; static const symbol s_16_0[3] = { 0xE0, 0xAF, 0x80 }; @@ -304,14 +304,14 @@ static const symbol s_16_7[3] = { 0xE0, 0xAE, 0xBF }; static const struct among a_16[8] = { -/* 0 */ { 3, s_16_0, -1, -1, 0}, -/* 1 */ { 3, s_16_1, -1, -1, 0}, -/* 2 */ { 3, s_16_2, -1, -1, 0}, -/* 3 */ { 3, s_16_3, -1, -1, 0}, -/* 4 */ { 3, s_16_4, -1, -1, 0}, -/* 5 */ { 3, s_16_5, -1, -1, 0}, -/* 6 */ { 3, s_16_6, -1, -1, 0}, -/* 7 */ { 3, s_16_7, -1, -1, 0} +{ 3, s_16_0, -1, -1, 0}, +{ 3, s_16_1, -1, -1, 0}, +{ 3, s_16_2, -1, -1, 0}, +{ 3, s_16_3, -1, -1, 0}, +{ 3, s_16_4, -1, -1, 0}, +{ 3, s_16_5, -1, -1, 0}, +{ 3, s_16_6, -1, -1, 0}, +{ 3, s_16_7, -1, -1, 0} }; static const symbol s_17_0[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 }; @@ -330,19 +330,19 @@ static const symbol s_17_12[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB1, 0xE0, 0x static const struct among a_17[13] = { -/* 0 */ { 15, s_17_0, -1, -1, 0}, -/* 1 */ { 18, s_17_1, -1, -1, 0}, -/* 2 */ { 9, s_17_2, -1, -1, 0}, -/* 3 */ { 12, s_17_3, -1, -1, 0}, -/* 4 */ { 18, s_17_4, -1, -1, 0}, -/* 5 */ { 21, s_17_5, -1, -1, 0}, -/* 6 */ { 12, s_17_6, -1, -1, 0}, -/* 7 */ { 15, s_17_7, -1, -1, 0}, -/* 8 */ { 9, s_17_8, -1, -1, 0}, -/* 9 */ { 18, s_17_9, 8, -1, 0}, -/* 10 */ { 15, s_17_10, -1, -1, 0}, -/* 11 */ { 9, s_17_11, -1, -1, 0}, -/* 12 */ { 15, s_17_12, -1, -1, 0} +{ 15, s_17_0, -1, -1, 0}, +{ 18, s_17_1, -1, -1, 0}, +{ 9, s_17_2, -1, -1, 0}, +{ 12, s_17_3, -1, -1, 0}, +{ 18, s_17_4, -1, -1, 0}, +{ 21, s_17_5, -1, -1, 0}, +{ 12, s_17_6, -1, -1, 0}, +{ 15, s_17_7, -1, -1, 0}, +{ 9, s_17_8, -1, -1, 0}, +{ 18, s_17_9, 8, -1, 0}, +{ 15, s_17_10, -1, -1, 0}, +{ 9, s_17_11, -1, -1, 0}, +{ 15, s_17_12, -1, -1, 0} }; static const symbol s_18_0[3] = { 0xE0, 0xAE, 0x95 }; @@ -354,12 +354,12 @@ static const symbol s_18_5[3] = { 0xE0, 0xAE, 0xB1 }; static const struct among a_18[6] = { -/* 0 */ { 3, s_18_0, -1, -1, 0}, -/* 1 */ { 3, s_18_1, -1, -1, 0}, -/* 2 */ { 3, s_18_2, -1, -1, 0}, -/* 3 */ { 3, s_18_3, -1, -1, 0}, -/* 4 */ { 3, s_18_4, -1, -1, 0}, -/* 5 */ { 3, s_18_5, -1, -1, 0} +{ 3, s_18_0, -1, -1, 0}, +{ 3, s_18_1, -1, -1, 0}, +{ 3, s_18_2, -1, -1, 0}, +{ 3, s_18_3, -1, -1, 0}, +{ 3, s_18_4, -1, -1, 0}, +{ 3, s_18_5, -1, -1, 0} }; static const symbol s_19_0[3] = { 0xE0, 0xAE, 0x95 }; @@ -371,12 +371,12 @@ static const symbol s_19_5[3] = { 0xE0, 0xAE, 0xB1 }; static const struct among a_19[6] = { -/* 0 */ { 3, s_19_0, -1, -1, 0}, -/* 1 */ { 3, s_19_1, -1, -1, 0}, -/* 2 */ { 3, s_19_2, -1, -1, 0}, -/* 3 */ { 3, s_19_3, -1, -1, 0}, -/* 4 */ { 3, s_19_4, -1, -1, 0}, -/* 5 */ { 3, s_19_5, -1, -1, 0} +{ 3, s_19_0, -1, -1, 0}, +{ 3, s_19_1, -1, -1, 0}, +{ 3, s_19_2, -1, -1, 0}, +{ 3, s_19_3, -1, -1, 0}, +{ 3, s_19_4, -1, -1, 0}, +{ 3, s_19_5, -1, -1, 0} }; static const symbol s_20_0[3] = { 0xE0, 0xAF, 0x80 }; @@ -390,14 +390,14 @@ static const symbol s_20_7[3] = { 0xE0, 0xAE, 0xBF }; static const struct among a_20[8] = { -/* 0 */ { 3, s_20_0, -1, -1, 0}, -/* 1 */ { 3, s_20_1, -1, -1, 0}, -/* 2 */ { 3, s_20_2, -1, -1, 0}, -/* 3 */ { 3, s_20_3, -1, -1, 0}, -/* 4 */ { 3, s_20_4, -1, -1, 0}, -/* 5 */ { 3, s_20_5, -1, -1, 0}, -/* 6 */ { 3, s_20_6, -1, -1, 0}, -/* 7 */ { 3, s_20_7, -1, -1, 0} +{ 3, s_20_0, -1, -1, 0}, +{ 3, s_20_1, -1, -1, 0}, +{ 3, s_20_2, -1, -1, 0}, +{ 3, s_20_3, -1, -1, 0}, +{ 3, s_20_4, -1, -1, 0}, +{ 3, s_20_5, -1, -1, 0}, +{ 3, s_20_6, -1, -1, 0}, +{ 3, s_20_7, -1, -1, 0} }; static const symbol s_21_0[3] = { 0xE0, 0xAF, 0x80 }; @@ -411,14 +411,14 @@ static const symbol s_21_7[3] = { 0xE0, 0xAE, 0xBF }; static const struct among a_21[8] = { -/* 0 */ { 3, s_21_0, -1, -1, 0}, -/* 1 */ { 3, s_21_1, -1, -1, 0}, -/* 2 */ { 3, s_21_2, -1, -1, 0}, -/* 3 */ { 3, s_21_3, -1, -1, 0}, -/* 4 */ { 3, s_21_4, -1, -1, 0}, -/* 5 */ { 3, s_21_5, -1, -1, 0}, -/* 6 */ { 3, s_21_6, -1, -1, 0}, -/* 7 */ { 3, s_21_7, -1, -1, 0} +{ 3, s_21_0, -1, -1, 0}, +{ 3, s_21_1, -1, -1, 0}, +{ 3, s_21_2, -1, -1, 0}, +{ 3, s_21_3, -1, -1, 0}, +{ 3, s_21_4, -1, -1, 0}, +{ 3, s_21_5, -1, -1, 0}, +{ 3, s_21_6, -1, -1, 0}, +{ 3, s_21_7, -1, -1, 0} }; static const symbol s_22_0[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 }; @@ -426,8 +426,8 @@ static const symbol s_22_1[24] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8A, 0xE0, 0xA static const struct among a_22[2] = { -/* 0 */ { 9, s_22_0, -1, -1, 0}, -/* 1 */ { 24, s_22_1, -1, -1, 0} +{ 9, s_22_0, -1, -1, 0}, +{ 24, s_22_1, -1, -1, 0} }; static const symbol s_23_0[3] = { 0xE0, 0xAE, 0x85 }; @@ -445,18 +445,18 @@ static const symbol s_23_11[3] = { 0xE0, 0xAE, 0x94 }; static const struct among a_23[12] = { -/* 0 */ { 3, s_23_0, -1, -1, 0}, -/* 1 */ { 3, s_23_1, -1, -1, 0}, -/* 2 */ { 3, s_23_2, -1, -1, 0}, -/* 3 */ { 3, s_23_3, -1, -1, 0}, -/* 4 */ { 3, s_23_4, -1, -1, 0}, -/* 5 */ { 3, s_23_5, -1, -1, 0}, -/* 6 */ { 3, s_23_6, -1, -1, 0}, -/* 7 */ { 3, s_23_7, -1, -1, 0}, -/* 8 */ { 3, s_23_8, -1, -1, 0}, -/* 9 */ { 3, s_23_9, -1, -1, 0}, -/* 10 */ { 3, s_23_10, -1, -1, 0}, -/* 11 */ { 3, s_23_11, -1, -1, 0} +{ 3, s_23_0, -1, -1, 0}, +{ 3, s_23_1, -1, -1, 0}, +{ 3, s_23_2, -1, -1, 0}, +{ 3, s_23_3, -1, -1, 0}, +{ 3, s_23_4, -1, -1, 0}, +{ 3, s_23_5, -1, -1, 0}, +{ 3, s_23_6, -1, -1, 0}, +{ 3, s_23_7, -1, -1, 0}, +{ 3, s_23_8, -1, -1, 0}, +{ 3, s_23_9, -1, -1, 0}, +{ 3, s_23_10, -1, -1, 0}, +{ 3, s_23_11, -1, -1, 0} }; static const symbol s_24_0[3] = { 0xE0, 0xAF, 0x80 }; @@ -470,14 +470,14 @@ static const symbol s_24_7[3] = { 0xE0, 0xAE, 0xBF }; static const struct among a_24[8] = { -/* 0 */ { 3, s_24_0, -1, -1, 0}, -/* 1 */ { 3, s_24_1, -1, -1, 0}, -/* 2 */ { 3, s_24_2, -1, -1, 0}, -/* 3 */ { 3, s_24_3, -1, -1, 0}, -/* 4 */ { 3, s_24_4, -1, -1, 0}, -/* 5 */ { 3, s_24_5, -1, -1, 0}, -/* 6 */ { 3, s_24_6, -1, -1, 0}, -/* 7 */ { 3, s_24_7, -1, -1, 0} +{ 3, s_24_0, -1, -1, 0}, +{ 3, s_24_1, -1, -1, 0}, +{ 3, s_24_2, -1, -1, 0}, +{ 3, s_24_3, -1, -1, 0}, +{ 3, s_24_4, -1, -1, 0}, +{ 3, s_24_5, -1, -1, 0}, +{ 3, s_24_6, -1, -1, 0}, +{ 3, s_24_7, -1, -1, 0} }; static const symbol s_25_0[18] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D }; @@ -489,12 +489,12 @@ static const symbol s_25_5[9] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE static const struct among a_25[6] = { -/* 0 */ { 18, s_25_0, -1, -1, 0}, -/* 1 */ { 21, s_25_1, -1, -1, 0}, -/* 2 */ { 12, s_25_2, -1, -1, 0}, -/* 3 */ { 15, s_25_3, -1, -1, 0}, -/* 4 */ { 18, s_25_4, -1, -1, 0}, -/* 5 */ { 9, s_25_5, -1, -1, 0} +{ 18, s_25_0, -1, -1, 0}, +{ 21, s_25_1, -1, -1, 0}, +{ 12, s_25_2, -1, -1, 0}, +{ 15, s_25_3, -1, -1, 0}, +{ 18, s_25_4, -1, -1, 0}, +{ 9, s_25_5, -1, -1, 0} }; static const symbol s_0[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8B }; @@ -654,76 +654,76 @@ static const symbol s_153[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81 }; static const symbol s_154[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 }; static const symbol s_155[] = { 0xE0, 0xAF, 0x8D }; -static int r_has_min_length(struct SN_env * z) { /* forwardmode */ - if (!(len_utf8(z->p) > 4)) return 0; /* $( > ), line 100 */ +static int r_has_min_length(struct SN_env * z) { + if (!(len_utf8(z->p) > 4)) return 0; return 1; } -static int r_fix_va_start(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* or, line 104 */ - { int c2 = z->c; /* and, line 104 */ - { int c3 = z->c; /* try, line 104 */ - if (!(eq_s(z, 6, s_0))) { z->c = c3; goto lab2; } /* literal, line 104 */ +static int r_fix_va_start(struct SN_env * z) { + { int c1 = z->c; + { int c2 = z->c; + { int c3 = z->c; + if (!(eq_s(z, 6, s_0))) { z->c = c3; goto lab2; } lab2: ; } z->c = c2; - z->bra = z->c; /* [, line 104 */ + z->bra = z->c; } - if (!(eq_s(z, 6, s_1))) goto lab1; /* literal, line 104 */ - z->ket = z->c; /* ], line 104 */ - { int ret = slice_from_s(z, 3, s_2); /* <-, line 104 */ + if (!(eq_s(z, 6, s_1))) goto lab1; + z->ket = z->c; + { int ret = slice_from_s(z, 3, s_2); if (ret < 0) return ret; } goto lab0; lab1: z->c = c1; - { int c4 = z->c; /* and, line 105 */ - { int c5 = z->c; /* try, line 105 */ - if (!(eq_s(z, 6, s_3))) { z->c = c5; goto lab4; } /* literal, line 105 */ + { int c4 = z->c; + { int c5 = z->c; + if (!(eq_s(z, 6, s_3))) { z->c = c5; goto lab4; } lab4: ; } z->c = c4; - z->bra = z->c; /* [, line 105 */ + z->bra = z->c; } - if (!(eq_s(z, 6, s_4))) goto lab3; /* literal, line 105 */ - z->ket = z->c; /* ], line 105 */ - { int ret = slice_from_s(z, 3, s_5); /* <-, line 105 */ + if (!(eq_s(z, 6, s_4))) goto lab3; + z->ket = z->c; + { int ret = slice_from_s(z, 3, s_5); if (ret < 0) return ret; } goto lab0; lab3: z->c = c1; - { int c6 = z->c; /* and, line 106 */ - { int c7 = z->c; /* try, line 106 */ - if (!(eq_s(z, 6, s_6))) { z->c = c7; goto lab6; } /* literal, line 106 */ + { int c6 = z->c; + { int c7 = z->c; + if (!(eq_s(z, 6, s_6))) { z->c = c7; goto lab6; } lab6: ; } z->c = c6; - z->bra = z->c; /* [, line 106 */ + z->bra = z->c; } - if (!(eq_s(z, 6, s_7))) goto lab5; /* literal, line 106 */ - z->ket = z->c; /* ], line 106 */ - { int ret = slice_from_s(z, 3, s_8); /* <-, line 106 */ + if (!(eq_s(z, 6, s_7))) goto lab5; + z->ket = z->c; + { int ret = slice_from_s(z, 3, s_8); if (ret < 0) return ret; } goto lab0; lab5: z->c = c1; - { int c8 = z->c; /* and, line 107 */ - { int c9 = z->c; /* try, line 107 */ - if (!(eq_s(z, 6, s_9))) { z->c = c9; goto lab7; } /* literal, line 107 */ + { int c8 = z->c; + { int c9 = z->c; + if (!(eq_s(z, 6, s_9))) { z->c = c9; goto lab7; } lab7: ; } z->c = c8; - z->bra = z->c; /* [, line 107 */ + z->bra = z->c; } - if (!(eq_s(z, 6, s_10))) return 0; /* literal, line 107 */ - z->ket = z->c; /* ], line 107 */ - { int ret = slice_from_s(z, 3, s_11); /* <-, line 107 */ + if (!(eq_s(z, 6, s_10))) return 0; + z->ket = z->c; + { int ret = slice_from_s(z, 3, s_11); if (ret < 0) return ret; } } @@ -731,12 +731,11 @@ static int r_fix_va_start(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_fix_endings(struct SN_env * z) { /* forwardmode */ - { int c1 = z->c; /* do, line 111 */ -/* repeat, line 111 */ - - while(1) { int c2 = z->c; - { int ret = r_fix_ending(z); /* call fix_ending, line 111 */ +static int r_fix_endings(struct SN_env * z) { + { int c1 = z->c; + while(1) { + int c2 = z->c; + { int ret = r_fix_ending(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } @@ -750,17 +749,17 @@ static int r_fix_endings(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_remove_question_prefixes(struct SN_env * z) { /* forwardmode */ - z->bra = z->c; /* [, line 115 */ - if (!(eq_s(z, 3, s_12))) return 0; /* literal, line 115 */ - if (!(find_among(z, a_0, 10))) return 0; /* among, line 115 */ - if (!(eq_s(z, 3, s_13))) return 0; /* literal, line 115 */ - z->ket = z->c; /* ], line 115 */ - { int ret = slice_del(z); /* delete, line 115 */ +static int r_remove_question_prefixes(struct SN_env * z) { + z->bra = z->c; + if (!(eq_s(z, 3, s_12))) return 0; + if (!(find_among(z, a_0, 10))) return 0; + if (!(eq_s(z, 3, s_13))) return 0; + z->ket = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int c1 = z->c; /* do, line 116 */ - { int ret = r_fix_va_start(z); /* call fix_va_start, line 116 */ + { int c1 = z->c; + { int ret = r_fix_va_start(z); if (ret < 0) return ret; } z->c = c1; @@ -768,232 +767,232 @@ static int r_remove_question_prefixes(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_fix_ending(struct SN_env * z) { /* forwardmode */ - if (!(len_utf8(z->p) > 3)) return 0; /* $( > ), line 121 */ - z->lb = z->c; z->c = z->l; /* backwards, line 122 */ +static int r_fix_ending(struct SN_env * z) { + if (!(len_utf8(z->p) > 3)) return 0; + z->lb = z->c; z->c = z->l; - { int m1 = z->l - z->c; (void)m1; /* or, line 124 */ - z->ket = z->c; /* [, line 123 */ - if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 164)) goto lab1; /* among, line 123 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 164)) goto lab1; if (!(find_among_b(z, a_1, 3))) goto lab1; - z->bra = z->c; /* ], line 123 */ - { int ret = slice_del(z); /* delete, line 123 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m1; - z->ket = z->c; /* [, line 125 */ - if (!(eq_s_b(z, 6, s_14))) goto lab2; /* literal, line 125 */ - { int m_test2 = z->l - z->c; /* test, line 125 */ - if (!(find_among_b(z, a_2, 3))) goto lab2; /* among, line 125 */ + z->ket = z->c; + if (!(eq_s_b(z, 6, s_14))) goto lab2; + { int m_test2 = z->l - z->c; + if (!(find_among_b(z, a_2, 3))) goto lab2; z->c = z->l - m_test2; } - z->bra = z->c; /* ], line 125 */ - { int ret = slice_del(z); /* delete, line 125 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab0; lab2: z->c = z->l - m1; - z->ket = z->c; /* [, line 127 */ - { int m3 = z->l - z->c; (void)m3; /* or, line 127 */ - if (!(eq_s_b(z, 12, s_15))) goto lab5; /* literal, line 127 */ + z->ket = z->c; + { int m3 = z->l - z->c; (void)m3; + if (!(eq_s_b(z, 12, s_15))) goto lab5; goto lab4; lab5: z->c = z->l - m3; - if (!(eq_s_b(z, 12, s_16))) goto lab3; /* literal, line 127 */ + if (!(eq_s_b(z, 12, s_16))) goto lab3; } lab4: - z->bra = z->c; /* ], line 127 */ - { int ret = slice_from_s(z, 6, s_17); /* <-, line 127 */ + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_17); if (ret < 0) return ret; } goto lab0; lab3: z->c = z->l - m1; - z->ket = z->c; /* [, line 129 */ - if (!(eq_s_b(z, 12, s_18))) goto lab6; /* literal, line 129 */ - z->bra = z->c; /* ], line 129 */ - { int ret = slice_from_s(z, 6, s_19); /* <-, line 129 */ + z->ket = z->c; + if (!(eq_s_b(z, 12, s_18))) goto lab6; + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_19); if (ret < 0) return ret; } goto lab0; lab6: z->c = z->l - m1; - z->ket = z->c; /* [, line 132 */ - if (!(eq_s_b(z, 12, s_20))) goto lab7; /* literal, line 132 */ - z->bra = z->c; /* ], line 132 */ - { int ret = slice_from_s(z, 6, s_21); /* <-, line 132 */ + z->ket = z->c; + if (!(eq_s_b(z, 12, s_20))) goto lab7; + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_21); if (ret < 0) return ret; } goto lab0; lab7: z->c = z->l - m1; - z->ket = z->c; /* [, line 134 */ - if (!(eq_s_b(z, 12, s_22))) goto lab8; /* literal, line 134 */ - z->bra = z->c; /* ], line 134 */ - { int ret = slice_from_s(z, 6, s_23); /* <-, line 134 */ + z->ket = z->c; + if (!(eq_s_b(z, 12, s_22))) goto lab8; + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_23); if (ret < 0) return ret; } goto lab0; lab8: z->c = z->l - m1; - if (!(z->B[1])) goto lab9; /* Boolean test found_vetrumai_urupu, line 136 */ - z->ket = z->c; /* [, line 136 */ - if (!(eq_s_b(z, 12, s_24))) goto lab9; /* literal, line 136 */ - { int m_test4 = z->l - z->c; /* test, line 136 */ - { int m5 = z->l - z->c; (void)m5; /* not, line 136 */ - if (!(eq_s_b(z, 3, s_25))) goto lab10; /* literal, line 136 */ + if (!(z->I[0])) goto lab9; + z->ket = z->c; + if (!(eq_s_b(z, 12, s_24))) goto lab9; + { int m_test4 = z->l - z->c; + { int m5 = z->l - z->c; (void)m5; + if (!(eq_s_b(z, 3, s_25))) goto lab10; goto lab9; lab10: z->c = z->l - m5; } z->c = z->l - m_test4; } - z->bra = z->c; /* ], line 136 */ - { int ret = slice_from_s(z, 6, s_26); /* <-, line 136 */ + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_26); if (ret < 0) return ret; } - z->bra = z->c; /* ], line 136 */ + z->bra = z->c; goto lab0; lab9: z->c = z->l - m1; - z->ket = z->c; /* [, line 138 */ - { int m6 = z->l - z->c; (void)m6; /* or, line 138 */ - if (!(eq_s_b(z, 9, s_27))) goto lab13; /* literal, line 138 */ + z->ket = z->c; + { int m6 = z->l - z->c; (void)m6; + if (!(eq_s_b(z, 9, s_27))) goto lab13; goto lab12; lab13: z->c = z->l - m6; - if (!(eq_s_b(z, 15, s_28))) goto lab11; /* literal, line 138 */ + if (!(eq_s_b(z, 15, s_28))) goto lab11; } lab12: - z->bra = z->c; /* ], line 138 */ - { int ret = slice_from_s(z, 3, s_29); /* <-, line 138 */ + z->bra = z->c; + { int ret = slice_from_s(z, 3, s_29); if (ret < 0) return ret; } goto lab0; lab11: z->c = z->l - m1; - z->ket = z->c; /* [, line 140 */ - if (!(eq_s_b(z, 3, s_30))) goto lab14; /* literal, line 140 */ - if (!(find_among_b(z, a_3, 6))) goto lab14; /* among, line 140 */ - if (!(eq_s_b(z, 3, s_31))) goto lab14; /* literal, line 140 */ - if (!(find_among_b(z, a_4, 6))) goto lab14; /* among, line 140 */ - z->bra = z->c; /* ], line 140 */ - { int ret = slice_del(z); /* delete, line 140 */ + z->ket = z->c; + if (!(eq_s_b(z, 3, s_30))) goto lab14; + if (!(find_among_b(z, a_3, 6))) goto lab14; + if (!(eq_s_b(z, 3, s_31))) goto lab14; + if (!(find_among_b(z, a_4, 6))) goto lab14; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab0; lab14: z->c = z->l - m1; - z->ket = z->c; /* [, line 142 */ - if (!(eq_s_b(z, 9, s_32))) goto lab15; /* literal, line 142 */ - z->bra = z->c; /* ], line 142 */ - { int ret = slice_from_s(z, 3, s_33); /* <-, line 142 */ + z->ket = z->c; + if (!(eq_s_b(z, 9, s_32))) goto lab15; + z->bra = z->c; + { int ret = slice_from_s(z, 3, s_33); if (ret < 0) return ret; } goto lab0; lab15: z->c = z->l - m1; - z->ket = z->c; /* [, line 144 */ - if (!(eq_s_b(z, 3, s_34))) goto lab16; /* literal, line 144 */ - if (!(find_among_b(z, a_5, 6))) goto lab16; /* among, line 144 */ - z->bra = z->c; /* ], line 144 */ - { int ret = slice_del(z); /* delete, line 144 */ + z->ket = z->c; + if (!(eq_s_b(z, 3, s_34))) goto lab16; + if (!(find_among_b(z, a_5, 6))) goto lab16; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab0; lab16: z->c = z->l - m1; - z->ket = z->c; /* [, line 146 */ - if (!(eq_s_b(z, 3, s_35))) goto lab17; /* literal, line 146 */ - { int m7 = z->l - z->c; (void)m7; /* or, line 146 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((4030464 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab19; /* among, line 146 */ + z->ket = z->c; + if (!(eq_s_b(z, 3, s_35))) goto lab17; + { int m7 = z->l - z->c; (void)m7; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((4030464 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab19; if (!(find_among_b(z, a_6, 6))) goto lab19; goto lab18; lab19: z->c = z->l - m7; - if (!(find_among_b(z, a_7, 6))) goto lab17; /* among, line 146 */ + if (!(find_among_b(z, a_7, 6))) goto lab17; } lab18: - if (!(eq_s_b(z, 3, s_36))) goto lab17; /* literal, line 146 */ - z->bra = z->c; /* ], line 146 */ - { int ret = slice_from_s(z, 3, s_37); /* <-, line 146 */ + if (!(eq_s_b(z, 3, s_36))) goto lab17; + z->bra = z->c; + { int ret = slice_from_s(z, 3, s_37); if (ret < 0) return ret; } goto lab0; lab17: z->c = z->l - m1; - z->ket = z->c; /* [, line 148 */ - if (!(find_among_b(z, a_8, 3))) goto lab20; /* among, line 148 */ - z->bra = z->c; /* ], line 148 */ - { int ret = slice_del(z); /* delete, line 148 */ + z->ket = z->c; + if (!(find_among_b(z, a_8, 3))) goto lab20; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab0; lab20: z->c = z->l - m1; - z->ket = z->c; /* [, line 150 */ - if (!(eq_s_b(z, 6, s_38))) goto lab21; /* literal, line 150 */ - { int m_test8 = z->l - z->c; /* test, line 150 */ - { int m9 = z->l - z->c; (void)m9; /* not, line 150 */ - if (!(find_among_b(z, a_9, 8))) goto lab22; /* among, line 150 */ + z->ket = z->c; + if (!(eq_s_b(z, 6, s_38))) goto lab21; + { int m_test8 = z->l - z->c; + { int m9 = z->l - z->c; (void)m9; + if (!(find_among_b(z, a_9, 8))) goto lab22; goto lab21; lab22: z->c = z->l - m9; } z->c = z->l - m_test8; } - z->bra = z->c; /* ], line 150 */ - { int ret = slice_del(z); /* delete, line 150 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab0; lab21: z->c = z->l - m1; - z->ket = z->c; /* [, line 152 */ - if (!(eq_s_b(z, 6, s_39))) goto lab23; /* literal, line 152 */ - { int m_test10 = z->l - z->c; /* test, line 152 */ - { int m11 = z->l - z->c; (void)m11; /* not, line 152 */ - if (!(eq_s_b(z, 3, s_40))) goto lab24; /* literal, line 152 */ + z->ket = z->c; + if (!(eq_s_b(z, 6, s_39))) goto lab23; + { int m_test10 = z->l - z->c; + { int m11 = z->l - z->c; (void)m11; + if (!(eq_s_b(z, 3, s_40))) goto lab24; goto lab23; lab24: z->c = z->l - m11; } z->c = z->l - m_test10; } - z->bra = z->c; /* ], line 152 */ - { int ret = slice_from_s(z, 6, s_41); /* <-, line 152 */ + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_41); if (ret < 0) return ret; } goto lab0; lab23: z->c = z->l - m1; - z->ket = z->c; /* [, line 154 */ - if (!(eq_s_b(z, 6, s_42))) goto lab25; /* literal, line 154 */ - z->bra = z->c; /* ], line 154 */ - { int ret = slice_del(z); /* delete, line 154 */ + z->ket = z->c; + if (!(eq_s_b(z, 6, s_42))) goto lab25; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab0; lab25: z->c = z->l - m1; - z->ket = z->c; /* [, line 156 */ - if (!(eq_s_b(z, 3, s_43))) return 0; /* literal, line 156 */ - { int m_test12 = z->l - z->c; /* test, line 156 */ - { int m13 = z->l - z->c; (void)m13; /* or, line 156 */ - if (!(find_among_b(z, a_10, 8))) goto lab27; /* among, line 156 */ + z->ket = z->c; + if (!(eq_s_b(z, 3, s_43))) return 0; + { int m_test12 = z->l - z->c; + { int m13 = z->l - z->c; (void)m13; + if (!(find_among_b(z, a_10, 8))) goto lab27; goto lab26; lab27: z->c = z->l - m13; - if (!(eq_s_b(z, 3, s_44))) return 0; /* literal, line 156 */ + if (!(eq_s_b(z, 3, s_44))) return 0; } lab26: z->c = z->l - m_test12; } - z->bra = z->c; /* ], line 156 */ - { int ret = slice_del(z); /* delete, line 156 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } } @@ -1002,20 +1001,20 @@ static int r_fix_ending(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_remove_pronoun_prefixes(struct SN_env * z) { /* forwardmode */ - z->B[0] = 0; /* unset found_a_match, line 161 */ - z->bra = z->c; /* [, line 162 */ - if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 4 || !((672 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0; /* among, line 162 */ +static int r_remove_pronoun_prefixes(struct SN_env * z) { + z->I[1] = 0; + z->bra = z->c; + if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 4 || !((672 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0; if (!(find_among(z, a_11, 3))) return 0; - if (!(find_among(z, a_12, 10))) return 0; /* among, line 162 */ - if (!(eq_s(z, 3, s_45))) return 0; /* literal, line 162 */ - z->ket = z->c; /* ], line 162 */ - { int ret = slice_del(z); /* delete, line 162 */ + if (!(find_among(z, a_12, 10))) return 0; + if (!(eq_s(z, 3, s_45))) return 0; + z->ket = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 1; /* set found_a_match, line 163 */ - { int c1 = z->c; /* do, line 164 */ - { int ret = r_fix_va_start(z); /* call fix_va_start, line 164 */ + z->I[1] = 1; + { int c1 = z->c; + { int ret = r_fix_va_start(z); if (ret < 0) return ret; } z->c = c1; @@ -1023,122 +1022,122 @@ static int r_remove_pronoun_prefixes(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_remove_plural_suffix(struct SN_env * z) { /* forwardmode */ - z->B[0] = 0; /* unset found_a_match, line 168 */ - z->lb = z->c; z->c = z->l; /* backwards, line 169 */ +static int r_remove_plural_suffix(struct SN_env * z) { + z->I[1] = 0; + z->lb = z->c; z->c = z->l; - { int m1 = z->l - z->c; (void)m1; /* or, line 170 */ - z->ket = z->c; /* [, line 170 */ - if (!(eq_s_b(z, 18, s_46))) goto lab1; /* literal, line 170 */ - { int m_test2 = z->l - z->c; /* test, line 170 */ - { int m3 = z->l - z->c; (void)m3; /* not, line 170 */ - if (!(find_among_b(z, a_13, 6))) goto lab2; /* among, line 170 */ + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (!(eq_s_b(z, 18, s_46))) goto lab1; + { int m_test2 = z->l - z->c; + { int m3 = z->l - z->c; (void)m3; + if (!(find_among_b(z, a_13, 6))) goto lab2; goto lab1; lab2: z->c = z->l - m3; } z->c = z->l - m_test2; } - z->bra = z->c; /* ], line 170 */ - { int ret = slice_from_s(z, 3, s_47); /* <-, line 170 */ + z->bra = z->c; + { int ret = slice_from_s(z, 3, s_47); if (ret < 0) return ret; } goto lab0; lab1: z->c = z->l - m1; - z->ket = z->c; /* [, line 171 */ - if (!(eq_s_b(z, 15, s_48))) goto lab3; /* literal, line 171 */ - z->bra = z->c; /* ], line 171 */ - { int ret = slice_from_s(z, 6, s_49); /* <-, line 171 */ + z->ket = z->c; + if (!(eq_s_b(z, 15, s_48))) goto lab3; + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_49); if (ret < 0) return ret; } goto lab0; lab3: z->c = z->l - m1; - z->ket = z->c; /* [, line 172 */ - if (!(eq_s_b(z, 15, s_50))) goto lab4; /* literal, line 172 */ - z->bra = z->c; /* ], line 172 */ - { int ret = slice_from_s(z, 6, s_51); /* <-, line 172 */ + z->ket = z->c; + if (!(eq_s_b(z, 15, s_50))) goto lab4; + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_51); if (ret < 0) return ret; } goto lab0; lab4: z->c = z->l - m1; - z->ket = z->c; /* [, line 173 */ - if (!(eq_s_b(z, 9, s_52))) return 0; /* literal, line 173 */ - z->bra = z->c; /* ], line 173 */ - { int ret = slice_del(z); /* delete, line 173 */ + z->ket = z->c; + if (!(eq_s_b(z, 9, s_52))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } } lab0: - z->B[0] = 1; /* set found_a_match, line 174 */ + z->I[1] = 1; z->c = z->lb; return 1; } -static int r_remove_question_suffixes(struct SN_env * z) { /* forwardmode */ - { int ret = r_has_min_length(z); /* call has_min_length, line 179 */ +static int r_remove_question_suffixes(struct SN_env * z) { + { int ret = r_has_min_length(z); if (ret <= 0) return ret; } - z->B[0] = 0; /* unset found_a_match, line 180 */ - z->lb = z->c; z->c = z->l; /* backwards, line 181 */ - - { int m1 = z->l - z->c; (void)m1; /* do, line 182 */ - z->ket = z->c; /* [, line 183 */ - if (!(find_among_b(z, a_14, 3))) goto lab0; /* among, line 183 */ - z->bra = z->c; /* ], line 183 */ - { int ret = slice_from_s(z, 3, s_53); /* <-, line 183 */ + z->I[1] = 0; + z->lb = z->c; z->c = z->l; + + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + if (!(find_among_b(z, a_14, 3))) goto lab0; + z->bra = z->c; + { int ret = slice_from_s(z, 3, s_53); if (ret < 0) return ret; } - z->B[0] = 1; /* set found_a_match, line 184 */ + z->I[1] = 1; lab0: z->c = z->l - m1; } z->c = z->lb; - /* do, line 187 */ - { int ret = r_fix_endings(z); /* call fix_endings, line 187 */ + + { int ret = r_fix_endings(z); if (ret < 0) return ret; } return 1; } -static int r_remove_command_suffixes(struct SN_env * z) { /* forwardmode */ - { int ret = r_has_min_length(z); /* call has_min_length, line 191 */ +static int r_remove_command_suffixes(struct SN_env * z) { + { int ret = r_has_min_length(z); if (ret <= 0) return ret; } - z->B[0] = 0; /* unset found_a_match, line 192 */ - z->lb = z->c; z->c = z->l; /* backwards, line 193 */ + z->I[1] = 0; + z->lb = z->c; z->c = z->l; - z->ket = z->c; /* [, line 194 */ - if (z->c - 5 <= z->lb || z->p[z->c - 1] != 191) return 0; /* among, line 194 */ + z->ket = z->c; + if (z->c - 5 <= z->lb || z->p[z->c - 1] != 191) return 0; if (!(find_among_b(z, a_15, 2))) return 0; - z->bra = z->c; /* ], line 194 */ - { int ret = slice_del(z); /* delete, line 194 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 1; /* set found_a_match, line 195 */ + z->I[1] = 1; z->c = z->lb; return 1; } -static int r_remove_um(struct SN_env * z) { /* forwardmode */ - z->B[0] = 0; /* unset found_a_match, line 200 */ - { int ret = r_has_min_length(z); /* call has_min_length, line 201 */ +static int r_remove_um(struct SN_env * z) { + z->I[1] = 0; + { int ret = r_has_min_length(z); if (ret <= 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 202 */ + z->lb = z->c; z->c = z->l; - z->ket = z->c; /* [, line 202 */ - if (!(eq_s_b(z, 9, s_54))) return 0; /* literal, line 202 */ - z->bra = z->c; /* ], line 202 */ - { int ret = slice_from_s(z, 3, s_55); /* <-, line 202 */ + z->ket = z->c; + if (!(eq_s_b(z, 9, s_54))) return 0; + z->bra = z->c; + { int ret = slice_from_s(z, 3, s_55); if (ret < 0) return ret; } - z->B[0] = 1; /* set found_a_match, line 203 */ + z->I[1] = 1; z->c = z->lb; - { int c1 = z->c; /* do, line 205 */ - { int ret = r_fix_ending(z); /* call fix_ending, line 205 */ + { int c1 = z->c; + { int ret = r_fix_ending(z); if (ret < 0) return ret; } z->c = c1; @@ -1146,65 +1145,65 @@ static int r_remove_um(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_remove_common_word_endings(struct SN_env * z) { /* forwardmode */ - z->B[0] = 0; /* unset found_a_match, line 212 */ - { int ret = r_has_min_length(z); /* call has_min_length, line 213 */ +static int r_remove_common_word_endings(struct SN_env * z) { + z->I[1] = 0; + { int ret = r_has_min_length(z); if (ret <= 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 214 */ + z->lb = z->c; z->c = z->l; - { int m1 = z->l - z->c; (void)m1; /* or, line 231 */ - { int m_test2 = z->l - z->c; /* test, line 215 */ - z->ket = z->c; /* [, line 215 */ - { int m3 = z->l - z->c; (void)m3; /* or, line 215 */ - if (!(eq_s_b(z, 12, s_56))) goto lab3; /* literal, line 215 */ + { int m1 = z->l - z->c; (void)m1; + { int m_test2 = z->l - z->c; + z->ket = z->c; + { int m3 = z->l - z->c; (void)m3; + if (!(eq_s_b(z, 12, s_56))) goto lab3; goto lab2; lab3: z->c = z->l - m3; - if (!(eq_s_b(z, 15, s_57))) goto lab4; /* literal, line 216 */ + if (!(eq_s_b(z, 15, s_57))) goto lab4; goto lab2; lab4: z->c = z->l - m3; - if (!(eq_s_b(z, 12, s_58))) goto lab5; /* literal, line 217 */ + if (!(eq_s_b(z, 12, s_58))) goto lab5; goto lab2; lab5: z->c = z->l - m3; - if (!(eq_s_b(z, 15, s_59))) goto lab6; /* literal, line 218 */ + if (!(eq_s_b(z, 15, s_59))) goto lab6; goto lab2; lab6: z->c = z->l - m3; - if (!(eq_s_b(z, 9, s_60))) goto lab7; /* literal, line 219 */ + if (!(eq_s_b(z, 9, s_60))) goto lab7; goto lab2; lab7: z->c = z->l - m3; - if (!(eq_s_b(z, 12, s_61))) goto lab8; /* literal, line 220 */ + if (!(eq_s_b(z, 12, s_61))) goto lab8; goto lab2; lab8: z->c = z->l - m3; - if (!(eq_s_b(z, 15, s_62))) goto lab9; /* literal, line 221 */ + if (!(eq_s_b(z, 15, s_62))) goto lab9; goto lab2; lab9: z->c = z->l - m3; - if (!(eq_s_b(z, 12, s_63))) goto lab10; /* literal, line 222 */ + if (!(eq_s_b(z, 12, s_63))) goto lab10; goto lab2; lab10: z->c = z->l - m3; - if (!(eq_s_b(z, 12, s_64))) goto lab11; /* literal, line 223 */ + if (!(eq_s_b(z, 12, s_64))) goto lab11; goto lab2; lab11: z->c = z->l - m3; - if (!(eq_s_b(z, 9, s_65))) goto lab12; /* literal, line 224 */ + if (!(eq_s_b(z, 9, s_65))) goto lab12; goto lab2; lab12: z->c = z->l - m3; - if (!(eq_s_b(z, 15, s_66))) goto lab13; /* literal, line 225 */ + if (!(eq_s_b(z, 15, s_66))) goto lab13; goto lab2; lab13: z->c = z->l - m3; - if (!(eq_s_b(z, 9, s_67))) goto lab14; /* literal, line 226 */ - { int m_test4 = z->l - z->c; /* test, line 226 */ - { int m5 = z->l - z->c; (void)m5; /* not, line 226 */ - if (!(find_among_b(z, a_16, 8))) goto lab15; /* among, line 226 */ + if (!(eq_s_b(z, 9, s_67))) goto lab14; + { int m_test4 = z->l - z->c; + { int m5 = z->l - z->c; (void)m5; + if (!(find_among_b(z, a_16, 8))) goto lab15; goto lab14; lab15: z->c = z->l - m5; @@ -1214,57 +1213,57 @@ static int r_remove_common_word_endings(struct SN_env * z) { /* forwardmode */ goto lab2; lab14: z->c = z->l - m3; - if (!(eq_s_b(z, 6, s_68))) goto lab16; /* literal, line 227 */ + if (!(eq_s_b(z, 6, s_68))) goto lab16; goto lab2; lab16: z->c = z->l - m3; - if (!(eq_s_b(z, 9, s_69))) goto lab1; /* literal, line 228 */ + if (!(eq_s_b(z, 9, s_69))) goto lab1; } lab2: - z->bra = z->c; /* ], line 228 */ - { int ret = slice_from_s(z, 3, s_70); /* <-, line 228 */ + z->bra = z->c; + { int ret = slice_from_s(z, 3, s_70); if (ret < 0) return ret; } - z->B[0] = 1; /* set found_a_match, line 229 */ + z->I[1] = 1; z->c = z->l - m_test2; } goto lab0; lab1: z->c = z->l - m1; - { int m_test6 = z->l - z->c; /* test, line 232 */ - z->ket = z->c; /* [, line 232 */ - if (!(find_among_b(z, a_17, 13))) return 0; /* among, line 232 */ - z->bra = z->c; /* ], line 245 */ - { int ret = slice_del(z); /* delete, line 245 */ + { int m_test6 = z->l - z->c; + z->ket = z->c; + if (!(find_among_b(z, a_17, 13))) return 0; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 1; /* set found_a_match, line 246 */ + z->I[1] = 1; z->c = z->l - m_test6; } } lab0: z->c = z->lb; - /* do, line 249 */ - { int ret = r_fix_endings(z); /* call fix_endings, line 249 */ + + { int ret = r_fix_endings(z); if (ret < 0) return ret; } return 1; } -static int r_remove_vetrumai_urupukal(struct SN_env * z) { /* forwardmode */ - z->B[0] = 0; /* unset found_a_match, line 253 */ - z->B[1] = 0; /* unset found_vetrumai_urupu, line 254 */ - { int ret = r_has_min_length(z); /* call has_min_length, line 255 */ +static int r_remove_vetrumai_urupukal(struct SN_env * z) { + z->I[1] = 0; + z->I[0] = 0; + { int ret = r_has_min_length(z); if (ret <= 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 256 */ - - { int m1 = z->l - z->c; (void)m1; /* or, line 259 */ - { int m_test2 = z->l - z->c; /* test, line 258 */ - z->ket = z->c; /* [, line 258 */ - if (!(eq_s_b(z, 6, s_71))) goto lab1; /* literal, line 258 */ - z->bra = z->c; /* ], line 258 */ - { int ret = slice_del(z); /* delete, line 258 */ + z->lb = z->c; z->c = z->l; + + { int m1 = z->l - z->c; (void)m1; + { int m_test2 = z->l - z->c; + z->ket = z->c; + if (!(eq_s_b(z, 6, s_71))) goto lab1; + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } z->c = z->l - m_test2; @@ -1272,20 +1271,20 @@ static int r_remove_vetrumai_urupukal(struct SN_env * z) { /* forwardmode */ goto lab0; lab1: z->c = z->l - m1; - { int m_test3 = z->l - z->c; /* test, line 260 */ - z->ket = z->c; /* [, line 260 */ - { int m4 = z->l - z->c; (void)m4; /* or, line 261 */ - { int m5 = z->l - z->c; (void)m5; /* or, line 260 */ - if (!(eq_s_b(z, 9, s_72))) goto lab6; /* literal, line 260 */ + { int m_test3 = z->l - z->c; + z->ket = z->c; + { int m4 = z->l - z->c; (void)m4; + { int m5 = z->l - z->c; (void)m5; + if (!(eq_s_b(z, 9, s_72))) goto lab6; goto lab5; lab6: z->c = z->l - m5; - if (!(eq_s_b(z, 3, s_73))) goto lab4; /* literal, line 261 */ + if (!(eq_s_b(z, 3, s_73))) goto lab4; } lab5: - { int m_test6 = z->l - z->c; /* test, line 261 */ - { int m7 = z->l - z->c; (void)m7; /* not, line 261 */ - if (!(find_among_b(z, a_18, 6))) goto lab7; /* among, line 261 */ + { int m_test6 = z->l - z->c; + { int m7 = z->l - z->c; (void)m7; + if (!(find_among_b(z, a_18, 6))) goto lab7; goto lab4; lab7: z->c = z->l - m7; @@ -1295,16 +1294,16 @@ static int r_remove_vetrumai_urupukal(struct SN_env * z) { /* forwardmode */ goto lab3; lab4: z->c = z->l - m4; - if (!(eq_s_b(z, 3, s_74))) goto lab2; /* literal, line 262 */ - { int m_test8 = z->l - z->c; /* test, line 262 */ - if (!(find_among_b(z, a_19, 6))) goto lab2; /* among, line 262 */ - if (!(eq_s_b(z, 3, s_75))) goto lab2; /* literal, line 262 */ + if (!(eq_s_b(z, 3, s_74))) goto lab2; + { int m_test8 = z->l - z->c; + if (!(find_among_b(z, a_19, 6))) goto lab2; + if (!(eq_s_b(z, 3, s_75))) goto lab2; z->c = z->l - m_test8; } } lab3: - z->bra = z->c; /* ], line 263 */ - { int ret = slice_from_s(z, 3, s_76); /* <-, line 263 */ + z->bra = z->c; + { int ret = slice_from_s(z, 3, s_76); if (ret < 0) return ret; } z->c = z->l - m_test3; @@ -1312,29 +1311,29 @@ static int r_remove_vetrumai_urupukal(struct SN_env * z) { /* forwardmode */ goto lab0; lab2: z->c = z->l - m1; - { int m_test9 = z->l - z->c; /* test, line 266 */ - z->ket = z->c; /* [, line 266 */ - { int m10 = z->l - z->c; (void)m10; /* or, line 267 */ - if (!(eq_s_b(z, 9, s_77))) goto lab10; /* literal, line 267 */ + { int m_test9 = z->l - z->c; + z->ket = z->c; + { int m10 = z->l - z->c; (void)m10; + if (!(eq_s_b(z, 9, s_77))) goto lab10; goto lab9; lab10: z->c = z->l - m10; - if (!(eq_s_b(z, 9, s_78))) goto lab11; /* literal, line 268 */ + if (!(eq_s_b(z, 9, s_78))) goto lab11; goto lab9; lab11: z->c = z->l - m10; - if (!(eq_s_b(z, 9, s_79))) goto lab12; /* literal, line 269 */ + if (!(eq_s_b(z, 9, s_79))) goto lab12; goto lab9; lab12: z->c = z->l - m10; - if (!(eq_s_b(z, 9, s_80))) goto lab13; /* literal, line 270 */ + if (!(eq_s_b(z, 9, s_80))) goto lab13; goto lab9; lab13: z->c = z->l - m10; - if (!(eq_s_b(z, 9, s_81))) goto lab14; /* literal, line 271 */ - { int m_test11 = z->l - z->c; /* test, line 271 */ - { int m12 = z->l - z->c; (void)m12; /* not, line 271 */ - if (!(eq_s_b(z, 3, s_82))) goto lab15; /* literal, line 271 */ + if (!(eq_s_b(z, 9, s_81))) goto lab14; + { int m_test11 = z->l - z->c; + { int m12 = z->l - z->c; (void)m12; + if (!(eq_s_b(z, 3, s_82))) goto lab15; goto lab14; lab15: z->c = z->l - m12; @@ -1344,39 +1343,39 @@ static int r_remove_vetrumai_urupukal(struct SN_env * z) { /* forwardmode */ goto lab9; lab14: z->c = z->l - m10; - if (!(eq_s_b(z, 15, s_83))) goto lab16; /* literal, line 272 */ + if (!(eq_s_b(z, 15, s_83))) goto lab16; goto lab9; lab16: z->c = z->l - m10; - if (!(eq_s_b(z, 21, s_84))) goto lab17; /* literal, line 273 */ + if (!(eq_s_b(z, 21, s_84))) goto lab17; goto lab9; lab17: z->c = z->l - m10; - if (!(eq_s_b(z, 9, s_85))) goto lab18; /* literal, line 274 */ + if (!(eq_s_b(z, 9, s_85))) goto lab18; goto lab9; lab18: z->c = z->l - m10; - if (!(len_utf8(z->p) >= 7)) goto lab19; /* $( >= ), line 275 */ - if (!(eq_s_b(z, 12, s_86))) goto lab19; /* literal, line 275 */ + if (!(len_utf8(z->p) >= 7)) goto lab19; + if (!(eq_s_b(z, 12, s_86))) goto lab19; goto lab9; lab19: z->c = z->l - m10; - if (!(eq_s_b(z, 9, s_87))) goto lab20; /* literal, line 276 */ + if (!(eq_s_b(z, 9, s_87))) goto lab20; goto lab9; lab20: z->c = z->l - m10; - if (!(eq_s_b(z, 9, s_88))) goto lab21; /* literal, line 277 */ + if (!(eq_s_b(z, 9, s_88))) goto lab21; goto lab9; lab21: z->c = z->l - m10; - if (!(eq_s_b(z, 12, s_89))) goto lab22; /* literal, line 278 */ + if (!(eq_s_b(z, 12, s_89))) goto lab22; goto lab9; lab22: z->c = z->l - m10; - if (!(eq_s_b(z, 6, s_90))) goto lab23; /* literal, line 279 */ - { int m_test13 = z->l - z->c; /* test, line 279 */ - { int m14 = z->l - z->c; (void)m14; /* not, line 279 */ - if (!(find_among_b(z, a_20, 8))) goto lab24; /* among, line 279 */ + if (!(eq_s_b(z, 6, s_90))) goto lab23; + { int m_test13 = z->l - z->c; + { int m14 = z->l - z->c; (void)m14; + if (!(find_among_b(z, a_20, 8))) goto lab24; goto lab23; lab24: z->c = z->l - m14; @@ -1386,11 +1385,11 @@ static int r_remove_vetrumai_urupukal(struct SN_env * z) { /* forwardmode */ goto lab9; lab23: z->c = z->l - m10; - if (!(eq_s_b(z, 9, s_91))) goto lab8; /* literal, line 280 */ + if (!(eq_s_b(z, 9, s_91))) goto lab8; } lab9: - z->bra = z->c; /* ], line 281 */ - { int ret = slice_from_s(z, 3, s_92); /* <-, line 281 */ + z->bra = z->c; + { int ret = slice_from_s(z, 3, s_92); if (ret < 0) return ret; } z->c = z->l - m_test9; @@ -1398,37 +1397,37 @@ static int r_remove_vetrumai_urupukal(struct SN_env * z) { /* forwardmode */ goto lab0; lab8: z->c = z->l - m1; - { int m_test15 = z->l - z->c; /* test, line 284 */ - z->ket = z->c; /* [, line 284 */ - { int m16 = z->l - z->c; (void)m16; /* or, line 285 */ - if (!(eq_s_b(z, 9, s_93))) goto lab27; /* literal, line 285 */ + { int m_test15 = z->l - z->c; + z->ket = z->c; + { int m16 = z->l - z->c; (void)m16; + if (!(eq_s_b(z, 9, s_93))) goto lab27; goto lab26; lab27: z->c = z->l - m16; - if (!(eq_s_b(z, 12, s_94))) goto lab28; /* literal, line 286 */ + if (!(eq_s_b(z, 12, s_94))) goto lab28; goto lab26; lab28: z->c = z->l - m16; - if (!(eq_s_b(z, 12, s_95))) goto lab29; /* literal, line 287 */ + if (!(eq_s_b(z, 12, s_95))) goto lab29; goto lab26; lab29: z->c = z->l - m16; - if (!(eq_s_b(z, 12, s_96))) goto lab30; /* literal, line 288 */ + if (!(eq_s_b(z, 12, s_96))) goto lab30; goto lab26; lab30: z->c = z->l - m16; - if (!(eq_s_b(z, 12, s_97))) goto lab31; /* literal, line 289 */ + if (!(eq_s_b(z, 12, s_97))) goto lab31; goto lab26; lab31: z->c = z->l - m16; - if (!(eq_s_b(z, 12, s_98))) goto lab32; /* literal, line 290 */ + if (!(eq_s_b(z, 12, s_98))) goto lab32; goto lab26; lab32: z->c = z->l - m16; - if (!(eq_s_b(z, 6, s_99))) goto lab25; /* literal, line 291 */ - { int m_test17 = z->l - z->c; /* test, line 291 */ - { int m18 = z->l - z->c; (void)m18; /* not, line 291 */ - if (!(find_among_b(z, a_21, 8))) goto lab33; /* among, line 291 */ + if (!(eq_s_b(z, 6, s_99))) goto lab25; + { int m_test17 = z->l - z->c; + { int m18 = z->l - z->c; (void)m18; + if (!(find_among_b(z, a_21, 8))) goto lab33; goto lab25; lab33: z->c = z->l - m18; @@ -1437,8 +1436,8 @@ static int r_remove_vetrumai_urupukal(struct SN_env * z) { /* forwardmode */ } } lab26: - z->bra = z->c; /* ], line 292 */ - { int ret = slice_del(z); /* delete, line 292 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } z->c = z->l - m_test15; @@ -1446,45 +1445,44 @@ static int r_remove_vetrumai_urupukal(struct SN_env * z) { /* forwardmode */ goto lab0; lab25: z->c = z->l - m1; - { int m_test19 = z->l - z->c; /* test, line 295 */ - z->ket = z->c; /* [, line 295 */ - if (!(eq_s_b(z, 3, s_100))) return 0; /* literal, line 295 */ - z->bra = z->c; /* ], line 295 */ - { int ret = slice_from_s(z, 3, s_101); /* <-, line 295 */ + { int m_test19 = z->l - z->c; + z->ket = z->c; + if (!(eq_s_b(z, 3, s_100))) return 0; + z->bra = z->c; + { int ret = slice_from_s(z, 3, s_101); if (ret < 0) return ret; } z->c = z->l - m_test19; } } lab0: - z->B[0] = 1; /* set found_a_match, line 297 */ - z->B[1] = 1; /* set found_vetrumai_urupu, line 298 */ - { int m20 = z->l - z->c; (void)m20; /* do, line 299 */ - z->ket = z->c; /* [, line 299 */ - if (!(eq_s_b(z, 9, s_102))) goto lab34; /* literal, line 299 */ - z->bra = z->c; /* ], line 299 */ - { int ret = slice_from_s(z, 3, s_103); /* <-, line 299 */ + z->I[1] = 1; + z->I[0] = 1; + { int m20 = z->l - z->c; (void)m20; + z->ket = z->c; + if (!(eq_s_b(z, 9, s_102))) goto lab34; + z->bra = z->c; + { int ret = slice_from_s(z, 3, s_103); if (ret < 0) return ret; } lab34: z->c = z->l - m20; } z->c = z->lb; - /* do, line 301 */ - { int ret = r_fix_endings(z); /* call fix_endings, line 301 */ + + { int ret = r_fix_endings(z); if (ret < 0) return ret; } return 1; } -static int r_remove_tense_suffixes(struct SN_env * z) { /* forwardmode */ - z->B[0] = 1; /* set found_a_match, line 305 */ -/* repeat, line 306 */ - - while(1) { int c1 = z->c; - if (!(z->B[0])) goto lab0; /* Boolean test found_a_match, line 306 */ - { int c2 = z->c; /* do, line 306 */ - { int ret = r_remove_tense_suffix(z); /* call remove_tense_suffix, line 306 */ +static int r_remove_tense_suffixes(struct SN_env * z) { + z->I[1] = 1; + while(1) { + int c1 = z->c; + if (!(z->I[1])) goto lab0; + { int c2 = z->c; + { int ret = r_remove_tense_suffix(z); if (ret < 0) return ret; } z->c = c2; @@ -1497,60 +1495,60 @@ static int r_remove_tense_suffixes(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_remove_tense_suffix(struct SN_env * z) { /* forwardmode */ - z->B[0] = 0; /* unset found_a_match, line 310 */ - { int ret = r_has_min_length(z); /* call has_min_length, line 311 */ +static int r_remove_tense_suffix(struct SN_env * z) { + z->I[1] = 0; + { int ret = r_has_min_length(z); if (ret <= 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 312 */ + z->lb = z->c; z->c = z->l; - { int m1 = z->l - z->c; (void)m1; /* do, line 313 */ - { int m2 = z->l - z->c; (void)m2; /* or, line 320 */ - { int m_test3 = z->l - z->c; /* test, line 314 */ - z->ket = z->c; /* [, line 314 */ - if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 141)) goto lab2; /* among, line 314 */ + { int m1 = z->l - z->c; (void)m1; + { int m2 = z->l - z->c; (void)m2; + { int m_test3 = z->l - z->c; + z->ket = z->c; + if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 141)) goto lab2; if (!(find_among_b(z, a_22, 2))) goto lab2; - z->bra = z->c; /* ], line 317 */ - { int ret = slice_del(z); /* delete, line 317 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 1; /* set found_a_match, line 318 */ + z->I[1] = 1; z->c = z->l - m_test3; } goto lab1; lab2: z->c = z->l - m2; - { int m_test4 = z->l - z->c; /* test, line 321 */ - z->ket = z->c; /* [, line 321 */ - { int m5 = z->l - z->c; (void)m5; /* or, line 322 */ - if (!(eq_s_b(z, 12, s_104))) goto lab5; /* literal, line 322 */ + { int m_test4 = z->l - z->c; + z->ket = z->c; + { int m5 = z->l - z->c; (void)m5; + if (!(eq_s_b(z, 12, s_104))) goto lab5; goto lab4; lab5: z->c = z->l - m5; - if (!(eq_s_b(z, 12, s_105))) goto lab6; /* literal, line 323 */ + if (!(eq_s_b(z, 12, s_105))) goto lab6; goto lab4; lab6: z->c = z->l - m5; - if (!(eq_s_b(z, 9, s_106))) goto lab7; /* literal, line 324 */ + if (!(eq_s_b(z, 9, s_106))) goto lab7; goto lab4; lab7: z->c = z->l - m5; - if (!(eq_s_b(z, 12, s_107))) goto lab8; /* literal, line 325 */ + if (!(eq_s_b(z, 12, s_107))) goto lab8; goto lab4; lab8: z->c = z->l - m5; - if (!(eq_s_b(z, 12, s_108))) goto lab9; /* literal, line 326 */ + if (!(eq_s_b(z, 12, s_108))) goto lab9; goto lab4; lab9: z->c = z->l - m5; - if (!(eq_s_b(z, 12, s_109))) goto lab10; /* literal, line 327 */ + if (!(eq_s_b(z, 12, s_109))) goto lab10; goto lab4; lab10: z->c = z->l - m5; - if (!(eq_s_b(z, 9, s_110))) goto lab11; /* literal, line 328 */ - { int m_test6 = z->l - z->c; /* test, line 328 */ - { int m7 = z->l - z->c; (void)m7; /* not, line 328 */ - if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((1951712 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab12; /* among, line 328 */ + if (!(eq_s_b(z, 9, s_110))) goto lab11; + { int m_test6 = z->l - z->c; + { int m7 = z->l - z->c; (void)m7; + if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((1951712 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab12; if (!(find_among_b(z, a_23, 12))) goto lab12; goto lab11; lab12: @@ -1561,58 +1559,58 @@ static int r_remove_tense_suffix(struct SN_env * z) { /* forwardmode */ goto lab4; lab11: z->c = z->l - m5; - if (!(eq_s_b(z, 9, s_111))) goto lab13; /* literal, line 329 */ + if (!(eq_s_b(z, 9, s_111))) goto lab13; goto lab4; lab13: z->c = z->l - m5; - if (!(eq_s_b(z, 9, s_112))) goto lab14; /* literal, line 330 */ + if (!(eq_s_b(z, 9, s_112))) goto lab14; goto lab4; lab14: z->c = z->l - m5; - if (!(eq_s_b(z, 9, s_113))) goto lab15; /* literal, line 331 */ + if (!(eq_s_b(z, 9, s_113))) goto lab15; goto lab4; lab15: z->c = z->l - m5; - if (!(eq_s_b(z, 9, s_114))) goto lab16; /* literal, line 332 */ + if (!(eq_s_b(z, 9, s_114))) goto lab16; goto lab4; lab16: z->c = z->l - m5; - if (!(eq_s_b(z, 3, s_115))) goto lab17; /* literal, line 333 */ + if (!(eq_s_b(z, 3, s_115))) goto lab17; goto lab4; lab17: z->c = z->l - m5; - if (!(eq_s_b(z, 3, s_116))) goto lab18; /* literal, line 333 */ + if (!(eq_s_b(z, 3, s_116))) goto lab18; goto lab4; lab18: z->c = z->l - m5; - if (!(eq_s_b(z, 3, s_117))) goto lab19; /* literal, line 333 */ + if (!(eq_s_b(z, 3, s_117))) goto lab19; goto lab4; lab19: z->c = z->l - m5; - if (!(eq_s_b(z, 3, s_118))) goto lab20; /* literal, line 333 */ + if (!(eq_s_b(z, 3, s_118))) goto lab20; goto lab4; lab20: z->c = z->l - m5; - if (!(eq_s_b(z, 3, s_119))) goto lab21; /* literal, line 333 */ + if (!(eq_s_b(z, 3, s_119))) goto lab21; goto lab4; lab21: z->c = z->l - m5; - if (!(eq_s_b(z, 9, s_120))) goto lab22; /* literal, line 334 */ + if (!(eq_s_b(z, 9, s_120))) goto lab22; goto lab4; lab22: z->c = z->l - m5; - if (!(eq_s_b(z, 9, s_121))) goto lab23; /* literal, line 335 */ + if (!(eq_s_b(z, 9, s_121))) goto lab23; goto lab4; lab23: z->c = z->l - m5; - if (!(eq_s_b(z, 9, s_122))) goto lab24; /* literal, line 336 */ + if (!(eq_s_b(z, 9, s_122))) goto lab24; goto lab4; lab24: z->c = z->l - m5; - if (!(eq_s_b(z, 6, s_123))) goto lab25; /* literal, line 337 */ - { int m_test8 = z->l - z->c; /* test, line 337 */ - { int m9 = z->l - z->c; (void)m9; /* not, line 337 */ - if (!(find_among_b(z, a_24, 8))) goto lab26; /* among, line 337 */ + if (!(eq_s_b(z, 6, s_123))) goto lab25; + { int m_test8 = z->l - z->c; + { int m9 = z->l - z->c; (void)m9; + if (!(find_among_b(z, a_24, 8))) goto lab26; goto lab25; lab26: z->c = z->l - m9; @@ -1622,58 +1620,58 @@ static int r_remove_tense_suffix(struct SN_env * z) { /* forwardmode */ goto lab4; lab25: z->c = z->l - m5; - if (!(eq_s_b(z, 15, s_124))) goto lab27; /* literal, line 338 */ + if (!(eq_s_b(z, 15, s_124))) goto lab27; goto lab4; lab27: z->c = z->l - m5; - if (!(eq_s_b(z, 9, s_125))) goto lab28; /* literal, line 339 */ + if (!(eq_s_b(z, 9, s_125))) goto lab28; goto lab4; lab28: z->c = z->l - m5; - if (!(eq_s_b(z, 9, s_126))) goto lab29; /* literal, line 340 */ + if (!(eq_s_b(z, 9, s_126))) goto lab29; goto lab4; lab29: z->c = z->l - m5; - if (!(eq_s_b(z, 12, s_127))) goto lab30; /* literal, line 341 */ + if (!(eq_s_b(z, 12, s_127))) goto lab30; goto lab4; lab30: z->c = z->l - m5; - if (!(eq_s_b(z, 12, s_128))) goto lab31; /* literal, line 342 */ + if (!(eq_s_b(z, 12, s_128))) goto lab31; goto lab4; lab31: z->c = z->l - m5; - if (!(eq_s_b(z, 12, s_129))) goto lab32; /* literal, line 343 */ + if (!(eq_s_b(z, 12, s_129))) goto lab32; goto lab4; lab32: z->c = z->l - m5; - if (!(eq_s_b(z, 12, s_130))) goto lab33; /* literal, line 344 */ + if (!(eq_s_b(z, 12, s_130))) goto lab33; goto lab4; lab33: z->c = z->l - m5; - if (!(eq_s_b(z, 6, s_131))) goto lab34; /* literal, line 345 */ + if (!(eq_s_b(z, 6, s_131))) goto lab34; goto lab4; lab34: z->c = z->l - m5; - if (!(eq_s_b(z, 6, s_132))) goto lab3; /* literal, line 346 */ + if (!(eq_s_b(z, 6, s_132))) goto lab3; } lab4: - z->bra = z->c; /* ], line 347 */ - { int ret = slice_del(z); /* delete, line 347 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 1; /* set found_a_match, line 348 */ + z->I[1] = 1; z->c = z->l - m_test4; } goto lab1; lab3: z->c = z->l - m2; - { int m_test10 = z->l - z->c; /* test, line 351 */ - z->ket = z->c; /* [, line 351 */ - { int m11 = z->l - z->c; (void)m11; /* or, line 352 */ - if (!(eq_s_b(z, 9, s_133))) goto lab37; /* literal, line 352 */ - { int m_test12 = z->l - z->c; /* test, line 352 */ - { int m13 = z->l - z->c; (void)m13; /* not, line 352 */ - if (!(eq_s_b(z, 3, s_134))) goto lab38; /* literal, line 352 */ + { int m_test10 = z->l - z->c; + z->ket = z->c; + { int m11 = z->l - z->c; (void)m11; + if (!(eq_s_b(z, 9, s_133))) goto lab37; + { int m_test12 = z->l - z->c; + { int m13 = z->l - z->c; (void)m13; + if (!(eq_s_b(z, 3, s_134))) goto lab38; goto lab37; lab38: z->c = z->l - m13; @@ -1683,102 +1681,102 @@ static int r_remove_tense_suffix(struct SN_env * z) { /* forwardmode */ goto lab36; lab37: z->c = z->l - m11; - if (!(eq_s_b(z, 9, s_135))) goto lab39; /* literal, line 353 */ + if (!(eq_s_b(z, 9, s_135))) goto lab39; goto lab36; lab39: z->c = z->l - m11; - if (!(eq_s_b(z, 9, s_136))) goto lab40; /* literal, line 354 */ + if (!(eq_s_b(z, 9, s_136))) goto lab40; goto lab36; lab40: z->c = z->l - m11; - if (!(eq_s_b(z, 9, s_137))) goto lab41; /* literal, line 355 */ + if (!(eq_s_b(z, 9, s_137))) goto lab41; goto lab36; lab41: z->c = z->l - m11; - if (!(eq_s_b(z, 3, s_138))) goto lab42; /* literal, line 356 */ + if (!(eq_s_b(z, 3, s_138))) goto lab42; goto lab36; lab42: z->c = z->l - m11; - if (!(eq_s_b(z, 9, s_139))) goto lab43; /* literal, line 357 */ + if (!(eq_s_b(z, 9, s_139))) goto lab43; goto lab36; lab43: z->c = z->l - m11; - if (!(eq_s_b(z, 9, s_140))) goto lab44; /* literal, line 358 */ + if (!(eq_s_b(z, 9, s_140))) goto lab44; goto lab36; lab44: z->c = z->l - m11; - if (!(eq_s_b(z, 9, s_141))) goto lab45; /* literal, line 359 */ + if (!(eq_s_b(z, 9, s_141))) goto lab45; goto lab36; lab45: z->c = z->l - m11; - if (!(eq_s_b(z, 9, s_142))) goto lab46; /* literal, line 360 */ + if (!(eq_s_b(z, 9, s_142))) goto lab46; goto lab36; lab46: z->c = z->l - m11; - if (!(eq_s_b(z, 12, s_143))) goto lab47; /* literal, line 361 */ + if (!(eq_s_b(z, 12, s_143))) goto lab47; goto lab36; lab47: z->c = z->l - m11; - if (!(eq_s_b(z, 12, s_144))) goto lab48; /* literal, line 362 */ + if (!(eq_s_b(z, 12, s_144))) goto lab48; goto lab36; lab48: z->c = z->l - m11; - if (!(eq_s_b(z, 12, s_145))) goto lab49; /* literal, line 363 */ + if (!(eq_s_b(z, 12, s_145))) goto lab49; goto lab36; lab49: z->c = z->l - m11; - if (!(eq_s_b(z, 12, s_146))) goto lab50; /* literal, line 364 */ + if (!(eq_s_b(z, 12, s_146))) goto lab50; goto lab36; lab50: z->c = z->l - m11; - if (!(eq_s_b(z, 9, s_147))) goto lab51; /* literal, line 365 */ + if (!(eq_s_b(z, 9, s_147))) goto lab51; goto lab36; lab51: z->c = z->l - m11; - if (!(eq_s_b(z, 12, s_148))) goto lab52; /* literal, line 366 */ + if (!(eq_s_b(z, 12, s_148))) goto lab52; goto lab36; lab52: z->c = z->l - m11; - if (!(eq_s_b(z, 12, s_149))) goto lab53; /* literal, line 367 */ + if (!(eq_s_b(z, 12, s_149))) goto lab53; goto lab36; lab53: z->c = z->l - m11; - if (!(eq_s_b(z, 9, s_150))) goto lab54; /* literal, line 368 */ + if (!(eq_s_b(z, 9, s_150))) goto lab54; goto lab36; lab54: z->c = z->l - m11; - if (!(eq_s_b(z, 12, s_151))) goto lab35; /* literal, line 369 */ + if (!(eq_s_b(z, 12, s_151))) goto lab35; } lab36: - z->bra = z->c; /* ], line 370 */ - { int ret = slice_from_s(z, 3, s_152); /* <-, line 370 */ + z->bra = z->c; + { int ret = slice_from_s(z, 3, s_152); if (ret < 0) return ret; } - z->B[0] = 1; /* set found_a_match, line 371 */ + z->I[1] = 1; z->c = z->l - m_test10; } goto lab1; lab35: z->c = z->l - m2; - { int m_test14 = z->l - z->c; /* test, line 374 */ - z->ket = z->c; /* [, line 374 */ - { int m15 = z->l - z->c; (void)m15; /* or, line 374 */ - if (!(eq_s_b(z, 6, s_153))) goto lab56; /* literal, line 374 */ + { int m_test14 = z->l - z->c; + z->ket = z->c; + { int m15 = z->l - z->c; (void)m15; + if (!(eq_s_b(z, 6, s_153))) goto lab56; goto lab55; lab56: z->c = z->l - m15; - if (!(eq_s_b(z, 6, s_154))) goto lab0; /* literal, line 374 */ + if (!(eq_s_b(z, 6, s_154))) goto lab0; } lab55: - { int m_test16 = z->l - z->c; /* test, line 374 */ - if (!(eq_s_b(z, 3, s_155))) goto lab0; /* literal, line 374 */ + { int m_test16 = z->l - z->c; + if (!(eq_s_b(z, 3, s_155))) goto lab0; z->c = z->l - m_test16; } - z->bra = z->c; /* ], line 374 */ - { int ret = slice_del(z); /* delete, line 374 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 1; /* set found_a_match, line 375 */ + z->I[1] = 1; z->c = z->l - m_test14; } } @@ -1786,87 +1784,87 @@ static int r_remove_tense_suffix(struct SN_env * z) { /* forwardmode */ lab0: z->c = z->l - m1; } - { int m17 = z->l - z->c; (void)m17; /* do, line 378 */ - z->ket = z->c; /* [, line 378 */ - if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 177)) goto lab57; /* among, line 378 */ + { int m17 = z->l - z->c; (void)m17; + z->ket = z->c; + if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 177)) goto lab57; if (!(find_among_b(z, a_25, 6))) goto lab57; - z->bra = z->c; /* ], line 385 */ - { int ret = slice_del(z); /* delete, line 385 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->B[0] = 1; /* set found_a_match, line 386 */ + z->I[1] = 1; lab57: z->c = z->l - m17; } z->c = z->lb; - /* do, line 389 */ - { int ret = r_fix_endings(z); /* call fix_endings, line 389 */ + + { int ret = r_fix_endings(z); if (ret < 0) return ret; } return 1; } -extern int tamil_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - z->B[1] = 0; /* unset found_vetrumai_urupu, line 393 */ - { int c1 = z->c; /* do, line 394 */ - { int ret = r_fix_ending(z); /* call fix_ending, line 394 */ +extern int tamil_UTF_8_stem(struct SN_env * z) { + z->I[0] = 0; + { int c1 = z->c; + { int ret = r_fix_ending(z); if (ret < 0) return ret; } z->c = c1; } - { int ret = r_has_min_length(z); /* call has_min_length, line 395 */ + { int ret = r_has_min_length(z); if (ret <= 0) return ret; } - { int c2 = z->c; /* do, line 396 */ - { int ret = r_remove_question_prefixes(z); /* call remove_question_prefixes, line 396 */ + { int c2 = z->c; + { int ret = r_remove_question_prefixes(z); if (ret < 0) return ret; } z->c = c2; } - { int c3 = z->c; /* do, line 397 */ - { int ret = r_remove_pronoun_prefixes(z); /* call remove_pronoun_prefixes, line 397 */ + { int c3 = z->c; + { int ret = r_remove_pronoun_prefixes(z); if (ret < 0) return ret; } z->c = c3; } - { int c4 = z->c; /* do, line 398 */ - { int ret = r_remove_question_suffixes(z); /* call remove_question_suffixes, line 398 */ + { int c4 = z->c; + { int ret = r_remove_question_suffixes(z); if (ret < 0) return ret; } z->c = c4; } - { int c5 = z->c; /* do, line 399 */ - { int ret = r_remove_um(z); /* call remove_um, line 399 */ + { int c5 = z->c; + { int ret = r_remove_um(z); if (ret < 0) return ret; } z->c = c5; } - { int c6 = z->c; /* do, line 400 */ - { int ret = r_remove_common_word_endings(z); /* call remove_common_word_endings, line 400 */ + { int c6 = z->c; + { int ret = r_remove_common_word_endings(z); if (ret < 0) return ret; } z->c = c6; } - { int c7 = z->c; /* do, line 401 */ - { int ret = r_remove_vetrumai_urupukal(z); /* call remove_vetrumai_urupukal, line 401 */ + { int c7 = z->c; + { int ret = r_remove_vetrumai_urupukal(z); if (ret < 0) return ret; } z->c = c7; } - { int c8 = z->c; /* do, line 402 */ - { int ret = r_remove_plural_suffix(z); /* call remove_plural_suffix, line 402 */ + { int c8 = z->c; + { int ret = r_remove_plural_suffix(z); if (ret < 0) return ret; } z->c = c8; } - { int c9 = z->c; /* do, line 403 */ - { int ret = r_remove_command_suffixes(z); /* call remove_command_suffixes, line 403 */ + { int c9 = z->c; + { int ret = r_remove_command_suffixes(z); if (ret < 0) return ret; } z->c = c9; } - { int c10 = z->c; /* do, line 404 */ - { int ret = r_remove_tense_suffixes(z); /* call remove_tense_suffixes, line 404 */ + { int c10 = z->c; + { int ret = r_remove_tense_suffixes(z); if (ret < 0) return ret; } z->c = c10; @@ -1874,7 +1872,7 @@ extern int tamil_UTF_8_stem(struct SN_env * z) { /* forwardmode */ return 1; } -extern struct SN_env * tamil_UTF_8_create_env(void) { return SN_create_env(0, 0, 2); } +extern struct SN_env * tamil_UTF_8_create_env(void) { return SN_create_env(0, 2); } extern void tamil_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_turkish.c b/src/backend/snowball/libstemmer/stem_UTF_8_turkish.c index 5c4b11c0ffb41..41edce668c5c7 100644 --- a/src/backend/snowball/libstemmer/stem_UTF_8_turkish.c +++ b/src/backend/snowball/libstemmer/stem_UTF_8_turkish.c @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #include "header.h" @@ -74,16 +74,16 @@ static const symbol s_0_9[4] = { 'n', 0xC3, 0xBC, 'z' }; static const struct among a_0[10] = { -/* 0 */ { 1, s_0_0, -1, -1, 0}, -/* 1 */ { 1, s_0_1, -1, -1, 0}, -/* 2 */ { 3, s_0_2, -1, -1, 0}, -/* 3 */ { 3, s_0_3, -1, -1, 0}, -/* 4 */ { 3, s_0_4, -1, -1, 0}, -/* 5 */ { 3, s_0_5, -1, -1, 0}, -/* 6 */ { 4, s_0_6, -1, -1, 0}, -/* 7 */ { 4, s_0_7, -1, -1, 0}, -/* 8 */ { 4, s_0_8, -1, -1, 0}, -/* 9 */ { 4, s_0_9, -1, -1, 0} +{ 1, s_0_0, -1, -1, 0}, +{ 1, s_0_1, -1, -1, 0}, +{ 3, s_0_2, -1, -1, 0}, +{ 3, s_0_3, -1, -1, 0}, +{ 3, s_0_4, -1, -1, 0}, +{ 3, s_0_5, -1, -1, 0}, +{ 4, s_0_6, -1, -1, 0}, +{ 4, s_0_7, -1, -1, 0}, +{ 4, s_0_8, -1, -1, 0}, +{ 4, s_0_9, -1, -1, 0} }; static const symbol s_1_0[4] = { 'l', 'e', 'r', 'i' }; @@ -91,8 +91,8 @@ static const symbol s_1_1[5] = { 'l', 'a', 'r', 0xC4, 0xB1 }; static const struct among a_1[2] = { -/* 0 */ { 4, s_1_0, -1, -1, 0}, -/* 1 */ { 5, s_1_1, -1, -1, 0} +{ 4, s_1_0, -1, -1, 0}, +{ 5, s_1_1, -1, -1, 0} }; static const symbol s_2_0[2] = { 'n', 'i' }; @@ -102,10 +102,10 @@ static const symbol s_2_3[3] = { 'n', 0xC3, 0xBC }; static const struct among a_2[4] = { -/* 0 */ { 2, s_2_0, -1, -1, 0}, -/* 1 */ { 2, s_2_1, -1, -1, 0}, -/* 2 */ { 3, s_2_2, -1, -1, 0}, -/* 3 */ { 3, s_2_3, -1, -1, 0} +{ 2, s_2_0, -1, -1, 0}, +{ 2, s_2_1, -1, -1, 0}, +{ 3, s_2_2, -1, -1, 0}, +{ 3, s_2_3, -1, -1, 0} }; static const symbol s_3_0[2] = { 'i', 'n' }; @@ -115,10 +115,10 @@ static const symbol s_3_3[3] = { 0xC3, 0xBC, 'n' }; static const struct among a_3[4] = { -/* 0 */ { 2, s_3_0, -1, -1, 0}, -/* 1 */ { 2, s_3_1, -1, -1, 0}, -/* 2 */ { 3, s_3_2, -1, -1, 0}, -/* 3 */ { 3, s_3_3, -1, -1, 0} +{ 2, s_3_0, -1, -1, 0}, +{ 2, s_3_1, -1, -1, 0}, +{ 3, s_3_2, -1, -1, 0}, +{ 3, s_3_3, -1, -1, 0} }; static const symbol s_4_0[1] = { 'a' }; @@ -126,8 +126,8 @@ static const symbol s_4_1[1] = { 'e' }; static const struct among a_4[2] = { -/* 0 */ { 1, s_4_0, -1, -1, 0}, -/* 1 */ { 1, s_4_1, -1, -1, 0} +{ 1, s_4_0, -1, -1, 0}, +{ 1, s_4_1, -1, -1, 0} }; static const symbol s_5_0[2] = { 'n', 'a' }; @@ -135,8 +135,8 @@ static const symbol s_5_1[2] = { 'n', 'e' }; static const struct among a_5[2] = { -/* 0 */ { 2, s_5_0, -1, -1, 0}, -/* 1 */ { 2, s_5_1, -1, -1, 0} +{ 2, s_5_0, -1, -1, 0}, +{ 2, s_5_1, -1, -1, 0} }; static const symbol s_6_0[2] = { 'd', 'a' }; @@ -146,10 +146,10 @@ static const symbol s_6_3[2] = { 't', 'e' }; static const struct among a_6[4] = { -/* 0 */ { 2, s_6_0, -1, -1, 0}, -/* 1 */ { 2, s_6_1, -1, -1, 0}, -/* 2 */ { 2, s_6_2, -1, -1, 0}, -/* 3 */ { 2, s_6_3, -1, -1, 0} +{ 2, s_6_0, -1, -1, 0}, +{ 2, s_6_1, -1, -1, 0}, +{ 2, s_6_2, -1, -1, 0}, +{ 2, s_6_3, -1, -1, 0} }; static const symbol s_7_0[3] = { 'n', 'd', 'a' }; @@ -157,8 +157,8 @@ static const symbol s_7_1[3] = { 'n', 'd', 'e' }; static const struct among a_7[2] = { -/* 0 */ { 3, s_7_0, -1, -1, 0}, -/* 1 */ { 3, s_7_1, -1, -1, 0} +{ 3, s_7_0, -1, -1, 0}, +{ 3, s_7_1, -1, -1, 0} }; static const symbol s_8_0[3] = { 'd', 'a', 'n' }; @@ -168,10 +168,10 @@ static const symbol s_8_3[3] = { 't', 'e', 'n' }; static const struct among a_8[4] = { -/* 0 */ { 3, s_8_0, -1, -1, 0}, -/* 1 */ { 3, s_8_1, -1, -1, 0}, -/* 2 */ { 3, s_8_2, -1, -1, 0}, -/* 3 */ { 3, s_8_3, -1, -1, 0} +{ 3, s_8_0, -1, -1, 0}, +{ 3, s_8_1, -1, -1, 0}, +{ 3, s_8_2, -1, -1, 0}, +{ 3, s_8_3, -1, -1, 0} }; static const symbol s_9_0[4] = { 'n', 'd', 'a', 'n' }; @@ -179,8 +179,8 @@ static const symbol s_9_1[4] = { 'n', 'd', 'e', 'n' }; static const struct among a_9[2] = { -/* 0 */ { 4, s_9_0, -1, -1, 0}, -/* 1 */ { 4, s_9_1, -1, -1, 0} +{ 4, s_9_0, -1, -1, 0}, +{ 4, s_9_1, -1, -1, 0} }; static const symbol s_10_0[2] = { 'l', 'a' }; @@ -188,8 +188,8 @@ static const symbol s_10_1[2] = { 'l', 'e' }; static const struct among a_10[2] = { -/* 0 */ { 2, s_10_0, -1, -1, 0}, -/* 1 */ { 2, s_10_1, -1, -1, 0} +{ 2, s_10_0, -1, -1, 0}, +{ 2, s_10_1, -1, -1, 0} }; static const symbol s_11_0[2] = { 'c', 'a' }; @@ -197,8 +197,8 @@ static const symbol s_11_1[2] = { 'c', 'e' }; static const struct among a_11[2] = { -/* 0 */ { 2, s_11_0, -1, -1, 0}, -/* 1 */ { 2, s_11_1, -1, -1, 0} +{ 2, s_11_0, -1, -1, 0}, +{ 2, s_11_1, -1, -1, 0} }; static const symbol s_12_0[2] = { 'i', 'm' }; @@ -208,10 +208,10 @@ static const symbol s_12_3[3] = { 0xC3, 0xBC, 'm' }; static const struct among a_12[4] = { -/* 0 */ { 2, s_12_0, -1, -1, 0}, -/* 1 */ { 2, s_12_1, -1, -1, 0}, -/* 2 */ { 3, s_12_2, -1, -1, 0}, -/* 3 */ { 3, s_12_3, -1, -1, 0} +{ 2, s_12_0, -1, -1, 0}, +{ 2, s_12_1, -1, -1, 0}, +{ 3, s_12_2, -1, -1, 0}, +{ 3, s_12_3, -1, -1, 0} }; static const symbol s_13_0[3] = { 's', 'i', 'n' }; @@ -221,10 +221,10 @@ static const symbol s_13_3[4] = { 's', 0xC3, 0xBC, 'n' }; static const struct among a_13[4] = { -/* 0 */ { 3, s_13_0, -1, -1, 0}, -/* 1 */ { 3, s_13_1, -1, -1, 0}, -/* 2 */ { 4, s_13_2, -1, -1, 0}, -/* 3 */ { 4, s_13_3, -1, -1, 0} +{ 3, s_13_0, -1, -1, 0}, +{ 3, s_13_1, -1, -1, 0}, +{ 4, s_13_2, -1, -1, 0}, +{ 4, s_13_3, -1, -1, 0} }; static const symbol s_14_0[2] = { 'i', 'z' }; @@ -234,10 +234,10 @@ static const symbol s_14_3[3] = { 0xC3, 0xBC, 'z' }; static const struct among a_14[4] = { -/* 0 */ { 2, s_14_0, -1, -1, 0}, -/* 1 */ { 2, s_14_1, -1, -1, 0}, -/* 2 */ { 3, s_14_2, -1, -1, 0}, -/* 3 */ { 3, s_14_3, -1, -1, 0} +{ 2, s_14_0, -1, -1, 0}, +{ 2, s_14_1, -1, -1, 0}, +{ 3, s_14_2, -1, -1, 0}, +{ 3, s_14_3, -1, -1, 0} }; static const symbol s_15_0[5] = { 's', 'i', 'n', 'i', 'z' }; @@ -247,10 +247,10 @@ static const symbol s_15_3[7] = { 's', 0xC3, 0xBC, 'n', 0xC3, 0xBC, 'z' }; static const struct among a_15[4] = { -/* 0 */ { 5, s_15_0, -1, -1, 0}, -/* 1 */ { 5, s_15_1, -1, -1, 0}, -/* 2 */ { 7, s_15_2, -1, -1, 0}, -/* 3 */ { 7, s_15_3, -1, -1, 0} +{ 5, s_15_0, -1, -1, 0}, +{ 5, s_15_1, -1, -1, 0}, +{ 7, s_15_2, -1, -1, 0}, +{ 7, s_15_3, -1, -1, 0} }; static const symbol s_16_0[3] = { 'l', 'a', 'r' }; @@ -258,8 +258,8 @@ static const symbol s_16_1[3] = { 'l', 'e', 'r' }; static const struct among a_16[2] = { -/* 0 */ { 3, s_16_0, -1, -1, 0}, -/* 1 */ { 3, s_16_1, -1, -1, 0} +{ 3, s_16_0, -1, -1, 0}, +{ 3, s_16_1, -1, -1, 0} }; static const symbol s_17_0[3] = { 'n', 'i', 'z' }; @@ -269,10 +269,10 @@ static const symbol s_17_3[4] = { 'n', 0xC3, 0xBC, 'z' }; static const struct among a_17[4] = { -/* 0 */ { 3, s_17_0, -1, -1, 0}, -/* 1 */ { 3, s_17_1, -1, -1, 0}, -/* 2 */ { 4, s_17_2, -1, -1, 0}, -/* 3 */ { 4, s_17_3, -1, -1, 0} +{ 3, s_17_0, -1, -1, 0}, +{ 3, s_17_1, -1, -1, 0}, +{ 4, s_17_2, -1, -1, 0}, +{ 4, s_17_3, -1, -1, 0} }; static const symbol s_18_0[3] = { 'd', 'i', 'r' }; @@ -286,14 +286,14 @@ static const symbol s_18_7[4] = { 't', 0xC3, 0xBC, 'r' }; static const struct among a_18[8] = { -/* 0 */ { 3, s_18_0, -1, -1, 0}, -/* 1 */ { 3, s_18_1, -1, -1, 0}, -/* 2 */ { 3, s_18_2, -1, -1, 0}, -/* 3 */ { 3, s_18_3, -1, -1, 0}, -/* 4 */ { 4, s_18_4, -1, -1, 0}, -/* 5 */ { 4, s_18_5, -1, -1, 0}, -/* 6 */ { 4, s_18_6, -1, -1, 0}, -/* 7 */ { 4, s_18_7, -1, -1, 0} +{ 3, s_18_0, -1, -1, 0}, +{ 3, s_18_1, -1, -1, 0}, +{ 3, s_18_2, -1, -1, 0}, +{ 3, s_18_3, -1, -1, 0}, +{ 4, s_18_4, -1, -1, 0}, +{ 4, s_18_5, -1, -1, 0}, +{ 4, s_18_6, -1, -1, 0}, +{ 4, s_18_7, -1, -1, 0} }; static const symbol s_19_0[7] = { 'c', 'a', 's', 0xC4, 0xB1, 'n', 'a' }; @@ -301,8 +301,8 @@ static const symbol s_19_1[6] = { 'c', 'e', 's', 'i', 'n', 'e' }; static const struct among a_19[2] = { -/* 0 */ { 7, s_19_0, -1, -1, 0}, -/* 1 */ { 6, s_19_1, -1, -1, 0} +{ 7, s_19_0, -1, -1, 0}, +{ 6, s_19_1, -1, -1, 0} }; static const symbol s_20_0[2] = { 'd', 'i' }; @@ -340,38 +340,38 @@ static const symbol s_20_31[3] = { 't', 0xC3, 0xBC }; static const struct among a_20[32] = { -/* 0 */ { 2, s_20_0, -1, -1, 0}, -/* 1 */ { 2, s_20_1, -1, -1, 0}, -/* 2 */ { 3, s_20_2, -1, -1, 0}, -/* 3 */ { 3, s_20_3, -1, -1, 0}, -/* 4 */ { 3, s_20_4, -1, -1, 0}, -/* 5 */ { 3, s_20_5, -1, -1, 0}, -/* 6 */ { 4, s_20_6, -1, -1, 0}, -/* 7 */ { 4, s_20_7, -1, -1, 0}, -/* 8 */ { 4, s_20_8, -1, -1, 0}, -/* 9 */ { 4, s_20_9, -1, -1, 0}, -/* 10 */ { 3, s_20_10, -1, -1, 0}, -/* 11 */ { 3, s_20_11, -1, -1, 0}, -/* 12 */ { 3, s_20_12, -1, -1, 0}, -/* 13 */ { 3, s_20_13, -1, -1, 0}, -/* 14 */ { 4, s_20_14, -1, -1, 0}, -/* 15 */ { 4, s_20_15, -1, -1, 0}, -/* 16 */ { 4, s_20_16, -1, -1, 0}, -/* 17 */ { 4, s_20_17, -1, -1, 0}, -/* 18 */ { 3, s_20_18, -1, -1, 0}, -/* 19 */ { 3, s_20_19, -1, -1, 0}, -/* 20 */ { 3, s_20_20, -1, -1, 0}, -/* 21 */ { 3, s_20_21, -1, -1, 0}, -/* 22 */ { 4, s_20_22, -1, -1, 0}, -/* 23 */ { 4, s_20_23, -1, -1, 0}, -/* 24 */ { 4, s_20_24, -1, -1, 0}, -/* 25 */ { 4, s_20_25, -1, -1, 0}, -/* 26 */ { 2, s_20_26, -1, -1, 0}, -/* 27 */ { 2, s_20_27, -1, -1, 0}, -/* 28 */ { 3, s_20_28, -1, -1, 0}, -/* 29 */ { 3, s_20_29, -1, -1, 0}, -/* 30 */ { 3, s_20_30, -1, -1, 0}, -/* 31 */ { 3, s_20_31, -1, -1, 0} +{ 2, s_20_0, -1, -1, 0}, +{ 2, s_20_1, -1, -1, 0}, +{ 3, s_20_2, -1, -1, 0}, +{ 3, s_20_3, -1, -1, 0}, +{ 3, s_20_4, -1, -1, 0}, +{ 3, s_20_5, -1, -1, 0}, +{ 4, s_20_6, -1, -1, 0}, +{ 4, s_20_7, -1, -1, 0}, +{ 4, s_20_8, -1, -1, 0}, +{ 4, s_20_9, -1, -1, 0}, +{ 3, s_20_10, -1, -1, 0}, +{ 3, s_20_11, -1, -1, 0}, +{ 3, s_20_12, -1, -1, 0}, +{ 3, s_20_13, -1, -1, 0}, +{ 4, s_20_14, -1, -1, 0}, +{ 4, s_20_15, -1, -1, 0}, +{ 4, s_20_16, -1, -1, 0}, +{ 4, s_20_17, -1, -1, 0}, +{ 3, s_20_18, -1, -1, 0}, +{ 3, s_20_19, -1, -1, 0}, +{ 3, s_20_20, -1, -1, 0}, +{ 3, s_20_21, -1, -1, 0}, +{ 4, s_20_22, -1, -1, 0}, +{ 4, s_20_23, -1, -1, 0}, +{ 4, s_20_24, -1, -1, 0}, +{ 4, s_20_25, -1, -1, 0}, +{ 2, s_20_26, -1, -1, 0}, +{ 2, s_20_27, -1, -1, 0}, +{ 3, s_20_28, -1, -1, 0}, +{ 3, s_20_29, -1, -1, 0}, +{ 3, s_20_30, -1, -1, 0}, +{ 3, s_20_31, -1, -1, 0} }; static const symbol s_21_0[2] = { 's', 'a' }; @@ -385,14 +385,14 @@ static const symbol s_21_7[3] = { 's', 'e', 'n' }; static const struct among a_21[8] = { -/* 0 */ { 2, s_21_0, -1, -1, 0}, -/* 1 */ { 2, s_21_1, -1, -1, 0}, -/* 2 */ { 3, s_21_2, -1, -1, 0}, -/* 3 */ { 3, s_21_3, -1, -1, 0}, -/* 4 */ { 3, s_21_4, -1, -1, 0}, -/* 5 */ { 3, s_21_5, -1, -1, 0}, -/* 6 */ { 3, s_21_6, -1, -1, 0}, -/* 7 */ { 3, s_21_7, -1, -1, 0} +{ 2, s_21_0, -1, -1, 0}, +{ 2, s_21_1, -1, -1, 0}, +{ 3, s_21_2, -1, -1, 0}, +{ 3, s_21_3, -1, -1, 0}, +{ 3, s_21_4, -1, -1, 0}, +{ 3, s_21_5, -1, -1, 0}, +{ 3, s_21_6, -1, -1, 0}, +{ 3, s_21_7, -1, -1, 0} }; static const symbol s_22_0[4] = { 'm', 'i', 0xC5, 0x9F }; @@ -402,10 +402,10 @@ static const symbol s_22_3[5] = { 'm', 0xC3, 0xBC, 0xC5, 0x9F }; static const struct among a_22[4] = { -/* 0 */ { 4, s_22_0, -1, -1, 0}, -/* 1 */ { 4, s_22_1, -1, -1, 0}, -/* 2 */ { 5, s_22_2, -1, -1, 0}, -/* 3 */ { 5, s_22_3, -1, -1, 0} +{ 4, s_22_0, -1, -1, 0}, +{ 4, s_22_1, -1, -1, 0}, +{ 5, s_22_2, -1, -1, 0}, +{ 5, s_22_3, -1, -1, 0} }; static const symbol s_23_0[1] = { 'b' }; @@ -415,10 +415,10 @@ static const symbol s_23_3[2] = { 0xC4, 0x9F }; static const struct among a_23[4] = { -/* 0 */ { 1, s_23_0, -1, 1, 0}, -/* 1 */ { 1, s_23_1, -1, 2, 0}, -/* 2 */ { 1, s_23_2, -1, 3, 0}, -/* 3 */ { 2, s_23_3, -1, 4, 0} +{ 1, s_23_0, -1, 1, 0}, +{ 1, s_23_1, -1, 2, 0}, +{ 1, s_23_2, -1, 3, 0}, +{ 2, s_23_3, -1, 4, 0} }; static const unsigned char g_vowel[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0, 0, 0, 1 }; @@ -456,52 +456,52 @@ static const symbol s_15[] = { 0xC3, 0xBC }; static const symbol s_16[] = { 'a', 'd' }; static const symbol s_17[] = { 's', 'o', 'y' }; -static int r_check_vowel_harmony(struct SN_env * z) { /* backwardmode */ - { int m_test1 = z->l - z->c; /* test, line 110 */ - if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0; /* goto */ /* grouping vowel, line 112 */ - { int m2 = z->l - z->c; (void)m2; /* or, line 114 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab1; /* literal, line 114 */ +static int r_check_vowel_harmony(struct SN_env * z) { + { int m_test1 = z->l - z->c; + if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0; + { int m2 = z->l - z->c; (void)m2; + if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab1; z->c--; - if (out_grouping_b_U(z, g_vowel1, 97, 305, 1) < 0) goto lab1; /* goto */ /* grouping vowel1, line 114 */ + if (out_grouping_b_U(z, g_vowel1, 97, 305, 1) < 0) goto lab1; goto lab0; lab1: z->c = z->l - m2; - if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab2; /* literal, line 115 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab2; z->c--; - if (out_grouping_b_U(z, g_vowel2, 101, 252, 1) < 0) goto lab2; /* goto */ /* grouping vowel2, line 115 */ + if (out_grouping_b_U(z, g_vowel2, 101, 252, 1) < 0) goto lab2; goto lab0; lab2: z->c = z->l - m2; - if (!(eq_s_b(z, 2, s_0))) goto lab3; /* literal, line 116 */ - if (out_grouping_b_U(z, g_vowel3, 97, 305, 1) < 0) goto lab3; /* goto */ /* grouping vowel3, line 116 */ + if (!(eq_s_b(z, 2, s_0))) goto lab3; + if (out_grouping_b_U(z, g_vowel3, 97, 305, 1) < 0) goto lab3; goto lab0; lab3: z->c = z->l - m2; - if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab4; /* literal, line 117 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab4; z->c--; - if (out_grouping_b_U(z, g_vowel4, 101, 105, 1) < 0) goto lab4; /* goto */ /* grouping vowel4, line 117 */ + if (out_grouping_b_U(z, g_vowel4, 101, 105, 1) < 0) goto lab4; goto lab0; lab4: z->c = z->l - m2; - if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5; /* literal, line 118 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab5; z->c--; - if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab5; /* goto */ /* grouping vowel5, line 118 */ + if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab5; goto lab0; lab5: z->c = z->l - m2; - if (!(eq_s_b(z, 2, s_1))) goto lab6; /* literal, line 119 */ - if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) goto lab6; /* goto */ /* grouping vowel6, line 119 */ + if (!(eq_s_b(z, 2, s_1))) goto lab6; + if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) goto lab6; goto lab0; lab6: z->c = z->l - m2; - if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab7; /* literal, line 120 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab7; z->c--; - if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab7; /* goto */ /* grouping vowel5, line 120 */ + if (out_grouping_b_U(z, g_vowel5, 111, 117, 1) < 0) goto lab7; goto lab0; lab7: z->c = z->l - m2; - if (!(eq_s_b(z, 2, s_2))) return 0; /* literal, line 121 */ - if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) return 0; /* goto */ /* grouping vowel6, line 121 */ + if (!(eq_s_b(z, 2, s_2))) return 0; + if (out_grouping_b_U(z, g_vowel6, 246, 252, 1) < 0) return 0; } lab0: z->c = z->l - m_test1; @@ -509,20 +509,20 @@ static int r_check_vowel_harmony(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_mark_suffix_with_optional_n_consonant(struct SN_env * z) { /* backwardmode */ - { int m1 = z->l - z->c; (void)m1; /* or, line 132 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab1; /* literal, line 131 */ +static int r_mark_suffix_with_optional_n_consonant(struct SN_env * z) { + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab1; z->c--; - { int m_test2 = z->l - z->c; /* test, line 131 */ - if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1; /* grouping vowel, line 131 */ + { int m_test2 = z->l - z->c; + if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1; z->c = z->l - m_test2; } goto lab0; lab1: z->c = z->l - m1; - { int m3 = z->l - z->c; (void)m3; /* not, line 133 */ - { int m_test4 = z->l - z->c; /* test, line 133 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab2; /* literal, line 133 */ + { int m3 = z->l - z->c; (void)m3; + { int m_test4 = z->l - z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab2; z->c--; z->c = z->l - m_test4; } @@ -530,12 +530,12 @@ static int r_mark_suffix_with_optional_n_consonant(struct SN_env * z) { /* backw lab2: z->c = z->l - m3; } - { int m_test5 = z->l - z->c; /* test, line 133 */ - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + { int m_test5 = z->l - z->c; + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) return 0; - z->c = ret; /* next, line 133 */ + z->c = ret; } - if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0; /* grouping vowel, line 133 */ + if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0; z->c = z->l - m_test5; } } @@ -543,20 +543,20 @@ static int r_mark_suffix_with_optional_n_consonant(struct SN_env * z) { /* backw return 1; } -static int r_mark_suffix_with_optional_s_consonant(struct SN_env * z) { /* backwardmode */ - { int m1 = z->l - z->c; (void)m1; /* or, line 143 */ - if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; /* literal, line 142 */ +static int r_mark_suffix_with_optional_s_consonant(struct SN_env * z) { + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1; z->c--; - { int m_test2 = z->l - z->c; /* test, line 142 */ - if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1; /* grouping vowel, line 142 */ + { int m_test2 = z->l - z->c; + if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1; z->c = z->l - m_test2; } goto lab0; lab1: z->c = z->l - m1; - { int m3 = z->l - z->c; (void)m3; /* not, line 144 */ - { int m_test4 = z->l - z->c; /* test, line 144 */ - if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab2; /* literal, line 144 */ + { int m3 = z->l - z->c; (void)m3; + { int m_test4 = z->l - z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab2; z->c--; z->c = z->l - m_test4; } @@ -564,12 +564,12 @@ static int r_mark_suffix_with_optional_s_consonant(struct SN_env * z) { /* backw lab2: z->c = z->l - m3; } - { int m_test5 = z->l - z->c; /* test, line 144 */ - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + { int m_test5 = z->l - z->c; + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) return 0; - z->c = ret; /* next, line 144 */ + z->c = ret; } - if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0; /* grouping vowel, line 144 */ + if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0; z->c = z->l - m_test5; } } @@ -577,20 +577,20 @@ static int r_mark_suffix_with_optional_s_consonant(struct SN_env * z) { /* backw return 1; } -static int r_mark_suffix_with_optional_y_consonant(struct SN_env * z) { /* backwardmode */ - { int m1 = z->l - z->c; (void)m1; /* or, line 153 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; /* literal, line 152 */ +static int r_mark_suffix_with_optional_y_consonant(struct SN_env * z) { + { int m1 = z->l - z->c; (void)m1; + if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1; z->c--; - { int m_test2 = z->l - z->c; /* test, line 152 */ - if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1; /* grouping vowel, line 152 */ + { int m_test2 = z->l - z->c; + if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1; z->c = z->l - m_test2; } goto lab0; lab1: z->c = z->l - m1; - { int m3 = z->l - z->c; (void)m3; /* not, line 154 */ - { int m_test4 = z->l - z->c; /* test, line 154 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab2; /* literal, line 154 */ + { int m3 = z->l - z->c; (void)m3; + { int m_test4 = z->l - z->c; + if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab2; z->c--; z->c = z->l - m_test4; } @@ -598,12 +598,12 @@ static int r_mark_suffix_with_optional_y_consonant(struct SN_env * z) { /* backw lab2: z->c = z->l - m3; } - { int m_test5 = z->l - z->c; /* test, line 154 */ - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + { int m_test5 = z->l - z->c; + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) return 0; - z->c = ret; /* next, line 154 */ + z->c = ret; } - if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0; /* grouping vowel, line 154 */ + if (in_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0; z->c = z->l - m_test5; } } @@ -611,31 +611,31 @@ static int r_mark_suffix_with_optional_y_consonant(struct SN_env * z) { /* backw return 1; } -static int r_mark_suffix_with_optional_U_vowel(struct SN_env * z) { /* backwardmode */ - { int m1 = z->l - z->c; (void)m1; /* or, line 159 */ - if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab1; /* grouping U, line 158 */ - { int m_test2 = z->l - z->c; /* test, line 158 */ - if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1; /* non vowel, line 158 */ +static int r_mark_suffix_with_optional_U_vowel(struct SN_env * z) { + { int m1 = z->l - z->c; (void)m1; + if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab1; + { int m_test2 = z->l - z->c; + if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) goto lab1; z->c = z->l - m_test2; } goto lab0; lab1: z->c = z->l - m1; - { int m3 = z->l - z->c; (void)m3; /* not, line 160 */ - { int m_test4 = z->l - z->c; /* test, line 160 */ - if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab2; /* grouping U, line 160 */ + { int m3 = z->l - z->c; (void)m3; + { int m_test4 = z->l - z->c; + if (in_grouping_b_U(z, g_U, 105, 305, 0)) goto lab2; z->c = z->l - m_test4; } return 0; lab2: z->c = z->l - m3; } - { int m_test5 = z->l - z->c; /* test, line 160 */ - { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1); + { int m_test5 = z->l - z->c; + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); if (ret < 0) return 0; - z->c = ret; /* next, line 160 */ + z->c = ret; } - if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0; /* non vowel, line 160 */ + if (out_grouping_b_U(z, g_vowel, 97, 305, 0)) return 0; z->c = z->l - m_test5; } } @@ -643,288 +643,288 @@ static int r_mark_suffix_with_optional_U_vowel(struct SN_env * z) { /* backwardm return 1; } -static int r_mark_possessives(struct SN_env * z) { /* backwardmode */ - if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((67133440 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 165 */ +static int r_mark_possessives(struct SN_env * z) { + if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((67133440 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_0, 10))) return 0; - { int ret = r_mark_suffix_with_optional_U_vowel(z); /* call mark_suffix_with_optional_U_vowel, line 167 */ + { int ret = r_mark_suffix_with_optional_U_vowel(z); if (ret <= 0) return ret; } return 1; } -static int r_mark_sU(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 171 */ +static int r_mark_sU(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (in_grouping_b_U(z, g_U, 105, 305, 0)) return 0; /* grouping U, line 172 */ - { int ret = r_mark_suffix_with_optional_s_consonant(z); /* call mark_suffix_with_optional_s_consonant, line 173 */ + if (in_grouping_b_U(z, g_U, 105, 305, 0)) return 0; + { int ret = r_mark_suffix_with_optional_s_consonant(z); if (ret <= 0) return ret; } return 1; } -static int r_mark_lArI(struct SN_env * z) { /* backwardmode */ - if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 177)) return 0; /* among, line 177 */ +static int r_mark_lArI(struct SN_env * z) { + if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 177)) return 0; if (!(find_among_b(z, a_1, 2))) return 0; return 1; } -static int r_mark_yU(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 181 */ +static int r_mark_yU(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (in_grouping_b_U(z, g_U, 105, 305, 0)) return 0; /* grouping U, line 182 */ - { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 183 */ + if (in_grouping_b_U(z, g_U, 105, 305, 0)) return 0; + { int ret = r_mark_suffix_with_optional_y_consonant(z); if (ret <= 0) return ret; } return 1; } -static int r_mark_nU(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 187 */ +static int r_mark_nU(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (!(find_among_b(z, a_2, 4))) return 0; /* among, line 188 */ + if (!(find_among_b(z, a_2, 4))) return 0; return 1; } -static int r_mark_nUn(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 192 */ +static int r_mark_nUn(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 110) return 0; /* among, line 193 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 110) return 0; if (!(find_among_b(z, a_3, 4))) return 0; - { int ret = r_mark_suffix_with_optional_n_consonant(z); /* call mark_suffix_with_optional_n_consonant, line 194 */ + { int ret = r_mark_suffix_with_optional_n_consonant(z); if (ret <= 0) return ret; } return 1; } -static int r_mark_yA(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 198 */ +static int r_mark_yA(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (z->c <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 199 */ + if (z->c <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; if (!(find_among_b(z, a_4, 2))) return 0; - { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 200 */ + { int ret = r_mark_suffix_with_optional_y_consonant(z); if (ret <= 0) return ret; } return 1; } -static int r_mark_nA(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 204 */ +static int r_mark_nA(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 205 */ + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; if (!(find_among_b(z, a_5, 2))) return 0; return 1; } -static int r_mark_DA(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 209 */ +static int r_mark_DA(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 210 */ + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; if (!(find_among_b(z, a_6, 4))) return 0; return 1; } -static int r_mark_ndA(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 214 */ +static int r_mark_ndA(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 215 */ + if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; if (!(find_among_b(z, a_7, 2))) return 0; return 1; } -static int r_mark_DAn(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 219 */ +static int r_mark_DAn(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0; /* among, line 220 */ + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0; if (!(find_among_b(z, a_8, 4))) return 0; return 1; } -static int r_mark_ndAn(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 224 */ +static int r_mark_ndAn(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (z->c - 3 <= z->lb || z->p[z->c - 1] != 110) return 0; /* among, line 225 */ + if (z->c - 3 <= z->lb || z->p[z->c - 1] != 110) return 0; if (!(find_among_b(z, a_9, 2))) return 0; return 1; } -static int r_mark_ylA(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 229 */ +static int r_mark_ylA(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 230 */ + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; if (!(find_among_b(z, a_10, 2))) return 0; - { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 231 */ + { int ret = r_mark_suffix_with_optional_y_consonant(z); if (ret <= 0) return ret; } return 1; } -static int r_mark_ki(struct SN_env * z) { /* backwardmode */ - if (!(eq_s_b(z, 2, s_3))) return 0; /* literal, line 235 */ +static int r_mark_ki(struct SN_env * z) { + if (!(eq_s_b(z, 2, s_3))) return 0; return 1; } -static int r_mark_ncA(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 239 */ +static int r_mark_ncA(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 240 */ + if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; if (!(find_among_b(z, a_11, 2))) return 0; - { int ret = r_mark_suffix_with_optional_n_consonant(z); /* call mark_suffix_with_optional_n_consonant, line 241 */ + { int ret = r_mark_suffix_with_optional_n_consonant(z); if (ret <= 0) return ret; } return 1; } -static int r_mark_yUm(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 245 */ +static int r_mark_yUm(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 109) return 0; /* among, line 246 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 109) return 0; if (!(find_among_b(z, a_12, 4))) return 0; - { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 247 */ + { int ret = r_mark_suffix_with_optional_y_consonant(z); if (ret <= 0) return ret; } return 1; } -static int r_mark_sUn(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 251 */ +static int r_mark_sUn(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0; /* among, line 252 */ + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0; if (!(find_among_b(z, a_13, 4))) return 0; return 1; } -static int r_mark_yUz(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 256 */ +static int r_mark_yUz(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (z->c - 1 <= z->lb || z->p[z->c - 1] != 122) return 0; /* among, line 257 */ + if (z->c - 1 <= z->lb || z->p[z->c - 1] != 122) return 0; if (!(find_among_b(z, a_14, 4))) return 0; - { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 258 */ + { int ret = r_mark_suffix_with_optional_y_consonant(z); if (ret <= 0) return ret; } return 1; } -static int r_mark_sUnUz(struct SN_env * z) { /* backwardmode */ - if (z->c - 4 <= z->lb || z->p[z->c - 1] != 122) return 0; /* among, line 262 */ +static int r_mark_sUnUz(struct SN_env * z) { + if (z->c - 4 <= z->lb || z->p[z->c - 1] != 122) return 0; if (!(find_among_b(z, a_15, 4))) return 0; return 1; } -static int r_mark_lAr(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 266 */ +static int r_mark_lAr(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0; /* among, line 267 */ + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0; if (!(find_among_b(z, a_16, 2))) return 0; return 1; } -static int r_mark_nUz(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 271 */ +static int r_mark_nUz(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (z->c - 2 <= z->lb || z->p[z->c - 1] != 122) return 0; /* among, line 272 */ + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 122) return 0; if (!(find_among_b(z, a_17, 4))) return 0; return 1; } -static int r_mark_DUr(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 276 */ +static int r_mark_DUr(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0; /* among, line 277 */ + if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0; if (!(find_among_b(z, a_18, 8))) return 0; return 1; } -static int r_mark_cAsInA(struct SN_env * z) { /* backwardmode */ - if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; /* among, line 281 */ +static int r_mark_cAsInA(struct SN_env * z) { + if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0; if (!(find_among_b(z, a_19, 2))) return 0; return 1; } -static int r_mark_yDU(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 285 */ +static int r_mark_yDU(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (!(find_among_b(z, a_20, 32))) return 0; /* among, line 286 */ - { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 290 */ + if (!(find_among_b(z, a_20, 32))) return 0; + { int ret = r_mark_suffix_with_optional_y_consonant(z); if (ret <= 0) return ret; } return 1; } -static int r_mark_ysA(struct SN_env * z) { /* backwardmode */ - if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((26658 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; /* among, line 295 */ +static int r_mark_ysA(struct SN_env * z) { + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((26658 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0; if (!(find_among_b(z, a_21, 8))) return 0; - { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 296 */ + { int ret = r_mark_suffix_with_optional_y_consonant(z); if (ret <= 0) return ret; } return 1; } -static int r_mark_ymUs_(struct SN_env * z) { /* backwardmode */ - { int ret = r_check_vowel_harmony(z); /* call check_vowel_harmony, line 300 */ +static int r_mark_ymUs_(struct SN_env * z) { + { int ret = r_check_vowel_harmony(z); if (ret <= 0) return ret; } - if (z->c - 3 <= z->lb || z->p[z->c - 1] != 159) return 0; /* among, line 301 */ + if (z->c - 3 <= z->lb || z->p[z->c - 1] != 159) return 0; if (!(find_among_b(z, a_22, 4))) return 0; - { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 302 */ + { int ret = r_mark_suffix_with_optional_y_consonant(z); if (ret <= 0) return ret; } return 1; } -static int r_mark_yken(struct SN_env * z) { /* backwardmode */ - if (!(eq_s_b(z, 3, s_4))) return 0; /* literal, line 306 */ - { int ret = r_mark_suffix_with_optional_y_consonant(z); /* call mark_suffix_with_optional_y_consonant, line 306 */ +static int r_mark_yken(struct SN_env * z) { + if (!(eq_s_b(z, 3, s_4))) return 0; + { int ret = r_mark_suffix_with_optional_y_consonant(z); if (ret <= 0) return ret; } return 1; } -static int r_stem_nominal_verb_suffixes(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 310 */ - z->B[0] = 1; /* set continue_stemming_noun_suffixes, line 311 */ - { int m1 = z->l - z->c; (void)m1; /* or, line 313 */ - { int m2 = z->l - z->c; (void)m2; /* or, line 312 */ - { int ret = r_mark_ymUs_(z); /* call mark_ymUs_, line 312 */ +static int r_stem_nominal_verb_suffixes(struct SN_env * z) { + z->ket = z->c; + z->I[0] = 1; + { int m1 = z->l - z->c; (void)m1; + { int m2 = z->l - z->c; (void)m2; + { int ret = r_mark_ymUs_(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } goto lab2; lab3: z->c = z->l - m2; - { int ret = r_mark_yDU(z); /* call mark_yDU, line 312 */ + { int ret = r_mark_yDU(z); if (ret == 0) goto lab4; if (ret < 0) return ret; } goto lab2; lab4: z->c = z->l - m2; - { int ret = r_mark_ysA(z); /* call mark_ysA, line 312 */ + { int ret = r_mark_ysA(z); if (ret == 0) goto lab5; if (ret < 0) return ret; } goto lab2; lab5: z->c = z->l - m2; - { int ret = r_mark_yken(z); /* call mark_yken, line 312 */ + { int ret = r_mark_yken(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } @@ -933,40 +933,40 @@ static int r_stem_nominal_verb_suffixes(struct SN_env * z) { /* backwardmode */ goto lab0; lab1: z->c = z->l - m1; - { int ret = r_mark_cAsInA(z); /* call mark_cAsInA, line 314 */ + { int ret = r_mark_cAsInA(z); if (ret == 0) goto lab6; if (ret < 0) return ret; } - { int m3 = z->l - z->c; (void)m3; /* or, line 314 */ - { int ret = r_mark_sUnUz(z); /* call mark_sUnUz, line 314 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_mark_sUnUz(z); if (ret == 0) goto lab8; if (ret < 0) return ret; } goto lab7; lab8: z->c = z->l - m3; - { int ret = r_mark_lAr(z); /* call mark_lAr, line 314 */ + { int ret = r_mark_lAr(z); if (ret == 0) goto lab9; if (ret < 0) return ret; } goto lab7; lab9: z->c = z->l - m3; - { int ret = r_mark_yUm(z); /* call mark_yUm, line 314 */ + { int ret = r_mark_yUm(z); if (ret == 0) goto lab10; if (ret < 0) return ret; } goto lab7; lab10: z->c = z->l - m3; - { int ret = r_mark_sUn(z); /* call mark_sUn, line 314 */ + { int ret = r_mark_sUn(z); if (ret == 0) goto lab11; if (ret < 0) return ret; } goto lab7; lab11: z->c = z->l - m3; - { int ret = r_mark_yUz(z); /* call mark_yUz, line 314 */ + { int ret = r_mark_yUz(z); if (ret == 0) goto lab12; if (ret < 0) return ret; } @@ -975,46 +975,46 @@ static int r_stem_nominal_verb_suffixes(struct SN_env * z) { /* backwardmode */ z->c = z->l - m3; } lab7: - { int ret = r_mark_ymUs_(z); /* call mark_ymUs_, line 314 */ + { int ret = r_mark_ymUs_(z); if (ret == 0) goto lab6; if (ret < 0) return ret; } goto lab0; lab6: z->c = z->l - m1; - { int ret = r_mark_lAr(z); /* call mark_lAr, line 317 */ + { int ret = r_mark_lAr(z); if (ret == 0) goto lab13; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 317 */ - { int ret = slice_del(z); /* delete, line 317 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m4 = z->l - z->c; (void)m4; /* try, line 317 */ - z->ket = z->c; /* [, line 317 */ - { int m5 = z->l - z->c; (void)m5; /* or, line 317 */ - { int ret = r_mark_DUr(z); /* call mark_DUr, line 317 */ + { int m4 = z->l - z->c; (void)m4; + z->ket = z->c; + { int m5 = z->l - z->c; (void)m5; + { int ret = r_mark_DUr(z); if (ret == 0) goto lab16; if (ret < 0) return ret; } goto lab15; lab16: z->c = z->l - m5; - { int ret = r_mark_yDU(z); /* call mark_yDU, line 317 */ + { int ret = r_mark_yDU(z); if (ret == 0) goto lab17; if (ret < 0) return ret; } goto lab15; lab17: z->c = z->l - m5; - { int ret = r_mark_ysA(z); /* call mark_ysA, line 317 */ + { int ret = r_mark_ysA(z); if (ret == 0) goto lab18; if (ret < 0) return ret; } goto lab15; lab18: z->c = z->l - m5; - { int ret = r_mark_ymUs_(z); /* call mark_ymUs_, line 317 */ + { int ret = r_mark_ymUs_(z); if (ret == 0) { z->c = z->l - m4; goto lab14; } if (ret < 0) return ret; } @@ -1023,23 +1023,23 @@ static int r_stem_nominal_verb_suffixes(struct SN_env * z) { /* backwardmode */ lab14: ; } - z->B[0] = 0; /* unset continue_stemming_noun_suffixes, line 318 */ + z->I[0] = 0; goto lab0; lab13: z->c = z->l - m1; - { int ret = r_mark_nUz(z); /* call mark_nUz, line 321 */ + { int ret = r_mark_nUz(z); if (ret == 0) goto lab19; if (ret < 0) return ret; } - { int m6 = z->l - z->c; (void)m6; /* or, line 321 */ - { int ret = r_mark_yDU(z); /* call mark_yDU, line 321 */ + { int m6 = z->l - z->c; (void)m6; + { int ret = r_mark_yDU(z); if (ret == 0) goto lab21; if (ret < 0) return ret; } goto lab20; lab21: z->c = z->l - m6; - { int ret = r_mark_ysA(z); /* call mark_ysA, line 321 */ + { int ret = r_mark_ysA(z); if (ret == 0) goto lab19; if (ret < 0) return ret; } @@ -1048,41 +1048,41 @@ static int r_stem_nominal_verb_suffixes(struct SN_env * z) { /* backwardmode */ goto lab0; lab19: z->c = z->l - m1; - { int m7 = z->l - z->c; (void)m7; /* or, line 323 */ - { int ret = r_mark_sUnUz(z); /* call mark_sUnUz, line 323 */ + { int m7 = z->l - z->c; (void)m7; + { int ret = r_mark_sUnUz(z); if (ret == 0) goto lab24; if (ret < 0) return ret; } goto lab23; lab24: z->c = z->l - m7; - { int ret = r_mark_yUz(z); /* call mark_yUz, line 323 */ + { int ret = r_mark_yUz(z); if (ret == 0) goto lab25; if (ret < 0) return ret; } goto lab23; lab25: z->c = z->l - m7; - { int ret = r_mark_sUn(z); /* call mark_sUn, line 323 */ + { int ret = r_mark_sUn(z); if (ret == 0) goto lab26; if (ret < 0) return ret; } goto lab23; lab26: z->c = z->l - m7; - { int ret = r_mark_yUm(z); /* call mark_yUm, line 323 */ + { int ret = r_mark_yUm(z); if (ret == 0) goto lab22; if (ret < 0) return ret; } } lab23: - z->bra = z->c; /* ], line 323 */ - { int ret = slice_del(z); /* delete, line 323 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m8 = z->l - z->c; (void)m8; /* try, line 323 */ - z->ket = z->c; /* [, line 323 */ - { int ret = r_mark_ymUs_(z); /* call mark_ymUs_, line 323 */ + { int m8 = z->l - z->c; (void)m8; + z->ket = z->c; + { int ret = r_mark_ymUs_(z); if (ret == 0) { z->c = z->l - m8; goto lab27; } if (ret < 0) return ret; } @@ -1092,45 +1092,45 @@ static int r_stem_nominal_verb_suffixes(struct SN_env * z) { /* backwardmode */ goto lab0; lab22: z->c = z->l - m1; - { int ret = r_mark_DUr(z); /* call mark_DUr, line 325 */ + { int ret = r_mark_DUr(z); if (ret <= 0) return ret; } - z->bra = z->c; /* ], line 325 */ - { int ret = slice_del(z); /* delete, line 325 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m9 = z->l - z->c; (void)m9; /* try, line 325 */ - z->ket = z->c; /* [, line 325 */ - { int m10 = z->l - z->c; (void)m10; /* or, line 325 */ - { int ret = r_mark_sUnUz(z); /* call mark_sUnUz, line 325 */ + { int m9 = z->l - z->c; (void)m9; + z->ket = z->c; + { int m10 = z->l - z->c; (void)m10; + { int ret = r_mark_sUnUz(z); if (ret == 0) goto lab30; if (ret < 0) return ret; } goto lab29; lab30: z->c = z->l - m10; - { int ret = r_mark_lAr(z); /* call mark_lAr, line 325 */ + { int ret = r_mark_lAr(z); if (ret == 0) goto lab31; if (ret < 0) return ret; } goto lab29; lab31: z->c = z->l - m10; - { int ret = r_mark_yUm(z); /* call mark_yUm, line 325 */ + { int ret = r_mark_yUm(z); if (ret == 0) goto lab32; if (ret < 0) return ret; } goto lab29; lab32: z->c = z->l - m10; - { int ret = r_mark_sUn(z); /* call mark_sUn, line 325 */ + { int ret = r_mark_sUn(z); if (ret == 0) goto lab33; if (ret < 0) return ret; } goto lab29; lab33: z->c = z->l - m10; - { int ret = r_mark_yUz(z); /* call mark_yUz, line 325 */ + { int ret = r_mark_yUz(z); if (ret == 0) goto lab34; if (ret < 0) return ret; } @@ -1139,7 +1139,7 @@ static int r_stem_nominal_verb_suffixes(struct SN_env * z) { /* backwardmode */ z->c = z->l - m10; } lab29: - { int ret = r_mark_ymUs_(z); /* call mark_ymUs_, line 325 */ + { int ret = r_mark_ymUs_(z); if (ret == 0) { z->c = z->l - m9; goto lab28; } if (ret < 0) return ret; } @@ -1148,40 +1148,40 @@ static int r_stem_nominal_verb_suffixes(struct SN_env * z) { /* backwardmode */ } } lab0: - z->bra = z->c; /* ], line 326 */ - { int ret = slice_del(z); /* delete, line 326 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } return 1; } -static int r_stem_suffix_chain_before_ki(struct SN_env * z) { /* backwardmode */ - z->ket = z->c; /* [, line 331 */ - { int ret = r_mark_ki(z); /* call mark_ki, line 332 */ +static int r_stem_suffix_chain_before_ki(struct SN_env * z) { + z->ket = z->c; + { int ret = r_mark_ki(z); if (ret <= 0) return ret; } - { int m1 = z->l - z->c; (void)m1; /* or, line 340 */ - { int ret = r_mark_DA(z); /* call mark_DA, line 334 */ + { int m1 = z->l - z->c; (void)m1; + { int ret = r_mark_DA(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 334 */ - { int ret = slice_del(z); /* delete, line 334 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m2 = z->l - z->c; (void)m2; /* try, line 334 */ - z->ket = z->c; /* [, line 334 */ - { int m3 = z->l - z->c; (void)m3; /* or, line 336 */ - { int ret = r_mark_lAr(z); /* call mark_lAr, line 335 */ + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + { int m3 = z->l - z->c; (void)m3; + { int ret = r_mark_lAr(z); if (ret == 0) goto lab4; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 335 */ - { int ret = slice_del(z); /* delete, line 335 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m4 = z->l - z->c; (void)m4; /* try, line 335 */ - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 335 */ + { int m4 = z->l - z->c; (void)m4; + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m4; goto lab5; } if (ret < 0) return ret; } @@ -1191,25 +1191,25 @@ static int r_stem_suffix_chain_before_ki(struct SN_env * z) { /* backwardmode */ goto lab3; lab4: z->c = z->l - m3; - { int ret = r_mark_possessives(z); /* call mark_possessives, line 337 */ + { int ret = r_mark_possessives(z); if (ret == 0) { z->c = z->l - m2; goto lab2; } if (ret < 0) return ret; } - z->bra = z->c; /* ], line 337 */ - { int ret = slice_del(z); /* delete, line 337 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m5 = z->l - z->c; (void)m5; /* try, line 337 */ - z->ket = z->c; /* [, line 337 */ - { int ret = r_mark_lAr(z); /* call mark_lAr, line 337 */ + { int m5 = z->l - z->c; (void)m5; + z->ket = z->c; + { int ret = r_mark_lAr(z); if (ret == 0) { z->c = z->l - m5; goto lab6; } if (ret < 0) return ret; } - z->bra = z->c; /* ], line 337 */ - { int ret = slice_del(z); /* delete, line 337 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 337 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m5; goto lab6; } if (ret < 0) return ret; } @@ -1224,58 +1224,58 @@ static int r_stem_suffix_chain_before_ki(struct SN_env * z) { /* backwardmode */ goto lab0; lab1: z->c = z->l - m1; - { int ret = r_mark_nUn(z); /* call mark_nUn, line 341 */ + { int ret = r_mark_nUn(z); if (ret == 0) goto lab7; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 341 */ - { int ret = slice_del(z); /* delete, line 341 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m6 = z->l - z->c; (void)m6; /* try, line 341 */ - z->ket = z->c; /* [, line 341 */ - { int m7 = z->l - z->c; (void)m7; /* or, line 343 */ - { int ret = r_mark_lArI(z); /* call mark_lArI, line 342 */ + { int m6 = z->l - z->c; (void)m6; + z->ket = z->c; + { int m7 = z->l - z->c; (void)m7; + { int ret = r_mark_lArI(z); if (ret == 0) goto lab10; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 342 */ - { int ret = slice_del(z); /* delete, line 342 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab9; lab10: z->c = z->l - m7; - z->ket = z->c; /* [, line 344 */ - { int m8 = z->l - z->c; (void)m8; /* or, line 344 */ - { int ret = r_mark_possessives(z); /* call mark_possessives, line 344 */ + z->ket = z->c; + { int m8 = z->l - z->c; (void)m8; + { int ret = r_mark_possessives(z); if (ret == 0) goto lab13; if (ret < 0) return ret; } goto lab12; lab13: z->c = z->l - m8; - { int ret = r_mark_sU(z); /* call mark_sU, line 344 */ + { int ret = r_mark_sU(z); if (ret == 0) goto lab11; if (ret < 0) return ret; } } lab12: - z->bra = z->c; /* ], line 344 */ - { int ret = slice_del(z); /* delete, line 344 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m9 = z->l - z->c; (void)m9; /* try, line 344 */ - z->ket = z->c; /* [, line 344 */ - { int ret = r_mark_lAr(z); /* call mark_lAr, line 344 */ + { int m9 = z->l - z->c; (void)m9; + z->ket = z->c; + { int ret = r_mark_lAr(z); if (ret == 0) { z->c = z->l - m9; goto lab14; } if (ret < 0) return ret; } - z->bra = z->c; /* ], line 344 */ - { int ret = slice_del(z); /* delete, line 344 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 344 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m9; goto lab14; } if (ret < 0) return ret; } @@ -1285,7 +1285,7 @@ static int r_stem_suffix_chain_before_ki(struct SN_env * z) { /* backwardmode */ goto lab9; lab11: z->c = z->l - m7; - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 346 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m6; goto lab8; } if (ret < 0) return ret; } @@ -1297,40 +1297,40 @@ static int r_stem_suffix_chain_before_ki(struct SN_env * z) { /* backwardmode */ goto lab0; lab7: z->c = z->l - m1; - { int ret = r_mark_ndA(z); /* call mark_ndA, line 349 */ + { int ret = r_mark_ndA(z); if (ret <= 0) return ret; } - { int m10 = z->l - z->c; (void)m10; /* or, line 351 */ - { int ret = r_mark_lArI(z); /* call mark_lArI, line 350 */ + { int m10 = z->l - z->c; (void)m10; + { int ret = r_mark_lArI(z); if (ret == 0) goto lab16; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 350 */ - { int ret = slice_del(z); /* delete, line 350 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab15; lab16: z->c = z->l - m10; - { int ret = r_mark_sU(z); /* call mark_sU, line 352 */ + { int ret = r_mark_sU(z); if (ret == 0) goto lab17; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 352 */ - { int ret = slice_del(z); /* delete, line 352 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m11 = z->l - z->c; (void)m11; /* try, line 352 */ - z->ket = z->c; /* [, line 352 */ - { int ret = r_mark_lAr(z); /* call mark_lAr, line 352 */ + { int m11 = z->l - z->c; (void)m11; + z->ket = z->c; + { int ret = r_mark_lAr(z); if (ret == 0) { z->c = z->l - m11; goto lab18; } if (ret < 0) return ret; } - z->bra = z->c; /* ], line 352 */ - { int ret = slice_del(z); /* delete, line 352 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 352 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m11; goto lab18; } if (ret < 0) return ret; } @@ -1340,7 +1340,7 @@ static int r_stem_suffix_chain_before_ki(struct SN_env * z) { /* backwardmode */ goto lab15; lab17: z->c = z->l - m10; - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 354 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret <= 0) return ret; } } @@ -1351,19 +1351,19 @@ static int r_stem_suffix_chain_before_ki(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ - { int m1 = z->l - z->c; (void)m1; /* or, line 361 */ - z->ket = z->c; /* [, line 360 */ - { int ret = r_mark_lAr(z); /* call mark_lAr, line 360 */ +static int r_stem_noun_suffixes(struct SN_env * z) { + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + { int ret = r_mark_lAr(z); if (ret == 0) goto lab1; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 360 */ - { int ret = slice_del(z); /* delete, line 360 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m2 = z->l - z->c; (void)m2; /* try, line 360 */ - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 360 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m2; goto lab2; } if (ret < 0) return ret; } @@ -1373,59 +1373,59 @@ static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ goto lab0; lab1: z->c = z->l - m1; - z->ket = z->c; /* [, line 362 */ - { int ret = r_mark_ncA(z); /* call mark_ncA, line 362 */ + z->ket = z->c; + { int ret = r_mark_ncA(z); if (ret == 0) goto lab3; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 362 */ - { int ret = slice_del(z); /* delete, line 362 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m3 = z->l - z->c; (void)m3; /* try, line 363 */ - { int m4 = z->l - z->c; (void)m4; /* or, line 365 */ - z->ket = z->c; /* [, line 364 */ - { int ret = r_mark_lArI(z); /* call mark_lArI, line 364 */ + { int m3 = z->l - z->c; (void)m3; + { int m4 = z->l - z->c; (void)m4; + z->ket = z->c; + { int ret = r_mark_lArI(z); if (ret == 0) goto lab6; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 364 */ - { int ret = slice_del(z); /* delete, line 364 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab5; lab6: z->c = z->l - m4; - z->ket = z->c; /* [, line 366 */ - { int m5 = z->l - z->c; (void)m5; /* or, line 366 */ - { int ret = r_mark_possessives(z); /* call mark_possessives, line 366 */ + z->ket = z->c; + { int m5 = z->l - z->c; (void)m5; + { int ret = r_mark_possessives(z); if (ret == 0) goto lab9; if (ret < 0) return ret; } goto lab8; lab9: z->c = z->l - m5; - { int ret = r_mark_sU(z); /* call mark_sU, line 366 */ + { int ret = r_mark_sU(z); if (ret == 0) goto lab7; if (ret < 0) return ret; } } lab8: - z->bra = z->c; /* ], line 366 */ - { int ret = slice_del(z); /* delete, line 366 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m6 = z->l - z->c; (void)m6; /* try, line 366 */ - z->ket = z->c; /* [, line 366 */ - { int ret = r_mark_lAr(z); /* call mark_lAr, line 366 */ + { int m6 = z->l - z->c; (void)m6; + z->ket = z->c; + { int ret = r_mark_lAr(z); if (ret == 0) { z->c = z->l - m6; goto lab10; } if (ret < 0) return ret; } - z->bra = z->c; /* ], line 366 */ - { int ret = slice_del(z); /* delete, line 366 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 366 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m6; goto lab10; } if (ret < 0) return ret; } @@ -1435,16 +1435,16 @@ static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ goto lab5; lab7: z->c = z->l - m4; - z->ket = z->c; /* [, line 368 */ - { int ret = r_mark_lAr(z); /* call mark_lAr, line 368 */ + z->ket = z->c; + { int ret = r_mark_lAr(z); if (ret == 0) { z->c = z->l - m3; goto lab4; } if (ret < 0) return ret; } - z->bra = z->c; /* ], line 368 */ - { int ret = slice_del(z); /* delete, line 368 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 368 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m3; goto lab4; } if (ret < 0) return ret; } @@ -1456,52 +1456,52 @@ static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ goto lab0; lab3: z->c = z->l - m1; - z->ket = z->c; /* [, line 372 */ - { int m7 = z->l - z->c; (void)m7; /* or, line 372 */ - { int ret = r_mark_ndA(z); /* call mark_ndA, line 372 */ + z->ket = z->c; + { int m7 = z->l - z->c; (void)m7; + { int ret = r_mark_ndA(z); if (ret == 0) goto lab13; if (ret < 0) return ret; } goto lab12; lab13: z->c = z->l - m7; - { int ret = r_mark_nA(z); /* call mark_nA, line 372 */ + { int ret = r_mark_nA(z); if (ret == 0) goto lab11; if (ret < 0) return ret; } } lab12: - { int m8 = z->l - z->c; (void)m8; /* or, line 375 */ - { int ret = r_mark_lArI(z); /* call mark_lArI, line 374 */ + { int m8 = z->l - z->c; (void)m8; + { int ret = r_mark_lArI(z); if (ret == 0) goto lab15; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 374 */ - { int ret = slice_del(z); /* delete, line 374 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab14; lab15: z->c = z->l - m8; - { int ret = r_mark_sU(z); /* call mark_sU, line 376 */ + { int ret = r_mark_sU(z); if (ret == 0) goto lab16; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 376 */ - { int ret = slice_del(z); /* delete, line 376 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m9 = z->l - z->c; (void)m9; /* try, line 376 */ - z->ket = z->c; /* [, line 376 */ - { int ret = r_mark_lAr(z); /* call mark_lAr, line 376 */ + { int m9 = z->l - z->c; (void)m9; + z->ket = z->c; + { int ret = r_mark_lAr(z); if (ret == 0) { z->c = z->l - m9; goto lab17; } if (ret < 0) return ret; } - z->bra = z->c; /* ], line 376 */ - { int ret = slice_del(z); /* delete, line 376 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 376 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m9; goto lab17; } if (ret < 0) return ret; } @@ -1511,7 +1511,7 @@ static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ goto lab14; lab16: z->c = z->l - m8; - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 378 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) goto lab11; if (ret < 0) return ret; } @@ -1520,41 +1520,41 @@ static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ goto lab0; lab11: z->c = z->l - m1; - z->ket = z->c; /* [, line 382 */ - { int m10 = z->l - z->c; (void)m10; /* or, line 382 */ - { int ret = r_mark_ndAn(z); /* call mark_ndAn, line 382 */ + z->ket = z->c; + { int m10 = z->l - z->c; (void)m10; + { int ret = r_mark_ndAn(z); if (ret == 0) goto lab20; if (ret < 0) return ret; } goto lab19; lab20: z->c = z->l - m10; - { int ret = r_mark_nU(z); /* call mark_nU, line 382 */ + { int ret = r_mark_nU(z); if (ret == 0) goto lab18; if (ret < 0) return ret; } } lab19: - { int m11 = z->l - z->c; (void)m11; /* or, line 382 */ - { int ret = r_mark_sU(z); /* call mark_sU, line 382 */ + { int m11 = z->l - z->c; (void)m11; + { int ret = r_mark_sU(z); if (ret == 0) goto lab22; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 382 */ - { int ret = slice_del(z); /* delete, line 382 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m12 = z->l - z->c; (void)m12; /* try, line 382 */ - z->ket = z->c; /* [, line 382 */ - { int ret = r_mark_lAr(z); /* call mark_lAr, line 382 */ + { int m12 = z->l - z->c; (void)m12; + z->ket = z->c; + { int ret = r_mark_lAr(z); if (ret == 0) { z->c = z->l - m12; goto lab23; } if (ret < 0) return ret; } - z->bra = z->c; /* ], line 382 */ - { int ret = slice_del(z); /* delete, line 382 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 382 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m12; goto lab23; } if (ret < 0) return ret; } @@ -1564,7 +1564,7 @@ static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ goto lab21; lab22: z->c = z->l - m11; - { int ret = r_mark_lArI(z); /* call mark_lArI, line 382 */ + { int ret = r_mark_lArI(z); if (ret == 0) goto lab18; if (ret < 0) return ret; } @@ -1573,37 +1573,37 @@ static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ goto lab0; lab18: z->c = z->l - m1; - z->ket = z->c; /* [, line 384 */ - { int ret = r_mark_DAn(z); /* call mark_DAn, line 384 */ + z->ket = z->c; + { int ret = r_mark_DAn(z); if (ret == 0) goto lab24; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 384 */ - { int ret = slice_del(z); /* delete, line 384 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m13 = z->l - z->c; (void)m13; /* try, line 384 */ - z->ket = z->c; /* [, line 384 */ - { int m14 = z->l - z->c; (void)m14; /* or, line 387 */ - { int ret = r_mark_possessives(z); /* call mark_possessives, line 386 */ + { int m13 = z->l - z->c; (void)m13; + z->ket = z->c; + { int m14 = z->l - z->c; (void)m14; + { int ret = r_mark_possessives(z); if (ret == 0) goto lab27; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 386 */ - { int ret = slice_del(z); /* delete, line 386 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m15 = z->l - z->c; (void)m15; /* try, line 386 */ - z->ket = z->c; /* [, line 386 */ - { int ret = r_mark_lAr(z); /* call mark_lAr, line 386 */ + { int m15 = z->l - z->c; (void)m15; + z->ket = z->c; + { int ret = r_mark_lAr(z); if (ret == 0) { z->c = z->l - m15; goto lab28; } if (ret < 0) return ret; } - z->bra = z->c; /* ], line 386 */ - { int ret = slice_del(z); /* delete, line 386 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 386 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m15; goto lab28; } if (ret < 0) return ret; } @@ -1613,16 +1613,16 @@ static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ goto lab26; lab27: z->c = z->l - m14; - { int ret = r_mark_lAr(z); /* call mark_lAr, line 388 */ + { int ret = r_mark_lAr(z); if (ret == 0) goto lab29; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 388 */ - { int ret = slice_del(z); /* delete, line 388 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m16 = z->l - z->c; (void)m16; /* try, line 388 */ - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 388 */ + { int m16 = z->l - z->c; (void)m16; + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m16; goto lab30; } if (ret < 0) return ret; } @@ -1632,7 +1632,7 @@ static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ goto lab26; lab29: z->c = z->l - m14; - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 390 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m13; goto lab25; } if (ret < 0) return ret; } @@ -1644,73 +1644,73 @@ static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ goto lab0; lab24: z->c = z->l - m1; - z->ket = z->c; /* [, line 394 */ - { int m17 = z->l - z->c; (void)m17; /* or, line 394 */ - { int ret = r_mark_nUn(z); /* call mark_nUn, line 394 */ + z->ket = z->c; + { int m17 = z->l - z->c; (void)m17; + { int ret = r_mark_nUn(z); if (ret == 0) goto lab33; if (ret < 0) return ret; } goto lab32; lab33: z->c = z->l - m17; - { int ret = r_mark_ylA(z); /* call mark_ylA, line 394 */ + { int ret = r_mark_ylA(z); if (ret == 0) goto lab31; if (ret < 0) return ret; } } lab32: - z->bra = z->c; /* ], line 394 */ - { int ret = slice_del(z); /* delete, line 394 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m18 = z->l - z->c; (void)m18; /* try, line 395 */ - { int m19 = z->l - z->c; (void)m19; /* or, line 397 */ - z->ket = z->c; /* [, line 396 */ - { int ret = r_mark_lAr(z); /* call mark_lAr, line 396 */ + { int m18 = z->l - z->c; (void)m18; + { int m19 = z->l - z->c; (void)m19; + z->ket = z->c; + { int ret = r_mark_lAr(z); if (ret == 0) goto lab36; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 396 */ - { int ret = slice_del(z); /* delete, line 396 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 396 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) goto lab36; if (ret < 0) return ret; } goto lab35; lab36: z->c = z->l - m19; - z->ket = z->c; /* [, line 398 */ - { int m20 = z->l - z->c; (void)m20; /* or, line 398 */ - { int ret = r_mark_possessives(z); /* call mark_possessives, line 398 */ + z->ket = z->c; + { int m20 = z->l - z->c; (void)m20; + { int ret = r_mark_possessives(z); if (ret == 0) goto lab39; if (ret < 0) return ret; } goto lab38; lab39: z->c = z->l - m20; - { int ret = r_mark_sU(z); /* call mark_sU, line 398 */ + { int ret = r_mark_sU(z); if (ret == 0) goto lab37; if (ret < 0) return ret; } } lab38: - z->bra = z->c; /* ], line 398 */ - { int ret = slice_del(z); /* delete, line 398 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m21 = z->l - z->c; (void)m21; /* try, line 398 */ - z->ket = z->c; /* [, line 398 */ - { int ret = r_mark_lAr(z); /* call mark_lAr, line 398 */ + { int m21 = z->l - z->c; (void)m21; + z->ket = z->c; + { int ret = r_mark_lAr(z); if (ret == 0) { z->c = z->l - m21; goto lab40; } if (ret < 0) return ret; } - z->bra = z->c; /* ], line 398 */ - { int ret = slice_del(z); /* delete, line 398 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 398 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m21; goto lab40; } if (ret < 0) return ret; } @@ -1720,7 +1720,7 @@ static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ goto lab35; lab37: z->c = z->l - m19; - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 400 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m18; goto lab34; } if (ret < 0) return ret; } @@ -1732,65 +1732,65 @@ static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ goto lab0; lab31: z->c = z->l - m1; - z->ket = z->c; /* [, line 404 */ - { int ret = r_mark_lArI(z); /* call mark_lArI, line 404 */ + z->ket = z->c; + { int ret = r_mark_lArI(z); if (ret == 0) goto lab41; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 404 */ - { int ret = slice_del(z); /* delete, line 404 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } goto lab0; lab41: z->c = z->l - m1; - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 406 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) goto lab42; if (ret < 0) return ret; } goto lab0; lab42: z->c = z->l - m1; - z->ket = z->c; /* [, line 408 */ - { int m22 = z->l - z->c; (void)m22; /* or, line 408 */ - { int ret = r_mark_DA(z); /* call mark_DA, line 408 */ + z->ket = z->c; + { int m22 = z->l - z->c; (void)m22; + { int ret = r_mark_DA(z); if (ret == 0) goto lab45; if (ret < 0) return ret; } goto lab44; lab45: z->c = z->l - m22; - { int ret = r_mark_yU(z); /* call mark_yU, line 408 */ + { int ret = r_mark_yU(z); if (ret == 0) goto lab46; if (ret < 0) return ret; } goto lab44; lab46: z->c = z->l - m22; - { int ret = r_mark_yA(z); /* call mark_yA, line 408 */ + { int ret = r_mark_yA(z); if (ret == 0) goto lab43; if (ret < 0) return ret; } } lab44: - z->bra = z->c; /* ], line 408 */ - { int ret = slice_del(z); /* delete, line 408 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m23 = z->l - z->c; (void)m23; /* try, line 408 */ - z->ket = z->c; /* [, line 408 */ - { int m24 = z->l - z->c; (void)m24; /* or, line 408 */ - { int ret = r_mark_possessives(z); /* call mark_possessives, line 408 */ + { int m23 = z->l - z->c; (void)m23; + z->ket = z->c; + { int m24 = z->l - z->c; (void)m24; + { int ret = r_mark_possessives(z); if (ret == 0) goto lab49; if (ret < 0) return ret; } - z->bra = z->c; /* ], line 408 */ - { int ret = slice_del(z); /* delete, line 408 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m25 = z->l - z->c; (void)m25; /* try, line 408 */ - z->ket = z->c; /* [, line 408 */ - { int ret = r_mark_lAr(z); /* call mark_lAr, line 408 */ + { int m25 = z->l - z->c; (void)m25; + z->ket = z->c; + { int ret = r_mark_lAr(z); if (ret == 0) { z->c = z->l - m25; goto lab50; } if (ret < 0) return ret; } @@ -1800,18 +1800,18 @@ static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ goto lab48; lab49: z->c = z->l - m24; - { int ret = r_mark_lAr(z); /* call mark_lAr, line 408 */ + { int ret = r_mark_lAr(z); if (ret == 0) { z->c = z->l - m23; goto lab47; } if (ret < 0) return ret; } } lab48: - z->bra = z->c; /* ], line 408 */ - { int ret = slice_del(z); /* delete, line 408 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - z->ket = z->c; /* [, line 408 */ - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 408 */ + z->ket = z->c; + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m23; goto lab47; } if (ret < 0) return ret; } @@ -1821,35 +1821,35 @@ static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ goto lab0; lab43: z->c = z->l - m1; - z->ket = z->c; /* [, line 410 */ - { int m26 = z->l - z->c; (void)m26; /* or, line 410 */ - { int ret = r_mark_possessives(z); /* call mark_possessives, line 410 */ + z->ket = z->c; + { int m26 = z->l - z->c; (void)m26; + { int ret = r_mark_possessives(z); if (ret == 0) goto lab52; if (ret < 0) return ret; } goto lab51; lab52: z->c = z->l - m26; - { int ret = r_mark_sU(z); /* call mark_sU, line 410 */ + { int ret = r_mark_sU(z); if (ret <= 0) return ret; } } lab51: - z->bra = z->c; /* ], line 410 */ - { int ret = slice_del(z); /* delete, line 410 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int m27 = z->l - z->c; (void)m27; /* try, line 410 */ - z->ket = z->c; /* [, line 410 */ - { int ret = r_mark_lAr(z); /* call mark_lAr, line 410 */ + { int m27 = z->l - z->c; (void)m27; + z->ket = z->c; + { int ret = r_mark_lAr(z); if (ret == 0) { z->c = z->l - m27; goto lab53; } if (ret < 0) return ret; } - z->bra = z->c; /* ], line 410 */ - { int ret = slice_del(z); /* delete, line 410 */ + z->bra = z->c; + { int ret = slice_del(z); if (ret < 0) return ret; } - { int ret = r_stem_suffix_chain_before_ki(z); /* call stem_suffix_chain_before_ki, line 410 */ + { int ret = r_stem_suffix_chain_before_ki(z); if (ret == 0) { z->c = z->l - m27; goto lab53; } if (ret < 0) return ret; } @@ -1861,30 +1861,30 @@ static int r_stem_noun_suffixes(struct SN_env * z) { /* backwardmode */ return 1; } -static int r_post_process_last_consonants(struct SN_env * z) { /* backwardmode */ +static int r_post_process_last_consonants(struct SN_env * z) { int among_var; - z->ket = z->c; /* [, line 414 */ - among_var = find_among_b(z, a_23, 4); /* substring, line 414 */ + z->ket = z->c; + among_var = find_among_b(z, a_23, 4); if (!(among_var)) return 0; - z->bra = z->c; /* ], line 414 */ - switch (among_var) { /* among, line 414 */ + z->bra = z->c; + switch (among_var) { case 1: - { int ret = slice_from_s(z, 1, s_5); /* <-, line 415 */ + { int ret = slice_from_s(z, 1, s_5); if (ret < 0) return ret; } break; case 2: - { int ret = slice_from_s(z, 2, s_6); /* <-, line 416 */ + { int ret = slice_from_s(z, 2, s_6); if (ret < 0) return ret; } break; case 3: - { int ret = slice_from_s(z, 1, s_7); /* <-, line 417 */ + { int ret = slice_from_s(z, 1, s_7); if (ret < 0) return ret; } break; case 4: - { int ret = slice_from_s(z, 1, s_8); /* <-, line 418 */ + { int ret = slice_from_s(z, 1, s_8); if (ret < 0) return ret; } break; @@ -1892,37 +1892,37 @@ static int r_post_process_last_consonants(struct SN_env * z) { /* backwardmode * return 1; } -static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z) { /* backwardmode */ - { int m_test1 = z->l - z->c; /* test, line 429 */ - { int m2 = z->l - z->c; (void)m2; /* or, line 429 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'd') goto lab1; /* literal, line 429 */ +static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z) { + { int m_test1 = z->l - z->c; + { int m2 = z->l - z->c; (void)m2; + if (z->c <= z->lb || z->p[z->c - 1] != 'd') goto lab1; z->c--; goto lab0; lab1: z->c = z->l - m2; - if (z->c <= z->lb || z->p[z->c - 1] != 'g') return 0; /* literal, line 429 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'g') return 0; z->c--; } lab0: z->c = z->l - m_test1; } - { int m3 = z->l - z->c; (void)m3; /* or, line 431 */ - { int m_test4 = z->l - z->c; /* test, line 430 */ - if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab3; /* goto */ /* grouping vowel, line 430 */ - { int m5 = z->l - z->c; (void)m5; /* or, line 430 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab5; /* literal, line 430 */ + { int m3 = z->l - z->c; (void)m3; + { int m_test4 = z->l - z->c; + if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab3; + { int m5 = z->l - z->c; (void)m5; + if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab5; z->c--; goto lab4; lab5: z->c = z->l - m5; - if (!(eq_s_b(z, 2, s_9))) goto lab3; /* literal, line 430 */ + if (!(eq_s_b(z, 2, s_9))) goto lab3; } lab4: z->c = z->l - m_test4; } { int ret; { int saved_c = z->c; - ret = insert_s(z, z->c, z->c, 2, s_10); /* <+, line 430 */ + ret = insert_s(z, z->c, z->c, 2, s_10); z->c = saved_c; } if (ret < 0) return ret; @@ -1930,15 +1930,15 @@ static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z) { /* backwa goto lab2; lab3: z->c = z->l - m3; - { int m_test6 = z->l - z->c; /* test, line 432 */ - if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab6; /* goto */ /* grouping vowel, line 432 */ - { int m7 = z->l - z->c; (void)m7; /* or, line 432 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab8; /* literal, line 432 */ + { int m_test6 = z->l - z->c; + if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab6; + { int m7 = z->l - z->c; (void)m7; + if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab8; z->c--; goto lab7; lab8: z->c = z->l - m7; - if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab6; /* literal, line 432 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab6; z->c--; } lab7: @@ -1946,7 +1946,7 @@ static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z) { /* backwa } { int ret; { int saved_c = z->c; - ret = insert_s(z, z->c, z->c, 1, s_11); /* <+, line 432 */ + ret = insert_s(z, z->c, z->c, 1, s_11); z->c = saved_c; } if (ret < 0) return ret; @@ -1954,15 +1954,15 @@ static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z) { /* backwa goto lab2; lab6: z->c = z->l - m3; - { int m_test8 = z->l - z->c; /* test, line 434 */ - if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab9; /* goto */ /* grouping vowel, line 434 */ - { int m9 = z->l - z->c; (void)m9; /* or, line 434 */ - if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab11; /* literal, line 434 */ + { int m_test8 = z->l - z->c; + if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) goto lab9; + { int m9 = z->l - z->c; (void)m9; + if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab11; z->c--; goto lab10; lab11: z->c = z->l - m9; - if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab9; /* literal, line 434 */ + if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab9; z->c--; } lab10: @@ -1970,7 +1970,7 @@ static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z) { /* backwa } { int ret; { int saved_c = z->c; - ret = insert_s(z, z->c, z->c, 1, s_12); /* <+, line 434 */ + ret = insert_s(z, z->c, z->c, 1, s_12); z->c = saved_c; } if (ret < 0) return ret; @@ -1978,21 +1978,21 @@ static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z) { /* backwa goto lab2; lab9: z->c = z->l - m3; - { int m_test10 = z->l - z->c; /* test, line 436 */ - if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0; /* goto */ /* grouping vowel, line 436 */ - { int m11 = z->l - z->c; (void)m11; /* or, line 436 */ - if (!(eq_s_b(z, 2, s_13))) goto lab13; /* literal, line 436 */ + { int m_test10 = z->l - z->c; + if (out_grouping_b_U(z, g_vowel, 97, 305, 1) < 0) return 0; + { int m11 = z->l - z->c; (void)m11; + if (!(eq_s_b(z, 2, s_13))) goto lab13; goto lab12; lab13: z->c = z->l - m11; - if (!(eq_s_b(z, 2, s_14))) return 0; /* literal, line 436 */ + if (!(eq_s_b(z, 2, s_14))) return 0; } lab12: z->c = z->l - m_test10; } { int ret; { int saved_c = z->c; - ret = insert_s(z, z->c, z->c, 2, s_15); /* <+, line 436 */ + ret = insert_s(z, z->c, z->c, 2, s_15); z->c = saved_c; } if (ret < 0) return ret; @@ -2002,22 +2002,23 @@ static int r_append_U_to_stems_ending_with_d_or_g(struct SN_env * z) { /* backwa return 1; } -static int r_is_reserved_word(struct SN_env * z) { /* backwardmode */ - if (!(eq_s_b(z, 2, s_16))) return 0; /* literal, line 440 */ - { int m1 = z->l - z->c; (void)m1; /* try, line 440 */ - if (!(eq_s_b(z, 3, s_17))) { z->c = z->l - m1; goto lab0; } /* literal, line 440 */ +static int r_is_reserved_word(struct SN_env * z) { + if (!(eq_s_b(z, 2, s_16))) return 0; + { int m1 = z->l - z->c; (void)m1; + if (!(eq_s_b(z, 3, s_17))) { z->c = z->l - m1; goto lab0; } lab0: ; } - if (z->c > z->lb) return 0; /* atlimit, line 440 */ + if (z->c > z->lb) return 0; return 1; } -static int r_more_than_one_syllable_word(struct SN_env * z) { /* forwardmode */ - { int c_test1 = z->c; /* test, line 447 */ +static int r_more_than_one_syllable_word(struct SN_env * z) { + { int c_test1 = z->c; { int i = 2; - while(1) { int c2 = z->c; - { /* gopast */ /* grouping vowel, line 447 */ + while(1) { + int c2 = z->c; + { int ret = out_grouping_U(z, g_vowel, 97, 305, 1); if (ret < 0) goto lab0; z->c += ret; @@ -2035,11 +2036,11 @@ static int r_more_than_one_syllable_word(struct SN_env * z) { /* forwardmode */ return 1; } -static int r_postlude(struct SN_env * z) { /* forwardmode */ - z->lb = z->c; z->c = z->l; /* backwards, line 451 */ +static int r_postlude(struct SN_env * z) { + z->lb = z->c; z->c = z->l; - { int m1 = z->l - z->c; (void)m1; /* not, line 452 */ - { int ret = r_is_reserved_word(z); /* call is_reserved_word, line 452 */ + { int m1 = z->l - z->c; (void)m1; + { int ret = r_is_reserved_word(z); if (ret == 0) goto lab0; if (ret < 0) return ret; } @@ -2047,14 +2048,14 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ lab0: z->c = z->l - m1; } - { int m2 = z->l - z->c; (void)m2; /* do, line 453 */ - { int ret = r_append_U_to_stems_ending_with_d_or_g(z); /* call append_U_to_stems_ending_with_d_or_g, line 453 */ + { int m2 = z->l - z->c; (void)m2; + { int ret = r_append_U_to_stems_ending_with_d_or_g(z); if (ret < 0) return ret; } z->c = z->l - m2; } - { int m3 = z->l - z->c; (void)m3; /* do, line 454 */ - { int ret = r_post_process_last_consonants(z); /* call post_process_last_consonants, line 454 */ + { int m3 = z->l - z->c; (void)m3; + { int ret = r_post_process_last_consonants(z); if (ret < 0) return ret; } z->c = z->l - m3; @@ -2063,33 +2064,33 @@ static int r_postlude(struct SN_env * z) { /* forwardmode */ return 1; } -extern int turkish_UTF_8_stem(struct SN_env * z) { /* forwardmode */ - { int ret = r_more_than_one_syllable_word(z); /* call more_than_one_syllable_word, line 460 */ +extern int turkish_UTF_8_stem(struct SN_env * z) { + { int ret = r_more_than_one_syllable_word(z); if (ret <= 0) return ret; } - z->lb = z->c; z->c = z->l; /* backwards, line 462 */ + z->lb = z->c; z->c = z->l; - { int m1 = z->l - z->c; (void)m1; /* do, line 463 */ - { int ret = r_stem_nominal_verb_suffixes(z); /* call stem_nominal_verb_suffixes, line 463 */ + { int m1 = z->l - z->c; (void)m1; + { int ret = r_stem_nominal_verb_suffixes(z); if (ret < 0) return ret; } z->c = z->l - m1; } - if (!(z->B[0])) return 0; /* Boolean test continue_stemming_noun_suffixes, line 464 */ - { int m2 = z->l - z->c; (void)m2; /* do, line 465 */ - { int ret = r_stem_noun_suffixes(z); /* call stem_noun_suffixes, line 465 */ + if (!(z->I[0])) return 0; + { int m2 = z->l - z->c; (void)m2; + { int ret = r_stem_noun_suffixes(z); if (ret < 0) return ret; } z->c = z->l - m2; } z->c = z->lb; - { int ret = r_postlude(z); /* call postlude, line 468 */ + { int ret = r_postlude(z); if (ret <= 0) return ret; } return 1; } -extern struct SN_env * turkish_UTF_8_create_env(void) { return SN_create_env(0, 0, 1); } +extern struct SN_env * turkish_UTF_8_create_env(void) { return SN_create_env(0, 1); } extern void turkish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_yiddish.c b/src/backend/snowball/libstemmer/stem_UTF_8_yiddish.c new file mode 100644 index 0000000000000..c2fc20cd7b6b9 --- /dev/null +++ b/src/backend/snowball/libstemmer/stem_UTF_8_yiddish.c @@ -0,0 +1,1368 @@ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ + +#include "header.h" + +#ifdef __cplusplus +extern "C" { +#endif +extern int yiddish_UTF_8_stem(struct SN_env * z); +#ifdef __cplusplus +} +#endif +static int r_standard_suffix(struct SN_env * z); +static int r_R1plus3(struct SN_env * z); +static int r_R1(struct SN_env * z); +static int r_mark_regions(struct SN_env * z); +static int r_prelude(struct SN_env * z); +#ifdef __cplusplus +extern "C" { +#endif + + +extern struct SN_env * yiddish_UTF_8_create_env(void); +extern void yiddish_UTF_8_close_env(struct SN_env * z); + + +#ifdef __cplusplus +} +#endif +static const symbol s_0_0[10] = { 0xD7, 0x90, 0xD7, 0x93, 0xD7, 0x95, 0xD7, 0xA8, 0xD7, 0x9B }; +static const symbol s_0_1[8] = { 0xD7, 0x90, 0xD7, 0x94, 0xD7, 0x99, 0xD7, 0xA0 }; +static const symbol s_0_2[8] = { 0xD7, 0x90, 0xD7, 0x94, 0xD7, 0xA2, 0xD7, 0xA8 }; +static const symbol s_0_3[8] = { 0xD7, 0x90, 0xD7, 0x94, 0xD7, 0xB2, 0xD7, 0x9E }; +static const symbol s_0_4[6] = { 0xD7, 0x90, 0xD7, 0x95, 0xD7, 0x9E }; +static const symbol s_0_5[12] = { 0xD7, 0x90, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x98, 0xD7, 0xA2, 0xD7, 0xA8 }; +static const symbol s_0_6[10] = { 0xD7, 0x90, 0xD7, 0x99, 0xD7, 0x91, 0xD7, 0xA2, 0xD7, 0xA8 }; +static const symbol s_0_7[4] = { 0xD7, 0x90, 0xD7, 0xA0 }; +static const symbol s_0_8[6] = { 0xD7, 0x90, 0xD7, 0xA0, 0xD7, 0x98 }; +static const symbol s_0_9[14] = { 0xD7, 0x90, 0xD7, 0xA0, 0xD7, 0x98, 0xD7, 0xA7, 0xD7, 0xA2, 0xD7, 0x92, 0xD7, 0xA0 }; +static const symbol s_0_10[12] = { 0xD7, 0x90, 0xD7, 0xA0, 0xD7, 0x99, 0xD7, 0x93, 0xD7, 0xA2, 0xD7, 0xA8 }; +static const symbol s_0_11[4] = { 0xD7, 0x90, 0xD7, 0xA4 }; +static const symbol s_0_12[8] = { 0xD7, 0x90, 0xD7, 0xA4, 0xD7, 0x99, 0xD7, 0xA8 }; +static const symbol s_0_13[10] = { 0xD7, 0x90, 0xD7, 0xA7, 0xD7, 0xA2, 0xD7, 0x92, 0xD7, 0xA0 }; +static const symbol s_0_14[8] = { 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x90, 0xD7, 0xA4 }; +static const symbol s_0_15[8] = { 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x95, 0xD7, 0x9E }; +static const symbol s_0_16[14] = { 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x98, 0xD7, 0xA2, 0xD7, 0xA8 }; +static const symbol s_0_17[12] = { 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0x91, 0xD7, 0xA2, 0xD7, 0xA8 }; +static const symbol s_0_18[8] = { 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0xB1, 0xD7, 0xA1 }; +static const symbol s_0_19[8] = { 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0xB1, 0xD7, 0xA4 }; +static const symbol s_0_20[8] = { 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0xA0 }; +static const symbol s_0_21[8] = { 0xD7, 0x90, 0xD7, 0xB0, 0xD7, 0xA2, 0xD7, 0xA7 }; +static const symbol s_0_22[6] = { 0xD7, 0x90, 0xD7, 0xB1, 0xD7, 0xA1 }; +static const symbol s_0_23[6] = { 0xD7, 0x90, 0xD7, 0xB1, 0xD7, 0xA4 }; +static const symbol s_0_24[6] = { 0xD7, 0x90, 0xD7, 0xB2, 0xD7, 0xA0 }; +static const symbol s_0_25[4] = { 0xD7, 0x91, 0xD7, 0x90 }; +static const symbol s_0_26[4] = { 0xD7, 0x91, 0xD7, 0xB2 }; +static const symbol s_0_27[8] = { 0xD7, 0x93, 0xD7, 0x95, 0xD7, 0xA8, 0xD7, 0x9B }; +static const symbol s_0_28[6] = { 0xD7, 0x93, 0xD7, 0xA2, 0xD7, 0xA8 }; +static const symbol s_0_29[6] = { 0xD7, 0x9E, 0xD7, 0x99, 0xD7, 0x98 }; +static const symbol s_0_30[6] = { 0xD7, 0xA0, 0xD7, 0x90, 0xD7, 0x9B }; +static const symbol s_0_31[6] = { 0xD7, 0xA4, 0xD7, 0x90, 0xD7, 0xA8 }; +static const symbol s_0_32[10] = { 0xD7, 0xA4, 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x91, 0xD7, 0xB2 }; +static const symbol s_0_33[10] = { 0xD7, 0xA4, 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0xB1, 0xD7, 0xA1 }; +static const symbol s_0_34[16] = { 0xD7, 0xA4, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x90, 0xD7, 0xA0, 0xD7, 0x93, 0xD7, 0xA2, 0xD7, 0xA8 }; +static const symbol s_0_35[4] = { 0xD7, 0xA6, 0xD7, 0x95 }; +static const symbol s_0_36[14] = { 0xD7, 0xA6, 0xD7, 0x95, 0xD7, 0x96, 0xD7, 0x90, 0xD7, 0x9E, 0xD7, 0xA2, 0xD7, 0xA0 }; +static const symbol s_0_37[10] = { 0xD7, 0xA6, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0xB1, 0xD7, 0xA4 }; +static const symbol s_0_38[10] = { 0xD7, 0xA6, 0xD7, 0x95, 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0xA7 }; +static const symbol s_0_39[4] = { 0xD7, 0xA6, 0xD7, 0xA2 }; + +static const struct among a_0[40] = +{ +{ 10, s_0_0, -1, 1, 0}, +{ 8, s_0_1, -1, 1, 0}, +{ 8, s_0_2, -1, 1, 0}, +{ 8, s_0_3, -1, 1, 0}, +{ 6, s_0_4, -1, 1, 0}, +{ 12, s_0_5, -1, 1, 0}, +{ 10, s_0_6, -1, 1, 0}, +{ 4, s_0_7, -1, 1, 0}, +{ 6, s_0_8, 7, 1, 0}, +{ 14, s_0_9, 8, 1, 0}, +{ 12, s_0_10, 7, 1, 0}, +{ 4, s_0_11, -1, 1, 0}, +{ 8, s_0_12, 11, 1, 0}, +{ 10, s_0_13, -1, 1, 0}, +{ 8, s_0_14, -1, 1, 0}, +{ 8, s_0_15, -1, 1, 0}, +{ 14, s_0_16, -1, 1, 0}, +{ 12, s_0_17, -1, 1, 0}, +{ 8, s_0_18, -1, 1, 0}, +{ 8, s_0_19, -1, 1, 0}, +{ 8, s_0_20, -1, 1, 0}, +{ 8, s_0_21, -1, 1, 0}, +{ 6, s_0_22, -1, 1, 0}, +{ 6, s_0_23, -1, 1, 0}, +{ 6, s_0_24, -1, 1, 0}, +{ 4, s_0_25, -1, 1, 0}, +{ 4, s_0_26, -1, 1, 0}, +{ 8, s_0_27, -1, 1, 0}, +{ 6, s_0_28, -1, 1, 0}, +{ 6, s_0_29, -1, 1, 0}, +{ 6, s_0_30, -1, 1, 0}, +{ 6, s_0_31, -1, 1, 0}, +{ 10, s_0_32, 31, 1, 0}, +{ 10, s_0_33, 31, 1, 0}, +{ 16, s_0_34, -1, 1, 0}, +{ 4, s_0_35, -1, 1, 0}, +{ 14, s_0_36, 35, 1, 0}, +{ 10, s_0_37, 35, 1, 0}, +{ 10, s_0_38, 35, 1, 0}, +{ 4, s_0_39, -1, 1, 0} +}; + +static const symbol s_1_0[6] = { 0xD7, 0x93, 0xD7, 0x96, 0xD7, 0xA9 }; +static const symbol s_1_1[6] = { 0xD7, 0xA9, 0xD7, 0x98, 0xD7, 0xA8 }; +static const symbol s_1_2[6] = { 0xD7, 0xA9, 0xD7, 0x98, 0xD7, 0xA9 }; +static const symbol s_1_3[6] = { 0xD7, 0xA9, 0xD7, 0xA4, 0xD7, 0xA8 }; + +static const struct among a_1[4] = +{ +{ 6, s_1_0, -1, -1, 0}, +{ 6, s_1_1, -1, -1, 0}, +{ 6, s_1_2, -1, -1, 0}, +{ 6, s_1_3, -1, -1, 0} +}; + +static const symbol s_2_0[6] = { 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x92 }; +static const symbol s_2_1[6] = { 0xD7, 0xA1, 0xD7, 0x98, 0xD7, 0x95 }; +static const symbol s_2_2[2] = { 0xD7, 0x98 }; +static const symbol s_2_3[10] = { 0xD7, 0x91, 0xD7, 0xA8, 0xD7, 0x90, 0xD7, 0x9B, 0xD7, 0x98 }; +static const symbol s_2_4[4] = { 0xD7, 0xA1, 0xD7, 0x98 }; +static const symbol s_2_5[6] = { 0xD7, 0x99, 0xD7, 0xA1, 0xD7, 0x98 }; +static const symbol s_2_6[4] = { 0xD7, 0xA2, 0xD7, 0x98 }; +static const symbol s_2_7[8] = { 0xD7, 0xA9, 0xD7, 0x90, 0xD7, 0xA4, 0xD7, 0x98 }; +static const symbol s_2_8[6] = { 0xD7, 0x94, 0xD7, 0xB2, 0xD7, 0x98 }; +static const symbol s_2_9[6] = { 0xD7, 0xA7, 0xD7, 0xB2, 0xD7, 0x98 }; +static const symbol s_2_10[8] = { 0xD7, 0x99, 0xD7, 0xA7, 0xD7, 0xB2, 0xD7, 0x98 }; +static const symbol s_2_11[6] = { 0xD7, 0x9C, 0xD7, 0xA2, 0xD7, 0x9B }; +static const symbol s_2_12[8] = { 0xD7, 0xA2, 0xD7, 0x9C, 0xD7, 0xA2, 0xD7, 0x9B }; +static const symbol s_2_13[6] = { 0xD7, 0x99, 0xD7, 0x96, 0xD7, 0x9E }; +static const symbol s_2_14[4] = { 0xD7, 0x99, 0xD7, 0x9E }; +static const symbol s_2_15[4] = { 0xD7, 0xA2, 0xD7, 0x9E }; +static const symbol s_2_16[8] = { 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0xA2, 0xD7, 0x9E }; +static const symbol s_2_17[10] = { 0xD7, 0x98, 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0xA2, 0xD7, 0x9E }; +static const symbol s_2_18[2] = { 0xD7, 0xA0 }; +static const symbol s_2_19[10] = { 0xD7, 0xA7, 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0x91, 0xD7, 0xA0 }; +static const symbol s_2_20[8] = { 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0x91, 0xD7, 0xA0 }; +static const symbol s_2_21[10] = { 0xD7, 0x98, 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0x91, 0xD7, 0xA0 }; +static const symbol s_2_22[10] = { 0xD7, 0xA9, 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0x91, 0xD7, 0xA0 }; +static const symbol s_2_23[8] = { 0xD7, 0x94, 0xD7, 0xB1, 0xD7, 0x91, 0xD7, 0xA0 }; +static const symbol s_2_24[10] = { 0xD7, 0xA9, 0xD7, 0xB0, 0xD7, 0x99, 0xD7, 0x92, 0xD7, 0xA0 }; +static const symbol s_2_25[10] = { 0xD7, 0x96, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x92, 0xD7, 0xA0 }; +static const symbol s_2_26[12] = { 0xD7, 0xA9, 0xD7, 0x9C, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x92, 0xD7, 0xA0 }; +static const symbol s_2_27[12] = { 0xD7, 0xA6, 0xD7, 0xB0, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x92, 0xD7, 0xA0 }; +static const symbol s_2_28[8] = { 0xD7, 0x91, 0xD7, 0xB1, 0xD7, 0x92, 0xD7, 0xA0 }; +static const symbol s_2_29[10] = { 0xD7, 0x91, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x93, 0xD7, 0xA0 }; +static const symbol s_2_30[8] = { 0xD7, 0xB0, 0xD7, 0x99, 0xD7, 0x96, 0xD7, 0xA0 }; +static const symbol s_2_31[4] = { 0xD7, 0x98, 0xD7, 0xA0 }; +static const symbol s_2_32[10] = { 'G', 'E', 0xD7, 0x91, 0xD7, 0x99, 0xD7, 0x98, 0xD7, 0xA0 }; +static const symbol s_2_33[10] = { 'G', 'E', 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0x98, 0xD7, 0xA0 }; +static const symbol s_2_34[10] = { 'G', 'E', 0xD7, 0x9E, 0xD7, 0x99, 0xD7, 0x98, 0xD7, 0xA0 }; +static const symbol s_2_35[10] = { 0xD7, 0xA9, 0xD7, 0xA0, 0xD7, 0x99, 0xD7, 0x98, 0xD7, 0xA0 }; +static const symbol s_2_36[6] = { 0xD7, 0xA1, 0xD7, 0x98, 0xD7, 0xA0 }; +static const symbol s_2_37[8] = { 0xD7, 0x99, 0xD7, 0xA1, 0xD7, 0x98, 0xD7, 0xA0 }; +static const symbol s_2_38[6] = { 0xD7, 0xA2, 0xD7, 0x98, 0xD7, 0xA0 }; +static const symbol s_2_39[10] = { 'G', 'E', 0xD7, 0x91, 0xD7, 0x99, 0xD7, 0xA1, 0xD7, 0xA0 }; +static const symbol s_2_40[10] = { 0xD7, 0xA9, 0xD7, 0x9E, 0xD7, 0x99, 0xD7, 0xA1, 0xD7, 0xA0 }; +static const symbol s_2_41[10] = { 'G', 'E', 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0xA1, 0xD7, 0xA0 }; +static const symbol s_2_42[4] = { 0xD7, 0xA2, 0xD7, 0xA0 }; +static const symbol s_2_43[12] = { 0xD7, 0x92, 0xD7, 0x90, 0xD7, 0xA0, 0xD7, 0x92, 0xD7, 0xA2, 0xD7, 0xA0 }; +static const symbol s_2_44[8] = { 0xD7, 0xA2, 0xD7, 0x9C, 0xD7, 0xA2, 0xD7, 0xA0 }; +static const symbol s_2_45[10] = { 0xD7, 0xA0, 0xD7, 0x95, 0xD7, 0x9E, 0xD7, 0xA2, 0xD7, 0xA0 }; +static const symbol s_2_46[10] = { 0xD7, 0x99, 0xD7, 0x96, 0xD7, 0x9E, 0xD7, 0xA2, 0xD7, 0xA0 }; +static const symbol s_2_47[12] = { 0xD7, 0xA9, 0xD7, 0x98, 0xD7, 0x90, 0xD7, 0xA0, 0xD7, 0xA2, 0xD7, 0xA0 }; +static const symbol s_2_48[12] = { 0xD7, 0x98, 0xD7, 0xA8, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0xA7, 0xD7, 0xA0 }; +static const symbol s_2_49[14] = { 0xD7, 0xA4, 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x9C, 0xD7, 0xB1, 0xD7, 0xA8, 0xD7, 0xA0 }; +static const symbol s_2_50[10] = { 0xD7, 0xA9, 0xD7, 0xB0, 0xD7, 0xB1, 0xD7, 0xA8, 0xD7, 0xA0 }; +static const symbol s_2_51[10] = { 0xD7, 0xB0, 0xD7, 0x95, 0xD7, 0x98, 0xD7, 0xA9, 0xD7, 0xA0 }; +static const symbol s_2_52[6] = { 0xD7, 0x92, 0xD7, 0xB2, 0xD7, 0xA0 }; +static const symbol s_2_53[2] = { 0xD7, 0xA1 }; +static const symbol s_2_54[4] = { 0xD7, 0x98, 0xD7, 0xA1 }; +static const symbol s_2_55[6] = { 0xD7, 0xA2, 0xD7, 0x98, 0xD7, 0xA1 }; +static const symbol s_2_56[4] = { 0xD7, 0xA0, 0xD7, 0xA1 }; +static const symbol s_2_57[6] = { 0xD7, 0x98, 0xD7, 0xA0, 0xD7, 0xA1 }; +static const symbol s_2_58[6] = { 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0xA1 }; +static const symbol s_2_59[4] = { 0xD7, 0xA2, 0xD7, 0xA1 }; +static const symbol s_2_60[6] = { 0xD7, 0x99, 0xD7, 0xA2, 0xD7, 0xA1 }; +static const symbol s_2_61[8] = { 0xD7, 0xA2, 0xD7, 0x9C, 0xD7, 0xA2, 0xD7, 0xA1 }; +static const symbol s_2_62[6] = { 0xD7, 0xA2, 0xD7, 0xA8, 0xD7, 0xA1 }; +static const symbol s_2_63[10] = { 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0xA2, 0xD7, 0xA8, 0xD7, 0xA1 }; +static const symbol s_2_64[2] = { 0xD7, 0xA2 }; +static const symbol s_2_65[4] = { 0xD7, 0x98, 0xD7, 0xA2 }; +static const symbol s_2_66[6] = { 0xD7, 0xA1, 0xD7, 0x98, 0xD7, 0xA2 }; +static const symbol s_2_67[6] = { 0xD7, 0xA2, 0xD7, 0x98, 0xD7, 0xA2 }; +static const symbol s_2_68[4] = { 0xD7, 0x99, 0xD7, 0xA2 }; +static const symbol s_2_69[6] = { 0xD7, 0xA2, 0xD7, 0x9C, 0xD7, 0xA2 }; +static const symbol s_2_70[6] = { 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0xA2 }; +static const symbol s_2_71[8] = { 0xD7, 0x98, 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0xA2 }; +static const symbol s_2_72[4] = { 0xD7, 0xA2, 0xD7, 0xA8 }; +static const symbol s_2_73[6] = { 0xD7, 0x98, 0xD7, 0xA2, 0xD7, 0xA8 }; +static const symbol s_2_74[8] = { 0xD7, 0xA1, 0xD7, 0x98, 0xD7, 0xA2, 0xD7, 0xA8 }; +static const symbol s_2_75[8] = { 0xD7, 0xA2, 0xD7, 0x98, 0xD7, 0xA2, 0xD7, 0xA8 }; +static const symbol s_2_76[8] = { 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0xA2, 0xD7, 0xA8 }; +static const symbol s_2_77[10] = { 0xD7, 0x98, 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0xA2, 0xD7, 0xA8 }; +static const symbol s_2_78[4] = { 0xD7, 0x95, 0xD7, 0xAA }; + +static const struct among a_2[79] = +{ +{ 6, s_2_0, -1, 1, 0}, +{ 6, s_2_1, -1, 1, 0}, +{ 2, s_2_2, -1, 1, 0}, +{ 10, s_2_3, 2, 31, 0}, +{ 4, s_2_4, 2, 1, 0}, +{ 6, s_2_5, 4, 33, 0}, +{ 4, s_2_6, 2, 1, 0}, +{ 8, s_2_7, 2, 1, 0}, +{ 6, s_2_8, 2, 1, 0}, +{ 6, s_2_9, 2, 1, 0}, +{ 8, s_2_10, 9, 1, 0}, +{ 6, s_2_11, -1, 1, 0}, +{ 8, s_2_12, 11, 1, 0}, +{ 6, s_2_13, -1, 1, 0}, +{ 4, s_2_14, -1, 1, 0}, +{ 4, s_2_15, -1, 1, 0}, +{ 8, s_2_16, 15, 3, 0}, +{ 10, s_2_17, 16, 4, 0}, +{ 2, s_2_18, -1, 1, 0}, +{ 10, s_2_19, 18, 14, 0}, +{ 8, s_2_20, 18, 15, 0}, +{ 10, s_2_21, 20, 12, 0}, +{ 10, s_2_22, 20, 7, 0}, +{ 8, s_2_23, 18, 27, 0}, +{ 10, s_2_24, 18, 17, 0}, +{ 10, s_2_25, 18, 22, 0}, +{ 12, s_2_26, 18, 25, 0}, +{ 12, s_2_27, 18, 24, 0}, +{ 8, s_2_28, 18, 26, 0}, +{ 10, s_2_29, 18, 20, 0}, +{ 8, s_2_30, 18, 11, 0}, +{ 4, s_2_31, 18, 4, 0}, +{ 10, s_2_32, 31, 9, 0}, +{ 10, s_2_33, 31, 13, 0}, +{ 10, s_2_34, 31, 8, 0}, +{ 10, s_2_35, 31, 19, 0}, +{ 6, s_2_36, 31, 1, 0}, +{ 8, s_2_37, 36, 1, 0}, +{ 6, s_2_38, 31, 1, 0}, +{ 10, s_2_39, 18, 10, 0}, +{ 10, s_2_40, 18, 18, 0}, +{ 10, s_2_41, 18, 16, 0}, +{ 4, s_2_42, 18, 1, 0}, +{ 12, s_2_43, 42, 5, 0}, +{ 8, s_2_44, 42, 1, 0}, +{ 10, s_2_45, 42, 6, 0}, +{ 10, s_2_46, 42, 1, 0}, +{ 12, s_2_47, 42, 29, 0}, +{ 12, s_2_48, 18, 23, 0}, +{ 14, s_2_49, 18, 28, 0}, +{ 10, s_2_50, 18, 30, 0}, +{ 10, s_2_51, 18, 21, 0}, +{ 6, s_2_52, 18, 5, 0}, +{ 2, s_2_53, -1, 1, 0}, +{ 4, s_2_54, 53, 4, 0}, +{ 6, s_2_55, 54, 1, 0}, +{ 4, s_2_56, 53, 1, 0}, +{ 6, s_2_57, 56, 4, 0}, +{ 6, s_2_58, 56, 3, 0}, +{ 4, s_2_59, 53, 1, 0}, +{ 6, s_2_60, 59, 2, 0}, +{ 8, s_2_61, 59, 1, 0}, +{ 6, s_2_62, 53, 1, 0}, +{ 10, s_2_63, 62, 1, 0}, +{ 2, s_2_64, -1, 1, 0}, +{ 4, s_2_65, 64, 4, 0}, +{ 6, s_2_66, 65, 1, 0}, +{ 6, s_2_67, 65, 1, 0}, +{ 4, s_2_68, 64, -1, 0}, +{ 6, s_2_69, 64, 1, 0}, +{ 6, s_2_70, 64, 3, 0}, +{ 8, s_2_71, 70, 4, 0}, +{ 4, s_2_72, -1, 1, 0}, +{ 6, s_2_73, 72, 4, 0}, +{ 8, s_2_74, 73, 1, 0}, +{ 8, s_2_75, 73, 1, 0}, +{ 8, s_2_76, 72, 3, 0}, +{ 10, s_2_77, 76, 4, 0}, +{ 4, s_2_78, -1, 32, 0} +}; + +static const symbol s_3_0[6] = { 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x92 }; +static const symbol s_3_1[8] = { 0xD7, 0xA9, 0xD7, 0x90, 0xD7, 0xA4, 0xD7, 0x98 }; +static const symbol s_3_2[6] = { 0xD7, 0x94, 0xD7, 0xB2, 0xD7, 0x98 }; +static const symbol s_3_3[6] = { 0xD7, 0xA7, 0xD7, 0xB2, 0xD7, 0x98 }; +static const symbol s_3_4[8] = { 0xD7, 0x99, 0xD7, 0xA7, 0xD7, 0xB2, 0xD7, 0x98 }; +static const symbol s_3_5[2] = { 0xD7, 0x9C }; + +static const struct among a_3[6] = +{ +{ 6, s_3_0, -1, 1, 0}, +{ 8, s_3_1, -1, 1, 0}, +{ 6, s_3_2, -1, 1, 0}, +{ 6, s_3_3, -1, 1, 0}, +{ 8, s_3_4, 3, 1, 0}, +{ 2, s_3_5, -1, 2, 0} +}; + +static const symbol s_4_0[4] = { 0xD7, 0x99, 0xD7, 0x92 }; +static const symbol s_4_1[4] = { 0xD7, 0x99, 0xD7, 0xA7 }; +static const symbol s_4_2[6] = { 0xD7, 0x93, 0xD7, 0x99, 0xD7, 0xA7 }; +static const symbol s_4_3[8] = { 0xD7, 0xA0, 0xD7, 0x93, 0xD7, 0x99, 0xD7, 0xA7 }; +static const symbol s_4_4[10] = { 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0x93, 0xD7, 0x99, 0xD7, 0xA7 }; +static const symbol s_4_5[8] = { 0xD7, 0x91, 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0xA7 }; +static const symbol s_4_6[8] = { 0xD7, 0x92, 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0xA7 }; +static const symbol s_4_7[6] = { 0xD7, 0xA0, 0xD7, 0x99, 0xD7, 0xA7 }; +static const symbol s_4_8[4] = { 0xD7, 0x99, 0xD7, 0xA9 }; + +static const struct among a_4[9] = +{ +{ 4, s_4_0, -1, 1, 0}, +{ 4, s_4_1, -1, 1, 0}, +{ 6, s_4_2, 1, 1, 0}, +{ 8, s_4_3, 2, 1, 0}, +{ 10, s_4_4, 3, 1, 0}, +{ 8, s_4_5, 1, -1, 0}, +{ 8, s_4_6, 1, -1, 0}, +{ 6, s_4_7, 1, 1, 0}, +{ 4, s_4_8, -1, 1, 0} +}; + +static const unsigned char g_niked[] = { 255, 155, 6 }; + +static const unsigned char g_vowel[] = { 33, 2, 4, 0, 6 }; + +static const unsigned char g_consonant[] = { 239, 254, 253, 131 }; + +static const symbol s_0[] = { 0xD7, 0x95, 0xD7, 0x95 }; +static const symbol s_1[] = { 0xD6, 0xBC }; +static const symbol s_2[] = { 0xD7, 0xB0 }; +static const symbol s_3[] = { 0xD7, 0x95, 0xD7, 0x99 }; +static const symbol s_4[] = { 0xD6, 0xB4 }; +static const symbol s_5[] = { 0xD7, 0xB1 }; +static const symbol s_6[] = { 0xD7, 0x99, 0xD7, 0x99 }; +static const symbol s_7[] = { 0xD6, 0xB4 }; +static const symbol s_8[] = { 0xD7, 0xB2 }; +static const symbol s_9[] = { 0xD7, 0x9A }; +static const symbol s_10[] = { 0xD7, 0x9B }; +static const symbol s_11[] = { 0xD7, 0x9D }; +static const symbol s_12[] = { 0xD7, 0x9E }; +static const symbol s_13[] = { 0xD7, 0x9F }; +static const symbol s_14[] = { 0xD7, 0xA0 }; +static const symbol s_15[] = { 0xD7, 0xA3 }; +static const symbol s_16[] = { 0xD7, 0xA4 }; +static const symbol s_17[] = { 0xD7, 0xA5 }; +static const symbol s_18[] = { 0xD7, 0xA6 }; +static const symbol s_19[] = { 0xD7, 0x92, 0xD7, 0xA2, 0xD7, 0x9C, 0xD7, 0x98 }; +static const symbol s_20[] = { 0xD7, 0x92, 0xD7, 0xA2, 0xD7, 0x91, 0xD7, 0xA0 }; +static const symbol s_21[] = { 0xD7, 0x92, 0xD7, 0xA2 }; +static const symbol s_22[] = { 'G', 'E' }; +static const symbol s_23[] = { 0xD7, 0xA6, 0xD7, 0x95, 0xD7, 0x92, 0xD7, 0xA0 }; +static const symbol s_24[] = { 0xD7, 0xA6, 0xD7, 0x95, 0xD7, 0xA7, 0xD7, 0x98 }; +static const symbol s_25[] = { 0xD7, 0xA6, 0xD7, 0x95, 0xD7, 0xA7, 0xD7, 0xA0 }; +static const symbol s_26[] = { 0xD7, 0x92, 0xD7, 0xA2, 0xD7, 0x91, 0xD7, 0xA0 }; +static const symbol s_27[] = { 0xD7, 0x92, 0xD7, 0xA2 }; +static const symbol s_28[] = { 'G', 'E' }; +static const symbol s_29[] = { 0xD7, 0xA6, 0xD7, 0x95 }; +static const symbol s_30[] = { 'T', 'S', 'U' }; +static const symbol s_31[] = { 0xD7, 0x99, 0xD7, 0xA2 }; +static const symbol s_32[] = { 0xD7, 0x92, 0xD7, 0x90, 0xD7, 0xA0, 0xD7, 0x92 }; +static const symbol s_33[] = { 0xD7, 0x92, 0xD7, 0xB2 }; +static const symbol s_34[] = { 0xD7, 0xA0, 0xD7, 0x95, 0xD7, 0x9E }; +static const symbol s_35[] = { 0xD7, 0xA0, 0xD7, 0xA2, 0xD7, 0x9E }; +static const symbol s_36[] = { 0xD7, 0x9E, 0xD7, 0x99, 0xD7, 0x98 }; +static const symbol s_37[] = { 0xD7, 0x9E, 0xD7, 0xB2, 0xD7, 0x93 }; +static const symbol s_38[] = { 0xD7, 0x91, 0xD7, 0x99, 0xD7, 0x98 }; +static const symbol s_39[] = { 0xD7, 0x91, 0xD7, 0xB2, 0xD7, 0x98 }; +static const symbol s_40[] = { 0xD7, 0x91, 0xD7, 0x99, 0xD7, 0xA1 }; +static const symbol s_41[] = { 0xD7, 0x91, 0xD7, 0xB2, 0xD7, 0xA1 }; +static const symbol s_42[] = { 0xD7, 0xB0, 0xD7, 0x99, 0xD7, 0x96 }; +static const symbol s_43[] = { 0xD7, 0xB0, 0xD7, 0xB2, 0xD7, 0x96 }; +static const symbol s_44[] = { 0xD7, 0x98, 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0x91 }; +static const symbol s_45[] = { 0xD7, 0x98, 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0x91 }; +static const symbol s_46[] = { 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0x98 }; +static const symbol s_47[] = { 0xD7, 0x9C, 0xD7, 0xB2, 0xD7, 0x98 }; +static const symbol s_48[] = { 0xD7, 0xA7, 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0x91 }; +static const symbol s_49[] = { 0xD7, 0xA7, 0xD7, 0x9C, 0xD7, 0xB2, 0xD7, 0x91 }; +static const symbol s_50[] = { 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0x91 }; +static const symbol s_51[] = { 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0x91 }; +static const symbol s_52[] = { 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0xA1 }; +static const symbol s_53[] = { 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0xA1 }; +static const symbol s_54[] = { 0xD7, 0xA9, 0xD7, 0xB0, 0xD7, 0x99, 0xD7, 0x92 }; +static const symbol s_55[] = { 0xD7, 0xA9, 0xD7, 0xB0, 0xD7, 0xB2, 0xD7, 0x92 }; +static const symbol s_56[] = { 0xD7, 0xA9, 0xD7, 0x9E, 0xD7, 0x99, 0xD7, 0xA1 }; +static const symbol s_57[] = { 0xD7, 0xA9, 0xD7, 0x9E, 0xD7, 0xB2, 0xD7, 0xA1 }; +static const symbol s_58[] = { 0xD7, 0xA9, 0xD7, 0xA0, 0xD7, 0x99, 0xD7, 0x98 }; +static const symbol s_59[] = { 0xD7, 0xA9, 0xD7, 0xA0, 0xD7, 0xB2, 0xD7, 0x93 }; +static const symbol s_60[] = { 0xD7, 0xA9, 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0x91 }; +static const symbol s_61[] = { 0xD7, 0xA9, 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0x91 }; +static const symbol s_62[] = { 0xD7, 0x91, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x93 }; +static const symbol s_63[] = { 0xD7, 0x91, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0x93 }; +static const symbol s_64[] = { 0xD7, 0xB0, 0xD7, 0x95, 0xD7, 0x98, 0xD7, 0xA9 }; +static const symbol s_65[] = { 0xD7, 0xB0, 0xD7, 0x99, 0xD7, 0x98, 0xD7, 0xA9 }; +static const symbol s_66[] = { 0xD7, 0x96, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x92 }; +static const symbol s_67[] = { 0xD7, 0x96, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0x92 }; +static const symbol s_68[] = { 0xD7, 0x98, 0xD7, 0xA8, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0xA7 }; +static const symbol s_69[] = { 0xD7, 0x98, 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0xA7 }; +static const symbol s_70[] = { 0xD7, 0xA6, 0xD7, 0xB0, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x92 }; +static const symbol s_71[] = { 0xD7, 0xA6, 0xD7, 0xB0, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0x92 }; +static const symbol s_72[] = { 0xD7, 0xA9, 0xD7, 0x9C, 0xD7, 0x95, 0xD7, 0xA0, 0xD7, 0x92 }; +static const symbol s_73[] = { 0xD7, 0xA9, 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0x92 }; +static const symbol s_74[] = { 0xD7, 0x91, 0xD7, 0xB1, 0xD7, 0x92 }; +static const symbol s_75[] = { 0xD7, 0x91, 0xD7, 0xB2, 0xD7, 0x92 }; +static const symbol s_76[] = { 0xD7, 0x94, 0xD7, 0xB1, 0xD7, 0x91 }; +static const symbol s_77[] = { 0xD7, 0x94, 0xD7, 0xB2, 0xD7, 0x91 }; +static const symbol s_78[] = { 0xD7, 0xA4, 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x9C, 0xD7, 0xB1, 0xD7, 0xA8 }; +static const symbol s_79[] = { 0xD7, 0xA4, 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0xA8 }; +static const symbol s_80[] = { 0xD7, 0xA9, 0xD7, 0x98, 0xD7, 0x90, 0xD7, 0xA0 }; +static const symbol s_81[] = { 0xD7, 0xA9, 0xD7, 0x98, 0xD7, 0xB2 }; +static const symbol s_82[] = { 0xD7, 0xA9, 0xD7, 0xB0, 0xD7, 0xB1, 0xD7, 0xA8 }; +static const symbol s_83[] = { 0xD7, 0xA9, 0xD7, 0xB0, 0xD7, 0xA2, 0xD7, 0xA8 }; +static const symbol s_84[] = { 0xD7, 0x98 }; +static const symbol s_85[] = { 0xD7, 0x91, 0xD7, 0xA8, 0xD7, 0x90, 0xD7, 0x9B }; +static const symbol s_86[] = { 0xD7, 0x92, 0xD7, 0xA2 }; +static const symbol s_87[] = { 0xD7, 0x91, 0xD7, 0xA8, 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0x92 }; +static const symbol s_88[] = { 0xD7, 0x92, 0xD7, 0xB2 }; +static const symbol s_89[] = { 0xD7, 0xA0, 0xD7, 0xA2, 0xD7, 0x9E }; +static const symbol s_90[] = { 0xD7, 0xA9, 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0x91 }; +static const symbol s_91[] = { 0xD7, 0x9E, 0xD7, 0xB2, 0xD7, 0x93 }; +static const symbol s_92[] = { 0xD7, 0x91, 0xD7, 0xB2, 0xD7, 0x98 }; +static const symbol s_93[] = { 0xD7, 0x91, 0xD7, 0xB2, 0xD7, 0xA1 }; +static const symbol s_94[] = { 0xD7, 0xB0, 0xD7, 0xB2, 0xD7, 0x96 }; +static const symbol s_95[] = { 0xD7, 0x98, 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0x91 }; +static const symbol s_96[] = { 0xD7, 0x9C, 0xD7, 0xB2, 0xD7, 0x98 }; +static const symbol s_97[] = { 0xD7, 0xA7, 0xD7, 0x9C, 0xD7, 0xB2, 0xD7, 0x91 }; +static const symbol s_98[] = { 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0x91 }; +static const symbol s_99[] = { 0xD7, 0xA8, 0xD7, 0xB2, 0xD7, 0xA1 }; +static const symbol s_100[] = { 0xD7, 0xA9, 0xD7, 0xB0, 0xD7, 0xB2, 0xD7, 0x92 }; +static const symbol s_101[] = { 0xD7, 0xA9, 0xD7, 0x9E, 0xD7, 0xB2, 0xD7, 0xA1 }; +static const symbol s_102[] = { 0xD7, 0xA9, 0xD7, 0xA0, 0xD7, 0xB2, 0xD7, 0x93 }; +static const symbol s_103[] = { 0xD7, 0x91, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0x93 }; +static const symbol s_104[] = { 0xD7, 0xB0, 0xD7, 0x99, 0xD7, 0x98, 0xD7, 0xA9 }; +static const symbol s_105[] = { 0xD7, 0x96, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0x92 }; +static const symbol s_106[] = { 0xD7, 0x98, 0xD7, 0xA8, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0xA7 }; +static const symbol s_107[] = { 0xD7, 0xA6, 0xD7, 0xB0, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0x92 }; +static const symbol s_108[] = { 0xD7, 0xA9, 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0xA0, 0xD7, 0x92 }; +static const symbol s_109[] = { 0xD7, 0x91, 0xD7, 0xB2, 0xD7, 0x92 }; +static const symbol s_110[] = { 0xD7, 0x94, 0xD7, 0xB2, 0xD7, 0x91 }; +static const symbol s_111[] = { 0xD7, 0xA4, 0xD7, 0x90, 0xD7, 0xA8, 0xD7, 0x9C, 0xD7, 0x99, 0xD7, 0xA8 }; +static const symbol s_112[] = { 0xD7, 0xA9, 0xD7, 0x98, 0xD7, 0xB2 }; +static const symbol s_113[] = { 0xD7, 0xA9, 0xD7, 0xB0, 0xD7, 0xA2, 0xD7, 0xA8 }; +static const symbol s_114[] = { 0xD7, 0x91, 0xD7, 0xA8, 0xD7, 0xA2, 0xD7, 0xA0, 0xD7, 0x92 }; +static const symbol s_115[] = { 0xD7, 0x94 }; +static const symbol s_116[] = { 0xD7, 0x92 }; +static const symbol s_117[] = { 0xD7, 0xA9 }; +static const symbol s_118[] = { 0xD7, 0x99, 0xD7, 0xA1 }; +static const symbol s_119[] = { 'G', 'E' }; +static const symbol s_120[] = { 'T', 'S', 'U' }; + +static int r_prelude(struct SN_env * z) { + { int c1 = z->c; + while(1) { + int c2 = z->c; + while(1) { + int c3 = z->c; + { int c4 = z->c; + z->bra = z->c; + if (!(eq_s(z, 4, s_0))) goto lab4; + z->ket = z->c; + { int c5 = z->c; + if (!(eq_s(z, 2, s_1))) goto lab5; + goto lab4; + lab5: + z->c = c5; + } + { int ret = slice_from_s(z, 2, s_2); + if (ret < 0) return ret; + } + goto lab3; + lab4: + z->c = c4; + z->bra = z->c; + if (!(eq_s(z, 4, s_3))) goto lab6; + z->ket = z->c; + { int c6 = z->c; + if (!(eq_s(z, 2, s_4))) goto lab7; + goto lab6; + lab7: + z->c = c6; + } + { int ret = slice_from_s(z, 2, s_5); + if (ret < 0) return ret; + } + goto lab3; + lab6: + z->c = c4; + z->bra = z->c; + if (!(eq_s(z, 4, s_6))) goto lab8; + z->ket = z->c; + { int c7 = z->c; + if (!(eq_s(z, 2, s_7))) goto lab9; + goto lab8; + lab9: + z->c = c7; + } + { int ret = slice_from_s(z, 2, s_8); + if (ret < 0) return ret; + } + goto lab3; + lab8: + z->c = c4; + z->bra = z->c; + if (!(eq_s(z, 2, s_9))) goto lab10; + z->ket = z->c; + { int ret = slice_from_s(z, 2, s_10); + if (ret < 0) return ret; + } + goto lab3; + lab10: + z->c = c4; + z->bra = z->c; + if (!(eq_s(z, 2, s_11))) goto lab11; + z->ket = z->c; + { int ret = slice_from_s(z, 2, s_12); + if (ret < 0) return ret; + } + goto lab3; + lab11: + z->c = c4; + z->bra = z->c; + if (!(eq_s(z, 2, s_13))) goto lab12; + z->ket = z->c; + { int ret = slice_from_s(z, 2, s_14); + if (ret < 0) return ret; + } + goto lab3; + lab12: + z->c = c4; + z->bra = z->c; + if (!(eq_s(z, 2, s_15))) goto lab13; + z->ket = z->c; + { int ret = slice_from_s(z, 2, s_16); + if (ret < 0) return ret; + } + goto lab3; + lab13: + z->c = c4; + z->bra = z->c; + if (!(eq_s(z, 2, s_17))) goto lab2; + z->ket = z->c; + { int ret = slice_from_s(z, 2, s_18); + if (ret < 0) return ret; + } + } + lab3: + z->c = c3; + break; + lab2: + z->c = c3; + { int ret = skip_utf8(z->p, z->c, z->l, 1); + if (ret < 0) goto lab1; + z->c = ret; + } + } + continue; + lab1: + z->c = c2; + break; + } + z->c = c1; + } + { int c8 = z->c; + while(1) { + int c9 = z->c; + while(1) { + int c10 = z->c; + z->bra = z->c; + if (in_grouping_U(z, g_niked, 1456, 1474, 0)) goto lab16; + z->ket = z->c; + { int ret = slice_del(z); + if (ret < 0) return ret; + } + z->c = c10; + break; + lab16: + z->c = c10; + { int ret = skip_utf8(z->p, z->c, z->l, 1); + if (ret < 0) goto lab15; + z->c = ret; + } + } + continue; + lab15: + z->c = c9; + break; + } + z->c = c8; + } + return 1; +} + +static int r_mark_regions(struct SN_env * z) { + z->I[1] = z->l; + { int c1 = z->c; + { int c2 = z->c; + { int c_test3 = z->c; + { int c4 = z->c; + if (!(eq_s(z, 8, s_19))) goto lab4; + goto lab3; + lab4: + z->c = c4; + if (!(eq_s(z, 8, s_20))) goto lab2; + } + lab3: + z->c = c_test3; + } + goto lab1; + lab2: + z->c = c2; + z->bra = z->c; + if (!(eq_s(z, 4, s_21))) { z->c = c1; goto lab0; } + z->ket = z->c; + { int ret = slice_from_s(z, 2, s_22); + if (ret < 0) return ret; + } + } + lab1: + lab0: + ; + } + { int c5 = z->c; + if (!(find_among(z, a_0, 40))) { z->c = c5; goto lab5; } + { int c6 = z->c; + { int c_test7 = z->c; + { int c8 = z->c; + if (!(eq_s(z, 8, s_23))) goto lab9; + goto lab8; + lab9: + z->c = c8; + if (!(eq_s(z, 8, s_24))) goto lab10; + goto lab8; + lab10: + z->c = c8; + if (!(eq_s(z, 8, s_25))) goto lab7; + } + lab8: + if (z->c < z->l) goto lab7; + z->c = c_test7; + } + goto lab6; + lab7: + z->c = c6; + { int c_test9 = z->c; + if (!(eq_s(z, 8, s_26))) goto lab11; + z->c = c_test9; + } + goto lab6; + lab11: + z->c = c6; + z->bra = z->c; + if (!(eq_s(z, 4, s_27))) goto lab12; + z->ket = z->c; + { int ret = slice_from_s(z, 2, s_28); + if (ret < 0) return ret; + } + goto lab6; + lab12: + z->c = c6; + z->bra = z->c; + if (!(eq_s(z, 4, s_29))) { z->c = c5; goto lab5; } + z->ket = z->c; + { int ret = slice_from_s(z, 3, s_30); + if (ret < 0) return ret; + } + } + lab6: + lab5: + ; + } + { int c_test10 = z->c; + { int ret = skip_utf8(z->p, z->c, z->l, 3); + if (ret < 0) return 0; + z->c = ret; + } + z->I[0] = z->c; + z->c = c_test10; + } + { int c11 = z->c; + if (z->c + 5 >= z->l || (z->p[z->c + 5] != 169 && z->p[z->c + 5] != 168)) { z->c = c11; goto lab13; } + if (!(find_among(z, a_1, 4))) { z->c = c11; goto lab13; } + lab13: + ; + } + { int c12 = z->c; + if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab14; + if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab14; + if (in_grouping_U(z, g_consonant, 1489, 1520, 0)) goto lab14; + z->I[1] = z->c; + return 0; + lab14: + z->c = c12; + } + if (out_grouping_U(z, g_vowel, 1488, 1522, 1) < 0) return 0; + while(1) { + if (in_grouping_U(z, g_vowel, 1488, 1522, 0)) goto lab15; + continue; + lab15: + break; + } + z->I[1] = z->c; + + if (!(z->I[1] < z->I[0])) goto lab16; + z->I[1] = z->I[0]; +lab16: + return 1; +} + +static int r_R1(struct SN_env * z) { + if (!(z->I[1] <= z->c)) return 0; + return 1; +} + +static int r_R1plus3(struct SN_env * z) { + if (!(z->I[1] <= (z->c + 6))) return 0; + return 1; +} + +static int r_standard_suffix(struct SN_env * z) { + int among_var; + { int m1 = z->l - z->c; (void)m1; + z->ket = z->c; + among_var = find_among_b(z, a_2, 79); + if (!(among_var)) goto lab0; + z->bra = z->c; + switch (among_var) { + case 1: + { int ret = r_R1(z); + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + { int ret = slice_del(z); + if (ret < 0) return ret; + } + break; + case 2: + { int ret = r_R1(z); + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + { int ret = slice_from_s(z, 4, s_31); + if (ret < 0) return ret; + } + break; + case 3: + { int ret = r_R1(z); + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + { int ret = slice_del(z); + if (ret < 0) return ret; + } + { int m2 = z->l - z->c; (void)m2; + z->ket = z->c; + if (!(eq_s_b(z, 8, s_32))) goto lab1; + z->bra = z->c; + { int ret = slice_from_s(z, 4, s_33); + if (ret < 0) return ret; + } + goto lab0; + lab1: + z->c = z->l - m2; + } + { int m3 = z->l - z->c; (void)m3; + z->ket = z->c; + if (!(eq_s_b(z, 6, s_34))) goto lab2; + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_35); + if (ret < 0) return ret; + } + goto lab0; + lab2: + z->c = z->l - m3; + } + { int m4 = z->l - z->c; (void)m4; + z->ket = z->c; + if (!(eq_s_b(z, 6, s_36))) goto lab3; + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_37); + if (ret < 0) return ret; + } + goto lab0; + lab3: + z->c = z->l - m4; + } + { int m5 = z->l - z->c; (void)m5; + z->ket = z->c; + if (!(eq_s_b(z, 6, s_38))) goto lab4; + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_39); + if (ret < 0) return ret; + } + goto lab0; + lab4: + z->c = z->l - m5; + } + { int m6 = z->l - z->c; (void)m6; + z->ket = z->c; + if (!(eq_s_b(z, 6, s_40))) goto lab5; + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_41); + if (ret < 0) return ret; + } + goto lab0; + lab5: + z->c = z->l - m6; + } + { int m7 = z->l - z->c; (void)m7; + z->ket = z->c; + if (!(eq_s_b(z, 6, s_42))) goto lab6; + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_43); + if (ret < 0) return ret; + } + goto lab0; + lab6: + z->c = z->l - m7; + } + { int m8 = z->l - z->c; (void)m8; + z->ket = z->c; + if (!(eq_s_b(z, 8, s_44))) goto lab7; + z->bra = z->c; + { int ret = slice_from_s(z, 8, s_45); + if (ret < 0) return ret; + } + goto lab0; + lab7: + z->c = z->l - m8; + } + { int m9 = z->l - z->c; (void)m9; + z->ket = z->c; + if (!(eq_s_b(z, 6, s_46))) goto lab8; + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_47); + if (ret < 0) return ret; + } + goto lab0; + lab8: + z->c = z->l - m9; + } + { int m10 = z->l - z->c; (void)m10; + z->ket = z->c; + if (!(eq_s_b(z, 8, s_48))) goto lab9; + z->bra = z->c; + { int ret = slice_from_s(z, 8, s_49); + if (ret < 0) return ret; + } + goto lab0; + lab9: + z->c = z->l - m10; + } + { int m11 = z->l - z->c; (void)m11; + z->ket = z->c; + if (!(eq_s_b(z, 6, s_50))) goto lab10; + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_51); + if (ret < 0) return ret; + } + goto lab0; + lab10: + z->c = z->l - m11; + } + { int m12 = z->l - z->c; (void)m12; + z->ket = z->c; + if (!(eq_s_b(z, 6, s_52))) goto lab11; + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_53); + if (ret < 0) return ret; + } + goto lab0; + lab11: + z->c = z->l - m12; + } + { int m13 = z->l - z->c; (void)m13; + z->ket = z->c; + if (!(eq_s_b(z, 8, s_54))) goto lab12; + z->bra = z->c; + { int ret = slice_from_s(z, 8, s_55); + if (ret < 0) return ret; + } + goto lab0; + lab12: + z->c = z->l - m13; + } + { int m14 = z->l - z->c; (void)m14; + z->ket = z->c; + if (!(eq_s_b(z, 8, s_56))) goto lab13; + z->bra = z->c; + { int ret = slice_from_s(z, 8, s_57); + if (ret < 0) return ret; + } + goto lab0; + lab13: + z->c = z->l - m14; + } + { int m15 = z->l - z->c; (void)m15; + z->ket = z->c; + if (!(eq_s_b(z, 8, s_58))) goto lab14; + z->bra = z->c; + { int ret = slice_from_s(z, 8, s_59); + if (ret < 0) return ret; + } + goto lab0; + lab14: + z->c = z->l - m15; + } + { int m16 = z->l - z->c; (void)m16; + z->ket = z->c; + if (!(eq_s_b(z, 8, s_60))) goto lab15; + z->bra = z->c; + { int ret = slice_from_s(z, 8, s_61); + if (ret < 0) return ret; + } + goto lab0; + lab15: + z->c = z->l - m16; + } + { int m17 = z->l - z->c; (void)m17; + z->ket = z->c; + if (!(eq_s_b(z, 8, s_62))) goto lab16; + z->bra = z->c; + { int ret = slice_from_s(z, 8, s_63); + if (ret < 0) return ret; + } + goto lab0; + lab16: + z->c = z->l - m17; + } + { int m18 = z->l - z->c; (void)m18; + z->ket = z->c; + if (!(eq_s_b(z, 8, s_64))) goto lab17; + z->bra = z->c; + { int ret = slice_from_s(z, 8, s_65); + if (ret < 0) return ret; + } + goto lab0; + lab17: + z->c = z->l - m18; + } + { int m19 = z->l - z->c; (void)m19; + z->ket = z->c; + if (!(eq_s_b(z, 8, s_66))) goto lab18; + z->bra = z->c; + { int ret = slice_from_s(z, 8, s_67); + if (ret < 0) return ret; + } + goto lab0; + lab18: + z->c = z->l - m19; + } + { int m20 = z->l - z->c; (void)m20; + z->ket = z->c; + if (!(eq_s_b(z, 10, s_68))) goto lab19; + z->bra = z->c; + { int ret = slice_from_s(z, 10, s_69); + if (ret < 0) return ret; + } + goto lab0; + lab19: + z->c = z->l - m20; + } + { int m21 = z->l - z->c; (void)m21; + z->ket = z->c; + if (!(eq_s_b(z, 10, s_70))) goto lab20; + z->bra = z->c; + { int ret = slice_from_s(z, 10, s_71); + if (ret < 0) return ret; + } + goto lab0; + lab20: + z->c = z->l - m21; + } + { int m22 = z->l - z->c; (void)m22; + z->ket = z->c; + if (!(eq_s_b(z, 10, s_72))) goto lab21; + z->bra = z->c; + { int ret = slice_from_s(z, 10, s_73); + if (ret < 0) return ret; + } + goto lab0; + lab21: + z->c = z->l - m22; + } + { int m23 = z->l - z->c; (void)m23; + z->ket = z->c; + if (!(eq_s_b(z, 6, s_74))) goto lab22; + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_75); + if (ret < 0) return ret; + } + goto lab0; + lab22: + z->c = z->l - m23; + } + { int m24 = z->l - z->c; (void)m24; + z->ket = z->c; + if (!(eq_s_b(z, 6, s_76))) goto lab23; + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_77); + if (ret < 0) return ret; + } + goto lab0; + lab23: + z->c = z->l - m24; + } + { int m25 = z->l - z->c; (void)m25; + z->ket = z->c; + if (!(eq_s_b(z, 12, s_78))) goto lab24; + z->bra = z->c; + { int ret = slice_from_s(z, 12, s_79); + if (ret < 0) return ret; + } + goto lab0; + lab24: + z->c = z->l - m25; + } + { int m26 = z->l - z->c; (void)m26; + z->ket = z->c; + if (!(eq_s_b(z, 8, s_80))) goto lab25; + z->bra = z->c; + { int ret = slice_from_s(z, 6, s_81); + if (ret < 0) return ret; + } + goto lab0; + lab25: + z->c = z->l - m26; + } + { int m27 = z->l - z->c; (void)m27; + z->ket = z->c; + if (!(eq_s_b(z, 8, s_82))) goto lab26; + z->bra = z->c; + { int ret = slice_from_s(z, 8, s_83); + if (ret < 0) return ret; + } + goto lab0; + lab26: + z->c = z->l - m27; + } + break; + case 4: + { int m28 = z->l - z->c; (void)m28; + { int ret = r_R1(z); + if (ret == 0) goto lab28; + if (ret < 0) return ret; + } + { int ret = slice_del(z); + if (ret < 0) return ret; + } + goto lab27; + lab28: + z->c = z->l - m28; + { int ret = slice_from_s(z, 2, s_84); + if (ret < 0) return ret; + } + } + lab27: + z->ket = z->c; + if (!(eq_s_b(z, 8, s_85))) goto lab0; + { int m29 = z->l - z->c; (void)m29; + if (!(eq_s_b(z, 4, s_86))) { z->c = z->l - m29; goto lab29; } + lab29: + ; + } + z->bra = z->c; + { int ret = slice_from_s(z, 10, s_87); + if (ret < 0) return ret; + } + break; + case 5: + { int ret = slice_from_s(z, 4, s_88); + if (ret < 0) return ret; + } + break; + case 6: + { int ret = slice_from_s(z, 6, s_89); + if (ret < 0) return ret; + } + break; + case 7: + { int ret = slice_from_s(z, 8, s_90); + if (ret < 0) return ret; + } + break; + case 8: + { int ret = slice_from_s(z, 6, s_91); + if (ret < 0) return ret; + } + break; + case 9: + { int ret = slice_from_s(z, 6, s_92); + if (ret < 0) return ret; + } + break; + case 10: + { int ret = slice_from_s(z, 6, s_93); + if (ret < 0) return ret; + } + break; + case 11: + { int ret = slice_from_s(z, 6, s_94); + if (ret < 0) return ret; + } + break; + case 12: + { int ret = slice_from_s(z, 8, s_95); + if (ret < 0) return ret; + } + break; + case 13: + { int ret = slice_from_s(z, 6, s_96); + if (ret < 0) return ret; + } + break; + case 14: + { int ret = slice_from_s(z, 8, s_97); + if (ret < 0) return ret; + } + break; + case 15: + { int ret = slice_from_s(z, 6, s_98); + if (ret < 0) return ret; + } + break; + case 16: + { int ret = slice_from_s(z, 6, s_99); + if (ret < 0) return ret; + } + break; + case 17: + { int ret = slice_from_s(z, 8, s_100); + if (ret < 0) return ret; + } + break; + case 18: + { int ret = slice_from_s(z, 8, s_101); + if (ret < 0) return ret; + } + break; + case 19: + { int ret = slice_from_s(z, 8, s_102); + if (ret < 0) return ret; + } + break; + case 20: + { int ret = slice_from_s(z, 8, s_103); + if (ret < 0) return ret; + } + break; + case 21: + { int ret = slice_from_s(z, 8, s_104); + if (ret < 0) return ret; + } + break; + case 22: + { int ret = slice_from_s(z, 8, s_105); + if (ret < 0) return ret; + } + break; + case 23: + { int ret = slice_from_s(z, 10, s_106); + if (ret < 0) return ret; + } + break; + case 24: + { int ret = slice_from_s(z, 10, s_107); + if (ret < 0) return ret; + } + break; + case 25: + { int ret = slice_from_s(z, 10, s_108); + if (ret < 0) return ret; + } + break; + case 26: + { int ret = slice_from_s(z, 6, s_109); + if (ret < 0) return ret; + } + break; + case 27: + { int ret = slice_from_s(z, 6, s_110); + if (ret < 0) return ret; + } + break; + case 28: + { int ret = slice_from_s(z, 12, s_111); + if (ret < 0) return ret; + } + break; + case 29: + { int ret = slice_from_s(z, 6, s_112); + if (ret < 0) return ret; + } + break; + case 30: + { int ret = slice_from_s(z, 8, s_113); + if (ret < 0) return ret; + } + break; + case 31: + { int ret = slice_from_s(z, 10, s_114); + if (ret < 0) return ret; + } + break; + case 32: + { int ret = r_R1(z); + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + { int ret = slice_from_s(z, 2, s_115); + if (ret < 0) return ret; + } + break; + case 33: + { int m30 = z->l - z->c; (void)m30; + { int m31 = z->l - z->c; (void)m31; + if (!(eq_s_b(z, 2, s_116))) goto lab33; + goto lab32; + lab33: + z->c = z->l - m31; + if (!(eq_s_b(z, 2, s_117))) goto lab31; + } + lab32: + { int m32 = z->l - z->c; (void)m32; + { int ret = r_R1plus3(z); + if (ret == 0) { z->c = z->l - m32; goto lab34; } + if (ret < 0) return ret; + } + { int ret = slice_from_s(z, 4, s_118); + if (ret < 0) return ret; + } + lab34: + ; + } + goto lab30; + lab31: + z->c = z->l - m30; + { int ret = r_R1(z); + if (ret == 0) goto lab0; + if (ret < 0) return ret; + } + { int ret = slice_del(z); + if (ret < 0) return ret; + } + } + lab30: + break; + } + lab0: + z->c = z->l - m1; + } + { int m33 = z->l - z->c; (void)m33; + z->ket = z->c; + if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((285474816 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab35; + among_var = find_among_b(z, a_3, 6); + if (!(among_var)) goto lab35; + z->bra = z->c; + switch (among_var) { + case 1: + { int ret = r_R1(z); + if (ret == 0) goto lab35; + if (ret < 0) return ret; + } + { int ret = slice_del(z); + if (ret < 0) return ret; + } + break; + case 2: + { int ret = r_R1(z); + if (ret == 0) goto lab35; + if (ret < 0) return ret; + } + if (in_grouping_b_U(z, g_consonant, 1489, 1520, 0)) goto lab35; + { int ret = slice_del(z); + if (ret < 0) return ret; + } + break; + } + lab35: + z->c = z->l - m33; + } + { int m34 = z->l - z->c; (void)m34; + z->ket = z->c; + among_var = find_among_b(z, a_4, 9); + if (!(among_var)) goto lab36; + z->bra = z->c; + switch (among_var) { + case 1: + { int ret = r_R1(z); + if (ret == 0) goto lab36; + if (ret < 0) return ret; + } + { int ret = slice_del(z); + if (ret < 0) return ret; + } + break; + } + lab36: + z->c = z->l - m34; + } + { int m35 = z->l - z->c; (void)m35; + while(1) { + int m36 = z->l - z->c; (void)m36; + while(1) { + int m37 = z->l - z->c; (void)m37; + z->ket = z->c; + { int m38 = z->l - z->c; (void)m38; + if (!(eq_s_b(z, 2, s_119))) goto lab41; + goto lab40; + lab41: + z->c = z->l - m38; + if (!(eq_s_b(z, 3, s_120))) goto lab39; + } + lab40: + z->bra = z->c; + { int ret = slice_del(z); + if (ret < 0) return ret; + } + z->c = z->l - m37; + break; + lab39: + z->c = z->l - m37; + { int ret = skip_b_utf8(z->p, z->c, z->lb, 1); + if (ret < 0) goto lab38; + z->c = ret; + } + } + continue; + lab38: + z->c = z->l - m36; + break; + } + z->c = z->l - m35; + } + return 1; +} + +extern int yiddish_UTF_8_stem(struct SN_env * z) { + + { int ret = r_prelude(z); + if (ret < 0) return ret; + } + { int c1 = z->c; + { int ret = r_mark_regions(z); + if (ret < 0) return ret; + } + z->c = c1; + } + z->lb = z->c; z->c = z->l; + + + { int ret = r_standard_suffix(z); + if (ret < 0) return ret; + } + z->c = z->lb; + return 1; +} + +extern struct SN_env * yiddish_UTF_8_create_env(void) { return SN_create_env(0, 2); } + +extern void yiddish_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); } + diff --git a/src/backend/snowball/libstemmer/utilities.c b/src/backend/snowball/libstemmer/utilities.c index 681bca09c2f61..1ecd2410fe7e6 100644 --- a/src/backend/snowball/libstemmer/utilities.c +++ b/src/backend/snowball/libstemmer/utilities.c @@ -18,38 +18,48 @@ extern void lose_s(symbol * p) { } /* - new_p = skip_utf8(p, c, lb, l, n); skips n characters forwards from p + c - if n +ve, or n characters backwards from p + c - 1 if n -ve. new_p is the new - position, or -1 on failure. + new_p = skip_utf8(p, c, l, n); skips n characters forwards from p + c. + new_p is the new position, or -1 on failure. -- used to implement hop and next in the utf8 case. */ -extern int skip_utf8(const symbol * p, int c, int lb, int l, int n) { +extern int skip_utf8(const symbol * p, int c, int limit, int n) { int b; - if (n >= 0) { - for (; n > 0; n--) { - if (c >= l) return -1; - b = p[c++]; - if (b >= 0xC0) { /* 1100 0000 */ - while (c < l) { - b = p[c]; - if (b >= 0xC0 || b < 0x80) break; - /* break unless b is 10------ */ - c++; - } + if (n < 0) return -1; + for (; n > 0; n--) { + if (c >= limit) return -1; + b = p[c++]; + if (b >= 0xC0) { /* 1100 0000 */ + while (c < limit) { + b = p[c]; + if (b >= 0xC0 || b < 0x80) break; + /* break unless b is 10------ */ + c++; } } - } else { - for (; n < 0; n++) { - if (c <= lb) return -1; - b = p[--c]; - if (b >= 0x80) { /* 1000 0000 */ - while (c > lb) { - b = p[c]; - if (b >= 0xC0) break; /* 1100 0000 */ - c--; - } + } + return c; +} + +/* + new_p = skip_b_utf8(p, c, lb, n); skips n characters backwards from p + c - 1 + new_p is the new position, or -1 on failure. + + -- used to implement hop and next in the utf8 case. +*/ + +extern int skip_b_utf8(const symbol * p, int c, int limit, int n) { + int b; + if (n < 0) return -1; + for (; n > 0; n--) { + if (c <= limit) return -1; + b = p[--c]; + if (b >= 0x80) { /* 1000 0000 */ + while (c > limit) { + b = p[c]; + if (b >= 0xC0) break; /* 1100 0000 */ + c--; } } } @@ -76,7 +86,7 @@ static int get_utf8(const symbol * p, int c, int l, int * slot) { *slot = (b0 & 0xF) << 12 | b1 << 6 | b2; return 3; } - *slot = (b0 & 0xE) << 18 | b1 << 12 | b2 << 6 | (p[c] & 0x3F); + *slot = (b0 & 0x7) << 18 | b1 << 12 | b2 << 6 | (p[c] & 0x3F); return 4; } @@ -100,7 +110,7 @@ static int get_b_utf8(const symbol * p, int c, int lb, int * slot) { *slot = (b & 0xF) << 12 | a; return 3; } - *slot = (p[--c] & 0xE) << 18 | (b & 0x3F) << 12 | a; + *slot = (p[--c] & 0x7) << 18 | (b & 0x3F) << 12 | a; return 4; } @@ -226,7 +236,7 @@ extern int find_among(struct SN_env * z, const struct among * v, int v_size) { int j = v_size; int c = z->c; int l = z->l; - symbol * q = z->p + c; + const symbol * q = z->p + c; const struct among * w; @@ -291,7 +301,7 @@ extern int find_among_b(struct SN_env * z, const struct among * v, int v_size) { int j = v_size; int c = z->c; int lb = z->lb; - symbol * q = z->p + c - 1; + const symbol * q = z->p + c - 1; const struct among * w; diff --git a/src/backend/storage/ipc/dsm.c b/src/backend/storage/ipc/dsm.c index ae82b4bdc0e26..b461a5f7e96e0 100644 --- a/src/backend/storage/ipc/dsm.c +++ b/src/backend/storage/ipc/dsm.c @@ -771,8 +771,12 @@ dsm_detach(dsm_segment *seg) /* * Invoke registered callbacks. Just in case one of those callbacks * throws a further error that brings us back here, pop the callback - * before invoking it, to avoid infinite error recursion. + * before invoking it, to avoid infinite error recursion. Don't allow + * interrupts while running the individual callbacks in non-error code + * paths, to avoid leaving cleanup work unfinished if we're interrupted by + * a statement timeout or similar. */ + HOLD_INTERRUPTS(); while (!slist_is_empty(&seg->on_detach)) { slist_node *node; @@ -788,6 +792,7 @@ dsm_detach(dsm_segment *seg) function(seg, arg); } + RESUME_INTERRUPTS(); /* * Try to remove the mapping, if one exists. Normally, there will be, but diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c index cf12eda504113..4085891237a70 100644 --- a/src/backend/storage/ipc/procarray.c +++ b/src/backend/storage/ipc/procarray.c @@ -4146,7 +4146,7 @@ GlobalVisTestNonRemovableHorizon(GlobalVisState *state) * GlobalVisTestIsRemovableFullXid(), see their comments. */ bool -GlobalVisIsRemovableFullXid(Relation rel, FullTransactionId fxid) +GlobalVisCheckRemovableFullXid(Relation rel, FullTransactionId fxid) { GlobalVisState *state; diff --git a/src/backend/storage/ipc/standby.c b/src/backend/storage/ipc/standby.c index 39a30c00f7a36..5877a60715f74 100644 --- a/src/backend/storage/ipc/standby.c +++ b/src/backend/storage/ipc/standby.c @@ -540,12 +540,34 @@ void ResolveRecoveryConflictWithLock(LOCKTAG locktag, bool logging_conflict) { TimestampTz ltime; + TimestampTz now; Assert(InHotStandby); ltime = GetStandbyLimitTime(); + now = GetCurrentTimestamp(); - if (GetCurrentTimestamp() >= ltime && ltime != 0) + /* + * Update waitStart if first time through after the startup process + * started waiting for the lock. It should not be updated every time + * ResolveRecoveryConflictWithLock() is called during the wait. + * + * Use the current time obtained for comparison with ltime as waitStart + * (i.e., the time when this process started waiting for the lock). Since + * getting the current time newly can cause overhead, we reuse the + * already-obtained time to avoid that overhead. + * + * Note that waitStart is updated without holding the lock table's + * partition lock, to avoid the overhead by additional lock acquisition. + * This can cause "waitstart" in pg_locks to become NULL for a very short + * period of time after the wait started even though "granted" is false. + * This is OK in practice because we can assume that users are likely to + * look at "waitstart" when waiting for the lock for a long time. + */ + if (pg_atomic_read_u64(&MyProc->waitStart) == 0) + pg_atomic_write_u64(&MyProc->waitStart, now); + + if (now >= ltime && ltime != 0) { /* * We're already behind, so clear a path as quickly as possible. diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c index 79c1cf9b8b4e3..108b4d9023898 100644 --- a/src/backend/storage/lmgr/lock.c +++ b/src/backend/storage/lmgr/lock.c @@ -3619,6 +3619,12 @@ GetLockStatusData(void) instance->leaderPid = proc->pid; instance->fastpath = true; + /* + * Successfully taking fast path lock means there were no + * conflicting locks. + */ + instance->waitStart = 0; + el++; } @@ -3646,6 +3652,7 @@ GetLockStatusData(void) instance->pid = proc->pid; instance->leaderPid = proc->pid; instance->fastpath = true; + instance->waitStart = 0; el++; } @@ -3698,6 +3705,7 @@ GetLockStatusData(void) instance->pid = proc->pid; instance->leaderPid = proclock->groupLeader->pid; instance->fastpath = false; + instance->waitStart = (TimestampTz) pg_atomic_read_u64(&proc->waitStart); el++; } diff --git a/src/backend/storage/lmgr/predicate.c b/src/backend/storage/lmgr/predicate.c index 074df5b38c59c..d493aeef0fc44 100644 --- a/src/backend/storage/lmgr/predicate.c +++ b/src/backend/storage/lmgr/predicate.c @@ -1602,7 +1602,7 @@ GetSafeSnapshot(Snapshot origSnapshot) /* else, need to retry... */ ereport(DEBUG2, (errcode(ERRCODE_T_R_SERIALIZATION_FAILURE), - errmsg("deferrable snapshot was unsafe; trying a new one"))); + errmsg_internal("deferrable snapshot was unsafe; trying a new one"))); ReleasePredicateLocks(false, false); } diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c index c87ffc654919a..db9529a534a35 100644 --- a/src/backend/storage/lmgr/proc.c +++ b/src/backend/storage/lmgr/proc.c @@ -402,6 +402,7 @@ InitProcess(void) MyProc->lwWaitMode = 0; MyProc->waitLock = NULL; MyProc->waitProcLock = NULL; + pg_atomic_init_u64(&MyProc->waitStart, 0); #ifdef USE_ASSERT_CHECKING { int i; @@ -580,6 +581,7 @@ InitAuxiliaryProcess(void) MyProc->lwWaitMode = 0; MyProc->waitLock = NULL; MyProc->waitProcLock = NULL; + pg_atomic_init_u64(&MyProc->waitStart, 0); #ifdef USE_ASSERT_CHECKING { int i; @@ -1262,6 +1264,23 @@ ProcSleep(LOCALLOCK *locallock, LockMethod lockMethodTable) } else enable_timeout_after(DEADLOCK_TIMEOUT, DeadlockTimeout); + + /* + * Use the current time obtained for the deadlock timeout timer as + * waitStart (i.e., the time when this process started waiting for the + * lock). Since getting the current time newly can cause overhead, we + * reuse the already-obtained time to avoid that overhead. + * + * Note that waitStart is updated without holding the lock table's + * partition lock, to avoid the overhead by additional lock + * acquisition. This can cause "waitstart" in pg_locks to become NULL + * for a very short period of time after the wait started even though + * "granted" is false. This is OK in practice because we can assume + * that users are likely to look at "waitstart" when waiting for the + * lock for a long time. + */ + pg_atomic_write_u64(&MyProc->waitStart, + get_timeout_start_time(DEADLOCK_TIMEOUT)); } else if (log_recovery_conflict_waits) { @@ -1394,13 +1413,13 @@ ProcSleep(LOCALLOCK *locallock, LockMethod lockMethodTable) initStringInfo(&logbuf); DescribeLockTag(&locktagbuf, &locktag_copy); appendStringInfo(&logbuf, - _("Process %d waits for %s on %s."), + "Process %d waits for %s on %s.", MyProcPid, GetLockmodeName(lockmethod_copy, lockmode), locktagbuf.data); ereport(DEBUG1, - (errmsg("sending cancel to blocking autovacuum PID %d", + (errmsg_internal("sending cancel to blocking autovacuum PID %d", pid), errdetail_log("%s", logbuf.data))); @@ -1678,6 +1697,7 @@ ProcWakeup(PGPROC *proc, ProcWaitStatus waitStatus) proc->waitLock = NULL; proc->waitProcLock = NULL; proc->waitStatus = waitStatus; + pg_atomic_write_u64(&MyProc->waitStart, 0); /* And awaken it */ SetLatch(&proc->procLatch); diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c index 0643d714fb1c5..1e12cfad8e855 100644 --- a/src/backend/storage/smgr/md.c +++ b/src/backend/storage/smgr/md.c @@ -983,7 +983,7 @@ register_dirty_segment(SMgrRelation reln, ForkNumber forknum, MdfdVec *seg) if (!RegisterSyncRequest(&tag, SYNC_REQUEST, false /* retryOnError */ )) { ereport(DEBUG1, - (errmsg("could not forward fsync request because request queue is full"))); + (errmsg_internal("could not forward fsync request because request queue is full"))); if (FileSync(seg->mdfd_vfd, WAIT_EVENT_DATA_FILE_SYNC) < 0) ereport(data_sync_elevel(ERROR), diff --git a/src/backend/storage/sync/sync.c b/src/backend/storage/sync/sync.c index fe143151cc524..708215614db65 100644 --- a/src/backend/storage/sync/sync.c +++ b/src/backend/storage/sync/sync.c @@ -419,7 +419,7 @@ ProcessSyncRequests(void) else ereport(DEBUG1, (errcode_for_file_access(), - errmsg("could not fsync file \"%s\" but retrying: %m", + errmsg_internal("could not fsync file \"%s\" but retrying: %m", path))); /* diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index cb5a96117f6cd..bb5ccb4578b7d 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -353,7 +353,7 @@ SocketBackend(StringInfo inBuf) whereToSendOutput = DestNone; ereport(DEBUG1, (errcode(ERRCODE_CONNECTION_DOES_NOT_EXIST), - errmsg("unexpected EOF on client connection"))); + errmsg_internal("unexpected EOF on client connection"))); } return qtype; } @@ -389,7 +389,7 @@ SocketBackend(StringInfo inBuf) whereToSendOutput = DestNone; ereport(DEBUG1, (errcode(ERRCODE_CONNECTION_DOES_NOT_EXIST), - errmsg("unexpected EOF on client connection"))); + errmsg_internal("unexpected EOF on client connection"))); } return EOF; } @@ -416,7 +416,7 @@ SocketBackend(StringInfo inBuf) whereToSendOutput = DestNone; ereport(DEBUG1, (errcode(ERRCODE_CONNECTION_DOES_NOT_EXIST), - errmsg("unexpected EOF on client connection"))); + errmsg_internal("unexpected EOF on client connection"))); } return EOF; } @@ -1375,7 +1375,7 @@ exec_parse_message(const char *query_string, /* string to execute */ ResetUsage(); ereport(DEBUG2, - (errmsg("parse %s: %s", + (errmsg_internal("parse %s: %s", *stmt_name ? stmt_name : "", query_string))); @@ -1631,7 +1631,7 @@ exec_bind_message(StringInfo input_message) stmt_name = pq_getmsgstring(input_message); ereport(DEBUG2, - (errmsg("bind %s to %s", + (errmsg_internal("bind %s to %s", *portal_name ? portal_name : "", *stmt_name ? stmt_name : ""))); @@ -3092,7 +3092,7 @@ ProcessInterrupts(void) else if (IsLogicalLauncher()) { ereport(DEBUG1, - (errmsg("logical replication launcher shutting down"))); + (errmsg_internal("logical replication launcher shutting down"))); /* * The logical replication launcher can be stopped at any time. diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index 1d81071c35724..05bb698cf456b 100644 --- a/src/backend/tcop/utility.c +++ b/src/backend/tcop/utility.c @@ -1786,7 +1786,8 @@ ProcessUtilitySlow(ParseState *pstate, break; case T_AlterSubscriptionStmt: - address = AlterSubscription((AlterSubscriptionStmt *) parsetree); + address = AlterSubscription((AlterSubscriptionStmt *) parsetree, + isTopLevel); break; case T_DropSubscriptionStmt: diff --git a/src/backend/utils/adt/cryptohashfuncs.c b/src/backend/utils/adt/cryptohashfuncs.c index 152adcbfb4ad0..6a0f0258e60ac 100644 --- a/src/backend/utils/adt/cryptohashfuncs.c +++ b/src/backend/utils/adt/cryptohashfuncs.c @@ -114,7 +114,8 @@ cryptohash_internal(pg_cryptohash_type type, bytea *input) elog(ERROR, "could not initialize %s context", typestr); if (pg_cryptohash_update(ctx, data, len) < 0) elog(ERROR, "could not update %s context", typestr); - if (pg_cryptohash_final(ctx, (unsigned char *) VARDATA(result)) < 0) + if (pg_cryptohash_final(ctx, (unsigned char *) VARDATA(result), + digest_len) < 0) elog(ERROR, "could not finalize %s context", typestr); pg_cryptohash_free(ctx); diff --git a/src/backend/utils/adt/jsonfuncs.c b/src/backend/utils/adt/jsonfuncs.c index 215a10f16ef6e..f194ff911b0bf 100644 --- a/src/backend/utils/adt/jsonfuncs.c +++ b/src/backend/utils/adt/jsonfuncs.c @@ -19,6 +19,7 @@ #include "access/htup_details.h" #include "catalog/pg_type.h" #include "common/jsonapi.h" +#include "common/string.h" #include "fmgr.h" #include "funcapi.h" #include "lib/stringinfo.h" @@ -1026,15 +1027,15 @@ get_path_all(FunctionCallInfo fcinfo, bool as_text) */ if (*tpath[i] != '\0') { - long ind; + int ind; char *endptr; errno = 0; - ind = strtol(tpath[i], &endptr, 10); - if (*endptr == '\0' && errno == 0 && ind <= INT_MAX && ind >= INT_MIN) - ipath[i] = (int) ind; - else + ind = strtoint(tpath[i], &endptr, 10); + if (endptr == tpath[i] || *endptr != '\0' || errno != 0) ipath[i] = INT_MIN; + else + ipath[i] = ind; } else ipath[i] = INT_MIN; @@ -1533,15 +1534,14 @@ jsonb_get_element(Jsonb *jb, Datum *path, int npath, bool *isnull, bool as_text) } else if (have_array) { - long lindex; + int lindex; uint32 index; char *indextext = TextDatumGetCString(path[i]); char *endptr; errno = 0; - lindex = strtol(indextext, &endptr, 10); - if (endptr == indextext || *endptr != '\0' || errno != 0 || - lindex > INT_MAX || lindex < INT_MIN) + lindex = strtoint(indextext, &endptr, 10); + if (endptr == indextext || *endptr != '\0' || errno != 0) { *isnull = true; return PointerGetDatum(NULL); @@ -1562,7 +1562,7 @@ jsonb_get_element(Jsonb *jb, Datum *path, int npath, bool *isnull, bool as_text) nelements = JsonContainerSize(container); - if (-lindex > nelements) + if (lindex == INT_MIN || -lindex > nelements) { *isnull = true; return PointerGetDatum(NULL); @@ -1675,7 +1675,6 @@ push_path(JsonbParseState **st, int level, Datum *path_elems, * end, the access index must be normalized by level. */ enum jbvType *tpath = palloc0((path_len - level) * sizeof(enum jbvType)); - long lindex; JsonbValue newkey; /* @@ -1687,6 +1686,7 @@ push_path(JsonbParseState **st, int level, Datum *path_elems, { char *c, *badp; + int lindex; if (path_nulls[i]) break; @@ -1697,9 +1697,8 @@ push_path(JsonbParseState **st, int level, Datum *path_elems, */ c = TextDatumGetCString(path_elems[i]); errno = 0; - lindex = strtol(c, &badp, 10); - if (errno != 0 || badp == c || *badp != '\0' || lindex > INT_MAX || - lindex < INT_MIN) + lindex = strtoint(c, &badp, 10); + if (badp == c || *badp != '\0' || errno != 0) { /* text, an object is expected */ newkey.type = jbvString; @@ -1720,7 +1719,6 @@ push_path(JsonbParseState **st, int level, Datum *path_elems, tpath[i - level] = jbvArray; } - } /* Insert an actual value for either an object or array */ @@ -5138,18 +5136,15 @@ setPathArray(JsonbIterator **it, Datum *path_elems, bool *path_nulls, if (level < path_len && !path_nulls[level]) { char *c = TextDatumGetCString(path_elems[level]); - long lindex; char *badp; errno = 0; - lindex = strtol(c, &badp, 10); - if (errno != 0 || badp == c || *badp != '\0' || lindex > INT_MAX || - lindex < INT_MIN) + idx = strtoint(c, &badp, 10); + if (badp == c || *badp != '\0' || errno != 0) ereport(ERROR, (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), errmsg("path element at position %d is not an integer: \"%s\"", level + 1, c))); - idx = lindex; } else idx = nelems; diff --git a/src/backend/utils/adt/like_support.c b/src/backend/utils/adt/like_support.c index c746592cbcaa2..241e6f0f598ae 100644 --- a/src/backend/utils/adt/like_support.c +++ b/src/backend/utils/adt/like_support.c @@ -1442,9 +1442,18 @@ regex_selectivity(const char *patt, int pattlen, bool case_insensitive, sel *= FULL_WILDCARD_SEL; } - /* If there's a fixed prefix, discount its selectivity */ + /* + * If there's a fixed prefix, discount its selectivity. We have to be + * careful here since a very long prefix could result in pow's result + * underflowing to zero (in which case "sel" probably has as well). + */ if (fixed_prefix_len > 0) - sel /= pow(FIXED_CHAR_SEL, fixed_prefix_len); + { + double prefixsel = pow(FIXED_CHAR_SEL, fixed_prefix_len); + + if (prefixsel > 0.0) + sel /= prefixsel; + } /* Make sure result stays in range */ CLAMP_PROBABILITY(sel); diff --git a/src/backend/utils/adt/lockfuncs.c b/src/backend/utils/adt/lockfuncs.c index b1cf5b79a75fe..97f0265c12deb 100644 --- a/src/backend/utils/adt/lockfuncs.c +++ b/src/backend/utils/adt/lockfuncs.c @@ -63,7 +63,7 @@ typedef struct } PG_Lock_Status; /* Number of columns in pg_locks output */ -#define NUM_LOCK_STATUS_COLUMNS 15 +#define NUM_LOCK_STATUS_COLUMNS 16 /* * VXIDGetDatum - Construct a text representation of a VXID @@ -142,6 +142,8 @@ pg_lock_status(PG_FUNCTION_ARGS) BOOLOID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) 15, "fastpath", BOOLOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) 16, "waitstart", + TIMESTAMPTZOID, -1, 0); funcctx->tuple_desc = BlessTupleDesc(tupdesc); @@ -336,6 +338,10 @@ pg_lock_status(PG_FUNCTION_ARGS) values[12] = CStringGetTextDatum(GetLockmodeName(instance->locktag.locktag_lockmethodid, mode)); values[13] = BoolGetDatum(granted); values[14] = BoolGetDatum(instance->fastpath); + if (!granted && instance->waitStart != 0) + values[15] = TimestampTzGetDatum(instance->waitStart); + else + nulls[15] = true; tuple = heap_form_tuple(funcctx->tuple_desc, values, nulls); result = HeapTupleGetDatum(tuple); @@ -406,6 +412,7 @@ pg_lock_status(PG_FUNCTION_ARGS) values[12] = CStringGetTextDatum("SIReadLock"); values[13] = BoolGetDatum(true); values[14] = BoolGetDatum(false); + nulls[15] = true; tuple = heap_form_tuple(funcctx->tuple_desc, values, nulls); result = HeapTupleGetDatum(tuple); diff --git a/src/backend/utils/adt/tsginidx.c b/src/backend/utils/adt/tsginidx.c index 6c913baabacd9..7e0e31f69df6f 100644 --- a/src/backend/utils/adt/tsginidx.c +++ b/src/backend/utils/adt/tsginidx.c @@ -175,7 +175,6 @@ typedef struct QueryItem *first_item; GinTernaryValue *check; int *map_item_operand; - bool *need_recheck; } GinChkVal; /* @@ -186,25 +185,22 @@ checkcondition_gin(void *checkval, QueryOperand *val, ExecPhraseData *data) { GinChkVal *gcv = (GinChkVal *) checkval; int j; - - /* - * if any val requiring a weight is used or caller needs position - * information then set recheck flag - */ - if (val->weight != 0 || data != NULL) - *(gcv->need_recheck) = true; + GinTernaryValue result; /* convert item's number to corresponding entry's (operand's) number */ j = gcv->map_item_operand[((QueryItem *) val) - gcv->first_item]; + /* determine presence of current entry in indexed value */ + result = gcv->check[j]; + /* - * return presence of current entry in indexed value; but TRUE becomes - * MAYBE in the presence of a query requiring recheck + * If any val requiring a weight is used or caller needs position + * information then we must recheck, so replace TRUE with MAYBE. */ - if (gcv->check[j] == GIN_TRUE) + if (result == GIN_TRUE) { if (val->weight != 0 || data != NULL) - return TS_MAYBE; + result = GIN_MAYBE; } /* @@ -212,7 +208,7 @@ checkcondition_gin(void *checkval, QueryOperand *val, ExecPhraseData *data) * assignments. We could use a switch statement to map the values if that * ever stops being true, but it seems unlikely to happen. */ - return (TSTernaryValue) gcv->check[j]; + return (TSTernaryValue) result; } Datum @@ -244,12 +240,23 @@ gin_tsquery_consistent(PG_FUNCTION_ARGS) "sizes of GinTernaryValue and bool are not equal"); gcv.check = (GinTernaryValue *) check; gcv.map_item_operand = (int *) (extra_data[0]); - gcv.need_recheck = recheck; - res = TS_execute(GETQUERY(query), - &gcv, - TS_EXEC_PHRASE_NO_POS, - checkcondition_gin); + switch (TS_execute_ternary(GETQUERY(query), + &gcv, + TS_EXEC_PHRASE_NO_POS, + checkcondition_gin)) + { + case TS_NO: + res = false; + break; + case TS_YES: + res = true; + break; + case TS_MAYBE: + res = true; + *recheck = true; + break; + } } PG_RETURN_BOOL(res); @@ -266,10 +273,6 @@ gin_tsquery_triconsistent(PG_FUNCTION_ARGS) /* int32 nkeys = PG_GETARG_INT32(3); */ Pointer *extra_data = (Pointer *) PG_GETARG_POINTER(4); GinTernaryValue res = GIN_FALSE; - bool recheck; - - /* Initially assume query doesn't require recheck */ - recheck = false; if (query->size > 0) { @@ -282,13 +285,11 @@ gin_tsquery_triconsistent(PG_FUNCTION_ARGS) gcv.first_item = GETQUERY(query); gcv.check = check; gcv.map_item_operand = (int *) (extra_data[0]); - gcv.need_recheck = &recheck; - if (TS_execute(GETQUERY(query), - &gcv, - TS_EXEC_PHRASE_NO_POS, - checkcondition_gin)) - res = recheck ? GIN_MAYBE : GIN_TRUE; + res = TS_execute_ternary(GETQUERY(query), + &gcv, + TS_EXEC_PHRASE_NO_POS, + checkcondition_gin); } PG_RETURN_GIN_TERNARY_VALUE(res); diff --git a/src/backend/utils/adt/tsvector_op.c b/src/backend/utils/adt/tsvector_op.c index 2939fb5c21037..9236ebcc8fe5c 100644 --- a/src/backend/utils/adt/tsvector_op.c +++ b/src/backend/utils/adt/tsvector_op.c @@ -1854,6 +1854,18 @@ TS_execute(QueryItem *curitem, void *arg, uint32 flags, return TS_execute_recurse(curitem, arg, flags, chkcond) != TS_NO; } +/* + * Evaluate tsquery boolean expression. + * + * This is the same as TS_execute except that TS_MAYBE is returned as-is. + */ +TSTernaryValue +TS_execute_ternary(QueryItem *curitem, void *arg, uint32 flags, + TSExecuteCallback chkcond) +{ + return TS_execute_recurse(curitem, arg, flags, chkcond); +} + /* * TS_execute recursion for operators above any phrase operator. Here we do * not need to worry about lexeme positions. As soon as we hit an OP_PHRASE diff --git a/src/backend/utils/cache/lsyscache.c b/src/backend/utils/cache/lsyscache.c index 85c458bc46ee4..6bba5f8ec4e89 100644 --- a/src/backend/utils/cache/lsyscache.c +++ b/src/backend/utils/cache/lsyscache.c @@ -871,6 +871,33 @@ get_attnum(Oid relid, const char *attname) return InvalidAttrNumber; } +/* + * get_attstattarget + * + * Given the relation id and the attribute number, + * return the "attstattarget" field from the attribute relation. + * + * Errors if not found. + */ +int +get_attstattarget(Oid relid, AttrNumber attnum) +{ + HeapTuple tp; + Form_pg_attribute att_tup; + int result; + + tp = SearchSysCache2(ATTNUM, + ObjectIdGetDatum(relid), + Int16GetDatum(attnum)); + if (!HeapTupleIsValid(tp)) + elog(ERROR, "cache lookup failed for attribute %d of relation %u", + attnum, relid); + att_tup = (Form_pg_attribute) GETSTRUCT(tp); + result = att_tup->attstattarget; + ReleaseSysCache(tp); + return result; +} + /* * get_attgenerated * diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 0f67b99cc5534..734c66d4e84c8 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -1641,7 +1641,7 @@ load_libraries(const char *libraries, const char *gucname, bool restricted) } load_file(filename, restricted); ereport(DEBUG1, - (errmsg("loaded library \"%s\"", filename))); + (errmsg_internal("loaded library \"%s\"", filename))); if (expanded) pfree(expanded); } diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index eafdb1118ed57..00018abb7d1f2 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -4355,6 +4355,16 @@ static struct config_string ConfigureNamesString[] = NULL, NULL, NULL }, + { + {"ssl_crl_dir", PGC_SIGHUP, CONN_AUTH_SSL, + gettext_noop("Location of the SSL certificate revocation list directory."), + NULL + }, + &ssl_crl_dir, + "", + NULL, NULL, NULL + }, + { {"stats_temp_directory", PGC_SIGHUP, STATS_COLLECTOR, gettext_noop("Writes temporary statistics files to the specified directory."), diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index bd57e917e16ed..ee06528bb0b91 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -101,6 +101,7 @@ #ssl_ca_file = '' #ssl_cert_file = 'server.crt' #ssl_crl_file = '' +#ssl_crl_dir = '' #ssl_key_file = 'server.key' #ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers #ssl_prefer_server_ciphers = on @@ -206,7 +207,7 @@ #wal_sync_method = fsync # the default is the first option # supported by the operating system: # open_datasync - # fdatasync (default on Linux) + # fdatasync (default on Linux and FreeBSD) # fsync # fsync_writethrough # open_sync diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index 62540a1b37d5e..2b868511c5dbb 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -656,6 +656,8 @@ static const struct tsearch_config_match tsearch_config_languages[] = { {"arabic", "ar"}, {"arabic", "Arabic"}, + {"armenian", "hy"}, + {"armenian", "Armenian"}, {"basque", "eu"}, {"basque", "Basque"}, {"catalan", "ca"}, @@ -697,6 +699,8 @@ static const struct tsearch_config_match tsearch_config_languages[] = {"romanian", "ro"}, {"russian", "ru"}, {"russian", "Russian"}, + {"serbian", "sr"}, + {"serbian", "Serbian"}, {"spanish", "es"}, {"spanish", "Spanish"}, {"swedish", "sv"}, @@ -705,6 +709,8 @@ static const struct tsearch_config_match tsearch_config_languages[] = {"tamil", "Tamil"}, {"turkish", "tr"}, {"turkish", "Turkish"}, + {"yiddish", "yi"}, + {"yiddish", "Yiddish"}, {NULL, NULL} /* end marker */ }; @@ -3249,8 +3255,6 @@ main(int argc, char *argv[]) start_db_cmd->data); destroyPQExpBuffer(start_db_cmd); - - printf(_("\nSuccess.\n")); } diff --git a/src/bin/pg_dump/pg_backup.h b/src/bin/pg_dump/pg_backup.h index 9d0056a569b9a..eea9f30a796e5 100644 --- a/src/bin/pg_dump/pg_backup.h +++ b/src/bin/pg_dump/pg_backup.h @@ -248,7 +248,7 @@ typedef int DumpId; * Function pointer prototypes for assorted callback methods. */ -typedef int (*DataDumperPtr) (Archive *AH, void *userArg); +typedef int (*DataDumperPtr) (Archive *AH, const void *userArg); typedef void (*SetupWorkerPtrType) (Archive *AH); diff --git a/src/bin/pg_dump/pg_backup_archiver.h b/src/bin/pg_dump/pg_backup_archiver.h index a8ea5c7eaecd6..9d0f03d5629de 100644 --- a/src/bin/pg_dump/pg_backup_archiver.h +++ b/src/bin/pg_dump/pg_backup_archiver.h @@ -382,7 +382,7 @@ struct _tocEntry int nDeps; /* number of dependencies */ DataDumperPtr dataDumper; /* Routine to dump data for object */ - void *dataDumperArg; /* Arg for above routine */ + const void *dataDumperArg; /* Arg for above routine */ void *formatData; /* TOC Entry data specific to file format */ /* working state while dumping/restoring */ @@ -421,7 +421,7 @@ typedef struct _archiveOpts const DumpId *deps; int nDeps; DataDumperPtr dumpFn; - void *dumpArg; + const void *dumpArg; } ArchiveOpts; #define ARCHIVE_OPTS(...) &(ArchiveOpts){__VA_ARGS__} /* Called to add a TOC entry */ diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index d99b61e6215f1..eb988d7eb44af 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -159,8 +159,8 @@ static void expand_table_name_patterns(Archive *fout, SimpleOidList *oids, bool strict_names); static NamespaceInfo *findNamespace(Oid nsoid); -static void dumpTableData(Archive *fout, TableDataInfo *tdinfo); -static void refreshMatViewData(Archive *fout, TableDataInfo *tdinfo); +static void dumpTableData(Archive *fout, const TableDataInfo *tdinfo); +static void refreshMatViewData(Archive *fout, const TableDataInfo *tdinfo); static void guessConstraintInheritance(TableInfo *tblinfo, int numTables); static void dumpComment(Archive *fout, const char *type, const char *name, const char *namespace, const char *owner, @@ -174,53 +174,53 @@ static void dumpSecLabel(Archive *fout, const char *type, const char *name, static int findSecLabels(Archive *fout, Oid classoid, Oid objoid, SecLabelItem **items); static int collectSecLabels(Archive *fout, SecLabelItem **items); -static void dumpDumpableObject(Archive *fout, DumpableObject *dobj); -static void dumpNamespace(Archive *fout, NamespaceInfo *nspinfo); -static void dumpExtension(Archive *fout, ExtensionInfo *extinfo); -static void dumpType(Archive *fout, TypeInfo *tyinfo); -static void dumpBaseType(Archive *fout, TypeInfo *tyinfo); -static void dumpEnumType(Archive *fout, TypeInfo *tyinfo); -static void dumpRangeType(Archive *fout, TypeInfo *tyinfo); -static void dumpUndefinedType(Archive *fout, TypeInfo *tyinfo); -static void dumpDomain(Archive *fout, TypeInfo *tyinfo); -static void dumpCompositeType(Archive *fout, TypeInfo *tyinfo); -static void dumpCompositeTypeColComments(Archive *fout, TypeInfo *tyinfo); -static void dumpShellType(Archive *fout, ShellTypeInfo *stinfo); -static void dumpProcLang(Archive *fout, ProcLangInfo *plang); -static void dumpFunc(Archive *fout, FuncInfo *finfo); -static void dumpCast(Archive *fout, CastInfo *cast); -static void dumpTransform(Archive *fout, TransformInfo *transform); -static void dumpOpr(Archive *fout, OprInfo *oprinfo); -static void dumpAccessMethod(Archive *fout, AccessMethodInfo *oprinfo); -static void dumpOpclass(Archive *fout, OpclassInfo *opcinfo); -static void dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo); -static void dumpCollation(Archive *fout, CollInfo *collinfo); -static void dumpConversion(Archive *fout, ConvInfo *convinfo); -static void dumpRule(Archive *fout, RuleInfo *rinfo); -static void dumpAgg(Archive *fout, AggInfo *agginfo); -static void dumpTrigger(Archive *fout, TriggerInfo *tginfo); -static void dumpEventTrigger(Archive *fout, EventTriggerInfo *evtinfo); -static void dumpTable(Archive *fout, TableInfo *tbinfo); -static void dumpTableSchema(Archive *fout, TableInfo *tbinfo); -static void dumpTableAttach(Archive *fout, TableAttachInfo *tbinfo); -static void dumpAttrDef(Archive *fout, AttrDefInfo *adinfo); -static void dumpSequence(Archive *fout, TableInfo *tbinfo); -static void dumpSequenceData(Archive *fout, TableDataInfo *tdinfo); -static void dumpIndex(Archive *fout, IndxInfo *indxinfo); -static void dumpIndexAttach(Archive *fout, IndexAttachInfo *attachinfo); -static void dumpStatisticsExt(Archive *fout, StatsExtInfo *statsextinfo); -static void dumpConstraint(Archive *fout, ConstraintInfo *coninfo); -static void dumpTableConstraintComment(Archive *fout, ConstraintInfo *coninfo); -static void dumpTSParser(Archive *fout, TSParserInfo *prsinfo); -static void dumpTSDictionary(Archive *fout, TSDictInfo *dictinfo); -static void dumpTSTemplate(Archive *fout, TSTemplateInfo *tmplinfo); -static void dumpTSConfig(Archive *fout, TSConfigInfo *cfginfo); -static void dumpForeignDataWrapper(Archive *fout, FdwInfo *fdwinfo); -static void dumpForeignServer(Archive *fout, ForeignServerInfo *srvinfo); +static void dumpDumpableObject(Archive *fout, const DumpableObject *dobj); +static void dumpNamespace(Archive *fout, const NamespaceInfo *nspinfo); +static void dumpExtension(Archive *fout, const ExtensionInfo *extinfo); +static void dumpType(Archive *fout, const TypeInfo *tyinfo); +static void dumpBaseType(Archive *fout, const TypeInfo *tyinfo); +static void dumpEnumType(Archive *fout, const TypeInfo *tyinfo); +static void dumpRangeType(Archive *fout, const TypeInfo *tyinfo); +static void dumpUndefinedType(Archive *fout, const TypeInfo *tyinfo); +static void dumpDomain(Archive *fout, const TypeInfo *tyinfo); +static void dumpCompositeType(Archive *fout, const TypeInfo *tyinfo); +static void dumpCompositeTypeColComments(Archive *fout, const TypeInfo *tyinfo); +static void dumpShellType(Archive *fout, const ShellTypeInfo *stinfo); +static void dumpProcLang(Archive *fout, const ProcLangInfo *plang); +static void dumpFunc(Archive *fout, const FuncInfo *finfo); +static void dumpCast(Archive *fout, const CastInfo *cast); +static void dumpTransform(Archive *fout, const TransformInfo *transform); +static void dumpOpr(Archive *fout, const OprInfo *oprinfo); +static void dumpAccessMethod(Archive *fout, const AccessMethodInfo *oprinfo); +static void dumpOpclass(Archive *fout, const OpclassInfo *opcinfo); +static void dumpOpfamily(Archive *fout, const OpfamilyInfo *opfinfo); +static void dumpCollation(Archive *fout, const CollInfo *collinfo); +static void dumpConversion(Archive *fout, const ConvInfo *convinfo); +static void dumpRule(Archive *fout, const RuleInfo *rinfo); +static void dumpAgg(Archive *fout, const AggInfo *agginfo); +static void dumpTrigger(Archive *fout, const TriggerInfo *tginfo); +static void dumpEventTrigger(Archive *fout, const EventTriggerInfo *evtinfo); +static void dumpTable(Archive *fout, const TableInfo *tbinfo); +static void dumpTableSchema(Archive *fout, const TableInfo *tbinfo); +static void dumpTableAttach(Archive *fout, const TableAttachInfo *tbinfo); +static void dumpAttrDef(Archive *fout, const AttrDefInfo *adinfo); +static void dumpSequence(Archive *fout, const TableInfo *tbinfo); +static void dumpSequenceData(Archive *fout, const TableDataInfo *tdinfo); +static void dumpIndex(Archive *fout, const IndxInfo *indxinfo); +static void dumpIndexAttach(Archive *fout, const IndexAttachInfo *attachinfo); +static void dumpStatisticsExt(Archive *fout, const StatsExtInfo *statsextinfo); +static void dumpConstraint(Archive *fout, const ConstraintInfo *coninfo); +static void dumpTableConstraintComment(Archive *fout, const ConstraintInfo *coninfo); +static void dumpTSParser(Archive *fout, const TSParserInfo *prsinfo); +static void dumpTSDictionary(Archive *fout, const TSDictInfo *dictinfo); +static void dumpTSTemplate(Archive *fout, const TSTemplateInfo *tmplinfo); +static void dumpTSConfig(Archive *fout, const TSConfigInfo *cfginfo); +static void dumpForeignDataWrapper(Archive *fout, const FdwInfo *fdwinfo); +static void dumpForeignServer(Archive *fout, const ForeignServerInfo *srvinfo); static void dumpUserMappings(Archive *fout, const char *servername, const char *namespace, const char *owner, CatalogId catalogId, DumpId dumpId); -static void dumpDefaultACL(Archive *fout, DefaultACLInfo *daclinfo); +static void dumpDefaultACL(Archive *fout, const DefaultACLInfo *daclinfo); static DumpId dumpACL(Archive *fout, DumpId objDumpId, DumpId altDumpId, const char *type, const char *name, const char *subname, @@ -230,40 +230,40 @@ static DumpId dumpACL(Archive *fout, DumpId objDumpId, DumpId altDumpId, static void getDependencies(Archive *fout); static void BuildArchiveDependencies(Archive *fout); -static void findDumpableDependencies(ArchiveHandle *AH, DumpableObject *dobj, +static void findDumpableDependencies(ArchiveHandle *AH, const DumpableObject *dobj, DumpId **dependencies, int *nDeps, int *allocDeps); static DumpableObject *createBoundaryObjects(void); static void addBoundaryDependencies(DumpableObject **dobjs, int numObjs, DumpableObject *boundaryObjs); -static void addConstrChildIdxDeps(DumpableObject *dobj, IndxInfo *refidx); +static void addConstrChildIdxDeps(DumpableObject *dobj, const IndxInfo *refidx); static void getDomainConstraints(Archive *fout, TypeInfo *tyinfo); static void getTableData(DumpOptions *dopt, TableInfo *tblinfo, int numTables, char relkind); static void makeTableDataInfo(DumpOptions *dopt, TableInfo *tbinfo); static void buildMatViewRefreshDependencies(Archive *fout); static void getTableDataFKConstraints(void); -static char *format_function_arguments(FuncInfo *finfo, char *funcargs, +static char *format_function_arguments(const FuncInfo *finfo, const char *funcargs, bool is_agg); static char *format_function_arguments_old(Archive *fout, - FuncInfo *finfo, int nallargs, + const FuncInfo *finfo, int nallargs, char **allargtypes, char **argmodes, char **argnames); static char *format_function_signature(Archive *fout, - FuncInfo *finfo, bool honor_quotes); + const FuncInfo *finfo, bool honor_quotes); static char *convertRegProcReference(const char *proc); static char *getFormattedOperatorName(const char *oproid); static char *convertTSFunction(Archive *fout, Oid funcOid); static Oid findLastBuiltinOid_V71(Archive *fout); static char *getFormattedTypeName(Archive *fout, Oid oid, OidOptions opts); static void getBlobs(Archive *fout); -static void dumpBlob(Archive *fout, BlobInfo *binfo); -static int dumpBlobs(Archive *fout, void *arg); -static void dumpPolicy(Archive *fout, PolicyInfo *polinfo); -static void dumpPublication(Archive *fout, PublicationInfo *pubinfo); -static void dumpPublicationTable(Archive *fout, PublicationRelInfo *pubrinfo); -static void dumpSubscription(Archive *fout, SubscriptionInfo *subinfo); +static void dumpBlob(Archive *fout, const BlobInfo *binfo); +static int dumpBlobs(Archive *fout, const void *arg); +static void dumpPolicy(Archive *fout, const PolicyInfo *polinfo); +static void dumpPublication(Archive *fout, const PublicationInfo *pubinfo); +static void dumpPublicationTable(Archive *fout, const PublicationRelInfo *pubrinfo); +static void dumpSubscription(Archive *fout, const SubscriptionInfo *subinfo); static void dumpDatabase(Archive *AH); static void dumpDatabaseConfig(Archive *AH, PQExpBuffer outbuf, const char *dbname, Oid dboid); @@ -281,21 +281,21 @@ static void binary_upgrade_set_pg_class_oids(Archive *fout, PQExpBuffer upgrade_buffer, Oid pg_class_oid, bool is_index); static void binary_upgrade_extension_member(PQExpBuffer upgrade_buffer, - DumpableObject *dobj, + const DumpableObject *dobj, const char *objtype, const char *objname, const char *objnamespace); -static const char *getAttrName(int attrnum, TableInfo *tblInfo); +static const char *getAttrName(int attrnum, const TableInfo *tblInfo); static const char *fmtCopyColumnList(const TableInfo *ti, PQExpBuffer buffer); static bool nonemptyReloptions(const char *reloptions); -static void appendIndexCollationVersion(PQExpBuffer buffer, IndxInfo *indxinfo, +static void appendIndexCollationVersion(PQExpBuffer buffer, const IndxInfo *indxinfo, int enc, bool coll_unknown, Archive *fout); static void appendReloptionsArrayAH(PQExpBuffer buffer, const char *reloptions, const char *prefix, Archive *fout); static char *get_synchronized_snapshot(Archive *fout); static void setupDumpWorker(Archive *AHX); -static TableInfo *getRootTableInfo(TableInfo *tbinfo); +static TableInfo *getRootTableInfo(const TableInfo *tbinfo); int @@ -1851,7 +1851,7 @@ selectDumpableObject(DumpableObject *dobj, Archive *fout) * to be dumped. */ static int -dumpTableData_copy(Archive *fout, void *dcontext) +dumpTableData_copy(Archive *fout, const void *dcontext) { TableDataInfo *tdinfo = (TableDataInfo *) dcontext; TableInfo *tbinfo = tdinfo->tdtable; @@ -2011,7 +2011,7 @@ dumpTableData_copy(Archive *fout, void *dcontext) * E'' strings, or dollar-quoted strings. So don't emit anything like that. */ static int -dumpTableData_insert(Archive *fout, void *dcontext) +dumpTableData_insert(Archive *fout, const void *dcontext) { TableDataInfo *tdinfo = (TableDataInfo *) dcontext; TableInfo *tbinfo = tdinfo->tdtable; @@ -2235,7 +2235,7 @@ dumpTableData_insert(Archive *fout, void *dcontext) * get the root TableInfo for the given partition table. */ static TableInfo * -getRootTableInfo(TableInfo *tbinfo) +getRootTableInfo(const TableInfo *tbinfo) { TableInfo *parentTbinfo; @@ -2259,7 +2259,7 @@ getRootTableInfo(TableInfo *tbinfo) * Actually, this just makes an ArchiveEntry for the table contents. */ static void -dumpTableData(Archive *fout, TableDataInfo *tdinfo) +dumpTableData(Archive *fout, const TableDataInfo *tdinfo) { DumpOptions *dopt = fout->dopt; TableInfo *tbinfo = tdinfo->tdtable; @@ -2351,7 +2351,7 @@ dumpTableData(Archive *fout, TableDataInfo *tdinfo) * statement. */ static void -refreshMatViewData(Archive *fout, TableDataInfo *tdinfo) +refreshMatViewData(Archive *fout, const TableDataInfo *tdinfo) { TableInfo *tbinfo = tdinfo->tdtable; PQExpBuffer q; @@ -3462,7 +3462,7 @@ getBlobs(Archive *fout) * dump the definition (metadata) of the given large object */ static void -dumpBlob(Archive *fout, BlobInfo *binfo) +dumpBlob(Archive *fout, const BlobInfo *binfo) { PQExpBuffer cquery = createPQExpBuffer(); PQExpBuffer dquery = createPQExpBuffer(); @@ -3512,7 +3512,7 @@ dumpBlob(Archive *fout, BlobInfo *binfo) * dump the data contents of all large objects */ static int -dumpBlobs(Archive *fout, void *arg) +dumpBlobs(Archive *fout, const void *arg) { const char *blobQry; const char *blobFetchQry; @@ -3746,7 +3746,7 @@ getPolicies(Archive *fout, TableInfo tblinfo[], int numTables) * dump the definition of the given policy */ static void -dumpPolicy(Archive *fout, PolicyInfo *polinfo) +dumpPolicy(Archive *fout, const PolicyInfo *polinfo) { DumpOptions *dopt = fout->dopt; TableInfo *tbinfo = polinfo->poltable; @@ -3977,7 +3977,7 @@ getPublications(Archive *fout, int *numPublications) * dump the definition of the given publication */ static void -dumpPublication(Archive *fout, PublicationInfo *pubinfo) +dumpPublication(Archive *fout, const PublicationInfo *pubinfo) { PQExpBuffer delq; PQExpBuffer query; @@ -4157,7 +4157,7 @@ getPublicationTables(Archive *fout, TableInfo tblinfo[], int numTables) * dump the definition of the given publication table mapping */ static void -dumpPublicationTable(Archive *fout, PublicationRelInfo *pubrinfo) +dumpPublicationTable(Archive *fout, const PublicationRelInfo *pubrinfo) { PublicationInfo *pubinfo = pubrinfo->publication; TableInfo *tbinfo = pubrinfo->pubtable; @@ -4337,7 +4337,7 @@ getSubscriptions(Archive *fout) * dump the definition of the given subscription */ static void -dumpSubscription(Archive *fout, SubscriptionInfo *subinfo) +dumpSubscription(Archive *fout, const SubscriptionInfo *subinfo) { PQExpBuffer delq; PQExpBuffer query; @@ -4426,7 +4426,7 @@ dumpSubscription(Archive *fout, SubscriptionInfo *subinfo) static void append_depends_on_extension(Archive *fout, PQExpBuffer create, - DumpableObject *dobj, + const DumpableObject *dobj, const char *catalog, const char *keyword, const char *objname) @@ -4697,7 +4697,7 @@ binary_upgrade_set_pg_class_oids(Archive *fout, */ static void binary_upgrade_extension_member(PQExpBuffer upgrade_buffer, - DumpableObject *dobj, + const DumpableObject *dobj, const char *objtype, const char *objname, const char *objnamespace) @@ -7697,7 +7697,7 @@ getConstraints(Archive *fout, TableInfo tblinfo[], int numTables) * restored until the index is fully marked valid. */ static void -addConstrChildIdxDeps(DumpableObject *dobj, IndxInfo *refidx) +addConstrChildIdxDeps(DumpableObject *dobj, const IndxInfo *refidx) { SimplePtrListCell *cell; @@ -9041,7 +9041,7 @@ getTableAttrs(Archive *fout, TableInfo *tblinfo, int numTables) * must be kept in sync with this decision. */ bool -shouldPrintColumn(DumpOptions *dopt, TableInfo *tbinfo, int colno) +shouldPrintColumn(const DumpOptions *dopt, const TableInfo *tbinfo, int colno) { if (dopt->binary_upgrade) return true; @@ -9930,7 +9930,7 @@ dumpComment(Archive *fout, const char *type, const char *name, * and its columns. */ static void -dumpTableComment(Archive *fout, TableInfo *tbinfo, +dumpTableComment(Archive *fout, const TableInfo *tbinfo, const char *reltypename) { DumpOptions *dopt = fout->dopt; @@ -10166,123 +10166,123 @@ collectComments(Archive *fout, CommentItem **items) * ArchiveEntries (TOC objects) for each object to be dumped. */ static void -dumpDumpableObject(Archive *fout, DumpableObject *dobj) +dumpDumpableObject(Archive *fout, const DumpableObject *dobj) { switch (dobj->objType) { case DO_NAMESPACE: - dumpNamespace(fout, (NamespaceInfo *) dobj); + dumpNamespace(fout, (const NamespaceInfo *) dobj); break; case DO_EXTENSION: - dumpExtension(fout, (ExtensionInfo *) dobj); + dumpExtension(fout, (const ExtensionInfo *) dobj); break; case DO_TYPE: - dumpType(fout, (TypeInfo *) dobj); + dumpType(fout, (const TypeInfo *) dobj); break; case DO_SHELL_TYPE: - dumpShellType(fout, (ShellTypeInfo *) dobj); + dumpShellType(fout, (const ShellTypeInfo *) dobj); break; case DO_FUNC: - dumpFunc(fout, (FuncInfo *) dobj); + dumpFunc(fout, (const FuncInfo *) dobj); break; case DO_AGG: - dumpAgg(fout, (AggInfo *) dobj); + dumpAgg(fout, (const AggInfo *) dobj); break; case DO_OPERATOR: - dumpOpr(fout, (OprInfo *) dobj); + dumpOpr(fout, (const OprInfo *) dobj); break; case DO_ACCESS_METHOD: - dumpAccessMethod(fout, (AccessMethodInfo *) dobj); + dumpAccessMethod(fout, (const AccessMethodInfo *) dobj); break; case DO_OPCLASS: - dumpOpclass(fout, (OpclassInfo *) dobj); + dumpOpclass(fout, (const OpclassInfo *) dobj); break; case DO_OPFAMILY: - dumpOpfamily(fout, (OpfamilyInfo *) dobj); + dumpOpfamily(fout, (const OpfamilyInfo *) dobj); break; case DO_COLLATION: - dumpCollation(fout, (CollInfo *) dobj); + dumpCollation(fout, (const CollInfo *) dobj); break; case DO_CONVERSION: - dumpConversion(fout, (ConvInfo *) dobj); + dumpConversion(fout, (const ConvInfo *) dobj); break; case DO_TABLE: - dumpTable(fout, (TableInfo *) dobj); + dumpTable(fout, (const TableInfo *) dobj); break; case DO_TABLE_ATTACH: - dumpTableAttach(fout, (TableAttachInfo *) dobj); + dumpTableAttach(fout, (const TableAttachInfo *) dobj); break; case DO_ATTRDEF: - dumpAttrDef(fout, (AttrDefInfo *) dobj); + dumpAttrDef(fout, (const AttrDefInfo *) dobj); break; case DO_INDEX: - dumpIndex(fout, (IndxInfo *) dobj); + dumpIndex(fout, (const IndxInfo *) dobj); break; case DO_INDEX_ATTACH: - dumpIndexAttach(fout, (IndexAttachInfo *) dobj); + dumpIndexAttach(fout, (const IndexAttachInfo *) dobj); break; case DO_STATSEXT: - dumpStatisticsExt(fout, (StatsExtInfo *) dobj); + dumpStatisticsExt(fout, (const StatsExtInfo *) dobj); break; case DO_REFRESH_MATVIEW: - refreshMatViewData(fout, (TableDataInfo *) dobj); + refreshMatViewData(fout, (const TableDataInfo *) dobj); break; case DO_RULE: - dumpRule(fout, (RuleInfo *) dobj); + dumpRule(fout, (const RuleInfo *) dobj); break; case DO_TRIGGER: - dumpTrigger(fout, (TriggerInfo *) dobj); + dumpTrigger(fout, (const TriggerInfo *) dobj); break; case DO_EVENT_TRIGGER: - dumpEventTrigger(fout, (EventTriggerInfo *) dobj); + dumpEventTrigger(fout, (const EventTriggerInfo *) dobj); break; case DO_CONSTRAINT: - dumpConstraint(fout, (ConstraintInfo *) dobj); + dumpConstraint(fout, (const ConstraintInfo *) dobj); break; case DO_FK_CONSTRAINT: - dumpConstraint(fout, (ConstraintInfo *) dobj); + dumpConstraint(fout, (const ConstraintInfo *) dobj); break; case DO_PROCLANG: - dumpProcLang(fout, (ProcLangInfo *) dobj); + dumpProcLang(fout, (const ProcLangInfo *) dobj); break; case DO_CAST: - dumpCast(fout, (CastInfo *) dobj); + dumpCast(fout, (const CastInfo *) dobj); break; case DO_TRANSFORM: - dumpTransform(fout, (TransformInfo *) dobj); + dumpTransform(fout, (const TransformInfo *) dobj); break; case DO_SEQUENCE_SET: - dumpSequenceData(fout, (TableDataInfo *) dobj); + dumpSequenceData(fout, (const TableDataInfo *) dobj); break; case DO_TABLE_DATA: - dumpTableData(fout, (TableDataInfo *) dobj); + dumpTableData(fout, (const TableDataInfo *) dobj); break; case DO_DUMMY_TYPE: /* table rowtypes and array types are never dumped separately */ break; case DO_TSPARSER: - dumpTSParser(fout, (TSParserInfo *) dobj); + dumpTSParser(fout, (const TSParserInfo *) dobj); break; case DO_TSDICT: - dumpTSDictionary(fout, (TSDictInfo *) dobj); + dumpTSDictionary(fout, (const TSDictInfo *) dobj); break; case DO_TSTEMPLATE: - dumpTSTemplate(fout, (TSTemplateInfo *) dobj); + dumpTSTemplate(fout, (const TSTemplateInfo *) dobj); break; case DO_TSCONFIG: - dumpTSConfig(fout, (TSConfigInfo *) dobj); + dumpTSConfig(fout, (const TSConfigInfo *) dobj); break; case DO_FDW: - dumpForeignDataWrapper(fout, (FdwInfo *) dobj); + dumpForeignDataWrapper(fout, (const FdwInfo *) dobj); break; case DO_FOREIGN_SERVER: - dumpForeignServer(fout, (ForeignServerInfo *) dobj); + dumpForeignServer(fout, (const ForeignServerInfo *) dobj); break; case DO_DEFAULT_ACL: - dumpDefaultACL(fout, (DefaultACLInfo *) dobj); + dumpDefaultACL(fout, (const DefaultACLInfo *) dobj); break; case DO_BLOB: - dumpBlob(fout, (BlobInfo *) dobj); + dumpBlob(fout, (const BlobInfo *) dobj); break; case DO_BLOB_DATA: if (dobj->dump & DUMP_COMPONENT_DATA) @@ -10312,16 +10312,16 @@ dumpDumpableObject(Archive *fout, DumpableObject *dobj) } break; case DO_POLICY: - dumpPolicy(fout, (PolicyInfo *) dobj); + dumpPolicy(fout, (const PolicyInfo *) dobj); break; case DO_PUBLICATION: - dumpPublication(fout, (PublicationInfo *) dobj); + dumpPublication(fout, (const PublicationInfo *) dobj); break; case DO_PUBLICATION_REL: - dumpPublicationTable(fout, (PublicationRelInfo *) dobj); + dumpPublicationTable(fout, (const PublicationRelInfo *) dobj); break; case DO_SUBSCRIPTION: - dumpSubscription(fout, (SubscriptionInfo *) dobj); + dumpSubscription(fout, (const SubscriptionInfo *) dobj); break; case DO_PRE_DATA_BOUNDARY: case DO_POST_DATA_BOUNDARY: @@ -10335,7 +10335,7 @@ dumpDumpableObject(Archive *fout, DumpableObject *dobj) * writes out to fout the queries to recreate a user-defined namespace */ static void -dumpNamespace(Archive *fout, NamespaceInfo *nspinfo) +dumpNamespace(Archive *fout, const NamespaceInfo *nspinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q; @@ -10396,7 +10396,7 @@ dumpNamespace(Archive *fout, NamespaceInfo *nspinfo) * writes out to fout the queries to recreate an extension */ static void -dumpExtension(Archive *fout, ExtensionInfo *extinfo) +dumpExtension(Archive *fout, const ExtensionInfo *extinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q; @@ -10524,7 +10524,7 @@ dumpExtension(Archive *fout, ExtensionInfo *extinfo) * writes out to fout the queries to recreate a user-defined type */ static void -dumpType(Archive *fout, TypeInfo *tyinfo) +dumpType(Archive *fout, const TypeInfo *tyinfo) { DumpOptions *dopt = fout->dopt; @@ -10555,7 +10555,7 @@ dumpType(Archive *fout, TypeInfo *tyinfo) * writes out to fout the queries to recreate a user-defined enum type */ static void -dumpEnumType(Archive *fout, TypeInfo *tyinfo) +dumpEnumType(Archive *fout, const TypeInfo *tyinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q = createPQExpBuffer(); @@ -10683,7 +10683,7 @@ dumpEnumType(Archive *fout, TypeInfo *tyinfo) * writes out to fout the queries to recreate a user-defined range type */ static void -dumpRangeType(Archive *fout, TypeInfo *tyinfo) +dumpRangeType(Archive *fout, const TypeInfo *tyinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q = createPQExpBuffer(); @@ -10828,7 +10828,7 @@ dumpRangeType(Archive *fout, TypeInfo *tyinfo) * depending on it. */ static void -dumpUndefinedType(Archive *fout, TypeInfo *tyinfo) +dumpUndefinedType(Archive *fout, const TypeInfo *tyinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q = createPQExpBuffer(); @@ -10893,7 +10893,7 @@ dumpUndefinedType(Archive *fout, TypeInfo *tyinfo) * writes out to fout the queries to recreate a user-defined base type */ static void -dumpBaseType(Archive *fout, TypeInfo *tyinfo) +dumpBaseType(Archive *fout, const TypeInfo *tyinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q = createPQExpBuffer(); @@ -11159,7 +11159,7 @@ dumpBaseType(Archive *fout, TypeInfo *tyinfo) * writes out to fout the queries to recreate a user-defined domain */ static void -dumpDomain(Archive *fout, TypeInfo *tyinfo) +dumpDomain(Archive *fout, const TypeInfo *tyinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q = createPQExpBuffer(); @@ -11334,7 +11334,7 @@ dumpDomain(Archive *fout, TypeInfo *tyinfo) * composite type */ static void -dumpCompositeType(Archive *fout, TypeInfo *tyinfo) +dumpCompositeType(Archive *fout, const TypeInfo *tyinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q = createPQExpBuffer(); @@ -11544,7 +11544,7 @@ dumpCompositeType(Archive *fout, TypeInfo *tyinfo) * a user-defined stand-alone composite type */ static void -dumpCompositeTypeColComments(Archive *fout, TypeInfo *tyinfo) +dumpCompositeTypeColComments(Archive *fout, const TypeInfo *tyinfo) { CommentItem *comments; int ncomments; @@ -11659,7 +11659,7 @@ dumpCompositeTypeColComments(Archive *fout, TypeInfo *tyinfo) * We dump a shell definition in advance of the I/O functions for the type. */ static void -dumpShellType(Archive *fout, ShellTypeInfo *stinfo) +dumpShellType(Archive *fout, const ShellTypeInfo *stinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q; @@ -11705,7 +11705,7 @@ dumpShellType(Archive *fout, ShellTypeInfo *stinfo) * procedural language */ static void -dumpProcLang(Archive *fout, ProcLangInfo *plang) +dumpProcLang(Archive *fout, const ProcLangInfo *plang) { DumpOptions *dopt = fout->dopt; PQExpBuffer defqry; @@ -11838,7 +11838,7 @@ dumpProcLang(Archive *fout, ProcLangInfo *plang) * does not special-case zero-argument aggregates. */ static char * -format_function_arguments(FuncInfo *finfo, char *funcargs, bool is_agg) +format_function_arguments(const FuncInfo *finfo, const char *funcargs, bool is_agg) { PQExpBufferData fn; @@ -11864,7 +11864,7 @@ format_function_arguments(FuncInfo *finfo, char *funcargs, bool is_agg) */ static char * format_function_arguments_old(Archive *fout, - FuncInfo *finfo, int nallargs, + const FuncInfo *finfo, int nallargs, char **allargtypes, char **argmodes, char **argnames) @@ -11933,7 +11933,7 @@ format_function_arguments_old(Archive *fout, * This is appropriate for use in TOC tags, but not in SQL commands. */ static char * -format_function_signature(Archive *fout, FuncInfo *finfo, bool honor_quotes) +format_function_signature(Archive *fout, const FuncInfo *finfo, bool honor_quotes) { PQExpBufferData fn; int j; @@ -11965,7 +11965,7 @@ format_function_signature(Archive *fout, FuncInfo *finfo, bool honor_quotes) * dump out one function */ static void -dumpFunc(Archive *fout, FuncInfo *finfo) +dumpFunc(Archive *fout, const FuncInfo *finfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer query; @@ -12471,7 +12471,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo) * Dump a user-defined cast */ static void -dumpCast(Archive *fout, CastInfo *cast) +dumpCast(Archive *fout, const CastInfo *cast) { DumpOptions *dopt = fout->dopt; PQExpBuffer defqry; @@ -12579,7 +12579,7 @@ dumpCast(Archive *fout, CastInfo *cast) * Dump a transform */ static void -dumpTransform(Archive *fout, TransformInfo *transform) +dumpTransform(Archive *fout, const TransformInfo *transform) { DumpOptions *dopt = fout->dopt; PQExpBuffer defqry; @@ -12709,7 +12709,7 @@ dumpTransform(Archive *fout, TransformInfo *transform) * write out a single operator definition */ static void -dumpOpr(Archive *fout, OprInfo *oprinfo) +dumpOpr(Archive *fout, const OprInfo *oprinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer query; @@ -13027,7 +13027,7 @@ convertTSFunction(Archive *fout, Oid funcOid) * write out a single access method definition */ static void -dumpAccessMethod(Archive *fout, AccessMethodInfo *aminfo) +dumpAccessMethod(Archive *fout, const AccessMethodInfo *aminfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q; @@ -13095,7 +13095,7 @@ dumpAccessMethod(Archive *fout, AccessMethodInfo *aminfo) * write out a single operator class definition */ static void -dumpOpclass(Archive *fout, OpclassInfo *opcinfo) +dumpOpclass(Archive *fout, const OpclassInfo *opcinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer query; @@ -13467,7 +13467,7 @@ dumpOpclass(Archive *fout, OpclassInfo *opcinfo) * specific opclass within the opfamily. */ static void -dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo) +dumpOpfamily(Archive *fout, const OpfamilyInfo *opfinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer query; @@ -13730,7 +13730,7 @@ dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo) * write out a single collation definition */ static void -dumpCollation(Archive *fout, CollInfo *collinfo) +dumpCollation(Archive *fout, const CollInfo *collinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer query; @@ -13861,7 +13861,7 @@ dumpCollation(Archive *fout, CollInfo *collinfo) * write out a single conversion definition */ static void -dumpConversion(Archive *fout, ConvInfo *convinfo) +dumpConversion(Archive *fout, const ConvInfo *convinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer query; @@ -13957,7 +13957,7 @@ dumpConversion(Archive *fout, ConvInfo *convinfo) * is never qualified. */ static char * -format_aggregate_signature(AggInfo *agginfo, Archive *fout, bool honor_quotes) +format_aggregate_signature(const AggInfo *agginfo, Archive *fout, bool honor_quotes) { PQExpBufferData buf; int j; @@ -13995,7 +13995,7 @@ format_aggregate_signature(AggInfo *agginfo, Archive *fout, bool honor_quotes) * write out a single aggregate definition */ static void -dumpAgg(Archive *fout, AggInfo *agginfo) +dumpAgg(Archive *fout, const AggInfo *agginfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer query; @@ -14359,7 +14359,7 @@ dumpAgg(Archive *fout, AggInfo *agginfo) * write out a single text search parser */ static void -dumpTSParser(Archive *fout, TSParserInfo *prsinfo) +dumpTSParser(Archive *fout, const TSParserInfo *prsinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q; @@ -14423,7 +14423,7 @@ dumpTSParser(Archive *fout, TSParserInfo *prsinfo) * write out a single text search dictionary */ static void -dumpTSDictionary(Archive *fout, TSDictInfo *dictinfo) +dumpTSDictionary(Archive *fout, const TSDictInfo *dictinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q; @@ -14503,7 +14503,7 @@ dumpTSDictionary(Archive *fout, TSDictInfo *dictinfo) * write out a single text search template */ static void -dumpTSTemplate(Archive *fout, TSTemplateInfo *tmplinfo) +dumpTSTemplate(Archive *fout, const TSTemplateInfo *tmplinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q; @@ -14561,7 +14561,7 @@ dumpTSTemplate(Archive *fout, TSTemplateInfo *tmplinfo) * write out a single text search configuration */ static void -dumpTSConfig(Archive *fout, TSConfigInfo *cfginfo) +dumpTSConfig(Archive *fout, const TSConfigInfo *cfginfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q; @@ -14681,7 +14681,7 @@ dumpTSConfig(Archive *fout, TSConfigInfo *cfginfo) * write out a single foreign-data wrapper definition */ static void -dumpForeignDataWrapper(Archive *fout, FdwInfo *fdwinfo) +dumpForeignDataWrapper(Archive *fout, const FdwInfo *fdwinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q; @@ -14753,7 +14753,7 @@ dumpForeignDataWrapper(Archive *fout, FdwInfo *fdwinfo) * write out a foreign server definition */ static void -dumpForeignServer(Archive *fout, ForeignServerInfo *srvinfo) +dumpForeignServer(Archive *fout, const ForeignServerInfo *srvinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q; @@ -14947,7 +14947,7 @@ dumpUserMappings(Archive *fout, * Write out default privileges information */ static void -dumpDefaultACL(Archive *fout, DefaultACLInfo *daclinfo) +dumpDefaultACL(Archive *fout, const DefaultACLInfo *daclinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q; @@ -15225,7 +15225,7 @@ dumpSecLabel(Archive *fout, const char *type, const char *name, * and its columns. */ static void -dumpTableSecLabel(Archive *fout, TableInfo *tbinfo, const char *reltypename) +dumpTableSecLabel(Archive *fout, const TableInfo *tbinfo, const char *reltypename) { DumpOptions *dopt = fout->dopt; SecLabelItem *labels; @@ -15449,7 +15449,7 @@ collectSecLabels(Archive *fout, SecLabelItem **items) * write out to fout the declarations (not data) of a user-defined table */ static void -dumpTable(Archive *fout, TableInfo *tbinfo) +dumpTable(Archive *fout, const TableInfo *tbinfo) { DumpOptions *dopt = fout->dopt; DumpId tableAclDumpId = InvalidDumpId; @@ -15589,7 +15589,7 @@ dumpTable(Archive *fout, TableInfo *tbinfo) * This returns a new buffer which must be freed by the caller. */ static PQExpBuffer -createViewAsClause(Archive *fout, TableInfo *tbinfo) +createViewAsClause(Archive *fout, const TableInfo *tbinfo) { PQExpBuffer query = createPQExpBuffer(); PQExpBuffer result = createPQExpBuffer(); @@ -15638,7 +15638,7 @@ createViewAsClause(Archive *fout, TableInfo *tbinfo) * This returns a new buffer which must be freed by the caller. */ static PQExpBuffer -createDummyViewAsClause(Archive *fout, TableInfo *tbinfo) +createDummyViewAsClause(Archive *fout, const TableInfo *tbinfo) { PQExpBuffer result = createPQExpBuffer(); int j; @@ -15678,7 +15678,7 @@ createDummyViewAsClause(Archive *fout, TableInfo *tbinfo) * write the declaration (not data) of one user-defined table or view */ static void -dumpTableSchema(Archive *fout, TableInfo *tbinfo) +dumpTableSchema(Archive *fout, const TableInfo *tbinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q = createPQExpBuffer(); @@ -16414,7 +16414,7 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo) * rather than emitting it within the child partition's ArchiveEntry. */ static void -dumpTableAttach(Archive *fout, TableAttachInfo *attachinfo) +dumpTableAttach(Archive *fout, const TableAttachInfo *attachinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q; @@ -16458,7 +16458,7 @@ dumpTableAttach(Archive *fout, TableAttachInfo *attachinfo) * dumpAttrDef --- dump an attribute's default-value declaration */ static void -dumpAttrDef(Archive *fout, AttrDefInfo *adinfo) +dumpAttrDef(Archive *fout, const AttrDefInfo *adinfo) { DumpOptions *dopt = fout->dopt; TableInfo *tbinfo = adinfo->adtable; @@ -16519,7 +16519,7 @@ dumpAttrDef(Archive *fout, AttrDefInfo *adinfo) * We also do a little bit of bounds checking for safety's sake. */ static const char * -getAttrName(int attrnum, TableInfo *tblInfo) +getAttrName(int attrnum, const TableInfo *tblInfo) { if (attrnum > 0 && attrnum <= tblInfo->numatts) return tblInfo->attnames[attrnum - 1]; @@ -16548,7 +16548,7 @@ getAttrName(int attrnum, TableInfo *tblInfo) * write out to fout a user-defined index */ static void -dumpIndex(Archive *fout, IndxInfo *indxinfo) +dumpIndex(Archive *fout, const IndxInfo *indxinfo) { DumpOptions *dopt = fout->dopt; TableInfo *tbinfo = indxinfo->indextable; @@ -16710,7 +16710,7 @@ dumpIndex(Archive *fout, IndxInfo *indxinfo) * write out to fout a partitioned-index attachment clause */ static void -dumpIndexAttach(Archive *fout, IndexAttachInfo *attachinfo) +dumpIndexAttach(Archive *fout, const IndexAttachInfo *attachinfo) { if (fout->dopt->dataOnly) return; @@ -16748,7 +16748,7 @@ dumpIndexAttach(Archive *fout, IndexAttachInfo *attachinfo) * write out to fout an extended statistics object */ static void -dumpStatisticsExt(Archive *fout, StatsExtInfo *statsextinfo) +dumpStatisticsExt(Archive *fout, const StatsExtInfo *statsextinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer q; @@ -16826,7 +16826,7 @@ dumpStatisticsExt(Archive *fout, StatsExtInfo *statsextinfo) * write out to fout a user-defined constraint */ static void -dumpConstraint(Archive *fout, ConstraintInfo *coninfo) +dumpConstraint(Archive *fout, const ConstraintInfo *coninfo) { DumpOptions *dopt = fout->dopt; TableInfo *tbinfo = coninfo->contable; @@ -17103,7 +17103,7 @@ dumpConstraint(Archive *fout, ConstraintInfo *coninfo) * or as a separate ALTER command. */ static void -dumpTableConstraintComment(Archive *fout, ConstraintInfo *coninfo) +dumpTableConstraintComment(Archive *fout, const ConstraintInfo *coninfo) { TableInfo *tbinfo = coninfo->contable; PQExpBuffer conprefix = createPQExpBuffer(); @@ -17153,7 +17153,7 @@ findLastBuiltinOid_V71(Archive *fout) * write the declaration (not data) of one user-defined sequence */ static void -dumpSequence(Archive *fout, TableInfo *tbinfo) +dumpSequence(Archive *fout, const TableInfo *tbinfo) { DumpOptions *dopt = fout->dopt; PGresult *res; @@ -17420,7 +17420,7 @@ dumpSequence(Archive *fout, TableInfo *tbinfo) * write the data of one user-defined sequence */ static void -dumpSequenceData(Archive *fout, TableDataInfo *tdinfo) +dumpSequenceData(Archive *fout, const TableDataInfo *tdinfo) { TableInfo *tbinfo = tdinfo->tdtable; PGresult *res; @@ -17473,7 +17473,7 @@ dumpSequenceData(Archive *fout, TableDataInfo *tdinfo) * write the declaration of one user-defined table trigger */ static void -dumpTrigger(Archive *fout, TriggerInfo *tginfo) +dumpTrigger(Archive *fout, const TriggerInfo *tginfo) { DumpOptions *dopt = fout->dopt; TableInfo *tbinfo = tginfo->tgtable; @@ -17687,7 +17687,7 @@ dumpTrigger(Archive *fout, TriggerInfo *tginfo) * write the declaration of one user-defined event trigger */ static void -dumpEventTrigger(Archive *fout, EventTriggerInfo *evtinfo) +dumpEventTrigger(Archive *fout, const EventTriggerInfo *evtinfo) { DumpOptions *dopt = fout->dopt; PQExpBuffer query; @@ -17772,7 +17772,7 @@ dumpEventTrigger(Archive *fout, EventTriggerInfo *evtinfo) * Dump a rule */ static void -dumpRule(Archive *fout, RuleInfo *rinfo) +dumpRule(Archive *fout, const RuleInfo *rinfo) { DumpOptions *dopt = fout->dopt; TableInfo *tbinfo = rinfo->ruletable; @@ -18555,7 +18555,7 @@ BuildArchiveDependencies(Archive *fout) /* Recursive search subroutine for BuildArchiveDependencies */ static void -findDumpableDependencies(ArchiveHandle *AH, DumpableObject *dobj, +findDumpableDependencies(ArchiveHandle *AH, const DumpableObject *dobj, DumpId **dependencies, int *nDeps, int *allocDeps) { int i; @@ -18692,7 +18692,7 @@ nonemptyReloptions(const char *reloptions) * cluster, during a binary upgrade. */ static void -appendIndexCollationVersion(PQExpBuffer buffer, IndxInfo *indxinfo, int enc, +appendIndexCollationVersion(PQExpBuffer buffer, const IndxInfo *indxinfo, int enc, bool coll_unknown, Archive *fout) { char *inddependcollnames = indxinfo->inddependcollnames; diff --git a/src/bin/pg_dump/pg_dump.h b/src/bin/pg_dump/pg_dump.h index 1290f9659b853..0a2213fb06c18 100644 --- a/src/bin/pg_dump/pg_dump.h +++ b/src/bin/pg_dump/pg_dump.h @@ -712,7 +712,7 @@ extern ProcLangInfo *getProcLangs(Archive *fout, int *numProcLangs); extern CastInfo *getCasts(Archive *fout, int *numCasts); extern TransformInfo *getTransforms(Archive *fout, int *numTransforms); extern void getTableAttrs(Archive *fout, TableInfo *tbinfo, int numTables); -extern bool shouldPrintColumn(DumpOptions *dopt, TableInfo *tbinfo, int colno); +extern bool shouldPrintColumn(const DumpOptions *dopt, const TableInfo *tbinfo, int colno); extern TSParserInfo *getTSParsers(Archive *fout, int *numTSParsers); extern TSDictInfo *getTSDictionaries(Archive *fout, int *numTSDicts); extern TSTemplateInfo *getTSTemplates(Archive *fout, int *numTSTemplates); diff --git a/src/bin/pg_test_fsync/pg_test_fsync.c b/src/bin/pg_test_fsync/pg_test_fsync.c index 3eddd983c63ba..29ee7c7d6f174 100644 --- a/src/bin/pg_test_fsync/pg_test_fsync.c +++ b/src/bin/pg_test_fsync/pg_test_fsync.c @@ -290,10 +290,11 @@ test_sync(int writes_per_op) for (ops = 0; alarm_triggered == false; ops++) { for (writes = 0; writes < writes_per_op; writes++) - if (write(tmpfile, buf, XLOG_BLCKSZ) != XLOG_BLCKSZ) + if (pg_pwrite(tmpfile, + buf, + XLOG_BLCKSZ, + writes * XLOG_BLCKSZ) != XLOG_BLCKSZ) die("write failed"); - if (lseek(tmpfile, 0, SEEK_SET) == -1) - die("seek failed"); } STOP_TIMER; close(tmpfile); @@ -315,11 +316,12 @@ test_sync(int writes_per_op) for (ops = 0; alarm_triggered == false; ops++) { for (writes = 0; writes < writes_per_op; writes++) - if (write(tmpfile, buf, XLOG_BLCKSZ) != XLOG_BLCKSZ) + if (pg_pwrite(tmpfile, + buf, + XLOG_BLCKSZ, + writes * XLOG_BLCKSZ) != XLOG_BLCKSZ) die("write failed"); fdatasync(tmpfile); - if (lseek(tmpfile, 0, SEEK_SET) == -1) - die("seek failed"); } STOP_TIMER; close(tmpfile); @@ -339,12 +341,13 @@ test_sync(int writes_per_op) for (ops = 0; alarm_triggered == false; ops++) { for (writes = 0; writes < writes_per_op; writes++) - if (write(tmpfile, buf, XLOG_BLCKSZ) != XLOG_BLCKSZ) + if (pg_pwrite(tmpfile, + buf, + XLOG_BLCKSZ, + writes * XLOG_BLCKSZ) != XLOG_BLCKSZ) die("write failed"); if (fsync(tmpfile) != 0) die("fsync failed"); - if (lseek(tmpfile, 0, SEEK_SET) == -1) - die("seek failed"); } STOP_TIMER; close(tmpfile); @@ -362,12 +365,13 @@ test_sync(int writes_per_op) for (ops = 0; alarm_triggered == false; ops++) { for (writes = 0; writes < writes_per_op; writes++) - if (write(tmpfile, buf, XLOG_BLCKSZ) != XLOG_BLCKSZ) + if (pg_pwrite(tmpfile, + buf, + XLOG_BLCKSZ, + writes * XLOG_BLCKSZ) != XLOG_BLCKSZ) die("write failed"); if (pg_fsync_writethrough(tmpfile) != 0) die("fsync failed"); - if (lseek(tmpfile, 0, SEEK_SET) == -1) - die("seek failed"); } STOP_TIMER; close(tmpfile); @@ -393,8 +397,10 @@ test_sync(int writes_per_op) for (ops = 0; alarm_triggered == false; ops++) { for (writes = 0; writes < writes_per_op; writes++) - if (write(tmpfile, buf, XLOG_BLCKSZ) != XLOG_BLCKSZ) - + if (pg_pwrite(tmpfile, + buf, + XLOG_BLCKSZ, + writes * XLOG_BLCKSZ) != XLOG_BLCKSZ) /* * This can generate write failures if the filesystem has * a large block size, e.g. 4k, and there is no support @@ -402,8 +408,6 @@ test_sync(int writes_per_op) * size, e.g. XFS. */ die("write failed"); - if (lseek(tmpfile, 0, SEEK_SET) == -1) - die("seek failed"); } STOP_TIMER; close(tmpfile); @@ -457,11 +461,12 @@ test_open_sync(const char *msg, int writes_size) for (ops = 0; alarm_triggered == false; ops++) { for (writes = 0; writes < 16 / writes_size; writes++) - if (write(tmpfile, buf, writes_size * 1024) != + if (pg_pwrite(tmpfile, + buf, + writes_size * 1024, + writes * writes_size * 1024) != writes_size * 1024) die("write failed"); - if (lseek(tmpfile, 0, SEEK_SET) == -1) - die("seek failed"); } STOP_TIMER; close(tmpfile); @@ -553,16 +558,16 @@ test_non_sync(void) printf(LABEL_FORMAT, "write"); fflush(stdout); + if ((tmpfile = open(filename, O_RDWR | PG_BINARY, 0)) == -1) + die("could not open output file"); START_TIMER; for (ops = 0; alarm_triggered == false; ops++) { - if ((tmpfile = open(filename, O_RDWR | PG_BINARY, 0)) == -1) - die("could not open output file"); - if (write(tmpfile, buf, XLOG_BLCKSZ) != XLOG_BLCKSZ) + if (pg_pwrite(tmpfile, buf, XLOG_BLCKSZ, 0) != XLOG_BLCKSZ) die("write failed"); - close(tmpfile); } STOP_TIMER; + close(tmpfile); } static void diff --git a/src/bin/pg_verifybackup/parse_manifest.c b/src/bin/pg_verifybackup/parse_manifest.c index db2fa90cfec1f..3b13ae5b8464a 100644 --- a/src/bin/pg_verifybackup/parse_manifest.c +++ b/src/bin/pg_verifybackup/parse_manifest.c @@ -659,7 +659,8 @@ verify_manifest_checksum(JsonManifestParseState *parse, char *buffer, context->error_cb(context, "could not initialize checksum of manifest"); if (pg_cryptohash_update(manifest_ctx, (uint8 *) buffer, penultimate_newline + 1) < 0) context->error_cb(context, "could not update checksum of manifest"); - if (pg_cryptohash_final(manifest_ctx, manifest_checksum_actual) < 0) + if (pg_cryptohash_final(manifest_ctx, manifest_checksum_actual, + sizeof(manifest_checksum_actual)) < 0) context->error_cb(context, "could not finalize checksum of manifest"); /* Now verify it. */ diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index 6f507104f464f..925fe34a3fd74 100644 --- a/src/bin/psql/common.c +++ b/src/bin/psql/common.c @@ -1350,12 +1350,13 @@ SendQuery(const char *query) /* * Do nothing if they are messing with savepoints themselves: - * If the user did RELEASE or ROLLBACK, our savepoint is gone. - * If they issued a SAVEPOINT, releasing ours would remove - * theirs. + * If the user did COMMIT AND CHAIN, RELEASE or ROLLBACK, our + * savepoint is gone. If they issued a SAVEPOINT, releasing + * ours would remove theirs. */ if (results && - (strcmp(PQcmdStatus(results), "SAVEPOINT") == 0 || + (strcmp(PQcmdStatus(results), "COMMIT") == 0 || + strcmp(PQcmdStatus(results), "SAVEPOINT") == 0 || strcmp(PQcmdStatus(results), "RELEASE") == 0 || strcmp(PQcmdStatus(results), "ROLLBACK") == 0)) svptcmd = NULL; diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index a75647b1cc570..b64db82f029e4 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -1614,14 +1614,24 @@ psql_completion(const char *text, int start, int end) /* ALTER AGGREGATE,FUNCTION,PROCEDURE,ROUTINE */ else if (Matches("ALTER", "AGGREGATE|FUNCTION|PROCEDURE|ROUTINE", MatchAny)) COMPLETE_WITH("("); - /* ALTER AGGREGATE,FUNCTION,PROCEDURE,ROUTINE (...) */ - else if (Matches("ALTER", "AGGREGATE|FUNCTION|PROCEDURE|ROUTINE", MatchAny, MatchAny)) + /* ALTER AGGREGATE (...) */ + else if (Matches("ALTER", "AGGREGATE", MatchAny, MatchAny)) { if (ends_with(prev_wd, ')')) COMPLETE_WITH("OWNER TO", "RENAME TO", "SET SCHEMA"); else COMPLETE_WITH_FUNCTION_ARG(prev2_wd); } + /* ALTER FUNCTION,PROCEDURE,ROUTINE (...) */ + else if (Matches("ALTER", "FUNCTION|PROCEDURE|ROUTINE", MatchAny, MatchAny)) + { + if (ends_with(prev_wd, ')')) + COMPLETE_WITH("OWNER TO", "RENAME TO", "SET SCHEMA", + "DEPENDS ON EXTENSION", "NO DEPENDS ON EXTENSION"); + else + COMPLETE_WITH_FUNCTION_ARG(prev2_wd); + } + /* ALTER PUBLICATION */ else if (Matches("ALTER", "PUBLICATION", MatchAny)) COMPLETE_WITH("ADD TABLE", "DROP TABLE", "OWNER TO", "RENAME TO", "SET"); @@ -1735,7 +1745,8 @@ psql_completion(const char *text, int start, int end) /* ALTER INDEX */ else if (Matches("ALTER", "INDEX", MatchAny)) COMPLETE_WITH("ALTER COLUMN", "OWNER TO", "RENAME TO", "SET", - "RESET", "ATTACH PARTITION", "DEPENDS", "NO DEPENDS", + "RESET", "ATTACH PARTITION", + "DEPENDS ON EXTENSION", "NO DEPENDS ON EXTENSION", "ALTER COLLATION"); else if (Matches("ALTER", "INDEX", MatchAny, "ATTACH")) COMPLETE_WITH("PARTITION"); @@ -1782,10 +1793,6 @@ psql_completion(const char *text, int start, int end) "buffering =", /* GiST */ "pages_per_range =", "autosummarize =" /* BRIN */ ); - else if (Matches("ALTER", "INDEX", MatchAny, "NO", "DEPENDS")) - COMPLETE_WITH("ON EXTENSION"); - else if (Matches("ALTER", "INDEX", MatchAny, "DEPENDS")) - COMPLETE_WITH("ON EXTENSION"); /* ALTER INDEX ALTER COLLATION */ else if (Matches("ALTER", "INDEX", MatchAny, "ALTER", "COLLATION")) { @@ -1920,7 +1927,8 @@ psql_completion(const char *text, int start, int end) /* ALTER MATERIALIZED VIEW */ else if (Matches("ALTER", "MATERIALIZED", "VIEW", MatchAny)) COMPLETE_WITH("ALTER COLUMN", "CLUSTER ON", "DEPENDS ON EXTENSION", - "OWNER TO", "RENAME", "RESET (", "SET"); + "NO DEPENDS ON EXTENSION", "OWNER TO", "RENAME", + "RESET (", "SET"); /* ALTER MATERIALIZED VIEW xxx RENAME */ else if (Matches("ALTER", "MATERIALIZED", "VIEW", MatchAny, "RENAME")) COMPLETE_WITH_ATTR(prev2_wd, " UNION SELECT 'COLUMN' UNION SELECT 'TO'"); @@ -1997,7 +2005,8 @@ psql_completion(const char *text, int start, int end) /* ALTER TRIGGER ON */ else if (Matches("ALTER", "TRIGGER", MatchAny, "ON", MatchAny)) - COMPLETE_WITH("RENAME TO"); + COMPLETE_WITH("RENAME TO", "DEPENDS ON EXTENSION", + "NO DEPENDS ON EXTENSION"); /* * If we detect ALTER TABLE , suggest sub commands @@ -2429,7 +2438,7 @@ psql_completion(const char *text, int start, int end) COMPLETE_WITH("OWNER", "TEMPLATE", "ENCODING", "TABLESPACE", "IS_TEMPLATE", "ALLOW_CONNECTIONS", "CONNECTION LIMIT", - "LC_COLLATE", "LC_CTYPE"); + "LC_COLLATE", "LC_CTYPE", "LOCALE"); else if (Matches("CREATE", "DATABASE", MatchAny, "TEMPLATE")) COMPLETE_WITH_QUERY(Query_for_list_of_template_databases); @@ -3870,8 +3879,9 @@ psql_completion(const char *text, int start, int end) if (ends_with(prev_wd, '(') || ends_with(prev_wd, ',')) COMPLETE_WITH("FULL", "FREEZE", "ANALYZE", "VERBOSE", "DISABLE_PAGE_SKIPPING", "SKIP_LOCKED", - "INDEX_CLEANUP", "TRUNCATE", "PARALLEL"); - else if (TailMatches("FULL|FREEZE|ANALYZE|VERBOSE|DISABLE_PAGE_SKIPPING|SKIP_LOCKED|INDEX_CLEANUP|TRUNCATE")) + "INDEX_CLEANUP", "PROCESS_TOAST", + "TRUNCATE", "PARALLEL"); + else if (TailMatches("FULL|FREEZE|ANALYZE|VERBOSE|DISABLE_PAGE_SKIPPING|SKIP_LOCKED|INDEX_CLEANUP|PROCESS_TOAST|TRUNCATE")) COMPLETE_WITH("ON", "OFF"); } else if (HeadMatches("VACUUM") && TailMatches("(")) diff --git a/src/bin/scripts/Makefile b/src/bin/scripts/Makefile index a02e4e430c87b..b8d7cf2f2d85d 100644 --- a/src/bin/scripts/Makefile +++ b/src/bin/scripts/Makefile @@ -28,8 +28,8 @@ createuser: createuser.o common.o $(WIN32RES) | submake-libpq submake-libpgport dropdb: dropdb.o common.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils dropuser: dropuser.o common.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils clusterdb: clusterdb.o common.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils -vacuumdb: vacuumdb.o common.o scripts_parallel.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils -reindexdb: reindexdb.o common.o scripts_parallel.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils +vacuumdb: vacuumdb.o common.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils +reindexdb: reindexdb.o common.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils pg_isready: pg_isready.o common.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils install: all installdirs @@ -50,7 +50,7 @@ uninstall: clean distclean maintainer-clean: rm -f $(addsuffix $(X), $(PROGRAMS)) $(addsuffix .o, $(PROGRAMS)) - rm -f common.o scripts_parallel.o $(WIN32RES) + rm -f common.o $(WIN32RES) rm -rf tmp_check check: diff --git a/src/bin/scripts/clusterdb.c b/src/bin/scripts/clusterdb.c index 7d25bb31d4e35..fc771eed77bcc 100644 --- a/src/bin/scripts/clusterdb.c +++ b/src/bin/scripts/clusterdb.c @@ -13,6 +13,8 @@ #include "common.h" #include "common/logging.h" #include "fe_utils/cancel.h" +#include "fe_utils/option_utils.h" +#include "fe_utils/query_utils.h" #include "fe_utils/simple_list.h" #include "fe_utils/string_utils.h" diff --git a/src/bin/scripts/common.c b/src/bin/scripts/common.c index 21ef297e6eb65..c86c19eae28b3 100644 --- a/src/bin/scripts/common.c +++ b/src/bin/scripts/common.c @@ -22,325 +22,9 @@ #include "common/logging.h" #include "common/string.h" #include "fe_utils/cancel.h" +#include "fe_utils/query_utils.h" #include "fe_utils/string_utils.h" -#define ERRCODE_UNDEFINED_TABLE "42P01" - -/* - * Provide strictly harmonized handling of --help and --version - * options. - */ -void -handle_help_version_opts(int argc, char *argv[], - const char *fixed_progname, help_handler hlp) -{ - if (argc > 1) - { - if (strcmp(argv[1], "--help") == 0 || strcmp(argv[1], "-?") == 0) - { - hlp(get_progname(argv[0])); - exit(0); - } - if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0) - { - printf("%s (PostgreSQL) " PG_VERSION "\n", fixed_progname); - exit(0); - } - } -} - - -/* - * Make a database connection with the given parameters. - * - * An interactive password prompt is automatically issued if needed and - * allowed by cparams->prompt_password. - * - * If allow_password_reuse is true, we will try to re-use any password - * given during previous calls to this routine. (Callers should not pass - * allow_password_reuse=true unless reconnecting to the same database+user - * as before, else we might create password exposure hazards.) - */ -PGconn * -connectDatabase(const ConnParams *cparams, const char *progname, - bool echo, bool fail_ok, bool allow_password_reuse) -{ - PGconn *conn; - bool new_pass; - static char *password = NULL; - - /* Callers must supply at least dbname; other params can be NULL */ - Assert(cparams->dbname); - - if (!allow_password_reuse && password) - { - free(password); - password = NULL; - } - - if (cparams->prompt_password == TRI_YES && password == NULL) - password = simple_prompt("Password: ", false); - - /* - * Start the connection. Loop until we have a password if requested by - * backend. - */ - do - { - const char *keywords[8]; - const char *values[8]; - int i = 0; - - /* - * If dbname is a connstring, its entries can override the other - * values obtained from cparams; but in turn, override_dbname can - * override the dbname component of it. - */ - keywords[i] = "host"; - values[i++] = cparams->pghost; - keywords[i] = "port"; - values[i++] = cparams->pgport; - keywords[i] = "user"; - values[i++] = cparams->pguser; - keywords[i] = "password"; - values[i++] = password; - keywords[i] = "dbname"; - values[i++] = cparams->dbname; - if (cparams->override_dbname) - { - keywords[i] = "dbname"; - values[i++] = cparams->override_dbname; - } - keywords[i] = "fallback_application_name"; - values[i++] = progname; - keywords[i] = NULL; - values[i++] = NULL; - Assert(i <= lengthof(keywords)); - - new_pass = false; - conn = PQconnectdbParams(keywords, values, true); - - if (!conn) - { - pg_log_error("could not connect to database %s: out of memory", - cparams->dbname); - exit(1); - } - - /* - * No luck? Trying asking (again) for a password. - */ - if (PQstatus(conn) == CONNECTION_BAD && - PQconnectionNeedsPassword(conn) && - cparams->prompt_password != TRI_NO) - { - PQfinish(conn); - if (password) - free(password); - password = simple_prompt("Password: ", false); - new_pass = true; - } - } while (new_pass); - - /* check to see that the backend connection was successfully made */ - if (PQstatus(conn) == CONNECTION_BAD) - { - if (fail_ok) - { - PQfinish(conn); - return NULL; - } - pg_log_error("%s", PQerrorMessage(conn)); - exit(1); - } - - /* Start strict; callers may override this. */ - PQclear(executeQuery(conn, ALWAYS_SECURE_SEARCH_PATH_SQL, echo)); - - return conn; -} - -/* - * Try to connect to the appropriate maintenance database. - * - * This differs from connectDatabase only in that it has a rule for - * inserting a default "dbname" if none was given (which is why cparams - * is not const). Note that cparams->dbname should typically come from - * a --maintenance-db command line parameter. - */ -PGconn * -connectMaintenanceDatabase(ConnParams *cparams, - const char *progname, bool echo) -{ - PGconn *conn; - - /* If a maintenance database name was specified, just connect to it. */ - if (cparams->dbname) - return connectDatabase(cparams, progname, echo, false, false); - - /* Otherwise, try postgres first and then template1. */ - cparams->dbname = "postgres"; - conn = connectDatabase(cparams, progname, echo, true, false); - if (!conn) - { - cparams->dbname = "template1"; - conn = connectDatabase(cparams, progname, echo, false, false); - } - return conn; -} - -/* - * Disconnect the given connection, canceling any statement if one is active. - */ -void -disconnectDatabase(PGconn *conn) -{ - char errbuf[256]; - - Assert(conn != NULL); - - if (PQtransactionStatus(conn) == PQTRANS_ACTIVE) - { - PGcancel *cancel; - - if ((cancel = PQgetCancel(conn))) - { - (void) PQcancel(cancel, errbuf, sizeof(errbuf)); - PQfreeCancel(cancel); - } - } - - PQfinish(conn); -} - -/* - * Run a query, return the results, exit program on failure. - */ -PGresult * -executeQuery(PGconn *conn, const char *query, bool echo) -{ - PGresult *res; - - if (echo) - printf("%s\n", query); - - res = PQexec(conn, query); - if (!res || - PQresultStatus(res) != PGRES_TUPLES_OK) - { - pg_log_error("query failed: %s", PQerrorMessage(conn)); - pg_log_info("query was: %s", query); - PQfinish(conn); - exit(1); - } - - return res; -} - - -/* - * As above for a SQL command (which returns nothing). - */ -void -executeCommand(PGconn *conn, const char *query, bool echo) -{ - PGresult *res; - - if (echo) - printf("%s\n", query); - - res = PQexec(conn, query); - if (!res || - PQresultStatus(res) != PGRES_COMMAND_OK) - { - pg_log_error("query failed: %s", PQerrorMessage(conn)); - pg_log_info("query was: %s", query); - PQfinish(conn); - exit(1); - } - - PQclear(res); -} - - -/* - * As above for a SQL maintenance command (returns command success). - * Command is executed with a cancel handler set, so Ctrl-C can - * interrupt it. - */ -bool -executeMaintenanceCommand(PGconn *conn, const char *query, bool echo) -{ - PGresult *res; - bool r; - - if (echo) - printf("%s\n", query); - - SetCancelConn(conn); - res = PQexec(conn, query); - ResetCancelConn(); - - r = (res && PQresultStatus(res) == PGRES_COMMAND_OK); - - if (res) - PQclear(res); - - return r; -} - -/* - * Consume all the results generated for the given connection until - * nothing remains. If at least one error is encountered, return false. - * Note that this will block if the connection is busy. - */ -bool -consumeQueryResult(PGconn *conn) -{ - bool ok = true; - PGresult *result; - - SetCancelConn(conn); - while ((result = PQgetResult(conn)) != NULL) - { - if (!processQueryResult(conn, result)) - ok = false; - } - ResetCancelConn(); - return ok; -} - -/* - * Process (and delete) a query result. Returns true if there's no error, - * false otherwise -- but errors about trying to work on a missing relation - * are reported and subsequently ignored. - */ -bool -processQueryResult(PGconn *conn, PGresult *result) -{ - /* - * If it's an error, report it. Errors about a missing table are harmless - * so we continue processing; but die for other errors. - */ - if (PQresultStatus(result) != PGRES_COMMAND_OK) - { - char *sqlState = PQresultErrorField(result, PG_DIAG_SQLSTATE); - - pg_log_error("processing of database \"%s\" failed: %s", - PQdb(conn), PQerrorMessage(conn)); - - if (sqlState && strcmp(sqlState, ERRCODE_UNDEFINED_TABLE) != 0) - { - PQclear(result); - return false; - } - } - - PQclear(result); - return true; -} - - /* * Split TABLE[(COLUMNS)] into TABLE and [(COLUMNS)] portions. When you * finish using them, pg_free(*table). *columns is a pointer into "spec", diff --git a/src/bin/scripts/common.h b/src/bin/scripts/common.h index 5630975712416..ddd8f352749e7 100644 --- a/src/bin/scripts/common.h +++ b/src/bin/scripts/common.h @@ -10,58 +10,11 @@ #define COMMON_H #include "common/username.h" +#include "fe_utils/connect_utils.h" #include "getopt_long.h" /* pgrminclude ignore */ #include "libpq-fe.h" #include "pqexpbuffer.h" /* pgrminclude ignore */ -enum trivalue -{ - TRI_DEFAULT, - TRI_NO, - TRI_YES -}; - -/* Parameters needed by connectDatabase/connectMaintenanceDatabase */ -typedef struct _connParams -{ - /* These fields record the actual command line parameters */ - const char *dbname; /* this may be a connstring! */ - const char *pghost; - const char *pgport; - const char *pguser; - enum trivalue prompt_password; - /* If not NULL, this overrides the dbname obtained from command line */ - /* (but *only* the DB name, not anything else in the connstring) */ - const char *override_dbname; -} ConnParams; - -typedef void (*help_handler) (const char *progname); - -extern void handle_help_version_opts(int argc, char *argv[], - const char *fixed_progname, - help_handler hlp); - -extern PGconn *connectDatabase(const ConnParams *cparams, - const char *progname, - bool echo, bool fail_ok, - bool allow_password_reuse); - -extern PGconn *connectMaintenanceDatabase(ConnParams *cparams, - const char *progname, bool echo); - -extern void disconnectDatabase(PGconn *conn); - -extern PGresult *executeQuery(PGconn *conn, const char *query, bool echo); - -extern void executeCommand(PGconn *conn, const char *query, bool echo); - -extern bool executeMaintenanceCommand(PGconn *conn, const char *query, - bool echo); - -extern bool consumeQueryResult(PGconn *conn); - -extern bool processQueryResult(PGconn *conn, PGresult *result); - extern void splitTableColumnsSpec(const char *spec, int encoding, char **table, const char **columns); diff --git a/src/bin/scripts/createdb.c b/src/bin/scripts/createdb.c index abf21d4942867..041454f075fa3 100644 --- a/src/bin/scripts/createdb.c +++ b/src/bin/scripts/createdb.c @@ -13,6 +13,7 @@ #include "common.h" #include "common/logging.h" +#include "fe_utils/option_utils.h" #include "fe_utils/string_utils.h" diff --git a/src/bin/scripts/createuser.c b/src/bin/scripts/createuser.c index 47b0e28bc6755..ef7e0e549fbf2 100644 --- a/src/bin/scripts/createuser.c +++ b/src/bin/scripts/createuser.c @@ -14,6 +14,7 @@ #include "common.h" #include "common/logging.h" #include "common/string.h" +#include "fe_utils/option_utils.h" #include "fe_utils/simple_list.h" #include "fe_utils/string_utils.h" diff --git a/src/bin/scripts/dropdb.c b/src/bin/scripts/dropdb.c index ba0dcdecb95f5..b154ed1bb6dcf 100644 --- a/src/bin/scripts/dropdb.c +++ b/src/bin/scripts/dropdb.c @@ -13,6 +13,7 @@ #include "postgres_fe.h" #include "common.h" #include "common/logging.h" +#include "fe_utils/option_utils.h" #include "fe_utils/string_utils.h" diff --git a/src/bin/scripts/dropuser.c b/src/bin/scripts/dropuser.c index ff5b455ae5119..61b8557bc7e94 100644 --- a/src/bin/scripts/dropuser.c +++ b/src/bin/scripts/dropuser.c @@ -14,6 +14,7 @@ #include "common.h" #include "common/logging.h" #include "common/string.h" +#include "fe_utils/option_utils.h" #include "fe_utils/string_utils.h" diff --git a/src/bin/scripts/nls.mk b/src/bin/scripts/nls.mk index 5d5dd11b7be64..7fc716092e73a 100644 --- a/src/bin/scripts/nls.mk +++ b/src/bin/scripts/nls.mk @@ -7,7 +7,7 @@ GETTEXT_FILES = $(FRONTEND_COMMON_GETTEXT_FILES) \ clusterdb.c vacuumdb.c reindexdb.c \ pg_isready.c \ common.c \ - scripts_parallel.c \ + ../../fe_utils/parallel_slot.c \ ../../fe_utils/cancel.c ../../fe_utils/print.c \ ../../common/fe_memutils.c ../../common/username.c GETTEXT_TRIGGERS = $(FRONTEND_COMMON_GETTEXT_TRIGGERS) simple_prompt yesno_prompt diff --git a/src/bin/scripts/pg_isready.c b/src/bin/scripts/pg_isready.c index ceb8a09b4c5b4..fc6f7b0a9391b 100644 --- a/src/bin/scripts/pg_isready.c +++ b/src/bin/scripts/pg_isready.c @@ -12,6 +12,7 @@ #include "postgres_fe.h" #include "common.h" #include "common/logging.h" +#include "fe_utils/option_utils.h" #define DEFAULT_CONNECT_TIMEOUT "3" diff --git a/src/bin/scripts/reindexdb.c b/src/bin/scripts/reindexdb.c index dece8200fa2d2..9f072ac49aea9 100644 --- a/src/bin/scripts/reindexdb.c +++ b/src/bin/scripts/reindexdb.c @@ -16,9 +16,11 @@ #include "common/connect.h" #include "common/logging.h" #include "fe_utils/cancel.h" +#include "fe_utils/option_utils.h" +#include "fe_utils/parallel_slot.h" +#include "fe_utils/query_utils.h" #include "fe_utils/simple_list.h" #include "fe_utils/string_utils.h" -#include "scripts_parallel.h" typedef enum ReindexType { @@ -464,6 +466,7 @@ reindex_one_database(const ConnParams *cparams, ReindexType type, goto finish; } + ParallelSlotSetHandler(free_slot, TableCommandResultHandler, NULL); run_reindex_command(free_slot->connection, process_type, objname, echo, verbose, concurrently, true); diff --git a/src/bin/scripts/scripts_parallel.h b/src/bin/scripts/scripts_parallel.h deleted file mode 100644 index f62692510a8a4..0000000000000 --- a/src/bin/scripts/scripts_parallel.h +++ /dev/null @@ -1,36 +0,0 @@ -/*------------------------------------------------------------------------- - * - * scripts_parallel.h - * Parallel support for bin/scripts/ - * - * Copyright (c) 2003-2021, PostgreSQL Global Development Group - * - * src/bin/scripts/scripts_parallel.h - * - *------------------------------------------------------------------------- - */ -#ifndef SCRIPTS_PARALLEL_H -#define SCRIPTS_PARALLEL_H - -#include "common.h" -#include "libpq-fe.h" - - -typedef struct ParallelSlot -{ - PGconn *connection; /* One connection */ - bool isFree; /* Is it known to be idle? */ -} ParallelSlot; - -extern ParallelSlot *ParallelSlotsGetIdle(ParallelSlot *slots, int numslots); - -extern ParallelSlot *ParallelSlotsSetup(const ConnParams *cparams, - const char *progname, bool echo, - PGconn *conn, int numslots); - -extern void ParallelSlotsTerminate(ParallelSlot *slots, int numslots); - -extern bool ParallelSlotsWaitCompletion(ParallelSlot *slots, int numslots); - - -#endif /* SCRIPTS_PARALLEL_H */ diff --git a/src/bin/scripts/t/100_vacuumdb.pl b/src/bin/scripts/t/100_vacuumdb.pl index 9e36b6d2b05fe..99ec8bebde350 100644 --- a/src/bin/scripts/t/100_vacuumdb.pl +++ b/src/bin/scripts/t/100_vacuumdb.pl @@ -3,7 +3,7 @@ use PostgresNode; use TestLib; -use Test::More tests => 55; +use Test::More tests => 58; program_help_ok('vacuumdb'); program_version_ok('vacuumdb'); @@ -56,12 +56,19 @@ [ 'vacuumdb', '--analyze-only', '--no-index-cleanup', 'postgres' ], '--analyze-only and --no-index-cleanup specified together'); $node->issues_sql_like( - [ 'vacuumdb', '--no-truncate', 'postgres' ], - qr/statement: VACUUM \(TRUNCATE FALSE\).*;/, - 'vacuumdb --no-truncate'); + [ 'vacuumdb', '--no-truncate', 'postgres' ], + qr/statement: VACUUM \(TRUNCATE FALSE\).*;/, + 'vacuumdb --no-truncate'); $node->command_fails( - [ 'vacuumdb', '--analyze-only', '--no-truncate', 'postgres' ], - '--analyze-only and --no-truncate specified together'); + [ 'vacuumdb', '--analyze-only', '--no-truncate', 'postgres' ], + '--analyze-only and --no-truncate specified together'); +$node->issues_sql_like( + [ 'vacuumdb', '--no-process-toast', 'postgres' ], + qr/statement: VACUUM \(PROCESS_TOAST FALSE\).*;/, + 'vacuumdb --no-process-toast'); +$node->command_fails( + [ 'vacuumdb', '--analyze-only', '--no-process-toast', 'postgres' ], + '--analyze-only and --no-process-toast specified together'); $node->issues_sql_like( [ 'vacuumdb', '-P', 2, 'postgres' ], qr/statement: VACUUM \(PARALLEL 2\).*;/, diff --git a/src/bin/scripts/vacuumdb.c b/src/bin/scripts/vacuumdb.c index 82463277702aa..602fd45c42979 100644 --- a/src/bin/scripts/vacuumdb.c +++ b/src/bin/scripts/vacuumdb.c @@ -18,9 +18,11 @@ #include "common/connect.h" #include "common/logging.h" #include "fe_utils/cancel.h" +#include "fe_utils/option_utils.h" +#include "fe_utils/parallel_slot.h" +#include "fe_utils/query_utils.h" #include "fe_utils/simple_list.h" #include "fe_utils/string_utils.h" -#include "scripts_parallel.h" /* vacuum options controlled by user flags */ @@ -39,6 +41,7 @@ typedef struct vacuumingOptions * parallel degree, otherwise -1 */ bool do_index_cleanup; bool do_truncate; + bool process_toast; } vacuumingOptions; @@ -97,6 +100,7 @@ main(int argc, char *argv[]) {"min-mxid-age", required_argument, NULL, 7}, {"no-index-cleanup", no_argument, NULL, 8}, {"no-truncate", no_argument, NULL, 9}, + {"no-process-toast", no_argument, NULL, 10}, {NULL, 0, NULL, 0} }; @@ -124,6 +128,7 @@ main(int argc, char *argv[]) vacopts.parallel_workers = -1; vacopts.do_index_cleanup = true; vacopts.do_truncate = true; + vacopts.process_toast = true; pg_logging_init(argv[0]); progname = get_progname(argv[0]); @@ -233,6 +238,9 @@ main(int argc, char *argv[]) case 9: vacopts.do_truncate = false; break; + case 10: + vacopts.process_toast = false; + break; default: fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname); exit(1); @@ -289,6 +297,12 @@ main(int argc, char *argv[]) "no-truncate"); exit(1); } + if (!vacopts.process_toast) + { + pg_log_error("cannot use the \"%s\" option when performing only analyze", + "no-process-toast"); + exit(1); + } /* allow 'and_analyze' with 'analyze_only' */ } @@ -454,6 +468,14 @@ vacuum_one_database(const ConnParams *cparams, exit(1); } + if (!vacopts->process_toast && PQserverVersion(conn) < 140000) + { + PQfinish(conn); + pg_log_error("cannot use the \"%s\" option on server versions older than PostgreSQL %s", + "no-process-toast", "14"); + exit(1); + } + if (vacopts->skip_locked && PQserverVersion(conn) < 120000) { PQfinish(conn); @@ -711,6 +733,7 @@ vacuum_one_database(const ConnParams *cparams, * Execute the vacuum. All errors are handled in processQueryResult * through ParallelSlotsGetIdle. */ + ParallelSlotSetHandler(free_slot, TableCommandResultHandler, NULL); run_vacuum_command(free_slot->connection, sql.data, echo, tabname); @@ -869,6 +892,13 @@ prepare_vacuum_command(PQExpBuffer sql, int serverVersion, appendPQExpBuffer(sql, "%sTRUNCATE FALSE", sep); sep = comma; } + if (!vacopts->process_toast) + { + /* PROCESS_TOAST is supported since v14 */ + Assert(serverVersion >= 140000); + appendPQExpBuffer(sql, "%sPROCESS_TOAST FALSE", sep); + sep = comma; + } if (vacopts->skip_locked) { /* SKIP_LOCKED is supported since v12 */ @@ -968,6 +998,7 @@ help(const char *progname) printf(_(" --min-mxid-age=MXID_AGE minimum multixact ID age of tables to vacuum\n")); printf(_(" --min-xid-age=XID_AGE minimum transaction ID age of tables to vacuum\n")); printf(_(" --no-index-cleanup don't remove index entries that point to dead tuples\n")); + printf(_(" --no-process-toast skip the TOAST table associated with the table to vacuum\n")); printf(_(" --no-truncate don't truncate empty pages at the end of the table\n")); printf(_(" -P, --parallel=PARALLEL_DEGREE use this many background workers for vacuum, if available\n")); printf(_(" -q, --quiet don't write any messages\n")); diff --git a/src/common/checksum_helper.c b/src/common/checksum_helper.c index 2881b2c178d7c..431e247d59dc8 100644 --- a/src/common/checksum_helper.c +++ b/src/common/checksum_helper.c @@ -180,13 +180,13 @@ pg_checksum_final(pg_checksum_context *context, uint8 *output) StaticAssertStmt(sizeof(pg_crc32c) <= PG_CHECKSUM_MAX_LENGTH, "CRC-32C digest too big for PG_CHECKSUM_MAX_LENGTH"); StaticAssertStmt(PG_SHA224_DIGEST_LENGTH <= PG_CHECKSUM_MAX_LENGTH, - "SHA224 digest too for PG_CHECKSUM_MAX_LENGTH"); + "SHA224 digest too big for PG_CHECKSUM_MAX_LENGTH"); StaticAssertStmt(PG_SHA256_DIGEST_LENGTH <= PG_CHECKSUM_MAX_LENGTH, - "SHA256 digest too for PG_CHECKSUM_MAX_LENGTH"); + "SHA256 digest too big for PG_CHECKSUM_MAX_LENGTH"); StaticAssertStmt(PG_SHA384_DIGEST_LENGTH <= PG_CHECKSUM_MAX_LENGTH, - "SHA384 digest too for PG_CHECKSUM_MAX_LENGTH"); + "SHA384 digest too big for PG_CHECKSUM_MAX_LENGTH"); StaticAssertStmt(PG_SHA512_DIGEST_LENGTH <= PG_CHECKSUM_MAX_LENGTH, - "SHA512 digest too for PG_CHECKSUM_MAX_LENGTH"); + "SHA512 digest too big for PG_CHECKSUM_MAX_LENGTH"); switch (context->type) { @@ -198,28 +198,32 @@ pg_checksum_final(pg_checksum_context *context, uint8 *output) memcpy(output, &context->raw_context.c_crc32c, retval); break; case CHECKSUM_TYPE_SHA224: - if (pg_cryptohash_final(context->raw_context.c_sha2, output) < 0) + retval = PG_SHA224_DIGEST_LENGTH; + if (pg_cryptohash_final(context->raw_context.c_sha2, + output, retval) < 0) return -1; pg_cryptohash_free(context->raw_context.c_sha2); - retval = PG_SHA224_DIGEST_LENGTH; break; case CHECKSUM_TYPE_SHA256: - if (pg_cryptohash_final(context->raw_context.c_sha2, output) < 0) + retval = PG_SHA256_DIGEST_LENGTH; + if (pg_cryptohash_final(context->raw_context.c_sha2, + output, retval) < 0) return -1; pg_cryptohash_free(context->raw_context.c_sha2); - retval = PG_SHA224_DIGEST_LENGTH; break; case CHECKSUM_TYPE_SHA384: - if (pg_cryptohash_final(context->raw_context.c_sha2, output) < 0) + retval = PG_SHA384_DIGEST_LENGTH; + if (pg_cryptohash_final(context->raw_context.c_sha2, + output, retval) < 0) return -1; pg_cryptohash_free(context->raw_context.c_sha2); - retval = PG_SHA384_DIGEST_LENGTH; break; case CHECKSUM_TYPE_SHA512: - if (pg_cryptohash_final(context->raw_context.c_sha2, output) < 0) + retval = PG_SHA512_DIGEST_LENGTH; + if (pg_cryptohash_final(context->raw_context.c_sha2, + output, retval) < 0) return -1; pg_cryptohash_free(context->raw_context.c_sha2); - retval = PG_SHA512_DIGEST_LENGTH; break; } diff --git a/src/common/cryptohash.c b/src/common/cryptohash.c index 5b2c050d799c3..0dab74a094b01 100644 --- a/src/common/cryptohash.c +++ b/src/common/cryptohash.c @@ -160,12 +160,12 @@ pg_cryptohash_update(pg_cryptohash_ctx *ctx, const uint8 *data, size_t len) /* * pg_cryptohash_final * - * Finalize a hash context. Note that this implementation is designed - * to never fail, so this always returns 0 except if the caller has - * given a NULL context. + * Finalize a hash context. Note that this implementation is designed to + * never fail, so this always returns 0 except if the destination buffer + * is not large enough. */ int -pg_cryptohash_final(pg_cryptohash_ctx *ctx, uint8 *dest) +pg_cryptohash_final(pg_cryptohash_ctx *ctx, uint8 *dest, size_t len) { if (ctx == NULL) return -1; @@ -173,21 +173,33 @@ pg_cryptohash_final(pg_cryptohash_ctx *ctx, uint8 *dest) switch (ctx->type) { case PG_MD5: + if (len < MD5_DIGEST_LENGTH) + return -1; pg_md5_final(&ctx->data.md5, dest); break; case PG_SHA1: + if (len < SHA1_DIGEST_LENGTH) + return -1; pg_sha1_final(&ctx->data.sha1, dest); break; case PG_SHA224: + if (len < PG_SHA224_DIGEST_LENGTH) + return -1; pg_sha224_final(&ctx->data.sha224, dest); break; case PG_SHA256: + if (len < PG_SHA256_DIGEST_LENGTH) + return -1; pg_sha256_final(&ctx->data.sha256, dest); break; case PG_SHA384: + if (len < PG_SHA384_DIGEST_LENGTH) + return -1; pg_sha384_final(&ctx->data.sha384, dest); break; case PG_SHA512: + if (len < PG_SHA512_DIGEST_LENGTH) + return -1; pg_sha512_final(&ctx->data.sha512, dest); break; } diff --git a/src/common/cryptohash_openssl.c b/src/common/cryptohash_openssl.c index 006e867403e9c..643cc7aea2c89 100644 --- a/src/common/cryptohash_openssl.c +++ b/src/common/cryptohash_openssl.c @@ -24,6 +24,9 @@ #include #include "common/cryptohash.h" +#include "common/md5.h" +#include "common/sha1.h" +#include "common/sha2.h" #ifndef FRONTEND #include "utils/memutils.h" #include "utils/resowner.h" @@ -181,13 +184,41 @@ pg_cryptohash_update(pg_cryptohash_ctx *ctx, const uint8 *data, size_t len) * Finalize a hash context. Returns 0 on success, and -1 on failure. */ int -pg_cryptohash_final(pg_cryptohash_ctx *ctx, uint8 *dest) +pg_cryptohash_final(pg_cryptohash_ctx *ctx, uint8 *dest, size_t len) { int status = 0; if (ctx == NULL) return -1; + switch (ctx->type) + { + case PG_MD5: + if (len < MD5_DIGEST_LENGTH) + return -1; + break; + case PG_SHA1: + if (len < SHA1_DIGEST_LENGTH) + return -1; + break; + case PG_SHA224: + if (len < PG_SHA224_DIGEST_LENGTH) + return -1; + break; + case PG_SHA256: + if (len < PG_SHA256_DIGEST_LENGTH) + return -1; + break; + case PG_SHA384: + if (len < PG_SHA384_DIGEST_LENGTH) + return -1; + break; + case PG_SHA512: + if (len < PG_SHA512_DIGEST_LENGTH) + return -1; + break; + } + status = EVP_DigestFinal_ex(ctx->evpctx, dest, 0); /* OpenSSL internals return 1 on success, 0 on failure */ diff --git a/src/common/md5_common.c b/src/common/md5_common.c index b01c95ebb6e53..2114890effeb3 100644 --- a/src/common/md5_common.c +++ b/src/common/md5_common.c @@ -78,7 +78,7 @@ pg_md5_hash(const void *buff, size_t len, char *hexsum) if (pg_cryptohash_init(ctx) < 0 || pg_cryptohash_update(ctx, buff, len) < 0 || - pg_cryptohash_final(ctx, sum) < 0) + pg_cryptohash_final(ctx, sum, sizeof(sum)) < 0) { pg_cryptohash_free(ctx); return false; @@ -100,7 +100,7 @@ pg_md5_binary(const void *buff, size_t len, void *outbuf) if (pg_cryptohash_init(ctx) < 0 || pg_cryptohash_update(ctx, buff, len) < 0 || - pg_cryptohash_final(ctx, outbuf) < 0) + pg_cryptohash_final(ctx, outbuf, MD5_DIGEST_LENGTH) < 0) { pg_cryptohash_free(ctx); return false; diff --git a/src/common/scram-common.c b/src/common/scram-common.c index 3f406d4e4dc65..0b9557376e95e 100644 --- a/src/common/scram-common.c +++ b/src/common/scram-common.c @@ -51,7 +51,7 @@ scram_HMAC_init(scram_HMAC_ctx *ctx, const uint8 *key, int keylen) return -1; if (pg_cryptohash_init(sha256_ctx) < 0 || pg_cryptohash_update(sha256_ctx, key, keylen) < 0 || - pg_cryptohash_final(sha256_ctx, keybuf) < 0) + pg_cryptohash_final(sha256_ctx, keybuf, sizeof(keybuf)) < 0) { pg_cryptohash_free(sha256_ctx); return -1; @@ -112,7 +112,7 @@ scram_HMAC_final(uint8 *result, scram_HMAC_ctx *ctx) Assert(ctx->sha256ctx != NULL); - if (pg_cryptohash_final(ctx->sha256ctx, h) < 0) + if (pg_cryptohash_final(ctx->sha256ctx, h, sizeof(h)) < 0) { pg_cryptohash_free(ctx->sha256ctx); return -1; @@ -122,7 +122,7 @@ scram_HMAC_final(uint8 *result, scram_HMAC_ctx *ctx) if (pg_cryptohash_init(ctx->sha256ctx) < 0 || pg_cryptohash_update(ctx->sha256ctx, ctx->k_opad, SHA256_HMAC_B) < 0 || pg_cryptohash_update(ctx->sha256ctx, h, SCRAM_KEY_LEN) < 0 || - pg_cryptohash_final(ctx->sha256ctx, result) < 0) + pg_cryptohash_final(ctx->sha256ctx, result, SCRAM_KEY_LEN) < 0) { pg_cryptohash_free(ctx->sha256ctx); return -1; @@ -202,7 +202,7 @@ scram_H(const uint8 *input, int len, uint8 *result) if (pg_cryptohash_init(ctx) < 0 || pg_cryptohash_update(ctx, input, len) < 0 || - pg_cryptohash_final(ctx, result) < 0) + pg_cryptohash_final(ctx, result, SCRAM_KEY_LEN) < 0) { pg_cryptohash_free(ctx); return -1; diff --git a/src/fe_utils/Makefile b/src/fe_utils/Makefile index 10d6838cf96a1..456c441a33451 100644 --- a/src/fe_utils/Makefile +++ b/src/fe_utils/Makefile @@ -23,9 +23,13 @@ OBJS = \ archive.o \ cancel.o \ conditional.o \ + connect_utils.o \ mbprint.o \ + option_utils.o \ + parallel_slot.o \ print.o \ psqlscan.o \ + query_utils.o \ recovery_gen.o \ simple_list.o \ string_utils.o diff --git a/src/fe_utils/connect_utils.c b/src/fe_utils/connect_utils.c new file mode 100644 index 0000000000000..96bb798316aca --- /dev/null +++ b/src/fe_utils/connect_utils.c @@ -0,0 +1,181 @@ +/*------------------------------------------------------------------------- + * + * Facilities for frontend code to connect to and disconnect from databases. + * + * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/fe_utils/connect_utils.c + * + *------------------------------------------------------------------------- + */ +#include "postgres_fe.h" + +#include "common/connect.h" +#include "common/logging.h" +#include "common/string.h" +#include "fe_utils/connect_utils.h" +#include "fe_utils/query_utils.h" + +/* + * Make a database connection with the given parameters. + * + * An interactive password prompt is automatically issued if needed and + * allowed by cparams->prompt_password. + * + * If allow_password_reuse is true, we will try to re-use any password + * given during previous calls to this routine. (Callers should not pass + * allow_password_reuse=true unless reconnecting to the same database+user + * as before, else we might create password exposure hazards.) + */ +PGconn * +connectDatabase(const ConnParams *cparams, const char *progname, + bool echo, bool fail_ok, bool allow_password_reuse) +{ + PGconn *conn; + bool new_pass; + static char *password = NULL; + + /* Callers must supply at least dbname; other params can be NULL */ + Assert(cparams->dbname); + + if (!allow_password_reuse && password) + { + free(password); + password = NULL; + } + + if (cparams->prompt_password == TRI_YES && password == NULL) + password = simple_prompt("Password: ", false); + + /* + * Start the connection. Loop until we have a password if requested by + * backend. + */ + do + { + const char *keywords[8]; + const char *values[8]; + int i = 0; + + /* + * If dbname is a connstring, its entries can override the other + * values obtained from cparams; but in turn, override_dbname can + * override the dbname component of it. + */ + keywords[i] = "host"; + values[i++] = cparams->pghost; + keywords[i] = "port"; + values[i++] = cparams->pgport; + keywords[i] = "user"; + values[i++] = cparams->pguser; + keywords[i] = "password"; + values[i++] = password; + keywords[i] = "dbname"; + values[i++] = cparams->dbname; + if (cparams->override_dbname) + { + keywords[i] = "dbname"; + values[i++] = cparams->override_dbname; + } + keywords[i] = "fallback_application_name"; + values[i++] = progname; + keywords[i] = NULL; + values[i++] = NULL; + Assert(i <= lengthof(keywords)); + + new_pass = false; + conn = PQconnectdbParams(keywords, values, true); + + if (!conn) + { + pg_log_error("could not connect to database %s: out of memory", + cparams->dbname); + exit(1); + } + + /* + * No luck? Trying asking (again) for a password. + */ + if (PQstatus(conn) == CONNECTION_BAD && + PQconnectionNeedsPassword(conn) && + cparams->prompt_password != TRI_NO) + { + PQfinish(conn); + if (password) + free(password); + password = simple_prompt("Password: ", false); + new_pass = true; + } + } while (new_pass); + + /* check to see that the backend connection was successfully made */ + if (PQstatus(conn) == CONNECTION_BAD) + { + if (fail_ok) + { + PQfinish(conn); + return NULL; + } + pg_log_error("%s", PQerrorMessage(conn)); + exit(1); + } + + /* Start strict; callers may override this. */ + PQclear(executeQuery(conn, ALWAYS_SECURE_SEARCH_PATH_SQL, echo)); + + return conn; +} + +/* + * Try to connect to the appropriate maintenance database. + * + * This differs from connectDatabase only in that it has a rule for + * inserting a default "dbname" if none was given (which is why cparams + * is not const). Note that cparams->dbname should typically come from + * a --maintenance-db command line parameter. + */ +PGconn * +connectMaintenanceDatabase(ConnParams *cparams, + const char *progname, bool echo) +{ + PGconn *conn; + + /* If a maintenance database name was specified, just connect to it. */ + if (cparams->dbname) + return connectDatabase(cparams, progname, echo, false, false); + + /* Otherwise, try postgres first and then template1. */ + cparams->dbname = "postgres"; + conn = connectDatabase(cparams, progname, echo, true, false); + if (!conn) + { + cparams->dbname = "template1"; + conn = connectDatabase(cparams, progname, echo, false, false); + } + return conn; +} + +/* + * Disconnect the given connection, canceling any statement if one is active. + */ +void +disconnectDatabase(PGconn *conn) +{ + char errbuf[256]; + + Assert(conn != NULL); + + if (PQtransactionStatus(conn) == PQTRANS_ACTIVE) + { + PGcancel *cancel; + + if ((cancel = PQgetCancel(conn))) + { + (void) PQcancel(cancel, errbuf, sizeof(errbuf)); + PQfreeCancel(cancel); + } + } + + PQfinish(conn); +} diff --git a/src/fe_utils/option_utils.c b/src/fe_utils/option_utils.c new file mode 100644 index 0000000000000..e19a495dba7d6 --- /dev/null +++ b/src/fe_utils/option_utils.c @@ -0,0 +1,38 @@ +/*------------------------------------------------------------------------- + * + * Command line option processing facilities for frontend code + * + * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/fe_utils/option_utils.c + * + *------------------------------------------------------------------------- + */ + +#include "postgres_fe.h" + +#include "fe_utils/option_utils.h" + +/* + * Provide strictly harmonized handling of --help and --version + * options. + */ +void +handle_help_version_opts(int argc, char *argv[], + const char *fixed_progname, help_handler hlp) +{ + if (argc > 1) + { + if (strcmp(argv[1], "--help") == 0 || strcmp(argv[1], "-?") == 0) + { + hlp(get_progname(argv[0])); + exit(0); + } + if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0) + { + printf("%s (PostgreSQL) " PG_VERSION "\n", fixed_progname); + exit(0); + } + } +} diff --git a/src/bin/scripts/scripts_parallel.c b/src/fe_utils/parallel_slot.c similarity index 67% rename from src/bin/scripts/scripts_parallel.c rename to src/fe_utils/parallel_slot.c index 1f863a1bb4616..b625deb2545a1 100644 --- a/src/bin/scripts/scripts_parallel.c +++ b/src/fe_utils/parallel_slot.c @@ -1,13 +1,13 @@ /*------------------------------------------------------------------------- * - * scripts_parallel.c - * Parallel support for bin/scripts/ + * parallel_slot.c + * Parallel support for front-end parallel database connections * * * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * src/bin/scripts/scripts_parallel.c + * src/fe_utils/parallel_slot.c * *------------------------------------------------------------------------- */ @@ -22,13 +22,15 @@ #include #endif -#include "common.h" #include "common/logging.h" #include "fe_utils/cancel.h" -#include "scripts_parallel.h" +#include "fe_utils/parallel_slot.h" + +#define ERRCODE_UNDEFINED_TABLE "42P01" static void init_slot(ParallelSlot *slot, PGconn *conn); static int select_loop(int maxFd, fd_set *workerset); +static bool processQueryResult(ParallelSlot *slot, PGresult *result); static void init_slot(ParallelSlot *slot, PGconn *conn) @@ -36,6 +38,47 @@ init_slot(ParallelSlot *slot, PGconn *conn) slot->connection = conn; /* Initially assume connection is idle */ slot->isFree = true; + ParallelSlotClearHandler(slot); +} + +/* + * Process (and delete) a query result. Returns true if there's no problem, + * false otherwise. It's up to the handler to decide what cosntitutes a + * problem. + */ +static bool +processQueryResult(ParallelSlot *slot, PGresult *result) +{ + Assert(slot->handler != NULL); + + /* On failure, the handler should return NULL after freeing the result */ + if (!slot->handler(result, slot->connection, slot->handler_context)) + return false; + + /* Ok, we have to free it ourself */ + PQclear(result); + return true; +} + +/* + * Consume all the results generated for the given connection until + * nothing remains. If at least one error is encountered, return false. + * Note that this will block if the connection is busy. + */ +static bool +consumeQueryResult(ParallelSlot *slot) +{ + bool ok = true; + PGresult *result; + + SetCancelConn(slot->connection); + while ((result = PQgetResult(slot->connection)) != NULL) + { + if (!processQueryResult(slot, result)) + ok = false; + } + ResetCancelConn(); + return ok; } /* @@ -174,14 +217,15 @@ ParallelSlotsGetIdle(ParallelSlot *slots, int numslots) if (result != NULL) { - /* Check and discard the command result */ - if (!processQueryResult(slots[i].connection, result)) + /* Handle and discard the command result */ + if (!processQueryResult(slots + i, result)) return NULL; } else { /* This connection has become idle */ slots[i].isFree = true; + ParallelSlotClearHandler(slots + i); if (firstFree < 0) firstFree = i; break; @@ -276,9 +320,53 @@ ParallelSlotsWaitCompletion(ParallelSlot *slots, int numslots) for (i = 0; i < numslots; i++) { - if (!consumeQueryResult((slots + i)->connection)) + if (!consumeQueryResult(slots + i)) return false; } return true; } + +/* + * TableCommandResultHandler + * + * ParallelSlotResultHandler for results of commands (not queries) against + * tables. + * + * Requires that the result status is either PGRES_COMMAND_OK or an error about + * a missing table. This is useful for utilities that compile a list of tables + * to process and then run commands (vacuum, reindex, or whatever) against + * those tables, as there is a race condition between the time the list is + * compiled and the time the command attempts to open the table. + * + * For missing tables, logs an error but allows processing to continue. + * + * For all other errors, logs an error and terminates further processing. + * + * res: PGresult from the query executed on the slot's connection + * conn: connection belonging to the slot + * context: unused + */ +bool +TableCommandResultHandler(PGresult *res, PGconn *conn, void *context) +{ + /* + * If it's an error, report it. Errors about a missing table are harmless + * so we continue processing; but die for other errors. + */ + if (PQresultStatus(res) != PGRES_COMMAND_OK) + { + char *sqlState = PQresultErrorField(res, PG_DIAG_SQLSTATE); + + pg_log_error("processing of database \"%s\" failed: %s", + PQdb(conn), PQerrorMessage(conn)); + + if (sqlState && strcmp(sqlState, ERRCODE_UNDEFINED_TABLE) != 0) + { + PQclear(res); + return false; + } + } + + return true; +} diff --git a/src/fe_utils/query_utils.c b/src/fe_utils/query_utils.c new file mode 100644 index 0000000000000..d5ffe56fd68ff --- /dev/null +++ b/src/fe_utils/query_utils.c @@ -0,0 +1,92 @@ +/*------------------------------------------------------------------------- + * + * Facilities for frontend code to query a databases. + * + * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/fe_utils/query_utils.c + * + *------------------------------------------------------------------------- + */ +#include "postgres_fe.h" + +#include "common/logging.h" +#include "fe_utils/cancel.h" +#include "fe_utils/query_utils.h" + +/* + * Run a query, return the results, exit program on failure. + */ +PGresult * +executeQuery(PGconn *conn, const char *query, bool echo) +{ + PGresult *res; + + if (echo) + printf("%s\n", query); + + res = PQexec(conn, query); + if (!res || + PQresultStatus(res) != PGRES_TUPLES_OK) + { + pg_log_error("query failed: %s", PQerrorMessage(conn)); + pg_log_info("query was: %s", query); + PQfinish(conn); + exit(1); + } + + return res; +} + + +/* + * As above for a SQL command (which returns nothing). + */ +void +executeCommand(PGconn *conn, const char *query, bool echo) +{ + PGresult *res; + + if (echo) + printf("%s\n", query); + + res = PQexec(conn, query); + if (!res || + PQresultStatus(res) != PGRES_COMMAND_OK) + { + pg_log_error("query failed: %s", PQerrorMessage(conn)); + pg_log_info("query was: %s", query); + PQfinish(conn); + exit(1); + } + + PQclear(res); +} + + +/* + * As above for a SQL maintenance command (returns command success). + * Command is executed with a cancel handler set, so Ctrl-C can + * interrupt it. + */ +bool +executeMaintenanceCommand(PGconn *conn, const char *query, bool echo) +{ + PGresult *res; + bool r; + + if (echo) + printf("%s\n", query); + + SetCancelConn(conn); + res = PQexec(conn, query); + ResetCancelConn(); + + r = (res && PQresultStatus(res) == PGRES_COMMAND_OK); + + if (res) + PQclear(res); + + return r; +} diff --git a/src/include/access/genam.h b/src/include/access/genam.h index 0eab1508d3753..ffa1a4c80dbe1 100644 --- a/src/include/access/genam.h +++ b/src/include/access/genam.h @@ -63,16 +63,14 @@ typedef struct IndexVacuumInfo * of which this is just the first field; this provides a way for ambulkdelete * to communicate additional private data to amvacuumcleanup. * - * Note: pages_removed is the amount by which the index physically shrank, - * if any (ie the change in its total size on disk). pages_deleted and - * pages_free refer to free space within the index file. Some index AMs - * may compute num_index_tuples by reference to num_heap_tuples, in which - * case they should copy the estimated_count field from IndexVacuumInfo. + * Note: pages_deleted and pages_free refer to free space within the index + * file. Some index AMs may compute num_index_tuples by reference to + * num_heap_tuples, in which case they should copy the estimated_count field + * from IndexVacuumInfo. */ typedef struct IndexBulkDeleteResult { BlockNumber num_pages; /* pages remaining in index */ - BlockNumber pages_removed; /* # removed during vacuum operation */ bool estimated_count; /* num_index_tuples is an estimate */ double num_index_tuples; /* tuples remaining */ double tuples_removed; /* # removed during vacuum operation */ diff --git a/src/include/access/gist.h b/src/include/access/gist.h index 00c6b4f2bb93e..aa5f1763dd0a6 100644 --- a/src/include/access/gist.h +++ b/src/include/access/gist.h @@ -51,6 +51,7 @@ #define F_HAS_GARBAGE (1 << 4) /* some tuples on the page are dead, * but not deleted yet */ +/* NSN - node sequence number, a special-purpose LSN */ typedef XLogRecPtr GistNSN; /* diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h index d96a47b1cec13..60e5cd3109bd6 100644 --- a/src/include/access/heapam.h +++ b/src/include/access/heapam.h @@ -174,8 +174,8 @@ struct GlobalVisState; extern void heap_page_prune_opt(Relation relation, Buffer buffer); extern int heap_page_prune(Relation relation, Buffer buffer, struct GlobalVisState *vistest, - TransactionId limited_oldest_xmin, - TimestampTz limited_oldest_ts, + TransactionId old_snap_xmin, + TimestampTz old_snap_ts_ts, bool report_stats, TransactionId *latestRemovedXid, OffsetNumber *off_loc); extern void heap_page_prune_execute(Buffer buffer, diff --git a/src/include/access/transam.h b/src/include/access/transam.h index e07dd83550f40..82e874130d079 100644 --- a/src/include/access/transam.h +++ b/src/include/access/transam.h @@ -305,7 +305,7 @@ extern void AssertTransactionIdInAllowableRange(TransactionId xid); * For callers that just need the XID part of the next transaction ID. */ static inline TransactionId -ReadNewTransactionId(void) +ReadNextTransactionId(void) { return XidFromFullTransactionId(ReadNextFullTransactionId()); } diff --git a/src/include/access/tupconvert.h b/src/include/access/tupconvert.h index b25e28221ea72..a2cc4b3a6de8e 100644 --- a/src/include/access/tupconvert.h +++ b/src/include/access/tupconvert.h @@ -18,6 +18,7 @@ #include "access/htup.h" #include "access/tupdesc.h" #include "executor/tuptable.h" +#include "nodes/bitmapset.h" typedef struct TupleConversionMap @@ -43,6 +44,7 @@ extern HeapTuple execute_attr_map_tuple(HeapTuple tuple, TupleConversionMap *map extern TupleTableSlot *execute_attr_map_slot(AttrMap *attrMap, TupleTableSlot *in_slot, TupleTableSlot *out_slot); +extern Bitmapset *execute_attr_map_cols(AttrMap *attrMap, Bitmapset *inbitmap); extern void free_conversion_map(TupleConversionMap *map); diff --git a/src/include/c.h b/src/include/c.h index ae978830dafba..2b45e6d6ca7c8 100644 --- a/src/include/c.h +++ b/src/include/c.h @@ -132,6 +132,18 @@ #define pg_nodiscard #endif +/* + * Place this macro before functions that should be allowed to make misaligned + * accesses. Think twice before using it on non-x86-specific code! + * Testing can be done with "-fsanitize=alignment -fsanitize-trap=alignment" + * on clang, or "-fsanitize=alignment -fno-sanitize-recover=alignment" on gcc. + */ +#if __clang_major__ >= 7 || __GNUC__ >= 8 +#define pg_attribute_no_sanitize_alignment() __attribute__((no_sanitize("alignment"))) +#else +#define pg_attribute_no_sanitize_alignment() +#endif + /* * Append PG_USED_FOR_ASSERTS_ONLY to definitions of variables that are only * used in assert-enabled builds, to avoid compiler warnings about unused diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h index 638830aaac1aa..4cc94de224a85 100644 --- a/src/include/catalog/catversion.h +++ b/src/include/catalog/catversion.h @@ -53,6 +53,6 @@ */ /* yyyymmddN */ -#define CATALOG_VERSION_NO 202102021 +#define CATALOG_VERSION_NO 202102191 #endif diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat index 4e0c9be58c314..1487710d59077 100644 --- a/src/include/catalog/pg_proc.dat +++ b/src/include/catalog/pg_proc.dat @@ -5994,9 +5994,9 @@ { oid => '1371', descr => 'view system lock information', proname => 'pg_lock_status', prorows => '1000', proretset => 't', provolatile => 'v', prorettype => 'record', proargtypes => '', - proallargtypes => '{text,oid,oid,int4,int2,text,xid,oid,oid,int2,text,int4,text,bool,bool}', - proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}', - proargnames => '{locktype,database,relation,page,tuple,virtualxid,transactionid,classid,objid,objsubid,virtualtransaction,pid,mode,granted,fastpath}', + proallargtypes => '{text,oid,oid,int4,int2,text,xid,oid,oid,int2,text,int4,text,bool,bool,timestamptz}', + proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}', + proargnames => '{locktype,database,relation,page,tuple,virtualxid,transactionid,classid,objid,objsubid,virtualtransaction,pid,mode,granted,fastpath,waitstart}', prosrc => 'pg_lock_status' }, { oid => '2561', descr => 'get array of PIDs of sessions blocking specified backend PID from acquiring a heavyweight lock', diff --git a/src/include/catalog/pg_subscription_rel.h b/src/include/catalog/pg_subscription_rel.h index 2bea2c52aa760..ed94f57baa137 100644 --- a/src/include/catalog/pg_subscription_rel.h +++ b/src/include/catalog/pg_subscription_rel.h @@ -61,6 +61,8 @@ DECLARE_UNIQUE_INDEX_PKEY(pg_subscription_rel_srrelid_srsubid_index, 6117, on pg #define SUBREL_STATE_INIT 'i' /* initializing (sublsn NULL) */ #define SUBREL_STATE_DATASYNC 'd' /* data is being synchronized (sublsn * NULL) */ +#define SUBREL_STATE_FINISHEDCOPY 'f' /* tablesync copy phase is completed + * (sublsn NULL) */ #define SUBREL_STATE_SYNCDONE 's' /* synchronization finished in front of * apply (sublsn set) */ #define SUBREL_STATE_READY 'r' /* ready (sublsn set) */ diff --git a/src/include/commands/subscriptioncmds.h b/src/include/commands/subscriptioncmds.h index a81865079d1c7..3b926f35d7613 100644 --- a/src/include/commands/subscriptioncmds.h +++ b/src/include/commands/subscriptioncmds.h @@ -20,7 +20,7 @@ extern ObjectAddress CreateSubscription(CreateSubscriptionStmt *stmt, bool isTopLevel); -extern ObjectAddress AlterSubscription(AlterSubscriptionStmt *stmt); +extern ObjectAddress AlterSubscription(AlterSubscriptionStmt *stmt, bool isTopLevel); extern void DropSubscription(DropSubscriptionStmt *stmt, bool isTopLevel); extern ObjectAddress AlterSubscriptionOwner(const char *name, Oid newOwnerId); diff --git a/src/include/commands/vacuum.h b/src/include/commands/vacuum.h index 191cbbd004939..d029da5ac0568 100644 --- a/src/include/commands/vacuum.h +++ b/src/include/commands/vacuum.h @@ -181,7 +181,7 @@ typedef struct VacAttrStats #define VACOPT_FREEZE 0x08 /* FREEZE option */ #define VACOPT_FULL 0x10 /* FULL (non-concurrent) vacuum */ #define VACOPT_SKIP_LOCKED 0x20 /* skip if cannot get lock */ -#define VACOPT_SKIPTOAST 0x40 /* don't process the TOAST table, if any */ +#define VACOPT_PROCESS_TOAST 0x40 /* process the TOAST table, if any */ #define VACOPT_DISABLE_PAGE_SKIPPING 0x80 /* don't skip any pages */ /* diff --git a/src/include/common/cryptohash.h b/src/include/common/cryptohash.h index 32d7784ca5b63..541dc844c8b27 100644 --- a/src/include/common/cryptohash.h +++ b/src/include/common/cryptohash.h @@ -32,7 +32,7 @@ typedef struct pg_cryptohash_ctx pg_cryptohash_ctx; extern pg_cryptohash_ctx *pg_cryptohash_create(pg_cryptohash_type type); extern int pg_cryptohash_init(pg_cryptohash_ctx *ctx); extern int pg_cryptohash_update(pg_cryptohash_ctx *ctx, const uint8 *data, size_t len); -extern int pg_cryptohash_final(pg_cryptohash_ctx *ctx, uint8 *dest); +extern int pg_cryptohash_final(pg_cryptohash_ctx *ctx, uint8 *dest, size_t len); extern void pg_cryptohash_free(pg_cryptohash_ctx *ctx); #endif /* PG_CRYPTOHASH_H */ diff --git a/src/include/executor/executor.h b/src/include/executor/executor.h index 758c3ca0974a0..071e363d5408f 100644 --- a/src/include/executor/executor.h +++ b/src/include/executor/executor.h @@ -191,7 +191,7 @@ extern void CheckValidResultRel(ResultRelInfo *resultRelInfo, CmdType operation) extern void InitResultRelInfo(ResultRelInfo *resultRelInfo, Relation resultRelationDesc, Index resultRelationIndex, - Relation partition_root, + ResultRelInfo *partition_root_rri, int instrument_options); extern ResultRelInfo *ExecGetTriggerResultRel(EState *estate, Oid relid); extern void ExecConstraints(ResultRelInfo *resultRelInfo, @@ -574,6 +574,11 @@ extern TupleTableSlot *ExecGetTriggerOldSlot(EState *estate, ResultRelInfo *relI extern TupleTableSlot *ExecGetTriggerNewSlot(EState *estate, ResultRelInfo *relInfo); extern TupleTableSlot *ExecGetReturningSlot(EState *estate, ResultRelInfo *relInfo); +extern Bitmapset *ExecGetInsertedCols(ResultRelInfo *relinfo, EState *estate); +extern Bitmapset *ExecGetUpdatedCols(ResultRelInfo *relinfo, EState *estate); +extern Bitmapset *ExecGetExtraUpdatedCols(ResultRelInfo *relinfo, EState *estate); +extern Bitmapset *ExecGetAllUpdatedCols(ResultRelInfo *relinfo, EState *estate); + /* * prototypes from functions in execIndexing.c */ diff --git a/src/include/fe_utils/connect_utils.h b/src/include/fe_utils/connect_utils.h new file mode 100644 index 0000000000000..50489405091c5 --- /dev/null +++ b/src/include/fe_utils/connect_utils.h @@ -0,0 +1,48 @@ +/*------------------------------------------------------------------------- + * + * Facilities for frontend code to connect to and disconnect from databases. + * + * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/include/fe_utils/connect_utils.h + * + *------------------------------------------------------------------------- + */ +#ifndef CONNECT_UTILS_H +#define CONNECT_UTILS_H + +#include "libpq-fe.h" + +enum trivalue +{ + TRI_DEFAULT, + TRI_NO, + TRI_YES +}; + +/* Parameters needed by connectDatabase/connectMaintenanceDatabase */ +typedef struct _connParams +{ + /* These fields record the actual command line parameters */ + const char *dbname; /* this may be a connstring! */ + const char *pghost; + const char *pgport; + const char *pguser; + enum trivalue prompt_password; + /* If not NULL, this overrides the dbname obtained from command line */ + /* (but *only* the DB name, not anything else in the connstring) */ + const char *override_dbname; +} ConnParams; + +extern PGconn *connectDatabase(const ConnParams *cparams, + const char *progname, + bool echo, bool fail_ok, + bool allow_password_reuse); + +extern PGconn *connectMaintenanceDatabase(ConnParams *cparams, + const char *progname, bool echo); + +extern void disconnectDatabase(PGconn *conn); + +#endif /* CONNECT_UTILS_H */ diff --git a/src/include/fe_utils/option_utils.h b/src/include/fe_utils/option_utils.h new file mode 100644 index 0000000000000..d653cb94e34e4 --- /dev/null +++ b/src/include/fe_utils/option_utils.h @@ -0,0 +1,23 @@ +/*------------------------------------------------------------------------- + * + * Command line option processing facilities for frontend code + * + * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/include/fe_utils/option_utils.h + * + *------------------------------------------------------------------------- + */ +#ifndef OPTION_UTILS_H +#define OPTION_UTILS_H + +#include "postgres_fe.h" + +typedef void (*help_handler) (const char *progname); + +extern void handle_help_version_opts(int argc, char *argv[], + const char *fixed_progname, + help_handler hlp); + +#endif /* OPTION_UTILS_H */ diff --git a/src/include/fe_utils/parallel_slot.h b/src/include/fe_utils/parallel_slot.h new file mode 100644 index 0000000000000..8902f8d4f4816 --- /dev/null +++ b/src/include/fe_utils/parallel_slot.h @@ -0,0 +1,64 @@ +/*------------------------------------------------------------------------- + * + * parallel_slot.h + * Parallel support for bin/scripts/ + * + * Copyright (c) 2003-2021, PostgreSQL Global Development Group + * + * src/include/fe_utils/parallel_slot.h + * + *------------------------------------------------------------------------- + */ +#ifndef PARALLEL_SLOT_H +#define PARALLEL_SLOT_H + +#include "fe_utils/connect_utils.h" +#include "libpq-fe.h" + +typedef bool (*ParallelSlotResultHandler) (PGresult *res, PGconn *conn, + void *context); + +typedef struct ParallelSlot +{ + PGconn *connection; /* One connection */ + bool isFree; /* Is it known to be idle? */ + + /* + * Prior to issuing a command or query on 'connection', a handler callback + * function may optionally be registered to be invoked to process the + * results, and context information may optionally be registered for use + * by the handler. If unset, these fields should be NULL. + */ + ParallelSlotResultHandler handler; + void *handler_context; +} ParallelSlot; + +static inline void +ParallelSlotSetHandler(ParallelSlot *slot, ParallelSlotResultHandler handler, + void *context) +{ + slot->handler = handler; + slot->handler_context = context; +} + +static inline void +ParallelSlotClearHandler(ParallelSlot *slot) +{ + slot->handler = NULL; + slot->handler_context = NULL; +} + +extern ParallelSlot *ParallelSlotsGetIdle(ParallelSlot *slots, int numslots); + +extern ParallelSlot *ParallelSlotsSetup(const ConnParams *cparams, + const char *progname, bool echo, + PGconn *conn, int numslots); + +extern void ParallelSlotsTerminate(ParallelSlot *slots, int numslots); + +extern bool ParallelSlotsWaitCompletion(ParallelSlot *slots, int numslots); + +extern bool TableCommandResultHandler(PGresult *res, PGconn *conn, + void *context); + +#endif /* PARALLEL_SLOT_H */ diff --git a/src/include/fe_utils/query_utils.h b/src/include/fe_utils/query_utils.h new file mode 100644 index 0000000000000..10992601932c7 --- /dev/null +++ b/src/include/fe_utils/query_utils.h @@ -0,0 +1,26 @@ +/*------------------------------------------------------------------------- + * + * Facilities for frontend code to query a databases. + * + * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/include/fe_utils/query_utils.h + * + *------------------------------------------------------------------------- + */ +#ifndef QUERY_UTILS_H +#define QUERY_UTILS_H + +#include "postgres_fe.h" + +#include "libpq-fe.h" + +extern PGresult *executeQuery(PGconn *conn, const char *query, bool echo); + +extern void executeCommand(PGconn *conn, const char *query, bool echo); + +extern bool executeMaintenanceCommand(PGconn *conn, const char *query, + bool echo); + +#endif /* QUERY_UTILS_H */ diff --git a/src/include/libpq/libpq-be.h b/src/include/libpq/libpq-be.h index 66a8673d93948..7be1a67d692f8 100644 --- a/src/include/libpq/libpq-be.h +++ b/src/include/libpq/libpq-be.h @@ -194,7 +194,7 @@ typedef struct Port /* * OpenSSL structures. (Keep these last so that the locations of other - * fields are the same whether or not you build with OpenSSL.) + * fields are the same whether or not you build with SSL enabled.) */ #ifdef USE_OPENSSL SSL *ssl; diff --git a/src/include/libpq/libpq.h b/src/include/libpq/libpq.h index a55898c85afe1..b41b10620aae9 100644 --- a/src/include/libpq/libpq.h +++ b/src/include/libpq/libpq.h @@ -82,6 +82,7 @@ extern char *ssl_cert_file; extern char *ssl_key_file; extern char *ssl_ca_file; extern char *ssl_crl_file; +extern char *ssl_crl_dir; extern char *ssl_dh_params_file; extern PGDLLIMPORT char *ssl_passphrase_command; extern PGDLLIMPORT bool ssl_passphrase_command_supports_reload; diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h index d65099c94aaed..943931f65d06a 100644 --- a/src/include/nodes/execnodes.h +++ b/src/include/nodes/execnodes.h @@ -394,12 +394,15 @@ typedef struct OnConflictSetState * relation, and perhaps also fire triggers. ResultRelInfo holds all the * information needed about a result relation, including indexes. * - * Normally, a ResultRelInfo refers to a table that is in the query's - * range table; then ri_RangeTableIndex is the RT index and ri_RelationDesc - * is just a copy of the relevant es_relations[] entry. But sometimes, - * in ResultRelInfos used only for triggers, ri_RangeTableIndex is zero - * and ri_RelationDesc is a separately-opened relcache pointer that needs - * to be separately closed. See ExecGetTriggerResultRel. + * Normally, a ResultRelInfo refers to a table that is in the query's range + * table; then ri_RangeTableIndex is the RT index and ri_RelationDesc is + * just a copy of the relevant es_relations[] entry. However, in some + * situations we create ResultRelInfos for relations that are not in the + * range table, namely for targets of tuple routing in a partitioned table, + * and when firing triggers in tables other than the target tables (See + * ExecGetTriggerResultRel). In these situations, ri_RangeTableIndex is 0 + * and ri_RelationDesc is a separately-opened relcache pointer that needs to + * be separately closed. */ typedef struct ResultRelInfo { @@ -488,12 +491,16 @@ typedef struct ResultRelInfo /* * Information needed by tuple routing target relations * - * PartitionRoot gives the target relation mentioned in the query. + * RootResultRelInfo gives the target relation mentioned in the query, if + * it's a partitioned table. It is not set if the target relation + * mentioned in the query is an inherited table, nor when tuple routing is + * not needed. + * * RootToPartitionMap and PartitionTupleSlot, initialized by * ExecInitRoutingInfo, are non-NULL if partition has a different tuple * format than the root table. */ - Relation ri_PartitionRoot; + struct ResultRelInfo *ri_RootResultRelInfo; TupleConversionMap *ri_RootToPartitionMap; TupleTableSlot *ri_PartitionTupleSlot; diff --git a/src/include/parser/parse_relation.h b/src/include/parser/parse_relation.h index 35e64070a89af..5dbe5ba2e2702 100644 --- a/src/include/parser/parse_relation.h +++ b/src/include/parser/parse_relation.h @@ -41,8 +41,7 @@ extern Node *scanNSItemForColumn(ParseState *pstate, ParseNamespaceItem *nsitem, int location); extern Node *colNameToVar(ParseState *pstate, const char *colname, bool localonly, int location); -extern void markVarForSelectPriv(ParseState *pstate, Var *var, - RangeTblEntry *rte); +extern void markVarForSelectPriv(ParseState *pstate, Var *var); extern Relation parserOpenTable(ParseState *pstate, const RangeVar *relation, int lockmode); extern ParseNamespaceItem *addRangeTableEntry(ParseState *pstate, diff --git a/src/include/pg_config_manual.h b/src/include/pg_config_manual.h index d27c8601fa7f0..2a12071badcc2 100644 --- a/src/include/pg_config_manual.h +++ b/src/include/pg_config_manual.h @@ -176,8 +176,7 @@ /* * USE_SSL code should be compiled only when compiling with an SSL - * implementation. (Currently, only OpenSSL is supported, but we might add - * more implementations in the future.) + * implementation. */ #ifdef USE_OPENSSL #define USE_SSL diff --git a/src/include/port/freebsd.h b/src/include/port/freebsd.h index 2e36d3da4f4a8..2e2e749a6b65b 100644 --- a/src/include/port/freebsd.h +++ b/src/include/port/freebsd.h @@ -1 +1,10 @@ /* src/include/port/freebsd.h */ + +/* + * Set the default wal_sync_method to fdatasync. xlogdefs.h's normal rules + * would prefer open_datasync on FreeBSD 13+, but that is not a good choice on + * many systems. + */ +#ifdef HAVE_FDATASYNC +#define PLATFORM_DEFAULT_SYNC_METHOD SYNC_METHOD_FDATASYNC +#endif diff --git a/src/include/regex/regguts.h b/src/include/regex/regguts.h index 5d0e7a961c920..0a616562d03b6 100644 --- a/src/include/regex/regguts.h +++ b/src/include/regex/regguts.h @@ -368,7 +368,15 @@ struct cnfa struct carc *arcs; /* the area for the lists */ }; +/* + * When debugging, it's helpful if an un-filled CNFA is all-zeroes. + * In production, though, we only require nstates to be zero. + */ +#ifdef REG_DEBUG +#define ZAPCNFA(cnfa) memset(&(cnfa), 0, sizeof(cnfa)) +#else #define ZAPCNFA(cnfa) ((cnfa).nstates = 0) +#endif #define NULLCNFA(cnfa) ((cnfa).nstates == 0) /* diff --git a/src/include/replication/logicallauncher.h b/src/include/replication/logicallauncher.h index 421ec1580d806..301e494f7ba3c 100644 --- a/src/include/replication/logicallauncher.h +++ b/src/include/replication/logicallauncher.h @@ -22,9 +22,7 @@ extern Size ApplyLauncherShmemSize(void); extern void ApplyLauncherShmemInit(void); extern void ApplyLauncherWakeupAtCommit(void); -extern bool XactManipulatesLogicalReplicationWorkers(void); extern void AtEOXact_ApplyLauncher(bool isCommit); -extern void AtEOSubXact_ApplyLauncher(bool isCommit, int nestDepth); extern bool IsLogicalLauncher(void); diff --git a/src/include/replication/origin.h b/src/include/replication/origin.h index 731445ae8f792..d2ed6305fe1e9 100644 --- a/src/include/replication/origin.h +++ b/src/include/replication/origin.h @@ -40,7 +40,7 @@ extern PGDLLIMPORT TimestampTz replorigin_session_origin_timestamp; /* API for querying & manipulating replication origins */ extern RepOriginId replorigin_by_name(char *name, bool missing_ok); extern RepOriginId replorigin_create(char *name); -extern void replorigin_drop(RepOriginId roident, bool nowait); +extern void replorigin_drop_by_name(char *name, bool missing_ok, bool nowait); extern bool replorigin_by_oid(RepOriginId roident, bool missing_ok, char **roname); diff --git a/src/include/replication/slot.h b/src/include/replication/slot.h index 53f636c56f5b3..38a9a0b3fc440 100644 --- a/src/include/replication/slot.h +++ b/src/include/replication/slot.h @@ -15,6 +15,7 @@ #include "storage/lwlock.h" #include "storage/shmem.h" #include "storage/spin.h" +#include "replication/walreceiver.h" /* * Behaviour of replication slots, upon release or crash. @@ -211,6 +212,8 @@ extern bool ReplicationSlotsCountDBSlots(Oid dboid, int *nslots, int *nactive); extern void ReplicationSlotsDropDBSlots(Oid dboid); extern void InvalidateObsoleteReplicationSlots(XLogSegNo oldestSegno); extern ReplicationSlot *SearchNamedReplicationSlot(const char *name); +extern void ReplicationSlotNameForTablesync(Oid suboid, Oid relid, char *syncslotname, int szslot); +extern void ReplicationSlotDropAtPubNode(WalReceiverConn *wrconn, char *slotname, bool missing_ok); extern void StartupReplicationSlots(void); extern void CheckPointReplicationSlots(void); diff --git a/src/include/replication/walreceiver.h b/src/include/replication/walreceiver.h index 4313f516d3562..a97a59a6a30aa 100644 --- a/src/include/replication/walreceiver.h +++ b/src/include/replication/walreceiver.h @@ -210,6 +210,7 @@ typedef enum typedef struct WalRcvExecResult { WalRcvExecStatus status; + int sqlstate; char *err; Tuplestorestate *tuplestore; TupleDesc tupledesc; diff --git a/src/include/replication/worker_internal.h b/src/include/replication/worker_internal.h index d046022e49cff..1cac75e5a9b49 100644 --- a/src/include/replication/worker_internal.h +++ b/src/include/replication/worker_internal.h @@ -77,13 +77,15 @@ extern List *logicalrep_workers_find(Oid subid, bool only_running); extern void logicalrep_worker_launch(Oid dbid, Oid subid, const char *subname, Oid userid, Oid relid); extern void logicalrep_worker_stop(Oid subid, Oid relid); -extern void logicalrep_worker_stop_at_commit(Oid subid, Oid relid); extern void logicalrep_worker_wakeup(Oid subid, Oid relid); extern void logicalrep_worker_wakeup_ptr(LogicalRepWorker *worker); extern int logicalrep_sync_worker_count(Oid subid); +extern void ReplicationOriginNameForTablesync(Oid suboid, Oid relid, + char *originname, int szorgname); extern char *LogicalRepSyncTableStart(XLogRecPtr *origin_startpos); + void process_syncing_tables(XLogRecPtr current_lsn); void invalidate_syncing_table_states(Datum arg, int cacheid, uint32 hashvalue); diff --git a/src/include/snowball/libstemmer/api.h b/src/include/snowball/libstemmer/api.h index 7ed7995f9e1f3..ba9d1c14bcae1 100644 --- a/src/include/snowball/libstemmer/api.h +++ b/src/include/snowball/libstemmer/api.h @@ -16,14 +16,13 @@ struct SN_env { int c; int l; int lb; int bra; int ket; symbol * * S; int * I; - unsigned char * B; }; #ifdef __cplusplus extern "C" { #endif -extern struct SN_env * SN_create_env(int S_size, int I_size, int B_size); +extern struct SN_env * SN_create_env(int S_size, int I_size); extern void SN_close_env(struct SN_env * z, int S_size); extern int SN_set_current(struct SN_env * z, int size, const symbol * s); diff --git a/src/include/snowball/libstemmer/header.h b/src/include/snowball/libstemmer/header.h index 85a42fdb8f8d5..bf172d5b9bdf9 100644 --- a/src/include/snowball/libstemmer/header.h +++ b/src/include/snowball/libstemmer/header.h @@ -23,7 +23,9 @@ struct among extern symbol * create_s(void); extern void lose_s(symbol * p); -extern int skip_utf8(const symbol * p, int c, int lb, int l, int n); +extern int skip_utf8(const symbol * p, int c, int limit, int n); + +extern int skip_b_utf8(const symbol * p, int c, int limit, int n); extern int in_grouping_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat); extern int in_grouping_b_U(struct SN_env * z, const unsigned char * s, int min, int max, int repeat); diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_1_basque.h b/src/include/snowball/libstemmer/stem_ISO_8859_1_basque.h index b40fc493d09dd..abdb9206844d6 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_1_basque.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_1_basque.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_1_catalan.h b/src/include/snowball/libstemmer/stem_ISO_8859_1_catalan.h index d68f6fa6eef90..f8c86d6154ac2 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_1_catalan.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_1_catalan.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_1_danish.h b/src/include/snowball/libstemmer/stem_ISO_8859_1_danish.h index 76ed47675bd7c..1626bfbe894c0 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_1_danish.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_1_danish.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_1_dutch.h b/src/include/snowball/libstemmer/stem_ISO_8859_1_dutch.h index 0376706c371bc..36a871c8c0ed9 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_1_dutch.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_1_dutch.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_1_english.h b/src/include/snowball/libstemmer/stem_ISO_8859_1_english.h index ccd4acb27d360..d61f02ba09801 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_1_english.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_1_english.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_1_finnish.h b/src/include/snowball/libstemmer/stem_ISO_8859_1_finnish.h index 7f7b36ed2af83..f7213228a23fb 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_1_finnish.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_1_finnish.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_1_french.h b/src/include/snowball/libstemmer/stem_ISO_8859_1_french.h index 36e9074da7617..afdbf6a7c4ba3 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_1_french.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_1_french.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_1_german.h b/src/include/snowball/libstemmer/stem_ISO_8859_1_german.h index c8780e179b461..00e3ae8fcb76b 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_1_german.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_1_german.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_1_indonesian.h b/src/include/snowball/libstemmer/stem_ISO_8859_1_indonesian.h index a429ae9aa0580..599fb54085b73 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_1_indonesian.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_1_indonesian.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_1_irish.h b/src/include/snowball/libstemmer/stem_ISO_8859_1_irish.h index aa468f9db4f0d..278a9d20ee59c 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_1_irish.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_1_irish.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_1_italian.h b/src/include/snowball/libstemmer/stem_ISO_8859_1_italian.h index cffcd53dbb245..f56a3c46ebe4b 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_1_italian.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_1_italian.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_1_norwegian.h b/src/include/snowball/libstemmer/stem_ISO_8859_1_norwegian.h index 72fe18fda5d96..5adaeaabe03de 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_1_norwegian.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_1_norwegian.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_1_porter.h b/src/include/snowball/libstemmer/stem_ISO_8859_1_porter.h index d52c3e336b5ef..aed5a35e5d58f 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_1_porter.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_1_porter.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_1_portuguese.h b/src/include/snowball/libstemmer/stem_ISO_8859_1_portuguese.h index dc5731e40c21c..1b8121cd5b3f3 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_1_portuguese.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_1_portuguese.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_1_spanish.h b/src/include/snowball/libstemmer/stem_ISO_8859_1_spanish.h index 953fd19b20d9f..658d3ae75b085 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_1_spanish.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_1_spanish.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_1_swedish.h b/src/include/snowball/libstemmer/stem_ISO_8859_1_swedish.h index f775fe10f75ab..1414e77f69343 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_1_swedish.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_1_swedish.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_2_hungarian.h b/src/include/snowball/libstemmer/stem_ISO_8859_2_hungarian.h index 4a13910ae8b57..6bd6e574034c4 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_2_hungarian.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_2_hungarian.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_ISO_8859_2_romanian.h b/src/include/snowball/libstemmer/stem_ISO_8859_2_romanian.h index d266e2d384885..fe0ab8116d21e 100644 --- a/src/include/snowball/libstemmer/stem_ISO_8859_2_romanian.h +++ b/src/include/snowball/libstemmer/stem_ISO_8859_2_romanian.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_KOI8_R_russian.h b/src/include/snowball/libstemmer/stem_KOI8_R_russian.h index 454c46cf42e11..2d7d1f823bc92 100644 --- a/src/include/snowball/libstemmer/stem_KOI8_R_russian.h +++ b/src/include/snowball/libstemmer/stem_KOI8_R_russian.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_arabic.h b/src/include/snowball/libstemmer/stem_UTF_8_arabic.h index 966acae965a8f..1d928625940ff 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_arabic.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_arabic.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_armenian.h b/src/include/snowball/libstemmer/stem_UTF_8_armenian.h new file mode 100644 index 0000000000000..3f75ce3ba2fdb --- /dev/null +++ b/src/include/snowball/libstemmer/stem_UTF_8_armenian.h @@ -0,0 +1,15 @@ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ + +#ifdef __cplusplus +extern "C" { +#endif + +extern struct SN_env * armenian_UTF_8_create_env(void); +extern void armenian_UTF_8_close_env(struct SN_env * z); + +extern int armenian_UTF_8_stem(struct SN_env * z); + +#ifdef __cplusplus +} +#endif + diff --git a/src/include/snowball/libstemmer/stem_UTF_8_basque.h b/src/include/snowball/libstemmer/stem_UTF_8_basque.h index 34b4622b86314..bc9ccdd62d59e 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_basque.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_basque.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_catalan.h b/src/include/snowball/libstemmer/stem_UTF_8_catalan.h index e5a3ae20a5a4a..c048a19c2856c 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_catalan.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_catalan.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_danish.h b/src/include/snowball/libstemmer/stem_UTF_8_danish.h index a408655b7dba7..fdd82d3419a26 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_danish.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_danish.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_dutch.h b/src/include/snowball/libstemmer/stem_UTF_8_dutch.h index bd851fedf2cea..7543be3f78e58 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_dutch.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_dutch.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_english.h b/src/include/snowball/libstemmer/stem_UTF_8_english.h index c58b71d17f299..532cd0f6f2120 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_english.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_english.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_finnish.h b/src/include/snowball/libstemmer/stem_UTF_8_finnish.h index fa6866178dbc0..2c08de633b2b7 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_finnish.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_finnish.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_french.h b/src/include/snowball/libstemmer/stem_UTF_8_french.h index 7ec833d5f86a3..977455a7ea361 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_french.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_french.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_german.h b/src/include/snowball/libstemmer/stem_UTF_8_german.h index a3c3b7b93bcf0..e601e45f405ea 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_german.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_german.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_greek.h b/src/include/snowball/libstemmer/stem_UTF_8_greek.h index 728e3c8fca6d2..c1f14548ceef4 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_greek.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_greek.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_hindi.h b/src/include/snowball/libstemmer/stem_UTF_8_hindi.h index 8a86e373a50f2..8abf20f996650 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_hindi.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_hindi.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_hungarian.h b/src/include/snowball/libstemmer/stem_UTF_8_hungarian.h index 92d5b61f9013a..2fe259afebb03 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_hungarian.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_hungarian.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_indonesian.h b/src/include/snowball/libstemmer/stem_UTF_8_indonesian.h index 4d37237e00cee..688b5e25e4715 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_indonesian.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_indonesian.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_irish.h b/src/include/snowball/libstemmer/stem_UTF_8_irish.h index 94bdb6f754765..c15d5e8a58f85 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_irish.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_irish.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_italian.h b/src/include/snowball/libstemmer/stem_UTF_8_italian.h index 367e3bf5327c8..64c56178864c6 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_italian.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_italian.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_lithuanian.h b/src/include/snowball/libstemmer/stem_UTF_8_lithuanian.h index b634532703f31..e06101e64425b 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_lithuanian.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_lithuanian.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_nepali.h b/src/include/snowball/libstemmer/stem_UTF_8_nepali.h index 3dccb82b96228..c1e3fcb7ff00e 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_nepali.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_nepali.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_norwegian.h b/src/include/snowball/libstemmer/stem_UTF_8_norwegian.h index b657249d18c64..c08cd38c3690d 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_norwegian.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_norwegian.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_porter.h b/src/include/snowball/libstemmer/stem_UTF_8_porter.h index d2b86b7bae31e..a29518bf909d6 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_porter.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_porter.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_portuguese.h b/src/include/snowball/libstemmer/stem_UTF_8_portuguese.h index 0b7807368bccf..6c33f36ad21a6 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_portuguese.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_portuguese.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_romanian.h b/src/include/snowball/libstemmer/stem_UTF_8_romanian.h index b493196c914a8..30f7296871919 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_romanian.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_romanian.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_russian.h b/src/include/snowball/libstemmer/stem_UTF_8_russian.h index 2f3f3a1fa7e77..ea4709682ab27 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_russian.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_russian.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_serbian.h b/src/include/snowball/libstemmer/stem_UTF_8_serbian.h new file mode 100644 index 0000000000000..4d785adc349a2 --- /dev/null +++ b/src/include/snowball/libstemmer/stem_UTF_8_serbian.h @@ -0,0 +1,15 @@ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ + +#ifdef __cplusplus +extern "C" { +#endif + +extern struct SN_env * serbian_UTF_8_create_env(void); +extern void serbian_UTF_8_close_env(struct SN_env * z); + +extern int serbian_UTF_8_stem(struct SN_env * z); + +#ifdef __cplusplus +} +#endif + diff --git a/src/include/snowball/libstemmer/stem_UTF_8_spanish.h b/src/include/snowball/libstemmer/stem_UTF_8_spanish.h index c3afee5b0aeff..7cf53a8108e88 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_spanish.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_spanish.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_swedish.h b/src/include/snowball/libstemmer/stem_UTF_8_swedish.h index 28b127d6ca541..3ee43d4a7db70 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_swedish.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_swedish.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_tamil.h b/src/include/snowball/libstemmer/stem_UTF_8_tamil.h index 77d353e0ea54e..0faca9deb0e36 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_tamil.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_tamil.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_turkish.h b/src/include/snowball/libstemmer/stem_UTF_8_turkish.h index aa400cfc8caee..32aa7739021b5 100644 --- a/src/include/snowball/libstemmer/stem_UTF_8_turkish.h +++ b/src/include/snowball/libstemmer/stem_UTF_8_turkish.h @@ -1,4 +1,4 @@ -/* Generated by Snowball 2.0.0 - https://snowballstem.org/ */ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ #ifdef __cplusplus extern "C" { diff --git a/src/include/snowball/libstemmer/stem_UTF_8_yiddish.h b/src/include/snowball/libstemmer/stem_UTF_8_yiddish.h new file mode 100644 index 0000000000000..275161503f804 --- /dev/null +++ b/src/include/snowball/libstemmer/stem_UTF_8_yiddish.h @@ -0,0 +1,15 @@ +/* Generated by Snowball 2.1.0 - https://snowballstem.org/ */ + +#ifdef __cplusplus +extern "C" { +#endif + +extern struct SN_env * yiddish_UTF_8_create_env(void); +extern void yiddish_UTF_8_close_env(struct SN_env * z); + +extern int yiddish_UTF_8_stem(struct SN_env * z); + +#ifdef __cplusplus +} +#endif + diff --git a/src/include/storage/lock.h b/src/include/storage/lock.h index 68a3487d49f3c..9b2a421c32c25 100644 --- a/src/include/storage/lock.h +++ b/src/include/storage/lock.h @@ -22,6 +22,7 @@ #include "storage/lockdefs.h" #include "storage/lwlock.h" #include "storage/shmem.h" +#include "utils/timestamp.h" /* struct PGPROC is declared in proc.h, but must forward-reference it */ typedef struct PGPROC PGPROC; @@ -446,6 +447,8 @@ typedef struct LockInstanceData LOCKMODE waitLockMode; /* lock awaited by this PGPROC, if any */ BackendId backend; /* backend ID of this PGPROC */ LocalTransactionId lxid; /* local transaction ID of this PGPROC */ + TimestampTz waitStart; /* time at which this PGPROC started waiting + * for lock */ int pid; /* pid of this PGPROC */ int leaderPid; /* pid of group leader; = pid if no group */ bool fastpath; /* taken via fastpath? */ diff --git a/src/include/storage/proc.h b/src/include/storage/proc.h index 683ab64f76b8d..a777cb64a1cfc 100644 --- a/src/include/storage/proc.h +++ b/src/include/storage/proc.h @@ -181,6 +181,8 @@ struct PGPROC LOCKMODE waitLockMode; /* type of lock we're waiting for */ LOCKMASK heldLocks; /* bitmask for lock types already held on this * lock object by this backend */ + pg_atomic_uint64 waitStart; /* time at which wait for lock acquisition + * started */ bool delayChkpt; /* true if this proc delays checkpoint start */ diff --git a/src/include/tsearch/ts_utils.h b/src/include/tsearch/ts_utils.h index 69a9ba8524ed3..4266560151f14 100644 --- a/src/include/tsearch/ts_utils.h +++ b/src/include/tsearch/ts_utils.h @@ -199,6 +199,9 @@ typedef TSTernaryValue (*TSExecuteCallback) (void *arg, QueryOperand *val, extern bool TS_execute(QueryItem *curitem, void *arg, uint32 flags, TSExecuteCallback chkcond); +extern TSTernaryValue TS_execute_ternary(QueryItem *curitem, void *arg, + uint32 flags, + TSExecuteCallback chkcond); extern bool tsquery_requires_match(QueryItem *curitem); /* diff --git a/src/include/utils/lsyscache.h b/src/include/utils/lsyscache.h index ae720c1496b65..77871aaefc330 100644 --- a/src/include/utils/lsyscache.h +++ b/src/include/utils/lsyscache.h @@ -90,6 +90,7 @@ extern Oid get_opfamily_proc(Oid opfamily, Oid lefttype, Oid righttype, int16 procnum); extern char *get_attname(Oid relid, AttrNumber attnum, bool missing_ok); extern AttrNumber get_attnum(Oid relid, const char *attname); +extern int get_attstattarget(Oid relid, AttrNumber attnum); extern char get_attgenerated(Oid relid, AttrNumber attnum); extern Oid get_atttype(Oid relid, AttrNumber attnum); extern void get_atttypetypmodcoll(Oid relid, AttrNumber attnum, diff --git a/src/include/utils/snapmgr.h b/src/include/utils/snapmgr.h index c21ee3c289c96..2c8b881a09dae 100644 --- a/src/include/utils/snapmgr.h +++ b/src/include/utils/snapmgr.h @@ -155,7 +155,7 @@ extern bool GlobalVisTestIsRemovableFullXid(GlobalVisState *state, FullTransacti extern FullTransactionId GlobalVisTestNonRemovableFullHorizon(GlobalVisState *state); extern TransactionId GlobalVisTestNonRemovableHorizon(GlobalVisState *state); extern bool GlobalVisCheckRemovableXid(Relation rel, TransactionId xid); -extern bool GlobalVisIsRemovableFullXid(Relation rel, FullTransactionId fxid); +extern bool GlobalVisCheckRemovableFullXid(Relation rel, FullTransactionId fxid); /* * Utility functions for implementing visibility routines in table AMs. diff --git a/src/interfaces/ecpg/ecpglib/connect.c b/src/interfaces/ecpg/ecpglib/connect.c index 6b0a3067e6c12..60564b176c92f 100644 --- a/src/interfaces/ecpg/ecpglib/connect.c +++ b/src/interfaces/ecpg/ecpglib/connect.c @@ -360,8 +360,7 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p /*------ * new style: - * :postgresql://server[:port|:/unixsocket/path:] - * [/db-name][?options] + * :postgresql://server[:port][/db-name][?options] *------ */ offset += strlen("postgresql://"); @@ -385,46 +384,22 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p } tmp = strrchr(dbname + offset, ':'); - if (tmp != NULL) /* port number or Unix socket path given */ + if (tmp != NULL) /* port number given */ { - char *tmp2; - *tmp = '\0'; - if ((tmp2 = strchr(tmp + 1, ':')) != NULL) - { - *tmp2 = '\0'; - host = ecpg_strdup(tmp + 1, lineno); - connect_params++; - if (strncmp(dbname, "unix:", 5) != 0) - { - ecpg_log("ECPGconnect: socketname %s given for TCP connection on line %d\n", host, lineno); - ecpg_raise(lineno, ECPG_CONNECT, ECPG_SQLSTATE_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION, realname ? realname : ecpg_gettext("")); - if (host) - ecpg_free(host); - - /* - * port not set yet if (port) ecpg_free(port); - */ - if (options) - ecpg_free(options); - if (realname) - ecpg_free(realname); - if (dbname) - ecpg_free(dbname); - free(this); - return false; - } - } - else - { - port = ecpg_strdup(tmp + 1, lineno); - connect_params++; - } + port = ecpg_strdup(tmp + 1, lineno); + connect_params++; } if (strncmp(dbname, "unix:", 5) == 0) { - if (strcmp(dbname + offset, "localhost") != 0 && strcmp(dbname + offset, "127.0.0.1") != 0) + /* + * The alternative of using "127.0.0.1" here is deprecated + * and undocumented; we'll keep it for backward + * compatibility's sake, but not extend it to allow IPv6. + */ + if (strcmp(dbname + offset, "localhost") != 0 && + strcmp(dbname + offset, "127.0.0.1") != 0) { ecpg_log("ECPGconnect: non-localhost access via sockets on line %d\n", lineno); ecpg_raise(lineno, ECPG_CONNECT, ECPG_SQLSTATE_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION, realname ? realname : ecpg_gettext("")); @@ -450,7 +425,6 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p connect_params++; } } - } } else diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index 8ca0583aa908d..db71fea169c96 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -317,6 +317,10 @@ static const internalPQconninfoOption PQconninfoOptions[] = { "SSL-Revocation-List", "", 64, offsetof(struct pg_conn, sslcrl)}, + {"sslcrldir", "PGSSLCRLDIR", NULL, NULL, + "SSL-Revocation-List-Dir", "", 64, + offsetof(struct pg_conn, sslcrldir)}, + {"requirepeer", "PGREQUIREPEER", NULL, NULL, "Require-Peer", "", 10, offsetof(struct pg_conn, requirepeer)}, @@ -3998,6 +4002,8 @@ freePGconn(PGconn *conn) free(conn->sslrootcert); if (conn->sslcrl) free(conn->sslcrl); + if (conn->sslcrldir) + free(conn->sslcrldir); if (conn->sslcompression) free(conn->sslcompression); if (conn->requirepeer) diff --git a/src/interfaces/libpq/fe-secure-openssl.c b/src/interfaces/libpq/fe-secure-openssl.c index 5b4a4157d5ce8..0fa10a23b4a5d 100644 --- a/src/interfaces/libpq/fe-secure-openssl.c +++ b/src/interfaces/libpq/fe-secure-openssl.c @@ -794,7 +794,8 @@ initialize_SSL(PGconn *conn) if (!(conn->sslcert && strlen(conn->sslcert) > 0) || !(conn->sslkey && strlen(conn->sslkey) > 0) || !(conn->sslrootcert && strlen(conn->sslrootcert) > 0) || - !(conn->sslcrl && strlen(conn->sslcrl) > 0)) + !((conn->sslcrl && strlen(conn->sslcrl) > 0) || + (conn->sslcrldir && strlen(conn->sslcrldir) > 0))) have_homedir = pqGetHomeDirectory(homedir, sizeof(homedir)); else /* won't need it */ have_homedir = false; @@ -936,20 +937,29 @@ initialize_SSL(PGconn *conn) if ((cvstore = SSL_CTX_get_cert_store(SSL_context)) != NULL) { + char *fname = NULL; + char *dname = NULL; + if (conn->sslcrl && strlen(conn->sslcrl) > 0) - strlcpy(fnbuf, conn->sslcrl, sizeof(fnbuf)); - else if (have_homedir) + fname = conn->sslcrl; + if (conn->sslcrldir && strlen(conn->sslcrldir) > 0) + dname = conn->sslcrldir; + + /* defaults to use the default CRL file */ + if (!fname && !dname && have_homedir) + { snprintf(fnbuf, sizeof(fnbuf), "%s/%s", homedir, ROOT_CRL_FILE); - else - fnbuf[0] = '\0'; + fname = fnbuf; + } /* Set the flags to check against the complete CRL chain */ - if (fnbuf[0] != '\0' && - X509_STORE_load_locations(cvstore, fnbuf, NULL) == 1) + if ((fname || dname) && + X509_STORE_load_locations(cvstore, fname, dname) == 1) { X509_STORE_set_flags(cvstore, X509_V_FLAG_CRL_CHECK | X509_V_FLAG_CRL_CHECK_ALL); } + /* if not found, silently ignore; we do not require CRL */ ERR_clear_error(); } diff --git a/src/interfaces/libpq/fe-secure.c b/src/interfaces/libpq/fe-secure.c index 00b87bdc96d7e..c601071838141 100644 --- a/src/interfaces/libpq/fe-secure.c +++ b/src/interfaces/libpq/fe-secure.c @@ -421,6 +421,13 @@ PQsslAttributeNames(PGconn *conn) return result; } +#endif /* USE_SSL */ + +/* + * Dummy versions of OpenSSL key password hook functions, when built without + * OpenSSL. + */ +#ifndef USE_OPENSSL PQsslKeyPassHook_OpenSSL_type PQgetSSLKeyPassHook_OpenSSL(void) @@ -439,7 +446,7 @@ PQdefaultSSLKeyPassHook_OpenSSL(char *buf, int size, PGconn *conn) { return 0; } -#endif /* USE_SSL */ +#endif /* USE_OPENSSL */ /* Dummy version of GSSAPI information functions, when built without GSS support */ #ifndef ENABLE_GSS diff --git a/src/interfaces/libpq/libpq-fe.h b/src/interfaces/libpq/libpq-fe.h index c266ad5b13844..effe0ccf8566b 100644 --- a/src/interfaces/libpq/libpq-fe.h +++ b/src/interfaces/libpq/libpq-fe.h @@ -619,7 +619,7 @@ extern int pg_valid_server_encoding_id(int encoding); /* === in fe-secure-openssl.c === */ -/* Support for overriding sslpassword handling with a callback. */ +/* Support for overriding sslpassword handling with a callback */ typedef int (*PQsslKeyPassHook_OpenSSL_type) (char *buf, int size, PGconn *conn); extern PQsslKeyPassHook_OpenSSL_type PQgetSSLKeyPassHook_OpenSSL(void); extern void PQsetSSLKeyPassHook_OpenSSL(PQsslKeyPassHook_OpenSSL_type hook); diff --git a/src/interfaces/libpq/libpq-int.h b/src/interfaces/libpq/libpq-int.h index 4db498369c7be..ce36aabd25a92 100644 --- a/src/interfaces/libpq/libpq-int.h +++ b/src/interfaces/libpq/libpq-int.h @@ -362,6 +362,7 @@ struct pg_conn char *sslpassword; /* client key file password */ char *sslrootcert; /* root certificate filename */ char *sslcrl; /* certificate revocation list filename */ + char *sslcrldir; /* certificate revocation list directory name */ char *requirepeer; /* required peer credentials for local sockets */ char *gssencmode; /* GSS mode (require,prefer,disable) */ char *krbsrvname; /* Kerberos service name */ diff --git a/src/port/pg_crc32c_sse42.c b/src/port/pg_crc32c_sse42.c index 3b94a7388aba8..10fc01e1f064e 100644 --- a/src/port/pg_crc32c_sse42.c +++ b/src/port/pg_crc32c_sse42.c @@ -18,6 +18,7 @@ #include "port/pg_crc32c.h" +pg_attribute_no_sanitize_alignment() pg_crc32c pg_comp_crc32c_sse42(pg_crc32c crc, const void *data, size_t len) { diff --git a/src/test/isolation/expected/tuplelock-partition.out b/src/test/isolation/expected/tuplelock-partition.out new file mode 100644 index 0000000000000..dd6d37c577a8e --- /dev/null +++ b/src/test/isolation/expected/tuplelock-partition.out @@ -0,0 +1,20 @@ +Parsed test spec with 2 sessions + +starting permutation: s1b s1update_nokey s2locktuple s1c +step s1b: BEGIN; +step s1update_nokey: INSERT INTO parttab (key, col1, col2) VALUES (1, 'a', 'b') ON CONFLICT (key) DO UPDATE SET col1 = 'x', col2 = 'y'; +step s2locktuple: SELECT * FROM parttab FOR KEY SHARE; +col1 key col2 + +a 1 b +step s1c: COMMIT; + +starting permutation: s1b s1update_key s2locktuple s1c +step s1b: BEGIN; +step s1update_key: INSERT INTO parttab (key, col1, col2) VALUES (1, 'a', 'b') ON CONFLICT (key) DO UPDATE SET key=1; +step s2locktuple: SELECT * FROM parttab FOR KEY SHARE; +step s1c: COMMIT; +step s2locktuple: <... completed> +col1 key col2 + +a 1 b diff --git a/src/test/isolation/isolation_schedule b/src/test/isolation/isolation_schedule index f2e752c4454a7..5d6b79e66e558 100644 --- a/src/test/isolation/isolation_schedule +++ b/src/test/isolation/isolation_schedule @@ -54,6 +54,7 @@ test: propagate-lock-delete test: tuplelock-conflict test: tuplelock-update test: tuplelock-upgrade-no-deadlock +test: tuplelock-partition test: freeze-the-dead test: nowait test: nowait-2 diff --git a/src/test/isolation/specs/tuplelock-partition.spec b/src/test/isolation/specs/tuplelock-partition.spec new file mode 100644 index 0000000000000..9a585cb161519 --- /dev/null +++ b/src/test/isolation/specs/tuplelock-partition.spec @@ -0,0 +1,32 @@ +# Test tuple locking on INSERT ON CONFLICT UPDATE on a partitioned table. + +setup +{ + DROP TABLE IF EXISTS parttab; + CREATE TABLE parttab (col1 text, key INTEGER PRIMARY KEY, col2 text) PARTITION BY LIST (key); + CREATE TABLE parttab1 (key INTEGER PRIMARY KEY, col1 text, col2 text); + CREATE TABLE parttab2 (key INTEGER PRIMARY KEY, col1 text, col2 text); + ALTER TABLE parttab ATTACH PARTITION parttab1 FOR VALUES IN (1); + ALTER TABLE parttab ATTACH PARTITION parttab2 FOR VALUES IN (2); + INSERT INTO parttab (key, col1, col2) VALUES (1, 'a', 'b'); +} + +teardown +{ + DROP TABLE parttab; +} + +session "s1" +step "s1b" { BEGIN; } +step "s1update_nokey" { INSERT INTO parttab (key, col1, col2) VALUES (1, 'a', 'b') ON CONFLICT (key) DO UPDATE SET col1 = 'x', col2 = 'y'; } +step "s1update_key" { INSERT INTO parttab (key, col1, col2) VALUES (1, 'a', 'b') ON CONFLICT (key) DO UPDATE SET key=1; } +step "s1c" { COMMIT; } + +session "s2" +step "s2locktuple" { SELECT * FROM parttab FOR KEY SHARE; } + +# INSERT ON CONFLICT UPDATE, performs an UPDATE on non-key columns +permutation "s1b" "s1update_nokey" "s2locktuple" "s1c" + +# INSERT ON CONFLICT UPDATE, performs an UPDATE on key column +permutation "s1b" "s1update_key" "s2locktuple" "s1c" diff --git a/src/test/modules/test_regex/expected/test_regex.out b/src/test/modules/test_regex/expected/test_regex.out index 0dc2265d8b2dd..21282789c2790 100644 --- a/src/test/modules/test_regex/expected/test_regex.out +++ b/src/test/modules/test_regex/expected/test_regex.out @@ -614,7 +614,7 @@ ERROR: invalid regular expression: quantifier operand invalid -- expectError 7.15 - a*+ BADRPT select * from test_regex('a*+', '', '-'); ERROR: invalid regular expression: quantifier operand invalid --- test for ancient brenext() bug; not currently in Tcl +-- tests for ancient brenext() bugs; not currently in Tcl select * from test_regex('.*b', 'aaabbb', 'b'); test_regex ------------ @@ -622,6 +622,13 @@ select * from test_regex('.*b', 'aaabbb', 'b'); {aaabbb} (2 rows) +select * from test_regex('.\{1,10\}', 'abcdef', 'bQ'); + test_regex +----------------- + {0,REG_UBOUNDS} + {abcdef} +(2 rows) + -- doing 8 "braces" -- expectMatch 8.1 NQ "a{0,1}" "" "" select * from test_regex('a{0,1}', '', 'NQ'); @@ -3315,6 +3322,21 @@ select * from test_regex('(?=b)b', 'a', 'HP'); {0,REG_ULOOKAROUND,REG_UNONPOSIX} (1 row) +-- expectMatch 23.9 HP ...(?!.) abcde cde +select * from test_regex('...(?!.)', 'abcde', 'HP'); + test_regex +----------------------------------- + {0,REG_ULOOKAROUND,REG_UNONPOSIX} + {cde} +(2 rows) + +-- expectNomatch 23.10 HP ...(?=.) abc +select * from test_regex('...(?=.)', 'abc', 'HP'); + test_regex +----------------------------------- + {0,REG_ULOOKAROUND,REG_UNONPOSIX} +(1 row) + -- Postgres addition: lookbehind constraints -- expectMatch 23.11 HPN (?<=a)b* ab b select * from test_regex('(?<=a)b*', 'ab', 'HPN'); @@ -3376,6 +3398,39 @@ select * from test_regex('(?<=b)b', 'b', 'HP'); {0,REG_ULOOKAROUND,REG_UNONPOSIX} (1 row) +-- expectMatch 23.19 HP (?<=.).. abcde bc +select * from test_regex('(?<=.)..', 'abcde', 'HP'); + test_regex +----------------------------------- + {0,REG_ULOOKAROUND,REG_UNONPOSIX} + {bc} +(2 rows) + +-- expectMatch 23.20 HP (?<=..)a* aaabb a +select * from test_regex('(?<=..)a*', 'aaabb', 'HP'); + test_regex +----------------------------------- + {0,REG_ULOOKAROUND,REG_UNONPOSIX} + {a} +(2 rows) + +-- expectMatch 23.21 HP (?<=..)b* aaabb {} +-- Note: empty match here is correct, it matches after the first 2 characters +select * from test_regex('(?<=..)b*', 'aaabb', 'HP'); + test_regex +----------------------------------- + {0,REG_ULOOKAROUND,REG_UNONPOSIX} + {""} +(2 rows) + +-- expectMatch 23.22 HP (?<=..)b+ aaabb bb +select * from test_regex('(?<=..)b+', 'aaabb', 'HP'); + test_regex +----------------------------------- + {0,REG_ULOOKAROUND,REG_UNONPOSIX} + {bb} +(2 rows) + -- doing 24 "non-greedy quantifiers" -- expectMatch 24.1 PT ab+? abb ab select * from test_regex('ab+?', 'abb', 'PT'); diff --git a/src/test/modules/test_regex/sql/test_regex.sql b/src/test/modules/test_regex/sql/test_regex.sql index 1a2bfa6235727..31e947ee9c6f3 100644 --- a/src/test/modules/test_regex/sql/test_regex.sql +++ b/src/test/modules/test_regex/sql/test_regex.sql @@ -214,8 +214,9 @@ select * from test_regex('a?*', '', '-'); select * from test_regex('a+*', '', '-'); -- expectError 7.15 - a*+ BADRPT select * from test_regex('a*+', '', '-'); --- test for ancient brenext() bug; not currently in Tcl +-- tests for ancient brenext() bugs; not currently in Tcl select * from test_regex('.*b', 'aaabbb', 'b'); +select * from test_regex('.\{1,10\}', 'abcdef', 'bQ'); -- doing 8 "braces" @@ -1049,6 +1050,10 @@ select * from test_regex('a(?!b)b*', 'a', 'HP'); select * from test_regex('(?=b)b', 'b', 'HP'); -- expectNomatch 23.8 HP (?=b)b a select * from test_regex('(?=b)b', 'a', 'HP'); +-- expectMatch 23.9 HP ...(?!.) abcde cde +select * from test_regex('...(?!.)', 'abcde', 'HP'); +-- expectNomatch 23.10 HP ...(?=.) abc +select * from test_regex('...(?=.)', 'abc', 'HP'); -- Postgres addition: lookbehind constraints @@ -1068,6 +1073,15 @@ select * from test_regex('a(? 0'; diff --git a/src/test/regress/expected/create_index.out b/src/test/regress/expected/create_index.out index ce734f7ef36be..830fdddf244cf 100644 --- a/src/test/regress/expected/create_index.out +++ b/src/test/regress/expected/create_index.out @@ -2559,6 +2559,7 @@ CREATE UNIQUE INDEX concur_exprs_index_pred ON concur_exprs_tab (c1) CREATE UNIQUE INDEX concur_exprs_index_pred_2 ON concur_exprs_tab ((1 / c1)) WHERE ('-H') >= (c2::TEXT) COLLATE "C"; +ALTER INDEX concur_exprs_index_expr ALTER COLUMN 1 SET STATISTICS 100; ANALYZE concur_exprs_tab; SELECT starelid::regclass, count(*) FROM pg_statistic WHERE starelid IN ( 'concur_exprs_index_expr'::regclass, @@ -2638,6 +2639,20 @@ SELECT starelid::regclass, count(*) FROM pg_statistic WHERE starelid IN ( concur_exprs_index_expr | 1 (1 row) +-- attstattarget should remain intact +SELECT attrelid::regclass, attnum, attstattarget + FROM pg_attribute WHERE attrelid IN ( + 'concur_exprs_index_expr'::regclass, + 'concur_exprs_index_pred'::regclass, + 'concur_exprs_index_pred_2'::regclass) + ORDER BY attrelid::regclass::text, attnum; + attrelid | attnum | attstattarget +---------------------------+--------+--------------- + concur_exprs_index_expr | 1 | 100 + concur_exprs_index_pred | 1 | -1 + concur_exprs_index_pred_2 | 1 | -1 +(3 rows) + DROP TABLE concur_exprs_tab; -- Temporary tables and on-commit actions, where CONCURRENTLY is ignored. -- ON COMMIT PRESERVE ROWS, the default. diff --git a/src/test/regress/expected/incremental_sort.out b/src/test/regress/expected/incremental_sort.out index a8cbfd9f5f995..68ca321163b52 100644 --- a/src/test/regress/expected/incremental_sort.out +++ b/src/test/regress/expected/incremental_sort.out @@ -675,6 +675,32 @@ select * from (select * from t order by a) s order by a, b limit 70; 9 | 70 (70 rows) +-- Checks case where we hit a group boundary at the last tuple of a batch. +-- Because the full sort state is bounded, we scan 64 tuples (the mode +-- transition point) but only retain 5. Thus when we transition modes, all +-- tuples in the full sort state have different prefix keys. +explain (costs off) select * from (select * from t order by a) s order by a, b limit 5; + QUERY PLAN +--------------------------------- + Limit + -> Incremental Sort + Sort Key: t.a, t.b + Presorted Key: t.a + -> Sort + Sort Key: t.a + -> Seq Scan on t +(7 rows) + +select * from (select * from t order by a) s order by a, b limit 5; + a | b +---+--- + 1 | 1 + 2 | 2 + 3 | 3 + 4 | 4 + 9 | 5 +(5 rows) + -- Test rescan. begin; -- We force the planner to choose a plan with incremental sort on the right side diff --git a/src/test/regress/expected/inet.out b/src/test/regress/expected/inet.out index 298af7e913ec2..d5bf9e2aaa5f9 100644 --- a/src/test/regress/expected/inet.out +++ b/src/test/regress/expected/inet.out @@ -88,6 +88,28 @@ SELECT i AS inet, host(i), text(i), family(i) FROM INET_TBL; ::4.3.2.1/24 | ::4.3.2.1 | ::4.3.2.1/24 | 6 (17 rows) +SELECT c AS cidr, abbrev(c) FROM INET_TBL; + cidr | abbrev +--------------------+-------------------- + 192.168.1.0/24 | 192.168.1/24 + 192.168.1.0/26 | 192.168.1.0/26 + 192.168.1.0/24 | 192.168.1/24 + 192.168.1.0/24 | 192.168.1/24 + 192.168.1.0/24 | 192.168.1/24 + 192.168.1.0/24 | 192.168.1/24 + 10.0.0.0/8 | 10/8 + 10.0.0.0/32 | 10.0.0.0/32 + 10.1.2.3/32 | 10.1.2.3/32 + 10.1.2.0/24 | 10.1.2/24 + 10.1.0.0/16 | 10.1/16 + 10.0.0.0/8 | 10/8 + 10.0.0.0/8 | 10/8 + 10.0.0.0/8 | 10/8 + 10:23::f1/128 | 10:23::f1/128 + 10:23::8000/113 | 10:23::8000/113 + ::ffff:1.2.3.4/128 | ::ffff:1.2.3.4/128 +(17 rows) + SELECT c AS cidr, broadcast(c), i AS inet, broadcast(i) FROM INET_TBL; cidr | broadcast | inet | broadcast diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out index ed98fa8376ff1..46a69fc0dc9dc 100644 --- a/src/test/regress/expected/privileges.out +++ b/src/test/regress/expected/privileges.out @@ -476,8 +476,54 @@ SELECT 1 FROM atest5 a JOIN atest5 b USING (two); -- fail ERROR: permission denied for table atest5 SELECT 1 FROM atest5 a NATURAL JOIN atest5 b; -- fail ERROR: permission denied for table atest5 +SELECT * FROM (atest5 a JOIN atest5 b USING (one)) j; -- fail +ERROR: permission denied for table atest5 +SELECT j.* FROM (atest5 a JOIN atest5 b USING (one)) j; -- fail +ERROR: permission denied for table atest5 SELECT (j.*) IS NULL FROM (atest5 a JOIN atest5 b USING (one)) j; -- fail ERROR: permission denied for table atest5 +SELECT one FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)) j; -- ok + one +----- + 1 +(1 row) + +SELECT j.one FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)) j; -- ok + one +----- + 1 +(1 row) + +SELECT two FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)) j; -- fail +ERROR: permission denied for table atest5 +SELECT j.two FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)) j; -- fail +ERROR: permission denied for table atest5 +SELECT y FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)) j; -- fail +ERROR: permission denied for table atest5 +SELECT j.y FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)) j; -- fail +ERROR: permission denied for table atest5 +SELECT * FROM (atest5 a JOIN atest5 b USING (one)); -- fail +ERROR: permission denied for table atest5 +SELECT a.* FROM (atest5 a JOIN atest5 b USING (one)); -- fail +ERROR: permission denied for table atest5 +SELECT (a.*) IS NULL FROM (atest5 a JOIN atest5 b USING (one)); -- fail +ERROR: permission denied for table atest5 +SELECT two FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)); -- fail +ERROR: permission denied for table atest5 +SELECT a.two FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)); -- fail +ERROR: permission denied for table atest5 +SELECT y FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)); -- fail +ERROR: permission denied for table atest5 +SELECT b.y FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)); -- fail +ERROR: permission denied for table atest5 +SELECT y FROM (atest5 a LEFT JOIN atest5 b(one,x,y,z) USING (one)); -- fail +ERROR: permission denied for table atest5 +SELECT b.y FROM (atest5 a LEFT JOIN atest5 b(one,x,y,z) USING (one)); -- fail +ERROR: permission denied for table atest5 +SELECT y FROM (atest5 a FULL JOIN atest5 b(one,x,y,z) USING (one)); -- fail +ERROR: permission denied for table atest5 +SELECT b.y FROM (atest5 a FULL JOIN atest5 b(one,x,y,z) USING (one)); -- fail +ERROR: permission denied for table atest5 SELECT 1 FROM atest5 WHERE two = 2; -- fail ERROR: permission denied for table atest5 SELECT * FROM atest1, atest5; -- fail @@ -618,6 +664,45 @@ ERROR: new row for relation "t1" violates check constraint "t1_c3_check" DETAIL: Failing row contains (c1, c3) = (1, 10). SET SESSION AUTHORIZATION regress_priv_user1; DROP TABLE t1; +-- check error reporting with column privs on a partitioned table +CREATE TABLE errtst(a text, b text NOT NULL, c text, secret1 text, secret2 text) PARTITION BY LIST (a); +CREATE TABLE errtst_part_1(secret2 text, c text, a text, b text NOT NULL, secret1 text); +CREATE TABLE errtst_part_2(secret1 text, secret2 text, a text, c text, b text NOT NULL); +ALTER TABLE errtst ATTACH PARTITION errtst_part_1 FOR VALUES IN ('aaa'); +ALTER TABLE errtst ATTACH PARTITION errtst_part_2 FOR VALUES IN ('aaaa'); +GRANT SELECT (a, b, c) ON TABLE errtst TO regress_priv_user2; +GRANT UPDATE (a, b, c) ON TABLE errtst TO regress_priv_user2; +GRANT INSERT (a, b, c) ON TABLE errtst TO regress_priv_user2; +INSERT INTO errtst_part_1 (a, b, c, secret1, secret2) +VALUES ('aaa', 'bbb', 'ccc', 'the body', 'is in the attic'); +SET SESSION AUTHORIZATION regress_priv_user2; +-- Perform a few updates that violate the NOT NULL constraint. Make sure +-- the error messages don't leak the secret fields. +-- simple insert. +INSERT INTO errtst (a, b) VALUES ('aaa', NULL); +ERROR: null value in column "b" of relation "errtst_part_1" violates not-null constraint +DETAIL: Failing row contains (a, b, c) = (aaa, null, null). +-- simple update. +UPDATE errtst SET b = NULL; +ERROR: null value in column "b" of relation "errtst_part_1" violates not-null constraint +DETAIL: Failing row contains (b) = (null). +-- partitioning key is updated, doesn't move the row. +UPDATE errtst SET a = 'aaa', b = NULL; +ERROR: null value in column "b" of relation "errtst_part_1" violates not-null constraint +DETAIL: Failing row contains (a, b, c) = (aaa, null, ccc). +-- row is moved to another partition. +UPDATE errtst SET a = 'aaaa', b = NULL; +ERROR: null value in column "b" of relation "errtst_part_2" violates not-null constraint +DETAIL: Failing row contains (a, b, c) = (aaaa, null, ccc). +-- row is moved to another partition. This differs from the previous case in +-- that the new partition is excluded by constraint exclusion, so its +-- ResultRelInfo is not created at ExecInitModifyTable, but needs to be +-- constructed on the fly when the updated tuple is routed to it. +UPDATE errtst SET a = 'aaaa', b = NULL WHERE a = 'aaa'; +ERROR: null value in column "b" of relation "errtst_part_2" violates not-null constraint +DETAIL: Failing row contains (a, b, c) = (aaaa, null, ccc). +SET SESSION AUTHORIZATION regress_priv_user1; +DROP TABLE errtst; -- test column-level privileges when involved with DELETE SET SESSION AUTHORIZATION regress_priv_user1; ALTER TABLE atest6 ADD COLUMN three integer; diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out index 6173473de9d68..10a1f34ebc172 100644 --- a/src/test/regress/expected/rules.out +++ b/src/test/regress/expected/rules.out @@ -1394,8 +1394,9 @@ pg_locks| SELECT l.locktype, l.pid, l.mode, l.granted, - l.fastpath - FROM pg_lock_status() l(locktype, database, relation, page, tuple, virtualxid, transactionid, classid, objid, objsubid, virtualtransaction, pid, mode, granted, fastpath); + l.fastpath, + l.waitstart + FROM pg_lock_status() l(locktype, database, relation, page, tuple, virtualxid, transactionid, classid, objid, objsubid, virtualtransaction, pid, mode, granted, fastpath, waitstart); pg_matviews| SELECT n.nspname AS schemaname, c.relname AS matviewname, pg_get_userbyid(c.relowner) AS matviewowner, @@ -2801,16 +2802,27 @@ select reltoastrelid, relkind, relfrozenxid (1 row) drop view rules_fooview; --- trying to convert a partitioned table to view is not allowed +-- cannot convert an inheritance parent or child to a view, though +create table rules_fooview (x int, y text); +create table rules_fooview_child () inherits (rules_fooview); +create rule "_RETURN" as on select to rules_fooview do instead + select 1 as x, 'aaa'::text as y; +ERROR: could not convert table "rules_fooview" to a view because it has child tables +create rule "_RETURN" as on select to rules_fooview_child do instead + select 1 as x, 'aaa'::text as y; +ERROR: could not convert table "rules_fooview_child" to a view because it has parent tables +drop table rules_fooview cascade; +NOTICE: drop cascades to table rules_fooview_child +-- likewise, converting a partitioned table or partition to view is not allowed create table rules_fooview (x int, y text) partition by list (x); create rule "_RETURN" as on select to rules_fooview do instead select 1 as x, 'aaa'::text as y; ERROR: cannot convert partitioned table "rules_fooview" to a view --- nor can one convert a partition to view create table rules_fooview_part partition of rules_fooview for values in (1); create rule "_RETURN" as on select to rules_fooview_part do instead select 1 as x, 'aaa'::text as y; ERROR: cannot convert partition "rules_fooview_part" to a view +drop table rules_fooview; -- -- check for planner problems with complex inherited UPDATES -- diff --git a/src/test/regress/expected/strings.out b/src/test/regress/expected/strings.out index 7c91afa6e4a9a..fb4573d85ff7f 100644 --- a/src/test/regress/expected/strings.out +++ b/src/test/regress/expected/strings.out @@ -1035,6 +1035,30 @@ SELECT 'indio' NOT LIKE 'in_o' AS "true"; t (1 row) +SELECT 'abc'::name LIKE '_b_' AS "true"; + true +------ + t +(1 row) + +SELECT 'abc'::name NOT LIKE '_b_' AS "false"; + false +------- + f +(1 row) + +SELECT 'abc'::bytea LIKE '_b_'::bytea AS "true"; + true +------ + t +(1 row) + +SELECT 'abc'::bytea NOT LIKE '_b_'::bytea AS "false"; + false +------- + f +(1 row) + -- unused escape character SELECT 'hawkeye' LIKE 'h%' ESCAPE '#' AS "true"; true @@ -1158,6 +1182,18 @@ SELECT 'i_dio' NOT LIKE 'i$_d%o' ESCAPE '$' AS "false"; f (1 row) +SELECT 'a_c'::bytea LIKE 'a$__'::bytea ESCAPE '$'::bytea AS "true"; + true +------ + t +(1 row) + +SELECT 'a_c'::bytea NOT LIKE 'a$__'::bytea ESCAPE '$'::bytea AS "false"; + false +------- + f +(1 row) + -- escape character same as pattern character SELECT 'maca' LIKE 'm%aca' ESCAPE '%' AS "true"; true @@ -1271,6 +1307,18 @@ SELECT 'Hawkeye' NOT ILIKE 'h%' AS "false"; f (1 row) +SELECT 'ABC'::name ILIKE '_b_' AS "true"; + true +------ + t +(1 row) + +SELECT 'ABC'::name NOT ILIKE '_b_' AS "false"; + false +------- + f +(1 row) + -- -- test %/_ combination cases, cf bugs #4821 and #5478 -- diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out index 2fa9bce66a422..14a430221d63c 100644 --- a/src/test/regress/expected/subscription.out +++ b/src/test/regress/expected/subscription.out @@ -201,6 +201,29 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); (1 row) DROP SUBSCRIPTION regress_testsub; +CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub + WITH (connect = false, create_slot = false, copy_data = false); +WARNING: tables were not subscribed, you will have to run ALTER SUBSCRIPTION ... REFRESH PUBLICATION to subscribe the tables +ALTER SUBSCRIPTION regress_testsub ENABLE; +-- fail - ALTER SUBSCRIPTION with refresh is not allowed in a transaction +-- block or function +BEGIN; +ALTER SUBSCRIPTION regress_testsub SET PUBLICATION mypub WITH (refresh = true); +ERROR: ALTER SUBSCRIPTION with refresh cannot run inside a transaction block +END; +BEGIN; +ALTER SUBSCRIPTION regress_testsub REFRESH PUBLICATION; +ERROR: ALTER SUBSCRIPTION ... REFRESH cannot run inside a transaction block +END; +CREATE FUNCTION func() RETURNS VOID AS +$$ ALTER SUBSCRIPTION regress_testsub SET PUBLICATION mypub WITH (refresh = true) $$ LANGUAGE SQL; +SELECT func(); +ERROR: ALTER SUBSCRIPTION with refresh cannot be executed from a function +CONTEXT: SQL function "func" statement 1 +ALTER SUBSCRIPTION regress_testsub DISABLE; +ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); +DROP SUBSCRIPTION regress_testsub; +DROP FUNCTION func; RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; DROP ROLE regress_subscription_user2; diff --git a/src/test/regress/expected/sysviews.out b/src/test/regress/expected/sysviews.out index 81bdacf59daa5..6d048e309cb09 100644 --- a/src/test/regress/expected/sysviews.out +++ b/src/test/regress/expected/sysviews.out @@ -83,6 +83,13 @@ select count(*) = 1 as ok from pg_stat_wal; t (1 row) +-- We expect no walreceiver running in this test +select count(*) = 0 as ok from pg_stat_wal_receiver; + ok +---- + t +(1 row) + -- This is to record the prevailing planner enable_foo settings during -- a regression test run. select name, setting from pg_settings where name like 'enable%'; diff --git a/src/test/regress/expected/transactions.out b/src/test/regress/expected/transactions.out index 1b033100298d4..75dc6558d82ec 100644 --- a/src/test/regress/expected/transactions.out +++ b/src/test/regress/expected/transactions.out @@ -774,6 +774,46 @@ SHOW transaction_deferrable; (1 row) INSERT INTO abc VALUES (5); +COMMIT; +START TRANSACTION ISOLATION LEVEL REPEATABLE READ, READ WRITE, DEFERRABLE; +SHOW transaction_isolation; + transaction_isolation +----------------------- + repeatable read +(1 row) + +SHOW transaction_read_only; + transaction_read_only +----------------------- + off +(1 row) + +SHOW transaction_deferrable; + transaction_deferrable +------------------------ + on +(1 row) + +SAVEPOINT x; +COMMIT AND CHAIN; -- TBLOCK_SUBCOMMIT +SHOW transaction_isolation; + transaction_isolation +----------------------- + repeatable read +(1 row) + +SHOW transaction_read_only; + transaction_read_only +----------------------- + off +(1 row) + +SHOW transaction_deferrable; + transaction_deferrable +------------------------ + on +(1 row) + COMMIT; -- different mix of options just for fun START TRANSACTION ISOLATION LEVEL SERIALIZABLE, READ WRITE, NOT DEFERRABLE; diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out index 3fccb183c0fd4..90cea6caa86d3 100644 --- a/src/test/regress/expected/vacuum.out +++ b/src/test/regress/expected/vacuum.out @@ -252,6 +252,12 @@ RESET default_transaction_isolation; BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE; ANALYZE vactst; COMMIT; +-- PROCESS_TOAST option +ALTER TABLE vactst ADD COLUMN t TEXT; +ALTER TABLE vactst ALTER COLUMN t SET STORAGE EXTERNAL; +VACUUM (PROCESS_TOAST FALSE) vactst; +VACUUM (PROCESS_TOAST FALSE, FULL) vactst; +ERROR: PROCESS_TOAST required with VACUUM FULL DROP TABLE vaccluster; DROP TABLE vactst; DROP TABLE vacparted; diff --git a/src/test/regress/sql/create_function_3.sql b/src/test/regress/sql/create_function_3.sql index bd108a918fbf0..549b34b4b2a9d 100644 --- a/src/test/regress/sql/create_function_3.sql +++ b/src/test/regress/sql/create_function_3.sql @@ -177,6 +177,30 @@ SELECT routine_name, ordinal_position, parameter_name, parameter_default DROP FUNCTION functest_IS_1(int, int, text), functest_IS_2(int), functest_IS_3(int); +-- routine usage views + +CREATE FUNCTION functest_IS_4a() RETURNS int LANGUAGE SQL AS 'SELECT 1'; +CREATE FUNCTION functest_IS_4b(x int DEFAULT functest_IS_4a()) RETURNS int LANGUAGE SQL AS 'SELECT x'; + +CREATE SEQUENCE functest1; +CREATE FUNCTION functest_IS_5(x int DEFAULT nextval('functest1')) + RETURNS int + LANGUAGE SQL + AS 'SELECT x'; + +SELECT r0.routine_name, r1.routine_name + FROM information_schema.routine_routine_usage rru + JOIN information_schema.routines r0 ON r0.specific_name = rru.specific_name + JOIN information_schema.routines r1 ON r1.specific_name = rru.routine_name; +SELECT routine_name, sequence_name FROM information_schema.routine_sequence_usage; +-- currently empty +SELECT routine_name, table_name, column_name FROM information_schema.routine_column_usage; +SELECT routine_name, table_name FROM information_schema.routine_table_usage; + +DROP FUNCTION functest_IS_4a CASCADE; +DROP SEQUENCE functest1 CASCADE; + + -- overload CREATE FUNCTION functest_B_2(bigint) RETURNS bool LANGUAGE 'sql' IMMUTABLE AS 'SELECT $1 > 0'; diff --git a/src/test/regress/sql/create_index.sql b/src/test/regress/sql/create_index.sql index fd4f30876e188..8bc76f7c6f187 100644 --- a/src/test/regress/sql/create_index.sql +++ b/src/test/regress/sql/create_index.sql @@ -1079,6 +1079,7 @@ CREATE UNIQUE INDEX concur_exprs_index_pred ON concur_exprs_tab (c1) CREATE UNIQUE INDEX concur_exprs_index_pred_2 ON concur_exprs_tab ((1 / c1)) WHERE ('-H') >= (c2::TEXT) COLLATE "C"; +ALTER INDEX concur_exprs_index_expr ALTER COLUMN 1 SET STATISTICS 100; ANALYZE concur_exprs_tab; SELECT starelid::regclass, count(*) FROM pg_statistic WHERE starelid IN ( 'concur_exprs_index_expr'::regclass, @@ -1103,6 +1104,13 @@ SELECT starelid::regclass, count(*) FROM pg_statistic WHERE starelid IN ( 'concur_exprs_index_pred'::regclass, 'concur_exprs_index_pred_2'::regclass) GROUP BY starelid ORDER BY starelid::regclass::text; +-- attstattarget should remain intact +SELECT attrelid::regclass, attnum, attstattarget + FROM pg_attribute WHERE attrelid IN ( + 'concur_exprs_index_expr'::regclass, + 'concur_exprs_index_pred'::regclass, + 'concur_exprs_index_pred_2'::regclass) + ORDER BY attrelid::regclass::text, attnum; DROP TABLE concur_exprs_tab; -- Temporary tables and on-commit actions, where CONCURRENTLY is ignored. diff --git a/src/test/regress/sql/incremental_sort.sql b/src/test/regress/sql/incremental_sort.sql index 62a037b0cfb67..81429164d45df 100644 --- a/src/test/regress/sql/incremental_sort.sql +++ b/src/test/regress/sql/incremental_sort.sql @@ -149,6 +149,13 @@ insert into t(a, b) select (case when i < 5 then i else 9 end), i from generate_ analyze t; explain (costs off) select * from (select * from t order by a) s order by a, b limit 70; select * from (select * from t order by a) s order by a, b limit 70; +-- Checks case where we hit a group boundary at the last tuple of a batch. +-- Because the full sort state is bounded, we scan 64 tuples (the mode +-- transition point) but only retain 5. Thus when we transition modes, all +-- tuples in the full sort state have different prefix keys. +explain (costs off) select * from (select * from t order by a) s order by a, b limit 5; +select * from (select * from t order by a) s order by a, b limit 5; + -- Test rescan. begin; -- We force the planner to choose a plan with incremental sort on the right side diff --git a/src/test/regress/sql/inet.sql b/src/test/regress/sql/inet.sql index 23e5b93e69d26..d2ac85bb7f052 100644 --- a/src/test/regress/sql/inet.sql +++ b/src/test/regress/sql/inet.sql @@ -34,6 +34,7 @@ SELECT c AS cidr, i AS inet FROM INET_TBL; -- now test some support functions SELECT i AS inet, host(i), text(i), family(i) FROM INET_TBL; +SELECT c AS cidr, abbrev(c) FROM INET_TBL; SELECT c AS cidr, broadcast(c), i AS inet, broadcast(i) FROM INET_TBL; SELECT c AS cidr, network(c) AS "network(cidr)", diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql index becbc196713a0..6277140cfd3e3 100644 --- a/src/test/regress/sql/privileges.sql +++ b/src/test/regress/sql/privileges.sql @@ -303,7 +303,26 @@ SELECT 1 FROM atest5; -- ok SELECT 1 FROM atest5 a JOIN atest5 b USING (one); -- ok SELECT 1 FROM atest5 a JOIN atest5 b USING (two); -- fail SELECT 1 FROM atest5 a NATURAL JOIN atest5 b; -- fail +SELECT * FROM (atest5 a JOIN atest5 b USING (one)) j; -- fail +SELECT j.* FROM (atest5 a JOIN atest5 b USING (one)) j; -- fail SELECT (j.*) IS NULL FROM (atest5 a JOIN atest5 b USING (one)) j; -- fail +SELECT one FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)) j; -- ok +SELECT j.one FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)) j; -- ok +SELECT two FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)) j; -- fail +SELECT j.two FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)) j; -- fail +SELECT y FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)) j; -- fail +SELECT j.y FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)) j; -- fail +SELECT * FROM (atest5 a JOIN atest5 b USING (one)); -- fail +SELECT a.* FROM (atest5 a JOIN atest5 b USING (one)); -- fail +SELECT (a.*) IS NULL FROM (atest5 a JOIN atest5 b USING (one)); -- fail +SELECT two FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)); -- fail +SELECT a.two FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)); -- fail +SELECT y FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)); -- fail +SELECT b.y FROM (atest5 a JOIN atest5 b(one,x,y,z) USING (one)); -- fail +SELECT y FROM (atest5 a LEFT JOIN atest5 b(one,x,y,z) USING (one)); -- fail +SELECT b.y FROM (atest5 a LEFT JOIN atest5 b(one,x,y,z) USING (one)); -- fail +SELECT y FROM (atest5 a FULL JOIN atest5 b(one,x,y,z) USING (one)); -- fail +SELECT b.y FROM (atest5 a FULL JOIN atest5 b(one,x,y,z) USING (one)); -- fail SELECT 1 FROM atest5 WHERE two = 2; -- fail SELECT * FROM atest1, atest5; -- fail SELECT atest1.* FROM atest1, atest5; -- ok @@ -403,6 +422,44 @@ UPDATE t1 SET c3 = 10; -- fail, but see columns with SELECT rights, or being mod SET SESSION AUTHORIZATION regress_priv_user1; DROP TABLE t1; +-- check error reporting with column privs on a partitioned table +CREATE TABLE errtst(a text, b text NOT NULL, c text, secret1 text, secret2 text) PARTITION BY LIST (a); +CREATE TABLE errtst_part_1(secret2 text, c text, a text, b text NOT NULL, secret1 text); +CREATE TABLE errtst_part_2(secret1 text, secret2 text, a text, c text, b text NOT NULL); + +ALTER TABLE errtst ATTACH PARTITION errtst_part_1 FOR VALUES IN ('aaa'); +ALTER TABLE errtst ATTACH PARTITION errtst_part_2 FOR VALUES IN ('aaaa'); + +GRANT SELECT (a, b, c) ON TABLE errtst TO regress_priv_user2; +GRANT UPDATE (a, b, c) ON TABLE errtst TO regress_priv_user2; +GRANT INSERT (a, b, c) ON TABLE errtst TO regress_priv_user2; + +INSERT INTO errtst_part_1 (a, b, c, secret1, secret2) +VALUES ('aaa', 'bbb', 'ccc', 'the body', 'is in the attic'); + +SET SESSION AUTHORIZATION regress_priv_user2; + +-- Perform a few updates that violate the NOT NULL constraint. Make sure +-- the error messages don't leak the secret fields. + +-- simple insert. +INSERT INTO errtst (a, b) VALUES ('aaa', NULL); +-- simple update. +UPDATE errtst SET b = NULL; +-- partitioning key is updated, doesn't move the row. +UPDATE errtst SET a = 'aaa', b = NULL; +-- row is moved to another partition. +UPDATE errtst SET a = 'aaaa', b = NULL; + +-- row is moved to another partition. This differs from the previous case in +-- that the new partition is excluded by constraint exclusion, so its +-- ResultRelInfo is not created at ExecInitModifyTable, but needs to be +-- constructed on the fly when the updated tuple is routed to it. +UPDATE errtst SET a = 'aaaa', b = NULL WHERE a = 'aaa'; + +SET SESSION AUTHORIZATION regress_priv_user1; +DROP TABLE errtst; + -- test column-level privileges when involved with DELETE SET SESSION AUTHORIZATION regress_priv_user1; ALTER TABLE atest6 ADD COLUMN three integer; diff --git a/src/test/regress/sql/rules.sql b/src/test/regress/sql/rules.sql index 744cf7ab546e0..6ec37c4381102 100644 --- a/src/test/regress/sql/rules.sql +++ b/src/test/regress/sql/rules.sql @@ -901,16 +901,28 @@ select reltoastrelid, relkind, relfrozenxid drop view rules_fooview; --- trying to convert a partitioned table to view is not allowed +-- cannot convert an inheritance parent or child to a view, though +create table rules_fooview (x int, y text); +create table rules_fooview_child () inherits (rules_fooview); + +create rule "_RETURN" as on select to rules_fooview do instead + select 1 as x, 'aaa'::text as y; +create rule "_RETURN" as on select to rules_fooview_child do instead + select 1 as x, 'aaa'::text as y; + +drop table rules_fooview cascade; + +-- likewise, converting a partitioned table or partition to view is not allowed create table rules_fooview (x int, y text) partition by list (x); create rule "_RETURN" as on select to rules_fooview do instead select 1 as x, 'aaa'::text as y; --- nor can one convert a partition to view create table rules_fooview_part partition of rules_fooview for values in (1); create rule "_RETURN" as on select to rules_fooview_part do instead select 1 as x, 'aaa'::text as y; +drop table rules_fooview; + -- -- check for planner problems with complex inherited UPDATES -- diff --git a/src/test/regress/sql/strings.sql b/src/test/regress/sql/strings.sql index ef4bfb008acec..57a48c9d0b08c 100644 --- a/src/test/regress/sql/strings.sql +++ b/src/test/regress/sql/strings.sql @@ -300,6 +300,12 @@ SELECT 'indio' NOT LIKE 'in__o' AS "false"; SELECT 'indio' LIKE 'in_o' AS "false"; SELECT 'indio' NOT LIKE 'in_o' AS "true"; +SELECT 'abc'::name LIKE '_b_' AS "true"; +SELECT 'abc'::name NOT LIKE '_b_' AS "false"; + +SELECT 'abc'::bytea LIKE '_b_'::bytea AS "true"; +SELECT 'abc'::bytea NOT LIKE '_b_'::bytea AS "false"; + -- unused escape character SELECT 'hawkeye' LIKE 'h%' ESCAPE '#' AS "true"; SELECT 'hawkeye' NOT LIKE 'h%' ESCAPE '#' AS "false"; @@ -333,6 +339,9 @@ SELECT 'i_dio' NOT LIKE 'i$_nd_o' ESCAPE '$' AS "true"; SELECT 'i_dio' LIKE 'i$_d%o' ESCAPE '$' AS "true"; SELECT 'i_dio' NOT LIKE 'i$_d%o' ESCAPE '$' AS "false"; +SELECT 'a_c'::bytea LIKE 'a$__'::bytea ESCAPE '$'::bytea AS "true"; +SELECT 'a_c'::bytea NOT LIKE 'a$__'::bytea ESCAPE '$'::bytea AS "false"; + -- escape character same as pattern character SELECT 'maca' LIKE 'm%aca' ESCAPE '%' AS "true"; SELECT 'maca' NOT LIKE 'm%aca' ESCAPE '%' AS "false"; @@ -367,6 +376,9 @@ SELECT 'hawkeye' NOT ILIKE 'H%Eye' AS "false"; SELECT 'Hawkeye' ILIKE 'h%' AS "true"; SELECT 'Hawkeye' NOT ILIKE 'h%' AS "false"; +SELECT 'ABC'::name ILIKE '_b_' AS "true"; +SELECT 'ABC'::name NOT ILIKE '_b_' AS "false"; + -- -- test %/_ combination cases, cf bugs #4821 and #5478 -- diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql index 14fa0b247e1b2..81e65e5e642a7 100644 --- a/src/test/regress/sql/subscription.sql +++ b/src/test/regress/sql/subscription.sql @@ -147,6 +147,30 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); DROP SUBSCRIPTION regress_testsub; +CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub + WITH (connect = false, create_slot = false, copy_data = false); + +ALTER SUBSCRIPTION regress_testsub ENABLE; + +-- fail - ALTER SUBSCRIPTION with refresh is not allowed in a transaction +-- block or function +BEGIN; +ALTER SUBSCRIPTION regress_testsub SET PUBLICATION mypub WITH (refresh = true); +END; + +BEGIN; +ALTER SUBSCRIPTION regress_testsub REFRESH PUBLICATION; +END; + +CREATE FUNCTION func() RETURNS VOID AS +$$ ALTER SUBSCRIPTION regress_testsub SET PUBLICATION mypub WITH (refresh = true) $$ LANGUAGE SQL; +SELECT func(); + +ALTER SUBSCRIPTION regress_testsub DISABLE; +ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE); +DROP SUBSCRIPTION regress_testsub; +DROP FUNCTION func; + RESET SESSION AUTHORIZATION; DROP ROLE regress_subscription_user; DROP ROLE regress_subscription_user2; diff --git a/src/test/regress/sql/sysviews.sql b/src/test/regress/sql/sysviews.sql index b9b875bc6abc2..dc8c9a3ac23f8 100644 --- a/src/test/regress/sql/sysviews.sql +++ b/src/test/regress/sql/sysviews.sql @@ -40,6 +40,9 @@ select count(*) >= 0 as ok from pg_prepared_xacts; -- There must be only one record select count(*) = 1 as ok from pg_stat_wal; +-- We expect no walreceiver running in this test +select count(*) = 0 as ok from pg_stat_wal_receiver; + -- This is to record the prevailing planner enable_foo settings during -- a regression test run. select name, setting from pg_settings where name like 'enable%'; diff --git a/src/test/regress/sql/transactions.sql b/src/test/regress/sql/transactions.sql index bf1016489d1ec..d1b6ed0280d65 100644 --- a/src/test/regress/sql/transactions.sql +++ b/src/test/regress/sql/transactions.sql @@ -458,6 +458,17 @@ SHOW transaction_deferrable; INSERT INTO abc VALUES (5); COMMIT; +START TRANSACTION ISOLATION LEVEL REPEATABLE READ, READ WRITE, DEFERRABLE; +SHOW transaction_isolation; +SHOW transaction_read_only; +SHOW transaction_deferrable; +SAVEPOINT x; +COMMIT AND CHAIN; -- TBLOCK_SUBCOMMIT +SHOW transaction_isolation; +SHOW transaction_read_only; +SHOW transaction_deferrable; +COMMIT; + -- different mix of options just for fun START TRANSACTION ISOLATION LEVEL SERIALIZABLE, READ WRITE, NOT DEFERRABLE; SHOW transaction_isolation; diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql index c7b5f96f6bdfb..93fd258fc02cf 100644 --- a/src/test/regress/sql/vacuum.sql +++ b/src/test/regress/sql/vacuum.sql @@ -213,6 +213,12 @@ BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE; ANALYZE vactst; COMMIT; +-- PROCESS_TOAST option +ALTER TABLE vactst ADD COLUMN t TEXT; +ALTER TABLE vactst ALTER COLUMN t SET STORAGE EXTERNAL; +VACUUM (PROCESS_TOAST FALSE) vactst; +VACUUM (PROCESS_TOAST FALSE, FULL) vactst; + DROP TABLE vaccluster; DROP TABLE vactst; DROP TABLE vacparted; diff --git a/src/test/ssl/Makefile b/src/test/ssl/Makefile index d545382eea2a4..4b53fdf6c0d3d 100644 --- a/src/test/ssl/Makefile +++ b/src/test/ssl/Makefile @@ -30,12 +30,15 @@ SSLFILES := $(CERTIFICATES:%=ssl/%.key) $(CERTIFICATES:%=ssl/%.crt) \ ssl/client+client_ca.crt ssl/client-der.key \ ssl/client-encrypted-pem.key ssl/client-encrypted-der.key +SSLDIRS := ssl/client-crldir ssl/server-crldir \ + ssl/root+client-crldir ssl/root+server-crldir + # This target re-generates all the key and certificate files. Usually we just # use the ones that are committed to the tree without rebuilding them. # # This target will fail unless preceded by sslfiles-clean. # -sslfiles: $(SSLFILES) +sslfiles: $(SSLFILES) $(SSLDIRS) # OpenSSL requires a directory to put all generated certificates in. We don't # use this for anything, but we need a location. @@ -147,9 +150,28 @@ ssl/root+server.crl: ssl/root.crl ssl/server.crl ssl/root+client.crl: ssl/root.crl ssl/client.crl cat $^ > $@ +ssl/root+server-crldir: ssl/server.crl ssl/root.crl + mkdir ssl/root+server-crldir + cp ssl/server.crl ssl/root+server-crldir/`openssl crl -hash -noout -in ssl/server.crl`.r0 + cp ssl/root.crl ssl/root+server-crldir/`openssl crl -hash -noout -in ssl/root.crl`.r0 + +ssl/root+client-crldir: ssl/client.crl ssl/root.crl + mkdir ssl/root+client-crldir + cp ssl/client.crl ssl/root+client-crldir/`openssl crl -hash -noout -in ssl/client.crl`.r0 + cp ssl/root.crl ssl/root+client-crldir/`openssl crl -hash -noout -in ssl/root.crl`.r0 + +ssl/server-crldir: ssl/server.crl + mkdir ssl/server-crldir + cp ssl/server.crl ssl/server-crldir/`openssl crl -hash -noout -in ssl/server.crl`.r0 + +ssl/client-crldir: ssl/client.crl + mkdir ssl/client-crldir + cp ssl/client.crl ssl/client-crldir/`openssl crl -hash -noout -in ssl/client.crl`.r0 + .PHONY: sslfiles-clean sslfiles-clean: rm -f $(SSLFILES) ssl/client_ca.srl ssl/server_ca.srl ssl/client_ca-certindex* ssl/server_ca-certindex* ssl/root_ca-certindex* ssl/root_ca.srl ssl/temp_ca.crt ssl/temp_ca_signed.crt + rm -rf $(SSLDIRS) clean distclean maintainer-clean: rm -rf tmp_check diff --git a/src/test/ssl/ssl/client-crldir/9bb9e3c3.r0 b/src/test/ssl/ssl/client-crldir/9bb9e3c3.r0 new file mode 100644 index 0000000000000..a667680e04d11 --- /dev/null +++ b/src/test/ssl/ssl/client-crldir/9bb9e3c3.r0 @@ -0,0 +1,11 @@ +-----BEGIN X509 CRL----- +MIIBnjCBhzANBgkqhkiG9w0BAQsFADBCMUAwPgYDVQQDDDdUZXN0IENBIGZvciBQ +b3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3QgY2xpZW50IGNlcnRzFw0xODEx +MjcxMzQwNTVaFw00NjA0MTQxMzQwNTVaMBQwEgIBAhcNMTgxMTI3MTM0MDU1WjAN +BgkqhkiG9w0BAQsFAAOCAQEAXjLxA9Qc6gAudwUHBxMIq5EHBcuNEX5e3GNlkyNf +8I0DtHTPfJPvmAG+i6lYz//hHmmjxK0dR2ucg79XgXI/6OpDqlxS/TG1Xv52wA1p +xz6GaJ2hC8Lk4/vbJo/Rrzme2QsI7xqBWya0JWVrehttqhFxPzWA5wID8X7G4Kb4 +pjVnzqYzn8A9FBiV9t10oZg60aVLqt3kbyy+U3pefvjhj8NmQc7uyuVjWvYZA0vG +nnDUo4EKJzHNIYLk+EfpzKWO2XAWBLOT9SyyNCeMuQ5p/2pdAt9jtWHenms2ajo9 +2iUsHS91e3TooP9yNYuNcN8/wXY6H2Xm+dCLcEnkcr7EEw== +-----END X509 CRL----- diff --git a/src/test/ssl/ssl/root+client-crldir/9bb9e3c3.r0 b/src/test/ssl/ssl/root+client-crldir/9bb9e3c3.r0 new file mode 100644 index 0000000000000..a667680e04d11 --- /dev/null +++ b/src/test/ssl/ssl/root+client-crldir/9bb9e3c3.r0 @@ -0,0 +1,11 @@ +-----BEGIN X509 CRL----- +MIIBnjCBhzANBgkqhkiG9w0BAQsFADBCMUAwPgYDVQQDDDdUZXN0IENBIGZvciBQ +b3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3QgY2xpZW50IGNlcnRzFw0xODEx +MjcxMzQwNTVaFw00NjA0MTQxMzQwNTVaMBQwEgIBAhcNMTgxMTI3MTM0MDU1WjAN +BgkqhkiG9w0BAQsFAAOCAQEAXjLxA9Qc6gAudwUHBxMIq5EHBcuNEX5e3GNlkyNf +8I0DtHTPfJPvmAG+i6lYz//hHmmjxK0dR2ucg79XgXI/6OpDqlxS/TG1Xv52wA1p +xz6GaJ2hC8Lk4/vbJo/Rrzme2QsI7xqBWya0JWVrehttqhFxPzWA5wID8X7G4Kb4 +pjVnzqYzn8A9FBiV9t10oZg60aVLqt3kbyy+U3pefvjhj8NmQc7uyuVjWvYZA0vG +nnDUo4EKJzHNIYLk+EfpzKWO2XAWBLOT9SyyNCeMuQ5p/2pdAt9jtWHenms2ajo9 +2iUsHS91e3TooP9yNYuNcN8/wXY6H2Xm+dCLcEnkcr7EEw== +-----END X509 CRL----- diff --git a/src/test/ssl/ssl/root+client-crldir/a3d11bff.r0 b/src/test/ssl/ssl/root+client-crldir/a3d11bff.r0 new file mode 100644 index 0000000000000..e879cf25a791e --- /dev/null +++ b/src/test/ssl/ssl/root+client-crldir/a3d11bff.r0 @@ -0,0 +1,11 @@ +-----BEGIN X509 CRL----- +MIIBhTBvMA0GCSqGSIb3DQEBCwUAMEAxPjA8BgNVBAMMNVRlc3Qgcm9vdCBDQSBm +b3IgUG9zdGdyZVNRTCBTU0wgcmVncmVzc2lvbiB0ZXN0IHN1aXRlFw0xODExMjcx +MzQwNTVaFw00NjA0MTQxMzQwNTVaMA0GCSqGSIb3DQEBCwUAA4IBAQB8OSDym4/a +qbZOrZvOOhmKrd7AJSTgAadtdK0CX3v58Ym3EmZK7gQFdBuFCXnvbue/x6avZHgz +4pYFlJmL0IiD4QuTzsoo+LzifrmTzteO9oEJNLd2bjfEnpE5Wdaw6Yuy2Xb5edy5 +lQhNZdc8w3FiXhPOEUAi7EbdfDwn4G/fvEjpzyVb2wCujDUUePUGGayjKIM4PUu4 +pixM6gt9FFL27l47lQ3g0PbvB3TnU3oqcB3Y17FjbxjFc6AsGXholNetoEE2/49E +PEYzOH7/PtxlZUtoCqZM+741LuI6Q7z4/P2X/IY33lMy6Iiyc41C94l/P7fCkMLG +AlO+O0a4SpYS +-----END X509 CRL----- diff --git a/src/test/ssl/ssl/root+server-crldir/a3d11bff.r0 b/src/test/ssl/ssl/root+server-crldir/a3d11bff.r0 new file mode 100644 index 0000000000000..e879cf25a791e --- /dev/null +++ b/src/test/ssl/ssl/root+server-crldir/a3d11bff.r0 @@ -0,0 +1,11 @@ +-----BEGIN X509 CRL----- +MIIBhTBvMA0GCSqGSIb3DQEBCwUAMEAxPjA8BgNVBAMMNVRlc3Qgcm9vdCBDQSBm +b3IgUG9zdGdyZVNRTCBTU0wgcmVncmVzc2lvbiB0ZXN0IHN1aXRlFw0xODExMjcx +MzQwNTVaFw00NjA0MTQxMzQwNTVaMA0GCSqGSIb3DQEBCwUAA4IBAQB8OSDym4/a +qbZOrZvOOhmKrd7AJSTgAadtdK0CX3v58Ym3EmZK7gQFdBuFCXnvbue/x6avZHgz +4pYFlJmL0IiD4QuTzsoo+LzifrmTzteO9oEJNLd2bjfEnpE5Wdaw6Yuy2Xb5edy5 +lQhNZdc8w3FiXhPOEUAi7EbdfDwn4G/fvEjpzyVb2wCujDUUePUGGayjKIM4PUu4 +pixM6gt9FFL27l47lQ3g0PbvB3TnU3oqcB3Y17FjbxjFc6AsGXholNetoEE2/49E +PEYzOH7/PtxlZUtoCqZM+741LuI6Q7z4/P2X/IY33lMy6Iiyc41C94l/P7fCkMLG +AlO+O0a4SpYS +-----END X509 CRL----- diff --git a/src/test/ssl/ssl/root+server-crldir/a836cc2d.r0 b/src/test/ssl/ssl/root+server-crldir/a836cc2d.r0 new file mode 100644 index 0000000000000..717951c26a1e8 --- /dev/null +++ b/src/test/ssl/ssl/root+server-crldir/a836cc2d.r0 @@ -0,0 +1,11 @@ +-----BEGIN X509 CRL----- +MIIBnjCBhzANBgkqhkiG9w0BAQsFADBCMUAwPgYDVQQDDDdUZXN0IENBIGZvciBQ +b3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc2VydmVyIGNlcnRzFw0xODEx +MjcxMzQwNTVaFw00NjA0MTQxMzQwNTVaMBQwEgIBBhcNMTgxMTI3MTM0MDU1WjAN +BgkqhkiG9w0BAQsFAAOCAQEAbVuJXemxM6HLlIHGWlQvVmsmG4ZTQWiDnZjfmrND +xB4XsvZNPXnFkjdBENDROrbDRwm60SJDW73AbDbfq1IXAzSpuEyuRz61IyYKo0wq +nmObJtVdIu3bVlWIlDXaP5Emk3d7ouCj5f8Kyeb8gm4pL3N6e0eI63hCaS39hhE6 +RLGh9HU9ht1kKfgcTwmB5b2HTPb4M6z1AmSIaMVqZTjIspsUgNF2+GBm3fOnOaiZ +SEXWtgjMRXiIHbtU0va3LhSH5OSW0mh+L9oGUQDYnyuudnWGpulhqIp4qVkJRDDu +41HpD83dV2uRtBLvc25AFHj7kXBflbO3gvGZVPYf1zVghQ== +-----END X509 CRL----- diff --git a/src/test/ssl/ssl/server-crldir/a836cc2d.r0 b/src/test/ssl/ssl/server-crldir/a836cc2d.r0 new file mode 100644 index 0000000000000..717951c26a1e8 --- /dev/null +++ b/src/test/ssl/ssl/server-crldir/a836cc2d.r0 @@ -0,0 +1,11 @@ +-----BEGIN X509 CRL----- +MIIBnjCBhzANBgkqhkiG9w0BAQsFADBCMUAwPgYDVQQDDDdUZXN0IENBIGZvciBQ +b3N0Z3JlU1FMIFNTTCByZWdyZXNzaW9uIHRlc3Qgc2VydmVyIGNlcnRzFw0xODEx +MjcxMzQwNTVaFw00NjA0MTQxMzQwNTVaMBQwEgIBBhcNMTgxMTI3MTM0MDU1WjAN +BgkqhkiG9w0BAQsFAAOCAQEAbVuJXemxM6HLlIHGWlQvVmsmG4ZTQWiDnZjfmrND +xB4XsvZNPXnFkjdBENDROrbDRwm60SJDW73AbDbfq1IXAzSpuEyuRz61IyYKo0wq +nmObJtVdIu3bVlWIlDXaP5Emk3d7ouCj5f8Kyeb8gm4pL3N6e0eI63hCaS39hhE6 +RLGh9HU9ht1kKfgcTwmB5b2HTPb4M6z1AmSIaMVqZTjIspsUgNF2+GBm3fOnOaiZ +SEXWtgjMRXiIHbtU0va3LhSH5OSW0mh+L9oGUQDYnyuudnWGpulhqIp4qVkJRDDu +41HpD83dV2uRtBLvc25AFHj7kXBflbO3gvGZVPYf1zVghQ== +-----END X509 CRL----- diff --git a/src/test/ssl/t/001_ssltests.pl b/src/test/ssl/t/001_ssltests.pl index 7928de4e7c2de..864f6e209f5d8 100644 --- a/src/test/ssl/t/001_ssltests.pl +++ b/src/test/ssl/t/001_ssltests.pl @@ -17,7 +17,7 @@ } else { - plan tests => 93; + plan tests => 100; } #### Some configuration @@ -215,12 +215,25 @@ qr/SSL error/, "CRL belonging to a different CA"); +# The same for CRL directory +test_connect_fails( + $common_connstr, + "sslrootcert=ssl/root+server_ca.crt sslmode=verify-ca sslcrldir=ssl/client-crldir", + qr/SSL error/, + "directory CRL belonging to a different CA"); + # With the correct CRL, succeeds (this cert is not revoked) test_connect_ok( $common_connstr, "sslrootcert=ssl/root+server_ca.crt sslmode=verify-ca sslcrl=ssl/root+server.crl", "CRL with a non-revoked cert"); +# The same for CRL directory +test_connect_ok( + $common_connstr, + "sslrootcert=ssl/root+server_ca.crt sslmode=verify-ca sslcrldir=ssl/root+server-crldir", + "directory CRL with a non-revoked cert"); + # Check that connecting with verify-full fails, when the hostname doesn't # match the hostname in the server's certificate. $common_connstr = @@ -346,7 +359,12 @@ $common_connstr, "sslrootcert=ssl/root+server_ca.crt sslmode=verify-ca sslcrl=ssl/root+server.crl", qr/SSL error/, - "does not connect with client-side CRL"); + "does not connect with client-side CRL file"); +test_connect_fails( + $common_connstr, + "sslrootcert=ssl/root+server_ca.crt sslmode=verify-ca sslcrldir=ssl/root+server-crldir", + qr/SSL error/, + "does not connect with client-side CRL directory"); # pg_stat_ssl command_like( @@ -545,6 +563,16 @@ test_connect_fails($common_connstr, "sslmode=require sslcert=ssl/client.crt", qr/SSL error/, "intermediate client certificate is missing"); +# test server-side CRL directory +switch_server_cert($node, 'server-cn-only', undef, undef, 'root+client-crldir'); + +# revoked client cert +test_connect_fails( + $common_connstr, + "user=ssltestuser sslcert=ssl/client-revoked.crt sslkey=ssl/client-revoked_tmp.key", + qr/SSL error/, + "certificate authorization fails with revoked client cert with server-side CRL directory"); + # clean up foreach my $key (@keys) { diff --git a/src/test/ssl/t/SSLServer.pm b/src/test/ssl/t/SSLServer.pm index f5987a003efd6..5ec5e0dac8820 100644 --- a/src/test/ssl/t/SSLServer.pm +++ b/src/test/ssl/t/SSLServer.pm @@ -150,6 +150,8 @@ sub configure_test_server_for_ssl copy_files("ssl/root+client_ca.crt", $pgdata); copy_files("ssl/root_ca.crt", $pgdata); copy_files("ssl/root+client.crl", $pgdata); + mkdir("$pgdata/root+client-crldir"); + copy_files("ssl/root+client-crldir/*", "$pgdata/root+client-crldir/"); # Stop and restart server to load new listen_addresses. $node->restart; @@ -167,14 +169,24 @@ sub switch_server_cert my $node = $_[0]; my $certfile = $_[1]; my $cafile = $_[2] || "root+client_ca"; + my $crlfile = "root+client.crl"; + my $crldir; my $pgdata = $node->data_dir; + # defaults to use crl file + if (defined $_[3] || defined $_[4]) + { + $crlfile = $_[3]; + $crldir = $_[4]; + } + open my $sslconf, '>', "$pgdata/sslconfig.conf"; print $sslconf "ssl=on\n"; print $sslconf "ssl_ca_file='$cafile.crt'\n"; print $sslconf "ssl_cert_file='$certfile.crt'\n"; print $sslconf "ssl_key_file='$certfile.key'\n"; - print $sslconf "ssl_crl_file='root+client.crl'\n"; + print $sslconf "ssl_crl_file='$crlfile'\n" if defined $crlfile; + print $sslconf "ssl_crl_dir='$crldir'\n" if defined $crldir; close $sslconf; $node->restart; diff --git a/src/test/subscription/t/004_sync.pl b/src/test/subscription/t/004_sync.pl index e111ab918105f..c7926681b66c8 100644 --- a/src/test/subscription/t/004_sync.pl +++ b/src/test/subscription/t/004_sync.pl @@ -3,7 +3,7 @@ use warnings; use PostgresNode; use TestLib; -use Test::More tests => 7; +use Test::More tests => 8; # Initialize publisher node my $node_publisher = get_new_node('publisher'); @@ -149,7 +149,26 @@ is($result, qq(20), 'changes for table added after subscription initialized replicated'); +# clean up +$node_publisher->safe_psql('postgres', "DROP TABLE tab_rep_next"); +$node_subscriber->safe_psql('postgres', "DROP TABLE tab_rep_next"); $node_subscriber->safe_psql('postgres', "DROP SUBSCRIPTION tap_sub"); +# Table tap_rep already has the same records on both publisher and subscriber +# at this time. Recreate the subscription which will do the initial copy of +# the table again and fails due to unique constraint violation. +$node_subscriber->safe_psql('postgres', + "CREATE SUBSCRIPTION tap_sub CONNECTION '$publisher_connstr' PUBLICATION tap_pub"); + +$result = $node_subscriber->poll_query_until('postgres', $started_query) + or die "Timed out while waiting for subscriber to start sync"; + +# DROP SUBSCRIPTION must clean up slots on the publisher side when the +# subscriber is stuck on data copy for constraint violation. +$node_subscriber->safe_psql('postgres', "DROP SUBSCRIPTION tap_sub"); + +$result = $node_publisher->safe_psql('postgres', "SELECT count(*) FROM pg_replication_slots"); +is($result, qq(0), 'DROP SUBSCRIPTION during error can clean up the slots on the publisher'); + $node_subscriber->stop('fast'); $node_publisher->stop('fast'); diff --git a/src/test/subscription/t/100_bugs.pl b/src/test/subscription/t/100_bugs.pl index d1e407aacb322..b8f46f08cc5d9 100644 --- a/src/test/subscription/t/100_bugs.pl +++ b/src/test/subscription/t/100_bugs.pl @@ -153,3 +153,72 @@ $rows * 2, "2x$rows rows in t"); is($node_twoways->safe_psql('d2', "SELECT count(f) FROM t2"), $rows * 2, "2x$rows rows in t2"); + +# Verify table data is synced with cascaded replication setup. This is mainly +# to test whether the data written by tablesync worker gets replicated. +my $node_pub = get_new_node('testpublisher1'); +$node_pub->init(allows_streaming => 'logical'); +$node_pub->start; + +my $node_pub_sub = get_new_node('testpublisher_subscriber'); +$node_pub_sub->init(allows_streaming => 'logical'); +$node_pub_sub->start; + +my $node_sub = get_new_node('testsubscriber1'); +$node_sub->init(allows_streaming => 'logical'); +$node_sub->start; + +# Create the tables in all nodes. +$node_pub->safe_psql('postgres', "CREATE TABLE tab1 (a int)"); +$node_pub_sub->safe_psql('postgres', "CREATE TABLE tab1 (a int)"); +$node_sub->safe_psql('postgres', "CREATE TABLE tab1 (a int)"); + +# Create a cascaded replication setup like: +# N1 - Create publication testpub1. +# N2 - Create publication testpub2 and also include subscriber which subscribes +# to testpub1. +# N3 - Create subscription testsub2 subscribes to testpub2. +# +# Note that subscription on N3 needs to be created before subscription on N2 to +# test whether the data written by tablesync worker of N2 gets replicated. +$node_pub->safe_psql('postgres', + "CREATE PUBLICATION testpub1 FOR TABLE tab1"); + +$node_pub_sub->safe_psql('postgres', + "CREATE PUBLICATION testpub2 FOR TABLE tab1"); + +my $publisher1_connstr = $node_pub->connstr . ' dbname=postgres'; +my $publisher2_connstr = $node_pub_sub->connstr . ' dbname=postgres'; + +$node_sub->safe_psql('postgres', + "CREATE SUBSCRIPTION testsub2 CONNECTION '$publisher2_connstr' PUBLICATION testpub2" +); + +$node_pub_sub->safe_psql('postgres', + "CREATE SUBSCRIPTION testsub1 CONNECTION '$publisher1_connstr' PUBLICATION testpub1" +); + +$node_pub->safe_psql('postgres', + "INSERT INTO tab1 values(generate_series(1,10))"); + +# Verify that the data is cascaded from testpub1 to testsub1 and further from +# testpub2 (which had testsub1) to testsub2. +$node_pub->wait_for_catchup('testsub1'); +$node_pub_sub->wait_for_catchup('testsub2'); + +# Drop subscriptions as we don't need them anymore +$node_pub_sub->safe_psql('postgres', "DROP SUBSCRIPTION testsub1"); +$node_sub->safe_psql('postgres', "DROP SUBSCRIPTION testsub2"); + +# Drop publications as we don't need them anymore +$node_pub->safe_psql('postgres', "DROP PUBLICATION testpub1"); +$node_pub_sub->safe_psql('postgres', "DROP PUBLICATION testpub2"); + +# Clean up the tables on both publisher and subscriber as we don't need them +$node_pub->safe_psql('postgres', "DROP TABLE tab1"); +$node_pub_sub->safe_psql('postgres', "DROP TABLE tab1"); +$node_sub->safe_psql('postgres', "DROP TABLE tab1"); + +$node_pub->stop('fast'); +$node_pub_sub->stop('fast'); +$node_sub->stop('fast'); diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm index 90328db04e90d..49614106dc23a 100644 --- a/src/tools/msvc/Mkvcbuild.pm +++ b/src/tools/msvc/Mkvcbuild.pm @@ -147,8 +147,9 @@ sub mkvcbuild our @pgcommonbkndfiles = @pgcommonallfiles; our @pgfeutilsfiles = qw( - archive.c cancel.c conditional.c mbprint.c print.c psqlscan.l - psqlscan.c simple_list.c string_utils.c recovery_gen.c); + archive.c cancel.c conditional.c connect_utils.c mbprint.c option_utils.c + parallel_slot.c print.c psqlscan.l psqlscan.c query_utils.c simple_list.c + string_utils.c recovery_gen.c); $libpgport = $solution->AddProject('libpgport', 'lib', 'misc'); $libpgport->AddDefine('FRONTEND'); diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list index 1d540fe489fe7..bab4f3adb3be5 100644 --- a/src/tools/pgindent/typedefs.list +++ b/src/tools/pgindent/typedefs.list @@ -2397,7 +2397,6 @@ StdAnalyzeData StdRdOptions Step StopList -StopWorkersData StrategyNumber StreamCtl StreamXidHash @@ -2408,6 +2407,7 @@ SubLink SubLinkType SubPlan SubPlanState +SubRemoveRels SubTransactionId SubXactCallback SubXactCallbackItem